IPv4数据报格式

IPv4格式、首部各字段意义及地址分类简单理解_首部

IPv4首部各字段意义

版本:占4位。指IP协议是IPv4还是IPv6,通信双方的版本必须一致。
首部长度:占4位。以4B为单位,最大值为60B。默认情况下首部长度看成20B,此时不使用任何选项(即可选字段)。
总长度:占16位。指首部和数据之和的长度,以1B为单位,因此数据报最大长度为216−1 2^{16}-12 
16
 −1=65535B。以太网的最大传送单元(MTU)为1500B,因此当一个IP数据包封装成帧时,数据包总长度一定不能超过数据链路层的MTU值。
标识:占16位。它是一个计数器,每产生一个数据报就加1,但它并不是“序号”(IP是无连接服务)。当一个数据报长度超过网络的MTU时,必须分片,此时每个数据报片都复制一次标识号以便能重装成原来的数据报。重装数据报是在目的端主机完成的。
标志:占3位。目前只有前两位有效,即MF和DF。MF=1表示后面还有分片;MF=0表示这是最后一个分片。DF=0允许分片;DF=1不允许分片。
片偏移:占13位。指明了每个分片相对于原始报文开头的偏移量,以8B为单位,即每个分片的长度必须是8B的整数倍。
生存时间(TTL):占8位。报文经过的每个路由器都将此字段减1,当此字段等于0时,丢弃该报文,确保报文不会永远在网络中循环。
协议:占8位。指出携带的数据应交给那个传输层协议,值为6表示TCP;值为17表示UDP。
首部检验和:占16位。只检验数据报首部,不检验数据部分。
源地址:占32位。表示发送方的IP地址。
目的地址:占32位。表示接收方的IP地址。
相关总结

首部中3个关于长度的标记:总长度、首部长度、片偏移,它们的基本单位分别是1B、4B、8B,可记忆为总1、首4、偏8。
得到下一条路由器的IP地址后不是直接将改地址填入到待发送的数据报,而是通过ARP协议将该IP地址转换成MAC地址,将其放到MAC首部中,然后根据这个MAC地址来找到下一跳路由器。
在不同网络中传送时,IP分组中的源IP地址和目的IP地址均不发生变化,MAC帧首部的源地址和目的地址要发生变化,但网桥在转发帧时,不改变帧的源地址。
IP数据报中的数据部分的长度是可变的,即IP数据报不是定长的。
IP数据报在传输过程中首部长度不会发生变化,但首部中的某些字段的数值一般会发生变化。
IPv4地址分类

IP地址就是给每个链接在因特网上的主机分配一个在全世界范围内唯一的32位标识符。一般将IP地址分为A类地址、B类地址、C类地址、D类地址、E类地址。其地址分配方法如下:

Class    前缀位    网络地址位数    剩余的位数    可指派网络数    可指派主机数
A类地址    0    8    24    27−2 2^7-22 
7
 −2    224−2 2^{24}-22 
24
 −2
B类地址    10    16    16    214−1 2^{14}-12 
14
 −1    216−2 2^{16}-22 
16
 −2
C类地址    110    24    8    221−1 2^{21}-12 
21
 −1    28−2 2^8-22 
8
 −2
D类地址(群播)    1110    未定义    未定义    未定义    未定义
E类地址(保留)    1111    未定义    未定义    未定义    未定义
A类地址的最小网络地址和最大网络地址分别是

00000001.00000000.00000000.00000000~01111110.00000000.00000000.00000000
1~126
B类地址的最小网络地址和最大网络地址分别是
10000000.00000001.00000000.00000000~10111111.11111111.00000000.00000000
128.1~191.255
C类地址的最小网络地址和最大网络地址分别是
11000000.00000000.00000001.00000000~11011110.11111111.11111111.00000000
192.0.1~223.255.255