IPv6的扩展报头
扩展报头(Extension Header)
IPv6扩展报头是可能跟在基本IPv6报头后面的可选报头。IPv6数据包中可以包含一个或多个扩展报头,当然也可以没有扩展报头,这些扩展报头可以具有不同的长度。IPv6报头和扩展报头代替了IPv4报头及其选项。新的扩展报头格式增强了IPv6的功能,使其具有极大的扩展性。与IPv4报头中的选项不同,IPv6扩展报头没有最大长度的限制,因此可以容纳IPv6通信所需要的所有扩展数据。IPv6扩展报头是可能跟在基本IPv6报头后面的可选报头。为什么在IPv6中要设计扩展报头这种字段呢?我们知道在IPv4的报头中包含了所有的选项,因此每个中间路由器都必须检查这些选项是否存在,如果存在,就必须处理它们。这种设计方法会降低路由器转发IPv4数据包的效率。为了解决这种矛盾,在IPv6中,相关选项被移到了扩展报头中。中间路由器就不需要处理每一个可能出现的选项(在IPv6中,每一个中间路由器必需处理唯一的扩展报头是逐跳选项扩展报头),这种处理式方提高了路由器处理数据包的速度,也提高了其转发性能。下面是一些扩展报头:
逐跳选项报头(Hop-by-Hop Options header)
目标选项报头(Destination Options header)
路由报头(Routing header)
分段报头(Fragment header)
认证报头(Authentication header)
封装安全有效载荷报头(Encapsulating Security Payload header)
在典型的数据包中,并不是每一个数据包都包括所有的扩展报头。在中间路由器或目标需要一些特殊处理时,发送主机才会添加相应扩展报头。如果数据包中没有扩展报头,也就是说数据包只包括基本的报头和上层协议单元,基本报头的下一个报头(Next Header)字段值指明上层协议类型。
上层协议数据单元(Upper Layer Protocol Data Unit)
上层协议数据单元一般由上层协议包头和他的有效载荷构成,有效载荷可以是一个ICMPv6报文、一个TCP报文或一个UDP报文。