当前位置:首页 > 技术 > 正文内容

IPv6 协议详解

访客 技术 2026年6月18日 1

IPv6 的诞生背景

尽管 IPv4 经过多年发展已趋于成熟,并获得广泛的硬件支持,但仍存在若干限制:

  1. 地址资源枯竭:IPv4 提供约 43 亿个地址(2^32),但因早期设计缺陷及分配不均(如私有地址、组播地址等不可用于公网),加之互联网规模迅速扩张,导致全球 IPv4 地址早已耗尽。
  2. 路由表膨胀问题:由于历史原因,IPv4 网络地址划分缺乏统一规划,造成 BGP 路由条目数量激增,增加了核心路由器负担,影响转发性能。

为解决上述问题,IETF 制定了下一代互联网协议——IPv6(Internet Protocol Version 6),亦称 IPng(IP Next Generation)。它不仅继承了 IPv4 的基本通信机制,还引入多项优化特性。

IPv6 核心优势

  • 海量地址空间:IPv6 使用 128 位地址结构,理论上可提供 2^128 个唯一地址,足以满足未来物联网和智能设备接入需求。
  • 层次化路由架构:通过聚合前缀简化路由通告,降低骨干网路由开销,提升整体网络效率。

IPv6 数据包结构

+-------------------------------------------------------------+
| 版本(4) | 流类别(8) | 流标签(20)                           |
+---------------------+---------------------------------------+
| 有效载荷长度(16)    | 下一头部(8) | 跳数限制(8)             |
+---------------------+-------------+-------------------------+
| 源 IPv6 地址 (128 bits)                                    |
+-------------------------------------------------------------+
| 目标 IPv6 地址 (128 bits)                                  |
+-------------------------------------------------------------+
| 扩展头部(可选)                                           |
+-------------------------------------------------------------+
字段名 大小 描述
Version 4 bit 固定值 0110,区别于 IPv4 的 0100
Traffic Class 8 bit 等价于 IPv4 中的 ToS/DSCP 字段,用于 QoS 控制
Flow Label 20 bit 标识特定数据流,便于流量工程应用
Payload Length 16 bit 不含基础头部的数据部分总长
Next Header 8 bit 指示紧随其后的上层协议类型(TCP/UDP/ICMPv6 等)
Hop Limit 8 bit 类似 IPv4 TTL,每经过一个路由器减一,防止无限循环
Source Address 128 bit 发送方 IPv6 地址,必须为单播地址
Destination Address 128 bit 接收方地址,可为单播或组播地址

与 IPv4 头部对比

IPv6 对头部进行了精简,取消了如下字段:

  • IHL(头部长度)
  • Identification、Flags、Fragment Offset(分片相关字段)
  • Header Checksum(头部校验和)
  • Options(选项字段)

这些改动的原因包括:

  1. IPv6 基础头部固定为 40 字节,无需 IHL 字段;
  2. 分片操作交由扩展头部完成;
  3. 链路层与传输层已有冗余校验机制,IPv6 不再重复计算 checksum。

IPv6 扩展头部介绍

扩展头部位于基础头部之后,允许灵活添加额外信息而不干扰主路径转发逻辑。常见的扩展头部包括:

  1. Hop-by-Hop Options Header
  2. Destination Options Header
  3. Routing Header
  4. Fragment Header
  5. Authentication Header
  6. Encapsulating Security Payload Header

Routing Header 示例

+-------------------------------+
| Next Header | Hdr Ext Len     |
+---------------+---------------+
| Routing Type  | Segments Left |
+---------------+---------------+
| Reserved                      |
+-------------------------------+
| Address [1]                   |
+-------------------------------+
| Address [2]                   |
+-------------------------------+
| ...                           |
+-------------------------------+
字段 说明
Next Header 表明下一个扩展头或上层协议类型
Hdr Ext Len 扩展头长度(以 8 字节为单位)
Routing Type 当前仅定义类型 0,表示严格路由路径
Segments Left 剩余需经过的中间节点数目

Routing Header 主要用于 SRv6(Segment Routing over IPv6)场景,控制数据包按预定路径穿越多个中间节点。初始目的地址指向首个中间节点,当数据包抵达后,系统会根据扩展头更新下一跳地址并递减 Segments Left 计数器,直到最终送达目标地址。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。