第4章 · 播客 第3集
计算机网络 · IPv6:地址、类型与过渡
🎙️ 本集播客:第3集:从 IPv4 的五大痛点讲到 IPv6 的 128 位地址——首选格式、前导零省略、双冒号只能用一个,再到单播多播泛播三种类型、五大优势,最后是双栈、隧道、NAT-PT 三种过渡技术。 语音由微软 Edge 神经网络语音预生成(女声·晓伊,男声·云希)。点击下方任意对话可直接从该句开始播,当前句朗读时下一句已预先加载,无缝衔接。
明
阿明
师姐,IPv6 为什么非要出来替换 IPv4?现在的网不也用得好好的?
雅
小雅
因为 IPv4 的缺点已经充分显现:地址空间耗尽、路由表急剧膨胀、缺乏对 QoS 的支持、本身并不提供任何安全机制、移动性差。虽然采用了 DHCP 技术、NAT 技术、CIDR 技术等新机制来缓解,但都不可避免地要引入其他新的问题,问题没有得到根本解决。于是 IETF 从 90 年代起积极探讨下一代 IP 网络,终于在 1995 年 12 月推出了下一代网络的 RFC 文档——IPv6 协议,最早叫做下一代 IP,简称 IPng。这五条缺点是简答题素材,能背出三条以上就稳。
明
阿明
那地址本身呢?我记得 IPv4 是 32 位。
雅
小雅
对,这是第七题的考点。IPv4 地址 32 位,以 8 个位为一段分成 4 段,每段之间用点分开。IPv6 地址是 128 位,以 16 位为一段,共分为 8 段,每段的 16 位转换为一个 4 位的 16 进制数字,每段之间用冒号分开。对比着记:IPv4 是 8 位一段、4 段、点分隔;IPv6 是 16 位一段、8 段、冒号分隔、每段 4 个十六进制字符。问长度答 128 位,问分段答 8 段,问分隔符答冒号。
明
阿明
选项里 64 位、96 位这种,纯粹是凑数的吧?
雅
小雅
凑数也年年有人选,因为 8 段乘 16 位、或者想成两倍 64 位,都容易迷糊。就记一个硬数字:128,IPv4 的 32 位正好是它的四倍。位长翻四倍,地址数量是 2 的 128 次方,这才解决地址空间耗尽的问题。
明
阿明
128 位怎么写出来?总不能每次写 32 个十六进制字符吧。
雅
小雅
如 RFC 2373 所定义,有 3 种格式表示 IPv6 地址。首选格式是最长的表示方法,由所有的 32 个 16 进制字符组成,是适合于计算机「思维」的表示法。原文的例子:一个 128 位地址按 16 位一段分开,每段转成 4 个十六进制字符、以冒号隔开,得到 2001 冒号 0da8 冒号 d001 冒号 0001 冒号 0000 冒号 0000 冒号 0000 冒号 0001。这就是首选格式。
明
阿明
人写的话肯定要压缩。
雅
小雅
压缩有两条规则。规则一:对于每一段中的前导 0 可以省略,前面的地址经一次压缩变成 2001 冒号 da8 冒号 d001 冒号 1 冒号 0 冒号 0 冒号 0 冒号 1——0da8 变 da8,0001 变 1。规则二:对于连续 2 段以上都为 0 的字段,可以使用双冒号来表示,再压缩一次就变成 2001 冒号 da8 冒号 d001 冒号 1 冒号双冒号 1。这就是 IPv6 地址的压缩表示法。
明
阿明
注意规则一说的是「前导 0」,段中间和结尾的 0 应该不能省吧?
雅
小雅
不能,只有前导 0 可以省,而且注意单看一段里的 0 是「省略字符」,连续两段以上整段为 0 才轮到双冒号出场。一条段里的单个 0 只能写成 0,不能压缩成空。这种「前导 0」三个字的限定,判断题考过。
明
阿明
第八题考的就是这个双冒号——最多允许几个?
雅
小雅
每个 IPv6 地址只允许有一个双冒号。原因你自己想想:双冒号代表「连续若干段全 0」,如果允许出现两个,你就无法知道中间到底省略了多少段 0,地址会产生歧义。所以答案是 1 个,干扰项的 2 个、3 个、不限制,全是给忘了这条规矩的人准备的。做题时看到任何压缩地址,先数双冒号的个数,超过一个直接判错。
明
阿明
那有没有混合写法?我记得见过 IPv6 地址里嵌着 IPv4 的。
雅
小雅
有,这叫内嵌 IPv4 地址的 IPv6 地址:地址的第一部分使用十六进制表示,而 IPv4 部分采用十进制。这是过渡机制所用的 IPv6 地址特有的表示法。原文例子:fe80 冒号双冒号 200 冒号 5efe 冒号 58.20.27.60——后半部分的 58.20.27.60 就是一个 IPv4 地址。看到「十六进制冒号加十进制点分」混搭,就是这种表示法。
明
阿明
内嵌 IPv4 那种我记住了。地址类型呢?IPv4 有单播、广播、组播。
雅
小雅
IPv6 里面,广播已经不再使用了——原文说这对网络管理员是个好消息,因为传统 IP 网络中出现的很多问题都是由于广播引起的。IPv6 仍有 3 种地址类型,分别是单播、多播(也称作组播)、泛播(也称作任意播)。注意「取消了广播」这个变化本身就是高频考点,第七题的解析里也点了这一句。
明
阿明
三种类型怎么区分?多播和泛播听起来很像。
雅
小雅
逐个给定义,你就看出差别在「发给几个接口」。单播 IPv6 地址:唯一标识一个 IPv6 节点的接口,发送往单播地址的数据包最终传递给这个地址所标识的接口;还有个例外条款——为适应负载均衡,IPv6 协议允许多个接口使用相同的 IPv6 地址,只要它们对于主机上的 IPv6 协议表现为一个接口。多播 IPv6 地址:标识一组 IPv6 节点的接口,发送往多播地址的数据包会被该多目组所有的成员处理。泛播 IPv6 地址:指派给多个节点的接口,发送往泛播地址的数据包只会传递给其中的一个接口,一般是相隔最近的一个接口。
明
阿明
差别抓到了:多播发给组的所有成员,泛播只发一个——最近的那个。
雅
小雅
对,判断题爱出「泛播会把数据包发给所有成员」,错,那是多播。再追问你一个细节:单播不是绝对的一地址一接口吗?
明
阿明
呃……负载均衡那个例外?多个接口可以用同一个地址,只要在协议看来是一个接口。
雅
小雅
没背错。好,接着是 IPv6 的优势,原文列了五条。第一,更大的地址空间:IPv4 规定 IP 地址长度为 32 位,IPv6 中 IP 地址的长度为 128 位。第二,更小的路由表:IPv6 的地址分配一开始就遵循路由汇聚的原则,使路由器能在路由表中用一条记录表示一个子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
明
阿明
第三条是 QoS 那个吧?
雅
小雅
对,且这条「地址大」是最容易和后面优势混淆定位的一条——它说的是空间大小,路由表那条说的是查表速度,两码事。第三,IPv6 增加了增强的组播支持和对流支持,使网络上的多媒体应用有了长足发展的机会,为服务质量 QoS 控制提供了良好的网络平台。第四,加入了对自动配置的支持,这是对 DHCP 协议的改进和扩展,使得网络尤其是局域网的管理更加方便和快捷。第五,更高的安全性:在使用 IPv6 网络时,用户可以对网络层的数据进行加密,并对 IP 报文进行校验,极大地增强了网络的安全性。五条的关键词串起来:大地址、小路由表、组播对流 QoS、自动配置、安全加密。
明
阿明
最后一关:现在全世界 IPv4 设备那么多,怎么过渡到 IPv6?
雅
小雅
这就是第十三题的出处,过渡技术三种,各自机理要分清。第一种,双协议栈技术:通过节点对 IPv4 和 IPv6 双协议栈的支持,从而支持两种业务的共存——一句话,设备两套协议都会说。第二种,隧道技术:通过在 IPv4 网络中部署隧道,实现在 IPv4 网络上对 IPv6 业务的承载,保证业务的共存和过渡——一句话,把 IPv6 数据包装进 IPv4 的壳里穿过去。具体的隧道技术包括 6to4 隧道、6over4 隧道、ISATAP 隧道,这三个名字认识即可,选择题里它们都是隧道家族的。
明
阿明
第三种 NAT-PT,名字里有 NAT,是干地址转换的吧?
雅
小雅
对,而且第十三题就考它:NAT-PT 使用网关设备连接 IPv6 和 IPv4 网络,当 IPv4 和 IPv6 节点互相访问时,NAT-PT 网关实现两种协议的转换翻译和地址的映射。题目问「通过网关设备实现两种协议转换和地址映射的是哪种技术」,答案就是 NAT-PT。排干扰项:双协议栈靠的是节点自己支持双栈,没有网关转换的事;隧道技术和 6to4 是把 IPv6 包封装在 IPv4 里传输,也不做协议转换。「网关、转换、映射」三个词同时出现,就锁定 NAT-PT。
明
阿明
我自己再口述一遍三种的分工验一下:双栈是设备自己会说两种话,隧道是 IPv6 借 IPv4 的管道穿过去,NAT-PT 是中间站个翻译官。
雅
小雅
三个比喻全对,考试就按这个区分。IPv6 这块我总结:128 位、8 段冒号分隔、双冒号最多一个、广播取消剩单播多播泛播、过渡三件套双栈隧道 NAT-PT。
雅
小雅
再补两句:压缩规则是前导零省略加连续两段以上零用双冒号;IPv6 优势五条——更大地址空间、更小路由表、组播对流支持 QoS、自动配置、网络层加密校验更安全。这就是本集必背。下一集从协议回到物理世界:局域网的四种拓扑、无线局域网和 802.11 的 CSMA/CA、3G 三大标准谁家拿哪个牌照、4G 的 LTE 两大分支,还有五种接入技术——回归选择题最密集的战场。