抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >


IP 编址

IP

IP: 网际协议,网络层协议,用来为网络中设备分配逻辑地址.

网络层的逻辑地址就是 IP 地址,IP 地址是可以更改的,当设备在不同网络中,根据所处网络的不同发生变化,在同一个网络内必须保证唯一性。设备有了 IP 地址后,就可以在网络中进行通信.

IP 报文头部

RFC 791

0                   1                   2                   3   
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Example Internet Datagram Header

IP报文头部

基本信息行

Version: 版本,4bit, 用来标明当前 IP 协议的版本,如果当前报文在 IPv4 时,则该字段的值为 4(0b0100)

IHL: IP 头部长度,4bit, 范围 20-60 字节,每个单位代表 4 字节

, 字节 字节

, 字节 字节

字节长度取值一定是四的倍数.

DS/TOS: 差分服务域,服务类别,8bit, 让特定的数据拥有更高的优先级.

Total length: 数据包总长度,16bit, 用于标识 IP 报文头部加数据载荷的长度,最大 65535 字节.

分片行

[MTU: 最大传输单元,用于限制报文不被分片的最大字节,默认情况下 MTU 值为 1500 字节.]

ID: 标识,16bit, 用于顺序 IP 报文,同一个报文得到的分片信息中的 ID 相同.

Flages: 标志位,3bit.

  • 最高位被保留,固定为 0.
  • 中间位为 DF 位:如果置位为 1, 则表示该报文不能被分片.
  • 最低位称为 more 位:如果置位 1, 则表示后续还有分片报文.

如果报文大于 MTU 值并且 DF 置位,直接丢弃.

Offset: 13bit, 片偏移,用于标识分片包在原始报文的位置.

片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以 8 个字节为偏移单位。这就是说,每个分片的长度一定是 8 字节 (64 位) 的整数倍.

【例】一数据报的总长度为 3820 字节,其数据部分为 3800 字节长 (使用固定自部),需要分片为长度不超过 1420 字节的数据报片。因固定首部长度为 20 字节,因此每个数据报片的数据部分长度不能超过 1400 字节。于是分为 3 个数据报片,具数据部分的长度分别为 1400 ,1400 和 1000 字节。原始数据报首部被复制为各数据报片的首部,但必须修以有关字段的值。下面给出分片后得出的结果 (请注意片偏移的数值)。

数据报总长度标识 MFDF 片偏移
原始数据报 382012345000(0/8=0)
数据报片 1142012345100(0/8=0)
数据报片 214201234510175(1400/8=175)
数据报片 310201234500350(2800/8=350)

现在假定数据报片 2 经过某个网络时还需要再进行分片,即划分为数据报片 2-1 (携带数据 800 字节) 和数据报片 2-2 (携带数据 600 字节)。那么这两个数据报片的总长度、标识、MF、DF 和片偏移分别为: 820,12345,1,0,175; 620,12345,1,0,275。

功能行

TTL: 生存周期,8bit, 用来在 IP 报文转发过程中,打破环路对网络的影响,最大值 255, 会在数据包经过一次第三层转发时减 1. 当值为 0 时数据包被丢弃.

Protocol: 8bit, 用于标明网络层处理完 IP 报文后,需要交给上层的某个协议继续处理.

  • 1: ICMP
  • 6: TCP
  • 17: UDP

Header Checksum: 16bit, 首部校验和,检测 IP 首部是否发生错误.

地址行

SIP: 源 IP 地址,32bit, 表明当前数据包从哪出发.

DIP: 目的 IP 地址,32bit, 表明当前数据包去往何处.

可选项

Options: 可选项,可变长度,最大 40 字节。军事或研究方向,支持松散源路由,严格源路由等等.

IP 地址

IP 地址:用来标识网络中的一个节点或网络设备的接口,总长度 32bit, 约 42.9 亿 (), 每个 IP 地址都由网络位和主机位组成.

网络位:用来标明当前设备的网络位置.

主机位:用来标明当前主机在当前网络中的位置.

网络掩码: 32bit, 由连续的 1 和 0 构成,其中 1 标记的是网络位,0 标记的是主机位.

网络地址:当主机位全都为 0 时,表示当前网络信息.

广播地址:当主机位全都为 1 时,表示当前网络范围内的广播地址.

可用地址:可分配给网络中的节点或网络设备接口的地址.

一个网络内的可用 IP 地址 ,表示主机位的位数.

网络地址和广播地址不能直接被节点或网络设备所使用.

IP 地址分类

有类 IP 地址

A: 第一个 bit 为 0, 并且掩码长度为 8.

(0.0.0.0-127.255.255.255)

B: 前两个 bit 为 10, 并且掩码长度为 16.

(128.0.0.0-191.255.255.255)

C: 前三个 bit 为 110, 并且掩码长度为 24.

(192.0.0.0-223.255.255.255)

D: 前四个 bit 为 1110, 组播地址.

(224.0.0.0-239.255.255.255)

E: 前四个 bit 为 1111.

(240.0.0.0-255.255.255.255)

按照使用范围分类

公有地址:可以在公网范围内使用的地址.

私有地址:可以在局域网中使用,在不同的局域网中可以重复使用,不能够被公网转发.

私有地址范围:

A: 10.0.0.0-10.255.255.255 ; 10.0.0.0/8

B: 172.16.0.0-172.31.255.255 ; 172.16.0.0/12

C: 192.168.0.0-192.168.255.255 ; 192.168.0.0/16

IPv6 私有地址范围:

fc00::/7 (ULAs,Unique Local Addresses)

特殊地址

这类 IP 地址不能够给设备使用,并且全部具有特定意义.

0.0.0.0: 当设备初次进入网络时,会使用该地址。特定场景下可以代表所有地址.

255.255.255.255: 全网广播地址,可以向广播域内所有设备发送数据.

127.0.0.0-127.255.255.255: 本地环回测试地址,检查本地网卡驱动是否正常.

进制转换

十进制转二进制

短除法 倒着写:

2|192  0
----
2|96 0
---
2|48 0
---
2|24 0
---
2|12 0
---
2|6 0
---
2|3 1
--
1

2|168 0
----
2|84 0
---
2|42 0
---
2|21 1
---
2|10 0
---
2|5 1
---
2|2 0
--
1

权重减法:

192-128=64
64-64=0
1100 0000

168-128=40
40-32=8
8-8=0
1010 1000

二进制转十进制

2561286432168421

IP 地址计算

172.16.10.1/16 这个 B 类地址的网络地址,广播地址,可用地址数

IP 地址: 172.16.10.1

10101100 00010000 00001010 00000001

网络掩码: 255.255.0.0

11111111 11111111 00000000 00000000

网络地址: 127.16.0.0

10101100 00010000 00000000 00000000

广播地址: 127.16.255.255

10101100 00010000 11111111 11111111

IP 地址数:

可用 IP 地址数:

可用 IP 地址范围: 172.16.0.1-172.16.255.254

192.168.54.6/24
网络地址: 192.168.54.0/24
广播地址: 192.168.54.255/24
IP地址数: 2^8=256
可用IP地址数: 2^8-2=254
可用IP地址范围: 192.168.54.1-192.168.54.254

172.168.54.6 主类
B /16
网络地址: 172.168.0.0/16
广播地址: 172.168.255.255/16
IP地址数: 2^16=65536
可用IP地址数: 2^16-2=65534
可用IP地址范围: 172.168.0.1/16-172.168.255.254/16

172.168.54.6 /22
172.168.001101 10.6
网络地址: 172.168.52.0/22
广播地址: 172.168.55.255/22
IP地址数: 2^10=1024
可用IP地址数: 2^10-2=1022
可用IP地址范围: 172.168.52.1/22-172.168.55.254/22

如果公司有 个人,适合的掩码长度是 /26

11111111.11111111.11111111.11000000

255.255.255.192

10.1.56.6   /28
10.1.56.0000 0110
网络地址: 10.1.56.0/28
广播地址: 10.1.56.15/28
IP地址数: 2^4=16
可用IP地址数: 2^4-2=14
可用IP地址范围: 10.1.56.1/28-10.1.56.14/28

192.172.168.169 /27
192.172.168.101 01001
网络地址: 192.172.168.160/27
广播地址: 192.172.168.191/27
IP地址数: 2^5=32
可用IP地址数: 2^5-2=30
可用IP地址范围: 192.172.168.161/27-192.172.168.190/27

192.168.39.48 /19
192.168.001 00111.48
网络地址: 192.168.32.0/19
广播地址: 192.168.63.255/19
IP地址数: 2^13=8192
可用IP地址数: 2^13-2=8190
可用IP地址范围: 192.168.32.1/19-192.168.63.254/19

192.168.56.9 /19
192.168.001 11000.9
网络地址: 192.168.32.0/19
广播地址: 192.168.63.255/19
IP地址数: 2^13=8192
可用IP地址数: 2^13-2=8190
可用IP地址范围: 192.168.32.1/19-192.168.63.254/19

172.169.1.9 /6
101011 00.169.1.9
网络地址: 172.0.0.0/6
广播地址: 175.255.255.255/6
IP地址数: 2^26=67,108,864
可用IP地址数: 2^26-2=67,108,862
可用IP地址范围: 172.0.0.1/6-175.255.255.254/6

划分子网

向主机位借位形成子网.

可变长子网掩码 VLSM

[例]

有一个 C 类网络地址 192.168.1.0/24 , 使用可变长子网掩码给三个子网分别分配 IP 地址 10 台 8 台 5 台

方法 1:

4 个子网

00 000000 0/26
01 000000 64/26
10 000000 128/26
11 000000 192/26

方法 2:

16 个子网

0000 0000

0001 0000

….

[例]

192.168.1.2/24 (主机位 8)
共有 25 个地址需求
求子网网络号,掩码。广播地址,可划分子网数

2^h-2>=25
h>=5 主机位 5
n=3
可划分2^3=8个子网
掩码
255.255.255.111 00000
255.255.255.224
/27
子网网络号
192.168.1.000 00000 192.168.1.0/27
192.168.1.001 00000 192.168.1.32/27
192.168.1.010 00000 192.168.1.64/27
192.168.1.011 00000 192.168.1.96/27
192.168.1.100 00000 192.168.1.128/27
192.168.1.101 00000 192.168.1.160/27
192.168.1.110 00000 192.168.1.192/27
192.168.1.111 00000 192.168.1.224/27
广播地址
192.168.1.000 11111 /27
192.168.1.001 11111 /27
192.168.1.010 11111 /27
192.168.1.011 11111 /27
192.168.1.100 11111 /27
192.168.1.101 11111 /27
192.168.1.110 11111 /27
192.168.1.111 11111 /27

[例]

某公司 4 个部门,每个部门最多 36 人
192.168.10.0/24 (主机位 8)
划分出合适的网络
掩码
网络号
子网数目

2^h-2>=36
h>=6
n=2
子网数目 2^2=4
掩码
255.255.255.11 000000
255.255.255.192
网络号
192.168.10.00 000000 192.168.10.0/26
192.168.10.01 000000 192.168.10.64/26
192.168.10.10 000000 192.168.10.128/26
192.168.10.11 000000 192.168.10.192/26

IP 编址

一个网络内拥有的 IP 地址数量为 (代表主机位位数).

因为网络号和广播地址不可以配置在设备上,所以实际可用主机地址数为.

如果两个 IP 地址的网络位相同,则这两个地址属于同一个网络,可以不通过网关设备或路由器直接通信.

如果两个 IP 地址的网络位不同,则需要借助网关设备和路由器进行通信.

使用默认掩码的就是有类地址.

无类地址就是经过子网划分的 IP 地址.

VLSM: 可变长子网掩码.

子网掩码变长,主机位变少, 就会变少,主机数目减少,避免地址浪费。主机位长度缩减,网络位就会增加.

一个子网位能分出两个子网 ( 是子网位位数).

CIDR: 无类域间路由 (VLSM 逆运算)

子网掩码除了 VLSM 以外,还可以变短进行网络信息的汇总,这种操作方式就是 CIDR.

将不同网络的网络号中共同发生变化的位置当作主机位进行处理,之后对外发布,起到节省设备资源的作用.

推荐阅读
IPv6 IPv6 ARP协议 ARP协议 以太网帧结构 以太网帧结构 数据转发过程 数据转发过程 交换网络基础 交换网络基础 NAT网络地址转换 NAT网络地址转换

留言区

Are You A Robot?