IP数据包结构

IP数据包结构

IP包结构图


  1. Version(版本)字段长度为4位,标识了数据包的IP版本号。其中0100表示IP版本4,0110表示IP版本6(其他所有版本号仅作为“历史产物”)

  2. IHL(首部长度)字段长度为4位,以字节为单位表示整个IP包中除数据字段外的长度。最小为20,最大为60。ps:可选项的范围为0到40个字节

  3. Type of Service(服务类型)字段长度为8位 用来指定特殊的数据包处理方式。该字段实际上被分为两个字段:优先权和Tos。

  4. Total Length(总长度)字段长度为16位(单位为一个八位组),表示整个IP数据包的长度(其中包括IP报头,不包括帧数据结构)。接受者用总长度减去IP报头长度,就可以确定数据包数据有效载荷的大小。(用十进制表示最大到65535个),中国传输MTU最大值为1500字节,因此数据超过该字节都会被进行拆分。


  1. Identification(标识符)字段长度为16位,通常与标记字段和分段偏移字段一起用于数据包的分段。如果数据包原始长度超过数据包所要经过的数据链路的最大传输 单元( MTU),那么必须将数据包分段为更小的数据包。例如,一个大小为 5000 字节的数据包在穿过网络时,如果遇到一条MTU为1500字节的数据链路,即数据帧最多容纳大小为1500字节的数据包。路由器需要在数据成帧之前将数据包分段成多个数据包,其中每个数据包长度不得超过1500字节;然后路由器在每片数据包的标识字段上打上相同的标记(标识符),以便接收设备可以识别出属于一个数据包的分段。
  2. IP Flags(标记)字段长度为3位,第1位没有使用。第2位表示不分段位(DF),取值:0(允许数据报分段)、1(数据报不能分段),置1之后路由器不能对其分段处理,如果超过MTU值则路由器不能对其转发将其丢弃,并向源点发送错误消息。第3位表示更多段位,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包)。
    1.Fragment Offset(分片偏移)字段长度为13位,以字节为单位,用于指明分段起始点相对于包头起始点的偏移量。由于分段到达时可能错序,所以分段的偏移字段可以使接收者按照正确的顺序重组数据包。请注意,如果一个分段在传输中丢失,那么必须在网络中同一点对整个数据包重新分段并重新发送。因此,容易发生故障的数据链路会造成时延不成比例。另外,如果由于网络拥塞而造成分段丢失,那么重传整组分段会进一步加重网络拥塞。
posted @ 2020-09-24 11:52  甜腻  阅读(9631)  评论(0编辑  收藏  举报