1.2.2 IPv6报文概述
IPv6报文由IPv6基本报文头、IPv6扩展报文头和上层协议数据单元3个部分组成。与IPv4相比,IPv6报文的主要变化在于IPv6基本报文头和IPv6扩展报文头,本节将重点介绍这两部分。
1.IPv6基本报文头
IPv6数据包必须包含基本报文头,转发路径中所有设备均可解析报文头内容,以获取报文转发的基本信息。IPv4报文头和IPv6基本报文头格式分别如图1-7和图1-8所示。由于IPv4报文头包含选项(Option)字段,因此长度可变,而IPv6基本报文头则固定为40 Byte。
图1-7 IPv4报文头格式
图1-8 IPv6基本报文头格式
IPv6基本报文头格式中主要字段的说明如表1-3所示。
表1-3 IPv6基本报文头格式中主要字段的说明
如上所述,IPv6基本报文头相比IPv4报文头有诸多变化,如表1-4所示。
表1-4 IPv4报文头与IPv6基本报文头比较
续表
2.IPv6扩展报文头
在IPv4中,IPv4报文头的可选字段——选项包含安全(Security)、时间戳(Timestamp)、记录路由(Record Route)等信息,这些信息可以将IPv4报文头长度从20 Byte扩充到最多60 Byte。在转发过程中,处理携带这些信息的IPv4报文会占用设备很多资源,因此实际中很少使用。
IPv6将选项字段从基本报文头中剥离,放到基本报文头和上层协议数据单元之间的扩展报文头中,并且仅当需要设备或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展报文头,如图1-9所示。与IPv4相比,IPv6考虑到日后扩充新增选项的需要,不再限制扩展报文头长度。但为了提高处理扩展选项头和传输层协议的性能,扩展报文头长度为8 Byte的整数倍。
当使用多个扩展报文头时,由IPv6基本报文头中的下一个扩展报文头字段指明第一个扩展报文头类型,且每个扩展报文头中的下一个扩展报文头字段均指明下一个扩展报文头类型,从而形成链状报文头列表。如果不存在下一个报文头,则指明上层协议数据单元中的协议类型。
根据RFC 8200的定义,IPv6中常用的扩展报文头如表1-5所示。
图1-9 IPv6扩展报文头格式
表1-5 IPv6扩展报文头说明
续表