IPv6结构,什么是IPv6结构
本文将阐述IPv6 报头的结构并将其与IPv4 报头相比较。此外还将讨论Extension(扩展)报头,这是IPv6 所新加的内容。
在RFC 2460 中定义了IPv6 数据包的报头结构。该报头固定为40 字节长。源和目的地址各占16 字节(128 位),因此,只有8 字节是用于普通报头信息的。
(资料图片)
普通报头结构
在IPv6 中,IPv4 报头中的下面五个字段被去除了:
● Header Length(报头长度)
● Identification(标识)
● Flags(标志)
● Fragment Offset(段偏移量)
● Header Checksum(报头校验和)
除去Header Length(报头长度)字段是因为对于固定长度的报头,它是不起作用的。在IPv4 中,报头最短长度为20 字节,但是如果添加一些选项,则会以4字节长度递增,最长可达60 字节。因此,对于IPv4 来说,报头的总长度信息是很重要的。在IPv6 中,选项由扩展报头定义(将在本章后面部分作介绍)。
Identification(标识)字段、Flags(标志)字段和Fragment Offset(段偏移量)字段处理IPv4报头中的数据包分段。如果要在只支持小数据包的网络中发送大数据包,就需要进行分段。在这种情况下,IPv4路由器把数据包分割成更小的片段,并转发多个数据包。目的主机收集数据包并进行重新组合。即便只有一个数据包丢失或出错,都需要重新进行传输,因此效率很低。在IPv6 中,主机通过一个叫做路径MTU 发现(Path MTU Discovery)的过程来了解路径最大传输单元(Maximum Transmission Unit,MTU)的大小。如果IPv6 的发送主机想要对数据包进行分段,就需要使用扩展报头来实现。数据包传输路径上的IPv6路由器不像在IPv4 中那样进行数据分段。因此,在IPv6 中去除了Identification、Flags 和Fragment Offset字段并将会按需插入一个扩展报头。扩展报头将在本章后面进行介绍。
去除Header Checksum(报头校验和)字段是为了提高处理速度。如果路由器无需检验并更新校验和,则处理会变得更快。校验和的计算也是在介质访问层完成的,这样未检测到的错误和错误路由的数据包所引起的风险最小。传输层(UDP和TCP)中有一个校验和字段。IP 是一种“尽力而为”的传输协议,保证数据完整性的责任属于其上层协议。
Type of Service(服务类型)字段由Traffic Class(流量类别)字段代替。IPv6处理参数的机制与IPv4 不同。请参考第六章来了解更多的信息。Protocol Type(协议类型)和Time-to-Live(TTL,生存期)字段被重新命名,且稍稍做了些修改。IPv6 报头中还添加了一个Flow Label(流标签)字段。
IPv6 报头中的字段
对IPv6 报头中各个字段越熟悉,你对IPv6 的工作方式越理解。
图2-1 是IPv6 报头的概述。将在下面的段落中详细讨论各个字段。
图2-1 说明,即使IPv6 报头的总长度是默认的IPv4 报头的两倍长,达到了40 字节,但它实际上是被简化了的,因为报头的绝大部分被两个16 字节的IPv6 地址占据。这样,只剩8 个字节可供其他报头信息使用。
Version(版本,4 位)这是一个4 位长的字段,其中包含了协议的版本。在IPv6 中,该数目为6。不能使用版本号5,因为5 早已被分配给一个实验性的流协议(ST2,RFC 1819)。
Traffic Class(流量类别,1 字节)该字段代替了IPv4 中的Type of Service 字段,它有助于处理实时数据以及任何需要特别处理的数据。发送节点和转发路由器可以使用该字段来识别和分辨IPv6数据包的类别和优先级。
RFC 2474“Definition of the Differentiated Services Field (DS Field) in the IPv4and IPv6 Headers”(IPv4 和IPv6 报头中差分服务(DS)字段的定义)文档中解释了如何使用IPv6 中的Traffic Class 字段。RFC 2474 使用术语DS 来指代IPv4报头的Type of Service 字段和IPv6 报头中的Traffic Class 字段。
Flow Label(流标签,20 位)
该字段区分需要相同处理的数据包,以此来促进实时性流量的处理。发送主机能够用一组选项标记数据包的顺序。路由器跟踪数据流并更有效地处理属于相同数据流的数据包,因为他们无须重新处理每个数据包的报头。数据流由流标签和源节点的地址惟一标识。不支持Flow Label字段功能的节点需要在转发数据包时不加改变地传递该字段,并在接收数据包时忽略该字段。属于同一数据流的所有数据包必须具有相同的源IP 地址和目的IP 地址。
Payload Length(有效载荷长度,2 字节)
该字段指定了有效载荷,也就是在IP 报头后携带的数据长度。IPv6 中的计算与IPv4 不同。IPv4 中的Length 字段包括IPv4 报头的长度,而IPv6 中的PayloadLength(有效载荷长度)字段仅包含IPv6 报头后的数据。扩展报头被认为是有效载荷的一部分,因此被包括在计算之内。
标签:
2023-01-22 14:19:16
2022-02-07 16:16:27
2022-02-07 16:16:27
2022-02-07 16:16:27
2022-02-07 16:16:27
2022-02-07 16:16:25
2022-02-07 16:16:25
2022-02-07 16:16:24
2022-02-07 16:16:24