网络层
网络层的数据包是由首部和数据两部分组成,其中数据很多时候都是由传输层传递下来的数据段(Segment)
注意,一般来说网络层的数据包,最常见的是由传输层传递下来,但是有的可能只是三层协议(如ARP、IP、ICMP),或者两层协议(如CSMA/CD、PPP)等。
以下图例就是网络层数据包的组成:
在WireShark中抓包的具体字段显示为:
协议首部字段
接下来针对首部的每一个字段去讲解具体作用是干什么的
版本(Version)
占4位,代表是IPv4(0b0100)还是IPv6(0b0110)
首部长度(Header Length)
占4位,代表的是整个首部的长度(包含可变部分),不过首部的真实长度等于该字段的二进制乘以4。因为首部的最小长度为20字节(5x4),该字段的最小值为0b0101,而4个二进制最大值表示为0b1111,因此首部的最大长度为60字节(15x4)。那么由此可以得出,首部的可变部分最大长度为40字节(最大总长度60 - 固定长度20)
区分服务(Differentiated Services Field)
占8位,可以用于提高网络的服务质量(QoS,Quality of Service)。简单来说就是在网络传输过程中做一下差异化服务,例如某些传输可以优先通过