IPv6 标准协议(RFC-2460)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/luguifang2011/article/details/81667826

一 IPV6 基本头格式

Version(版本号) :长度为4bit  对于IPV6 该字段为6(0110)

Traffic Class(业务流类别):长度为8bit 业务流类别又称通信流类别,指明了该包提供了某种区分服务,默认值是全0

Flow Lable(流标签):长度为20bit,用于标识属于同一业务流的包,一个节点可以可以同时作为多个业务流的发送源,流标签和流地址唯一标识一条业务流

PlayLoad Length(净荷负载):长度为16bit ,单位为字节长度,该长度包括了IPV6扩展头的长度

Next Header(下一报头):长度为8bit,这个字段指出了ipv6基本报头之后所跟的下一个扩展报头字段中的协议类型,与ipv4字段类似可以指出上层协议是tcp还是udp 同时还可以指明是否存在 ipv6扩展头

Next Header 值对应扩展类型或者协议如下

 

下一个报头值

对应扩展头类型

 

0

逐跳选线扩展报头

 

6

上层协议是TCP

 

17

上层协议是UDP

 

43

路由扩展报头

 

44

分片扩展报头

 

50

封装安全有效载荷扩展报头

 

51

认证扩展报头

 

58

ICMPv6信息报文扩展报头

 

59

无下一个扩展报头

 

60

目的选项扩展报头

 

 

HOP Limit(极限跳):长度8bit,每当一个节点对报进行转发时该字段就会被减掉1,如果该字段达到0就会被丢弃,类似与v4中的ttl

Source Address(源地址):128bit 的源地址

Destination Address(目的地址):128bit 的目的地址

 

二 IPV6的扩展头部

多个扩展报头的顺序:

基本报头 ipv6 header

逐跳选项报头 Hop-by-Hop Options header

目的选项扩展报头 Destination Options header(note1)

路由扩展报头 Routing header

分片扩展报头 Fragment header

认证报头 Authentication header(note2)

封装安全有效净荷报头 Encapsulating security payload header(note2)

目的选项扩展报头 Destination option header(note3)

上层头 upper-layer header

 

Note1 :报被传递时第一个目的地址将会出现在基本头中的Destination Address 中 后续的目的地址将会出现在Routing Header 中

Note2:额外的关于认证和封装安全扩展头可参见RFC-2406

Note3:该选项被目的包填充

 

2.1 Hop-by-Hop Options header

主要用于为传递路径上的每次跳转制定发送参数,传递路径上的每台中间节点都要读取并处理该字段,扩展头的格式:

Next Header(下一个报头值):长度 8bit,与ipv6基本头格式中的字段一致

Hdr Ext Len(报头扩展长度):长度8bit 是指逐跳选项扩展报头的长度,长度不包括Next Header 长度

Options(选项):

选项字段格式:

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -

| Option Type | Opt Data Len | Option Data

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -

Option Type(选项类型):长度8bit,标识这个选项的类型,用于确定相关节点对该选项的处理方法RFC2640 中规定,在选项类型字段中,最高两位标识了不能识别该选项类型时应该如何处理这个选项

00:跳过该选项

01:丢弃数据包 不通知发送方

10:丢弃数据包,不管数据包的目的地址否为一个组播地址,都向发送方发出一个icmpv6报文通知对方

11:丢弃数据包,不管数据包的目的地址不是为一个组播地址,都向发送方发出一个icmpv6参数问题的报文

 

Opt Data Len(选项数据长度):长度8bit

Option Data(选项数据):Option Type最高第三位标识通向目的路径中选项数据是否可以改变,0:选项数据不能改变,1:选项数据可以改变

 

2.2 Routing Header

选路扩展报头又称路由选择报头或者源路径选项报头,通过运用选项报头可以实现指定中间节点到达目的地址

报头格式:

Next Header(下一个报文头):和其他一致 不做说明

Hdr Ext Len(扩展报头长度):长度8bit 是指逐跳选项扩展报头的长度,长度不包括Next Header 长度

Routing Type(路由类型):长度8bit 路由类型是指特定的路由头变量,目前路由类型只定义了0类型它包含了报文需要经过中间路由器的IP地址

Segment Left(段剩余):指在到达最终目标之前还需要经过的中间条数

2.3  Fragment header

分片报头,用于IPv6 数据包的拆分和重组,在IPV4中 中间路由器会自动对大的数据包进行拆分,而在ipv6中路由器不对过大的数据包进行拆分,分片工作由发送报文源节点完成。

格式:

Next Header(下一个报文头):长度8bit 用于标识“原始报文”中可分片的初始报头类型

Res1(保留1):长度8bit,初始化为0 接收方不处理

Fragment Offset(分段偏移):长度13bit 以64bit 为单位,用于指定该报头后面数据报文片段起始字节在报文中所处的位置

Res2(保留2):长度:2bit 初始化为0 接收方不处理

M:长度1bit M=1 表示后面还有分片,M=0 则标识最后一个分片

Identificaion:长度:32bit 分段标识 和v4类似

2.4 Authentication header(RFC2402)

要保证IPv6数据包或者IPv6其他报头中的部分字段的值在经过IPv6网络传输后不会发生改变,认证报头是最佳解决方案。

扩展报头格式:

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Next Header | Payload Len | RESERVED                                      |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Security Parameters Index (SPI)                                                    |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Sequence Number Field                                                                 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                                                                                                         |

+ Authentication Data (variable)                                                       |

|                                                                                                         |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Next Header(下一个报头值):长度8bit 只是在认证AH之后下一个有效载荷的类型

Payload(载荷长度):长度8bit 认证头总长度(以32bit为单位)

RESERVED(保留位):长度 16bit

SPI(安全参数索引):长度32bit,其值为任意32位数值

Sequence Number Field(序列号):长度32bit 是一个单调递增无符号计数值

Authentication Data(认证数据):变长 认证数据

 

2.5 Destination Option Header

该报头是针对目的地址的可选信息,只有目的节点才处理选项报头

格式:

Next Header(下一个报头):长度8bit 用来标识紧跟Destination Option Header下一个报头类型,和IPV4 协议字段的值一样

Hdr Ext Len(扩展报头长度):长度8bit 是指逐跳选项扩展报头的长度,长度不包括Next Header 长度

Option(选项):和Hop-by-Hop Options header中的选项一致

2.6 Encapsulating security payload header(参见RFC2406)

提供几个ipv6的数据包供学习参看

https://github.com/luguifang/protocol-pcap

猜你喜欢

转载自blog.csdn.net/luguifang2011/article/details/81667826