IPv6(进阶)
复习
- IP 地址:IPv4 用 32 位标识网络与主机
- 子网与 CIDR:用前缀长度表示地址范围
- 路由表与最长前缀匹配:路由器按前缀转发
本章为进阶内容,零基础读者可以跳过,不影响后续阅读。
TL;DR
- IPv6 用 128 位地址,从根本上缓解地址枯竭
- 它还顺带简化了首部,取消了首部校验和
- 地址更长,却也带来更方便的聚合与自动配置
- 迁移是渐进的,新旧协议可以长期共存
正文
IPv4 的地址是 32 位,能表示的地址大约 43 亿个。当年看着很多,如今却早已不够分。NAT 让许多设备共用一个公网地址,算是缓解,但并没有真正解决“地址不够”这个根本问题。
IPv6 的思路很直接:把地址空间大幅扩到 128 位。
长到几乎用不完
128 位能表示多少地址?这个数字大到可以把地球上的每一粒沙子都分配一堆地址还有富余。这样,地址枯竭的问题就从根上被缓解了。
写法上,IPv6 用十六进制,并用 :: 压缩连续的零,方便书写。比如原本很长的地址,可以写得很短。
顺手简化的首部
IPv6 不只是“地址变长”。它还对首部做了简化:
- 首部长度固定,处理更简单
- 去掉了首部校验和,把检错交给更底层和高层
- 分片等字段被重新设计,不再让中途路由器做分片
简化首部的好处是转发更快、处理更省事;代价是某些原本由首部完成的工作,要由别处接管。这又是一次取舍。
便于聚合与自动配置
IPv6 还有一个常被忽略的优势:地址的层次结构更清晰,便于聚合。
把大量地址按前缀归并,路由器就能用较少的表项覆盖大片区域,转发表不至于膨胀。同时,IPv6 支持设备根据网络前缀自动生成地址,减少了手工配置和 DHCP 的依赖。
新旧共存
不过,换一套协议不可能一夜完成。于是现实采取了渐进策略:双栈,即一台设备同时支持 IPv4 和 IPv6;两种协议在相当长时间里并存。
这提醒我们:再好的新方案,也要考虑与旧世界的衔接。 网络最看重的是连通,而不是最新。
思考题 1
为什么把地址空间从 32 位扩到 128 位,能从根本上缓解地址枯竭?
思考题 2
IPv6 去掉首部校验和、简化首部,会带来什么好处和代价?
小结
知识点
- IPv6 用 128 位地址,缓解地址枯竭
- 首部更简化,去掉了首部校验和
- 层次清晰,便于聚合与自动配置
- 通过双栈与 IPv4 渐进共存
参考资料
- Wikipedia(zh):IPv6:互联网协议第六版
- Wikipedia(zh):IPv6地址:128 位地址的表示方式
思考题答案(仅供参考)
思考题 1
因为地址数量随位数呈指数增长。从 32 位到 128 位,可用地址的数量级一下子扩大了天文数字倍,远超过当前和可预见的设备规模,因此从根上缓解了地址不够分配的问题。
思考题 2
好处是首部固定、处理更简单,转发更快、更省资源,也把可能出错的环节减少。代价是原本由首部校验和完成的检错要交给底层和高层去承担,如果这些层次没有做好,就可能失去一层保护。这是用简洁换计算效率的取舍。
协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
封面图
设计师 | 南国微雪