紧跟着IPv6报文头8个基本字段后面的是扩展报头和数据部分。
扩展报头部分并不固定,如果存在,以
紧跟着8个基本字段后面是扩展报头和数据部分。扩展报头部分并不固定,如果存在,以64比特为单位附加。多个扩展报文头层层嵌套,内部扩展头由外层扩展头中的下一个报头字段指示(如图1-9所示)。如果数据包携带有上层数据,则最后一个下一个报头字段用来指示传输层协议,比如TCP或UDP。如果不携带上层数据,也就是没有下一个报头,则下一个报头的值为59。
代码如下:
l逐跳扩展头(Hop-by-Hop option):代码是0。用来携带一些可选信息,数据包所经由的路径上的所有路由器都必须处理该可选信息。可选信息的结构包括可选数据类型、可选数据长度和可选数据3部分。RFC2460附录B介绍了如何定义可选数据结构。
l目的地(Destination option)扩展头:代码是60。用来携带那些仅需要数据包目的地节点处理的可选信息。可选信息的结构包括可选数据类型、可选数据长度和可选数据3部分。
l路由(Routing)扩展报头:代码是43。用来定义源路由。该扩展报头中的数据部分列出了一系列数据包到达目的地必须经由的节点地址。
l分段(Fragment)扩展报头:代码是44。当发送方必须对超出MTU的数据进行分段时使用该扩展报头。扩展报头在每一个数据片段中都存在。
l认证头(Authentication Header)扩展报头:代码时51。封装IPSec数据。
lESP扩展报头:代码是50。封装IPSec数据。
lTCP:代码是6。表示携带TCP数据。
lUDP:代码是17。表示携带UDP数据。
l移动性(Mobility)扩展报头:代码是135。移动节点等使用。
64比特为单位附加。多个扩展报文头层层嵌套,内部扩展头由外层扩展头中的下一个报头字段指示(如图1-9所示)。如果数据包携带有上层数据,则最后一个下一个报头字段用来指示传输层协议,比如TCP或UDP。如果不携带上层数据,也就是没有下一个报头,则下一个报头的值为59。代码如下:
l 逐跳扩展头(Hop-by-Hop option):代码是0。用来携带一些可选信息,数据包所经由的路径上的所有路由器都必须处理该可选信息。可选信息的结构包括可选数据类型、可选数据长度和可选数据3部分。RFC2460附录B介绍了如何定义可选数据结构。
l 目的地(Destination option)扩展头:代码是60。用来携带那些仅需要数据包目的地节点处理的可选信息。可选信息的结构包括可选数据类型、可选数据长度和可选数据3部分。
l 路由(Routing)扩展报头:代码是43。用来定义源路由。该扩展报头中的数据部分列出了一系列数据包到达目的地必须经由的节点地址。
l 分段(Fragment)扩展报头:代码是44。当发送方必须对超出MTU的数据进行分段时使用该扩展报头。扩展报头在每一个数据片段中都存在。
l 认证头(Authentication Header)扩展报头:代码时51。封装IPSec数据。
l ESP扩展报头:代码是50。封装IPSec数据。
l TCP:代码是6。表示携带TCP数据。
l UDP:代码是17。表示携带UDP数据。
l 移动性(Mobility)扩展报头:代码是135。移动节点等使用。