5-4 IPv6

5-4-1 IPv6报文格式

IPv6的改进

与IPv4相比,IPv6有下列改进:

改进方面 具体描述 特点 备注
寻址能力扩展 - IP地址从32位增加到128位,支持更大的地址空间和多级地址层次。
- 地址自动配置功能简化了网络地址管理。
- 增加了任意播地址,比IPv4中的广播地址更加实用。
更多 多级地址层次:相比于IPv4创立之初为美国本土、斯坦福大学、IBM公司等单位分配了大量地址,甚至比一些国家分配到的还要多,IPv6采用了多级地址层次,按照大洲——国家——省市这样的多级按需分配,避免了分配不均衡,浪费更少)
分组头格式简化 - IPv6头中字段数量从12个减少到8个,简化路由器处理过程,提高路由选择效率 。
- 中间路由器不分片,MTU发现机制简化路由处理。
效率更高 注意:中间路由器上不分片,源头有可能分片
改进对分组头部选项的支持 - 扩展头作为任选项处理,方便定义新的扩展功能。 更灵活 IPv4头部中有一个选项字段,无选项时IPv4头部默认20字节,有选项时IPv4头部最大60字节,在IPv6中不是通过选项字段,而是有一个扩展头部,可以灵活方便的提供扩展功能
流标记能力 - IPv6增加了流标记,可以按照发送端要求对某些分组进行特别处理,提供更好的服务质量支持。 支持QoS 增加了流标签,提供特别的服务质量支持
QoS(Quality of Service,服务质量)是计算机网络中一项重要的功能,旨在通过优化资源分配和调度,为特定的网络流量提供更好的服务能力,从而满足不同应用对网络性能的需求
安全性增强 - 集成IPSec(ESP和AH),支持加密和认证功能,提升安全性。 更安全

IPv6报文格式

IPv6报文包括头部字段和数据字段两部分

  • 基本报头:IPv6 的基本报头长度固定为 40 字节。

  • 有效载荷:IPv6 报文中的有效载荷长度字段为 16 位,最大值为 65,535 字节。

当需要发送超过 65,535 字节的数据时,可以使用 超大有效载荷选项(Jumbo Payload Option)。该选项位于逐跳选项扩展头中,使用 32 位字段来表示有效载荷长度,最大值为 4,294,967,295 字节(2^32 - 1)

默认头部

image-20250301103117112

一般的,默认头部为40字节,有以下8个字段(IPv4有12个字段)

字段名称 位数 作用说明
版本(Version) 4 标识 IP 协议的版本,对于 IPv6,值为二进制的0110即6,用于快速识别 IPv6 数据包。
流量类别(Traffic Class) 8 区分不同类型的流量,用于服务质量(QoS)管理,可对流量进行分类处理。用于区分不同的IP分组,相当于IPv4中的ToS服务类型字段。
流标签(Flow Label) 20 标识一个特定的流,用于特殊处理的通信流,帮助接收端更好地排序和处理数据。
有效载荷长度(Payload Length) 16 表示除了 IPv6 头部之后的数据部分(有效载荷)的长度,单位是字节。
表示除了IPv6固定头部40个字节之外的负载长度,扩展头也包含在负载长度之中。IPv6 报文中的有效载荷长度字段为 16 位,最大值为 65,535 字节,由此也可以推出,IPv6报文最大值为65535 + 40 = 65575字节
[笔者注:这一点和IPv4不同,IPv4头部长度可变,为20~60字节,IPv6头部固定40字节,扩展头计入负载长度;其次,IPv4头部中类似字段叫总长度,头部长和数据长都计入,IPv6头部的有效载荷长度只计算固定头部40字节之外的负载长度]
下一个头部(Next Header) 8 标识紧跟在 IPv6 头部之后的协议类型,指示接收方如何处理数据包中的数据部分。指明下一个头部类型,下一个头部类型可能是IPv6扩展头部或高层协议的头部。如果没有扩展,直接封装TCP/UDP传输层报文。
跳数限制(Hop Limit) 8 类似于 IPv4 中的 TTL 字段,每经过一个路由器减 1,减为 0 时数据包被丢弃,防止数据包无限循环。
源地址(Source Address) 128 标识数据包的发送方地址,利用 128 位地址空间提供几乎无限的唯一标识。
目的地址(Destination Address) 128 标识数据包的接收方地址,确保数据包能够被正确地发送到目标设备。
扩展头部

IPv6 允许使用扩展头部来提供额外的功能。这些扩展头部可以用于各种目的,如实现更复杂的路由选择、安全功能等。这种灵活的扩展机制使得 IPv6 能够适应不断变化的网络需求。例如,当需要进行源路由选择时,可以添加源路由选择扩展头部,让发送方指定数据包经过的路径。

下表给出了常见几种扩展头部,扩展头可有可无

下一头部编号 下一头部类型 解释
0 Hop-by-Hop Options Header 逐跳选项:这些信息由沿途各个路由器处理
(指示沿途路由器需要处理该选项指示内容)
6 TCP (Upper Layer) 该IPv6报文的上层封装是TCP
17 UDP (Upper Layer) 该IPv6报文的上层封装是UDP
43 Routing Header 路由选择头:给出一个路由器地址列表,类似于IPv4的松散源路由和路由记录
44 Fragment Header 分段:处理数据报的分片问题
50 Encapsulating Security Payload ESP:封装安全载荷,跟IPSec类似
51 Authentication Header AH:认证头,跟IPSec类似
60 Destination Options 目标选项:选项中的信息由目标节点检查处理

IPv6相关协议

IPv6路由协议
  • RIPng(IPv4的叫RIPv1、RIPv2)
  • OSPFv3(IPv4的叫OSPFv2)
  • BGP4+(IPv4的叫BGP4)
IPv6地址配置
  • 有状态自动配置:通过DHCPv6直接为终端分配前缀和接口ID、网关和DNS等。(给全部信息,和IPv4的DHCP类似)

  • 无状态自动配置:给你相应的网络号即路由器接口前缀,主机号则由终端结合自己的MAC地址生成,生成的地址叫EUI-64地址(给一半信息)。主机号生成过程如下图所示,即将48位的MAC地址扩充成了64位的EUI-64地址

    1. 二进制MAC地址的第7位取反
    2. MAC地址中间插入FFFE

    image-20250301154009834

ICMPv6

ICMPv6:新增加的邻居发现功能代替了ARP协议的功能,也就是说IPv6里面没有ARP协议了

例题

例题1

image-20250301154706113

例题2

image-20250301154724848

解析:

  • A:IPv4头部是变长,20~60字节;IPv6头部是定长40字节,扩展头部计入负载长度,不计入头部长度
  • B:IPv6报文没有头部校验和
  • C:IPv6头部中有一个Hop Limit字段,翻译为“跳数限制”,类似于 IPv4 中的 TTL 字段,每经过一个路由器减 1,减为 0 时数据包被丢弃,防止数据包无限循环。
  • D:IPv6头部中的流量类别(Traffic Class)字段:区分不同类型的流量,用于服务质量(QoS)管理,可对流量进行分类处理。用于区分不同的IP分组,相当于IPv4中的ToS服务类型字段。
例题3

image-20250301154740005

解析:IPv6头部引入了流标签字段,用于用于特殊处理的通信流,帮助接收端更好地排序和处理数据。

例题4

image-20250301154749394

解析:IPv6扩展报文头是跟在IPv6基本报文头后面的可选报文头,可以多层嵌套,如果没有扩展,直接封装TCP/UDP传输层报文。

例题5

image-20250301154803602

例题6

image-20250301154813767

解析:逐跳选项扩展头部允许在 IPv6 数据包传输过程中插入一个可选的逐跳选项。这些选项会在每个中间节点上进行处理。

站内搜索

没有找到内容!