IP数据包及解码

作者:陈年老陈皮 发布时间: 2024-08-25 阅读量:24

版本:version

长4位

Pv4头部为0100,IPv6头部为0110

首部长度:HeaderLength(IHL)

长4位

乘以4得出当前包大小,例如头部长度值为0101,将该值转换成十进制得到结果5,再乘以4后得出当前头部长度为20字节

Tos/DSCP

ToS:服务类型(Type ofService)

由RFC 791/RFC 1349定义

前3位为优先级,接着4位,分别为relay、throughout、reliability、cost,最后一位保留

DSCP:差分服务代码点(Different Service Code Point)

由RFC 2474定义

前6位为DSCP优先级,后2位保留定义了CS、AF、EF、BE等概念

总长度:Total Length

长16位

描述了IP数据包头部+后续数据的总长度

标识:ldentification

长16位

数据包分片和重组程序通过该字段将数据包分片重新组装,以确保不同数据包的片段不混在一起。

标志:Flags

长3位,依次分别为:保留位(未使用)、DF位、MF位

DF位:当该位置1时,表示禁止对本数据包进行分片操作

MF位:当该位置1时,表示该数据包片段并不是数据包末尾

段偏移:Fragment Offset

长13位

该字段告诉接收者,段在原始数据报中的位置

生存周期:Time To Live (TTL)

长8位

数据包每经过一个三层设备转发就将TTL减1,当TTL减至0时,该数据包将被销毁

不同操作系统的默认TTL值不同

协议:Protocol

长8位

提前预告上层数据使用了哪种协议

首部校验和:HeaderChecksum

长16位

对IPv4头部进行校验

如出现错误则丢弃数据包

如果一个IP数据包被分片了,那么被分片的几个报文中,哪几个字段是不同的?

  1. MF标志不同,被分片的数据包最后一片MF为0,其余分片MF为1

  2. 偏移量不同,每个分片的偏移量表示自己处在整体包的哪一段位置,因此分片后的偏移量不同

  3. 校验和不同,每个分片由于内容不同,因此校验和不同