cd630702f59c451cd8910f76cffc60b.jpg
    IP数据包的为20-60字节,取决于可选项又没有被启用

    • 版本(4位):标识IPV4/IPV6协议,IPV4为0100,IPV6为0110。
    • 首部长度(4位):IP数据包的头部长度,作用为告知可选项是否被启用。
    • 优先级与服务类型(8位):前3位代表优先级,中间4位表示服务类型,最后1位没有被启用,优先级最高为5,用于语音流量,优先级应用:大公司的专线;服务类型:低延迟、多通道。
    • 总长度(16位):IP包头+数据的长度=3层+4层+5层的数据总长度。
    • 标识符(16位):标识同一个IP数据包中的多有分片,同一个数据包的标识符相同。
    • 标志(3位):第1位保留位,默认为0,;第2位代表数据包是否分片,,0表示分片,1表示不分片;第3位代表是否为最后一个分片,0表示最后一个分片,1表示还有后续分片;
    • 段偏移(13位):分片相对于原始IP数据包开始处的偏移,表示当前分片在原数据包中的位置,决定IP数据包分片的先后顺序,是1480的倍数。
    • TTL(8位):生存时间,取值范围0~255,数据包到达目的地的最大跳数,每经过一个路由TTL-1,当TTL=0时会被路由器丢弃,当值数据包在网络中永久循环;如果ping回显的TTL值>100,一般为Windows系统,如果TTL值<100,一般为Unix系统(Linux、Mac),TTL=255表示网络设备(如路由器——网关),ping返回的TTL值是初始TTL值,处理的TTL值在可选项中。
    • 协议号(8位):识别上层协议,ICMP协议号为1,TCP协议号为6,UDP协议号为17。
    • 首部校验和(16位):用来校验IP数据包头,使用CRC校验。
    • 源IP地址和目标IP地址(各32位)。
    • 可选项:不定长,最长为40位。

    如果上三层数据长度为4040,超过了数据链路层的MTU值,则会进行分片,首先将IP数据包头部给每个分片加在头部,在标识符、标志和段偏移中分别标记同一数据包、是否分片以及该分片在原数据包中的位置。
    image.png