IPv6的报头
IPv6报文格式
整个IPv6包包括:基本报头、拓展包头、上层协议
基本报头:
基本报头一共8个字段,固定大小为40字节,每一个IPv6数据包都必须包含包头
Traffic Class:区分服务代码点,和v4的一样用于标识服务类型
Flow Label:(20bit)用来分流,标识一组数据流,来更好的适配QoS
Payload Length:用于标识数据载荷的长度,在v6看来拓展包头也属于载荷
Next Header:标识下一个包头的协议,比如下一个包头是拓展包头还是4层协议之类的
Hop Limit:用于防环和TTL差不多
拓展报头:
拓展报头是可选的,只有需要的时候才添加对应的报头
拓展报头主要包括 Next Header、Extension header length、Extension Head Data
Next Header:依旧是指明下一个报头的协议
Extension header length:一共8bit,用于标识拓展报头的长度,这个长度要除去Next Header
Extension Head Data:拓展报头的数据
由于存在长度字段,所以拓展报头和基础报头不一样,是可变长的
拓展报头暂时能够有这么几类:
IPv4 和 IPv6包头有那些区别
相对IPv4修改了一些字段:
Traffic Class 相当于 ToS
新增了Flow Label(20bit)用来分流,标识一组数据流,来更好的适配QoS
Payload Length
Next Header 相当于 Protocol
HOP Limit 相当于 TTL 也是用来防环的
删除了这些字节:
IHL(头部长度)因为v6是定长的40字节所以不需要了
Identification、Flags、Fragment Offset标记标识偏移,用于数据过大时的切片管理,一般发出的数据包都不会超过默认的1500,虽然有用但不常用,如果v6需要分片可以加拓展包头
Header Checksum校验核,用来验证有没有丢bit,v6之所已删除是因为现代的设备已经足够稳定,几乎不会出现丢失问题,如果担心该问题可以使用其他层来校验报文
Options可选项能够直接放在v6的拓展包头中
Padding原本是垫片,当可选项bit不够用于将差的bit补齐,可选项都已经删除Padding也没有存在的意义了