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)
默认头部

一般的,默认头部为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地址
- 二进制MAC地址的第7位取反
- MAC地址中间插入FFFE

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

例题2

解析:
- 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

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

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

例题6

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