1、版本:
4比特,最多表示16,用来标识是IPv4,还是IPv6。
2、首部长度:
4比特,最多可以表示16个单位,每个单位是32比特即4个字节,所以最多可以表示64字节,所以IP首部最长为64字节,一般如果没有选项字段只有20字节。
3、服务类型:
用于区分不同类型的数据报,如实时数据报(IP电话)和非实时流量(HTTP),IP电话要求低时延、高吞吐量、可靠性可以差点,但HTTP可以有时延,但是可靠性要求很好。
4、数据报(包)长度:
16bit,理论上最多65535字节,但实际上很少超过1500字节,因为链路层的帧的负载一般最多1500字节(加上帧头最多1518字节,就是下面的以太网帧),IP数据包太长得分片。
5、标识、标志、片偏移:
用于分片,标识号相当于TCP的序号,把包分片后给每个分片加一个标识,相邻的分片标识数差1,标志是为了指示接收方接收完成了,通常最后一个分片的标志比特设为0,其他的为1,片偏移相当于偏移量,用于指示该分片是在整个数据报的哪个位置,便于目的主机接收后重新组装。
6、寿命:
8bit,最多255,IP数据报每经过一个路由器该字段减一,如果减为0,该数据报被丢弃。
7、协议:
用于表示IP数据报要交给哪个上层运输层协议,值为6是TCP,值为17是UDP。
8、首部检验和:
计算方式和上面一样,但是运输层首部检验和检验头和数据,IP只检验IP头,这样是为了提高转发效率。
9、源和目的IP地址:
用于标识源主机和目的主机,而运输层的端口用于标识主机上面的进程。
04 IPV61、版本:
4比特,最多表示16,用来标识是IPv4,还是IPv6
2、流量类型:
用于区分不同类型的数据报,如实时数据报(IP电话)和非实时流量(HTTP),IP电话要求低时延、高吞吐量、可靠性可以差点,但HTTP可以有时延,但是可靠性要求很好。
3、流标签:
用于区分不同的流,和流量类型作用类似。
4、有效载荷长度:
16bit,最大65535字节,IPv6不会分片,表示是数据长度不包括IPv6头部,因为IPv6头部固定是40字节。
5、下一个首部:
相当于IPv4的选项字段,把选项放在下一个首部里面,而且可以表示上层协议的首部在什么位置,相当于指示了上层协议,可以理解为把选项和IPv4的协议字段融合起来。
6、跳限制: 和寿命一样,8bit,最多255跳。
7、源和目的IP地址: IPv6地址为128位。
05 IPSecESP(Encapsulation Security Payload): 封装安全性载荷
SPI(Security Parameter Index): 安全参数索引
IPsec是为了加密IP数据报,加密步骤如下:
1、在初始IPv4数据报(包括首部和数据)后面附加一个ESP尾部;
2、使用算法和SA(Security Association) 安全关联规定的密钥加密第一步结果;
3、在加密后的数据附加ESP首部;
4、使用算法和SA规定的密钥为上述所有生成一个MAC(Message Authentication Code)报文鉴别码即ESP MAC;
5、将该MAC放在尾部;
6、重新生成一个IPv4首部,这个新IP首部的地址是安全通道两端的地址,先经过安全通道传输,后面解密后再把里面初始IP数据报拿出来传输。
06 以太网帧结构1、前同步码:
前7个字节的值都是10101010,最后一个字节的值是10101011,前7个字节用于唤醒接收适配器,将接收方时钟和发送方时钟同步,为什么会不同步呢,因为适配器会以10Mbps、100Mbps、10Gbps传输速率,所以时钟不同,第8个字节最后两个11告诉适配器重要的内容要来了。
2、目的地址和源地址:
即MAC(Media Access Control)地址,占6个字节,如AA-AA-AA-AA-AA
3、类型:
相当于IP数据报头里面的协议,指示上层协议(网络层),网络层不只有IP协议。
4、CRC :
循环冗余检验,比检验和更加强的检测,即数据比特一直和一个特定二进制序列异或,最后剩下的二进制串就是CRC,虽然可以检测错误,并把错误帧丢弃,但是没有重发机制,无法提供可靠性服务。@网络工程师俱乐部
07 802.1Q以太网帧结构