Ipv4数据报头部
图示
解释
版本
版本字段指定了IP数据报使用的IP协议版本,如果是IPV4,则值为0100;还有其他IPV4的拓展版本,拥有不同的版本号
首部长度
标识IP头部有多少个32bit(4byte),4bite表示的最大数是15,所以IP头部最长的是60字节
服务类型
最高1位未用
3bite长度的优先级
4bite长度的标志位
优先级:现在已经被忽略
标志位:最多有一个能置为1,应用程序应该根据实际需要来设置它
D(Delay)、T(Throughput)、R(Reliability)、C(Cost)
总长度
标识整个IP数据报的总长度,包括报头和数据部分,整个IP数据报的总长度以字节为单位,16位表示最大的长度是
2
16
−
1
2^{16}-1
216−1=65535byte
最大传送单元(MTU):数据报的总长度不可以超过MTU
标识
表示IP数据报的标识符,每个IP数据报有一个唯一的标识符。
当数据报由于长度超过下面数据链路层的MTU(最大传输单元)值而必须分段的时候,这个标识符的值就被复制到所有的数据报分段的标识字段中。相同的标识字段的值分段后的各数据报分段最后能正确地组装成原来的数据报。
标志
指出该IP数据报后面是否还有分段
第一位保留。第二位(Don’t Fragment,DF)表示“禁止分片”。如果设置了这个位,IP模块将不对数据报进行分片。在这种情况下,如果IP数据报长度超过MTU的话,IP模块将丢弃该数据报并返回一个ICMP差错报文。第三位(More Fragment,MF)表示“更多分片”。除了数据报的最后一个分片外,其他分片都要把它置1
片偏移
指出该分段在数据报中的相对位置
实际的偏移值是该值左移3位(乘8)后得到的
生存时间
标识IP数据报在网络中传输的有效期,每经过一个路由器,则TTL减1,当TTL值为0时,就丢弃这个数据报。设定生存时间是为了防止数据报在网络中无限制地循环转发
协议
IP数据报在传输层所采用的协议类型(TCP 6 UDP 17 ICMP 等)
检验和
检验IP数据报的报头部分(不包过“数据”部分)在传输到接收端后是否发生了变化。每经过一个路由器,路由器都会重新计算一下报头的校验和(因为一些字段会发生改变)
源地址/目的地址
表示该IP数据报发送者和接受者的IP地址,各占32位。在这个数据报传送过程中,无论经过什么路由,无论如何分段,此两字段一直保持不变
选项
可变长的可选信息。这部分最多包含40字节,因为IP头部最长是60字节(其中还包含前面讨论的20字节的固定部分