IPv6学习(2) IPv6报文格式
2011-11-29 13:20
155 查看
IPv6报文格式
Version(4-bit):IP版本,该字段值为6
Traffic Class(8-bit):流量分类,与IPv4包头的TOS类似
Flow Label(20-bit):流标签,用来标记IPv6数据包的一个流
Payload Length(16-bit):有效载荷的长度,扩展报头也算在Payload长度里
Next Header(8-bit):处理选项字段,分段,安全,移动性,松散源路由,记录路由等的新方式
Hop Limit:(8-bit):定义IP数据包所能经过的最大跳数,每跳一次将此值减1。
Source Address(128-bit):IP数据包的源地址
Destination Address(128-bit):IP数据包的目的地址
Possible Extension Header(s): 扩展报头
扩展报头(RFC2460)
Value | Type of Header |
0 | Hop-by-Hop Options Header |
6 | TCP (Upper Layer) |
17 | UDP (Upper Layer) |
41 | Encapsulated IPv6 Header |
43 | Routing Header |
44 | Fragment Header |
50 | Encapsulating Security Payload |
51 | Authentication Header |
58 | ICMPv6 (Upper Layer) |
59 | No next header |
60 | Destination Options |
Hop-by-Hop Options header (if present, it MUST be the first one following the main/regular header)
Destination Options header(with Routing Options)
Routing header
Fragment header
Authentication header
Encapsulating Security Payload header
Destination Options header
Upper-layer header
注:除了Hop-by-Hop Options header,其它的扩展头在传输过程中, 中间节点不对其做处理,处理扩展头的节点按扩展头顺序处理,而不能挑选某个header
Extension Header的组合方式:
+---------------+------------------------ | IPv6 header | TCP header + data | | | Next Header = | | 6(TCP) | +---------------+------------------------ +---------------+----------------+------------------------ | IPv6 header | Routing header | TCP header + data | | | | Next Header = | Next Header = | | 43(Routing) | 6(TCP) | +---------------+----------------+------------------------ +---------------+----------------+-----------------+----------------- | IPv6 header | Routing header | Fragment header | fragment of TCP | | | | header + data | Next Header = | Next Header = | Next Header = | | 43(Routing) | 5(Fragment) | 6(TCP) | +---------------+----------------+-----------------+-----------------
Hop-by-Hop 扩展头(type=0):
介绍:该字段由传送路径上的每个节点和路由器读取并处理,目前只定义了一个选项:要求支持超过64k的数据报文Jumbogram(RFC2675 )。
用途:主要用于巨型数据包(RFC2675)和路由器警报(RFC 2711),e.g :RSVP,MLD report etc)
补齐使用Pad1或者PadN
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | . . . Options . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Routing Header(type=43)
介绍:在数据包发往目的地的途中,该包头能够被IPv6源节点用来强制数据包经过特定的路由器。当路由类型字段设为0时,在路由包头可以指定中间路由器列表,类似IPv4的松散源路由选项。
用途:主要用于移动IP
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | Routing Type | Segments Left | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . . . type-specific data . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Hdr ext Len(8-bit):扩展头长度,不统计前1个字节
Routing type(8-bit):标识路由头类型
Segment Left(8-bit):剩余的seg数目
Type-specific data(变长):由Routing type决定,Routing type=0时该段保留前4bytes,后跟沿途路由器的address-list
补齐使用Pad1或者PadN
如何使用?举个例子,源S发数据包到目的节点D,指定要经 I1,I2,I3 则:
As the packet travels from S to I1: Source Address = S Hdr Ext Len = 6 Destination Address = I1 Segments Left = 3 Address[1] = I2 Address[2] = I3 Address[3] = D As the packet travels from I1 to I2: Source Address = S Hdr Ext Len = 6 Destination Address = I2 Segments Left = 2 Address[1] = I1 Address[2] = I3 Address[3] = D As the packet travels from I2 to I3: Source Address = S Hdr Ext Len = 6 Destination Address = I3 Segments Left = 1 Address[1] = I1 Address[2] = I2 Address[3] = D As the packet travels from I3 to D: Source Address = S Hdr Ext Len = 6 Destination Address = D Segments Left = 0 Address[1] = I1 Address[2] = I2 Address[3] = I3
Fragment Header(type=44)
介绍:只能源节点用来将大于传输路径的PMTU的数据包进行分段,与IPv4不同,IPv6在源节点进行分段,而不能在中间的节点进行分段(使用PMTU机制进行检测路径最小的MTU)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Reserved | Fragment Offset |Res|M| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Reserved(8-bit): 初值为0
Fragment Offset(13-bit):分片报文的偏移
Res(2-bits):0
M:1表示more frag(还有Fragment),0表示last frag(我就是最后一个了)
Identification:分片产生的ID,对于发往同一目的的不同分片报文,该ID不同
数据包分片:如图
重组:如图
Destination Options Header(type=60)
介绍:承载数据包目的节点所需要的可选信息,给宿主机解释和使用的,目前这个选项为空
用途:IETF暂时建议使用该扩展头在移动节点和家乡代理之间交换注册信息
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | . . . Options . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Hdr ext Len(8-bit):Header的长度,不统计前1个字节
Options(变长):包含一个或多个TLV(Tag,Length,Value)三元组
Pad1,PadN:用于填充报文Options剩余部分
No Next Header(type=59)
介绍:用于表示后面没有扩展头跟该在该扩展头后面
Authentication header(type=51)
介绍:由IPsec使用,以提供认证,数据完整性和重放保护,确保基本IPv6包头中一些字段的保护
Encapsulating Security Payload header(type=50)
介绍:由IPsec使用,以提供认证数据完整性和重放保护和IPv6数据包的保密
IPv4报文头和IPv6报文头比较
Reference:
1.东南大学网络体系结构课课件
2.IPv6 学习总结
相关文章推荐
- 第11章 拾遗4:IPv6(1)_报文格式和地址类型
- HTTP请求报文格式解析
- 结合Wireshark捕获分组深入理解TCP/IP协议栈之TCP协议(TCP报文格式+三次握手实例)
- TCP,IP,UDP,帧的报文格式
- RTP协议的报文头格式结构
- Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传GOOD
- ICMP协议及报文格式
- Webservice学习笔记六,SOAP, REST and XML-RPC报文格式收集
- Andorid开发之银联ISO8583报文格式、组包和解包过程、TPDU、位图计算过程
- DNS报文格式(RFC1035)(转载)
- HTTP POST请求报文格式分析与Java实现文件上传
- Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传
- HTTP请求报文格式 GET和POST
- 报文格式
- mysql协议分析1---报文的格式和基本类型
- TCP报文格式
- HTTP请求、响应报文格式
- 目前常用的报文格式
- 8583报文格式介绍