发布时间:2025-12-09 22:26:33 浏览次数:18
📖 前言:IPv6 协议是未来互联网的发展方向,它的推出为网络通信和互联带来了更大的便利性和更广阔的发展空间。相比于 IPv4,IPv6 支持更多的地址空间、更高效的路由和唯一的全球性地址等特点,可以更好地满足未来数字化时代的网络需求。本文将介绍 IPv6 的定义、结构、首部、ICMP等方面的内容。
IPv6 将实现 IPv6 的主机和路由器均称为结点。
一个结点就可能有多个与链路相连的接口。
IPv6 地址是一个 128 位的二进制数。
IPv6数据报的目的地址有三种基本类型:
[RFC 4291]对IPv6地址进行了分类:
最高8比特为“全1”的地址,可记为FF00::/8。
IPv6多播地址的功能与IPv4多播地址相同。
这类地址占IPv6地址空间的1/256。
子网路由任播地址:
注意:所有的扩展首部并不属于IPv6数据报的首部,它们与其后面的数据部分合起来构成有效载荷(payload,也称为净负荷)。
IPv4 vs IPv6:
IPv6将IPv4数据报首部中不必要的功能取消了,这使得IPv6数据报基本首部中的字段数量减少到只有8个。
但由于IPv6地址的长度扩展到了128比特,因此使得IPv6数据报基本首部的长度反而增大到了40字节,比IPv4数据报首部固定部分的长度(20字节)增大了20字节。
IPv4数据报如果在其首部中使用了选项字段,则在数据报的整个传送路径中的全部路由器,都要对选项字段进行检查,这就降低了路由器处理数据报的速度。
实际上,在路径中的路由器对很多选项是不需要检查的。因此,为了提高路由器对数据包的处理效率,IPv6把原来IPv4首部中的选项字段都放在了扩展首部中,由路径两端的源点和终点的主机来处理,而数据报传送路径中的所有路由器都不处理这些扩展首部(除逐跳选项扩展首部)。
在[RFC 2460]中定义了以下六种扩展首部:
| 逐跳选项(Hop-by-Hop Options) | 0 |
| 路由选择(Routing) | 43 |
| 分片(Fragment) | 44 |
| 目的选项(Destination Options) | 60 |
| 认证(Authentication) | 51 |
| 封装安全有效载荷(Encapsulating Security Payload) | 50 |
| 无下一扩展首部 | 59 |
因特网上使用IPv4的路由器的数量太大,要让所有路由器都改用IPv6并不能一蹴而就。因此,从IPv4转变到IPv6只能采用逐步演进的办法。
另外,新部署的IPv6系统必须能够向后兼容,也就是IPv6系统必须能够接收和转发IPv4数据报,并且能够为IPv4数据报选择路由。
下面介绍两种由IPv4向IPv6过渡的策略:
隧道技术(Tunneling)的核心思想是:
注:要使双协议栈路由器R4知道IPv4数据报的数据载荷是IPv6数据报,则IPv4数据报首部中协议字段的值必须设置为41。
由于IPv6与IPv4一样,都不确保数据报的可靠交付,因此IPv6也需要使用网际控制报文协议ICMP来向发送IPv6数据报的源主机反馈一些差错信息,相应的ICMP版本为ICMPv6。
ICMPv6比ICMPv4要复杂得多,它合并了原来的地址解析协议ARP和网际组管理协议IGMP的功能。因此与IPv6配套使用的网际层协议就只有ICMPv6这一个协议。
ICMPv6报文需要封装成IPv6数据报进行发送:
ICMPv6报文可被用来报告差错、获取信息、探测邻站或管理多播通信。
在对ICMPv6报文进行分类时,不同的RFC文档使用了不同的策略:
常用的几种ICMPv6报文:
| 差错报告报文 | 1 | 目的站不可达 |
| 2 | 分组太长 | |
| 3 | 时间超过 | |
| 4 | 参数问题 | |
| 回送请求与回答报文 | 128 | 回送请求 |
| 129 | 回送回答 | |
| 多播听众(MLD)发现报文 (替代原来的IGMP协议) | 130 | 多播听众查询 |
| 131 | 多播听众报告 | |
| 132 | 多播听众完成 | |
| 邻站(ND)发现报文 (替代原来的ARP协议) | 133 | 路由器询问 |
| 134 | 路由器通告 | |
| 135 | 邻站询问 | |
| 136 | 邻站通告 | |
| 137 | 改变路由 |
ICMPv6的消息格式与ICMPv4类似,
ICMP 报文分为两种:
当路由器无法继续转发分组,或目的主机无法将分组交付给承载数据的处理协议时,将向源端发送目的不可达报文(destination unreachable message)。类型字段为1
| 0 | 无法去往目的地址的路由 | 源主机路由表中无默认路由表项 |
| 1 | 与目的地址的通信被管理性禁止 | 防火墙过滤 |
| 2 | 超出原地址的范围 | 分组源地址是链路本地地址,而目的地址是全球地址 |
| 3 | 地址不可达 | 无法解析IP地址对应的链路;链路问题;目的站点不在线 |
| 4 | 端口不可达 | 目的端口未打开 |
| 5 | 源地址不在目的站点的入站/出站策略范围 | |
| 6 | 拒绝路由到目的地址 | 路由器被配置为拒绝为特定的地址块服务 |
当路由器转发的分组长度大于链路MTU时,路由器将向源主机发送分组超大消息。
超时报文(time exceeded message)用于向源端报告分组无法按期到达目的主机,包括:
超时报文的格式:与目的不可达报文相同。类型为3,代码为0或1.
路由器或主机处理 IP 分组时,若发现首部或者扩展首部参数错误而无法继续处理,将丢弃分组,并向源主机发送参数错误报文(parameter problem message)。
| 0 | 错误的首部字段 |
| 1 | 不能识别的扩展首部类型 |
| 2 | 不能识别的IPv6选项 |
回送请求/回送响应报文(Echo request/Echo reply message)常用于测试目的地址是否可达及其相关状态。
OK,以上就是本期知识点“IPv6”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页