IPv6协议的结构
IPv6报头中的字段(续)
• Payload Length(有效负载长度,2字节) IP报头后携带的数据长度。
– IPv4种的Length字段包含IPv4报头的长度, IPv6中的Pay-Len字段只包含数据长度; – 扩展报头被认为是有效载荷数据中的一部分。 – 数据包的有效载荷最大为64K; – 最大传输单元(Maximum Transmission Unit,MTU),主机通过路径MTU发现, 来了解路径MTU的大小。 – IPv6路由器不对传输路径中的数据分段。
选项数据:选项字段的最高第3位表示在通向目标的路径中,选项数据是否可以改变。 0:选项数据不能改变; 1:选项数据可以改变。
Hop-by-Hop Options
Pad1选项,选项类型为0,它的作用是插 入一个填充字节,以使逐跳选项报头或 目标选项报头落在字节的边界上,并符 合选项的对齐要求。 pad1选项没有对齐要求。它没有长度和 值字段,选项类型的值为0也意味着如果 选项不能被处理它的节点所识别,则选 项被跳过,并且选项在传输中不允许改 变。
• 分段报头。此扩展头包含一个分段偏移值、一 个“更多段”标志和一个标识符字段。用于源 节点对长度超出源端和目的端路径MTU的包 进行分段。 • 身份验证报头(AH)。此扩展头提供了一种机制, 对IPv6头、扩展头和净荷的某些部分进行加密 的校验和的计算。 • 封装安全性净荷(ESP)报头。这是最后一个扩 展头,不进行加密。它指明剩余的净荷已经加 密,并为已获得授权的目的节点提供足够的解 密信息。
Hop-by-Hop Options
• Padn选项的作用是插入两个或多个填充 字节,以使逐跳选项报头或目标选项报 头落在8字节的边界上,并符合选项的对 齐要求。
Hop-by-Hop Options
• 超大有效载荷选项
– 超大有效载荷选项用于表示有效载荷长度大 于65535字节,超大有效载荷选项有4n+2的 对齐要求。 – 选项类型为194,选项长度为4 – 长度超过65535字节的效载荷的IPv6数据包 称为超大包
3 IPv6扩展报头
• IPv4报头长度20-60字节,包含选项:安全选项、 源路由、时间戳等,IPv4 转发包含选项的数据包 药传递给主处理程序,会降低性能。 • IPv6报头简单,处理过程快。把选项变为一些扩 展报头功能,六个扩展报头:
– – – – – – Hop-by-Hop Options报头 Routing报头 Fragment报头 Destination Options报头 Authentication报头 Encrypted Security Payload报头
IPv6 首部
0 3 11 31
2 IPv6报头中的字段
• Version(版本号,4位):协议的版本,
– IPv6 中,该数为6 – 注意:版本号5,已被分配给一个实验性的 流协议(ST2,RFC1819)
• Traffic Class( Priority,1字节):流量 优先级类型 ,代替了IPv4种的服务类型 • Flow Label(流标签,20位):标记属 于同一数据流的数据包,便于路由器更 有效地处理
一个巨包的转发过程
• 为传送长于65535字节的“巨包 “,需要以下两个 措施
– IPv6 Payload Lenth=0,使用Next Header为0的Hop-byhop header中的Jumbo选项中的Jumbo Payload Length来 指示报文长度 – 需要对上层协议作相应修正
Option Processing! Option Processing!
IPv4协议结构
0 3 7 服务类型
DF 协议 源IP地址 目的IP地址 选项和填充(最大为40字节) 数据区 MF
15
19
数据报长度 段偏移
31
版本号 报头长度
标识 生存时间TTL
报头校验和
报头变化
• IPv6中,去掉了IPv4报头中的五个字段: • Header Length(报头长度):指定IPv4 的报头长度; • Identification(标识) • Flags(标志) • Fragment Offset(段偏移量) • Header Checksum(报头校验和)
IPv6扩展报头的类型
• 逐跳选项报头。此扩展头必须紧随在IPv6头之后。它 包含包所经路径上的每个节点都必须检查的选项数据。 • 目的地选项报头。此扩展头代替了IPv4选项字段。目 前,唯一定义的目的地选项是在需要时把选项填充为6 4位的整数倍。此扩展头可以用来携带由目的地节点检 查的信息。 • 选路报头。选路报头又称路由报头,此扩展头指明包 在到达目的地途中将经过哪些节点。它包含包沿途经 过的各节点的地址列表。IPv6头的最初目的地址是路 由头的一系列地址中的第一个地址,而不是包的最终 目的地址。此地址对应的节点接收到该包之后,对 IPv6头和选路头进行处理,并把包发送到选路头列表 中的第二个地址。如此类推,直到包到达其最终目的 地。
要转发一个普通的IPv4数据包,路由器通常会在关键路由器中 执行以下指令
• 检验报头的校验和字段:先执行自己的校验和计算, 然后再将计算的结果与存储在IPv4报头中的结果比较。 • 检验版本字段的值。经过这个步骤,那些包含无效版 本号的包就不会在IPv4网络中传播,它们只会被目标 节点丢弃。 • 递减TTL字段的值。如果它的新值小于1,则发送一个 ICMPv4超时-超过了生存时间报文给数据包节点,并 丢弃这个数据包。如果新值不小于1,则将新值放置在 TTL字段中。 • 检验IPv4的报头选项是否存在。如果存在,就进行相 应的处理。
• 使用目标地址字段的值和本地路由表的内容,来确定 转发的接口,以及下一跳的IPv4地址。如果没有找到 合适的路由,就发送一个ICMPv4目标不可到达-主机 不可到达报文给数据包源节点。 • 如果转发接口的IPv4最大传输单元(MTU)小于总长 度字段的值,并且不要拆分标志的值为0,则进行IPv4 拆分操作。如果转发接口的MTU小于总长度的值,并 且不要分片标志的值为1,则发送一个ICMPv4目标不 可到达-需要拆分和DF置位报文给数据包的源点,并 丢弃数据包。 • 重新计算新的报头校验和,并将新值放置在报头校验 和字段中。 • 用适当的转发接口转发这个数据包。
Router
Option Processing!
Router
Option Processing!
Host
IPv6 Header
选项字段结构:
选项类型
选项数据长度
选项数据
选项类型:表示这个选项的类型。用以确定相关节点对该选项的处理方法。RFC2640 规定,在选项类型字段中,最高两位当处理选项的节点不能识别选项的类型时,应该如 何处理这个选项。 选项字段的最高两位值含义如下: 00:跳过这个选项; 01:丢弃数据包,不通知发送方; 10:丢弃数据包,无论数据包的目标地址是否为一个组播地址,都向发送方发出一个 ICMPv6参数问题的报文; 11:丢弃数据包,如果数据包的目标地址不是一个组播地址 ,就向发送方发出一个 ICMPv6参数问题的报文。
要转发一个普通的IPv6数据包,路由器通常会在关键路由器指 令序列中执行以下指令 • 检验版本字段的值。经过这个步骤,那些包含无效版 本号的包就不会在IPv4网络中传播,它们只会被目标 节点丢弃。 • 递减跳限制字段的值。如果它的新值小于1,发送一个 ICMPv4超时-超过了生存时间报文给数据包的源,并 丢弃这个数据包。如果新值小于1,则将新值放在跳限 制字段中。 • 检查下一个报头字段的值是否为0,如果为0,则处理 逐跳选项报头。
• 使用目标地址字段中的值和本地路由表中的内容,来 确定转发接口和下一跳的IPv6地址。如果没有找到合 适的路由,就发送一个ICMPv6目标不可到达-没有到 达目标的路由报文给数据包的源,并丢弃这个数据包。 • 如果转发接口的链路MTU小于40+有效载荷长度字段 的值,则发送ICMPv6数据包过长报文给数据包的源, 并丢弃这个数据包。 • 用适当的转发接口转发这个数据包。
– IPv4中为数据包最终接收地址, – IPv6中如果提供了Routing报头,该字段未必是最 终地址。
ቤተ መጻሕፍቲ ባይዱ
Comparing the IPv4 and IPv6 Headers
IPv4 Header Field
Version Internet Header Length Type of Service Total Length Identification Fragmentation Flags Fragment Offset Time to Live Protocol Header Checksum Source Address Destination Address Options
Change in IPv6
New value of 6 Removed Traffic Class field Payload Length field Removed to Fragment header Removed to Fragment header Removed to Fragment header Hop Limit field Next Header field Removed Same, new 128-bit length Same, new 128-bit length Removed (extension headers)
第二章 IPv6协议的结构
内容
• IPv6 普通报头结构 • IPv6报头中的字段 • 扩展报头
IPv6 普通报头结构
• IPv6 报头固定为40个字节,源和目的地 址各占16个字节(128位),剩余8个字 节用于普通报头。 • IPv4中,包头最短长度为20字节,根据 添加的选项,以4个字节长度递增,最长 60字节。
扩展报头的使用