互联网协议的演进揭示了一个核心矛盾:IPv6最初的设计目标是创建一个更简洁、高效的网络,彻底摆脱以太网和 WiFi 带来的层2广播、MAC 地址和复杂配置的束缚。然而,由于无法替代根深蒂固的传统网络架构,这一理想未能实现,导致现代网络依然依赖于 ARP、DHCP 和层2桥接等复杂机制。最终,文章指出,真正的解决方案在于解决“移动IP”难题,通过像 QUIC 这样的新协议,将网络会话的身份与不稳定的IP地址解耦,这或许能最终实现一个没有 MAC 地址和广播的理想互联网。
网络复杂性的起源
很久以前,网络建立在点对点的电话线上,你把数据从一端放进去,它就会从另一端出来。这种模式非常简单,因为线路上只有两台设备,所以不需要地址。
随着局域网(LAN)的发明,情况变得复杂。为了让多台计算机在本地共享一根线缆(称为“总线网络”),人们发明了新的地址系统。
- 以太网和 MAC 地址: 以太网通过为每台设备分配一个独一无二的48位 MAC 地址(层2地址)解决了地址冲突问题。这使得设备在本地网络上可以相互通信,无需手动配置。
- 连接多个局域网: 当网络规模扩大,需要连接多个独立的局域网时,一个新问题出现了。MAC 地址是无序的,无法高效地用于大规模路由。
为了在更大的范围内连接网络,互联网协议(IP 地址,即层3)应运而生。但问题在于,它必须在已经存在并广泛使用的以太网(层2)之上运行。
两个世界的冲突:IP 与以太网的混乱结合
将 IP 网络嫁接到以太网之上,催生了一系列复杂且低效的“补丁”和协议,这些问题至今仍然困扰着我们。
- 地址解析协议 (ARP): 当一台计算机想给另一个 IP 地址发送数据时,它必须先知道对方的 MAC 地址。ARP 通过在整个局域网中广播一个“谁是这个IP地址?”的请求来完成这个任务。这种广播机制在大型网络或 WiFi 环境中效率极低,容易造成“广播风暴”。
- 动态主机配置协议 (DHCP): 为了避免手动配置 IP 地址,DHCP 被发明出来。它监听网络上的 MAC 地址,并为其分配一个可用的 IP 地址。这进一步将 IP 层(层3)与以太网层(层2)紧密捆绑在一起。
- 桥接与路由的斗争: 网络管理员们面临一个选择:使用 IP 路由(层3)还是以太网桥接(层2)。桥接由硬件实现,速度快且配置简单,因此被大量使用,导致出现了庞大、复杂且几乎无法调试的“巨型局域网”。而软件定义网络(SDN)在某种程度上就是为了管理这种失控的桥接网络而诞生的。
简而言之,我们最终得到的是一个层层叠加的混乱系统。IP 本应是软件定义的网络,但由于历史原因,我们却用更复杂的硬件桥接技术在它之下构建了另一个事实上的网络。
IPv6 的梦想:一个更纯粹的互联网
在20世纪90年代,IPv6 的设计者们目睹了这一切,并试图从根本上解决问题。他们构想了一个没有历史包袱的理想世界。
在这个世界里:
- 没有层2桥接: 所有的网络互联都通过 IP 路由(层3)完成。
- 没有 MAC 地址: 网络链路都是点对点的,不再需要额外的硬件地址。
- 没有广播: 用更高效的组播(multicast)取代。
- 没有 ARP 和 DHCP: 因为没有 MAC 地址,这些协议也就没有存在的必要了。
- 没有地址短缺: 海量的地址空间让网络管理变得简单。
如果这个梦想成真,以太网交换机和 WiFi 接入点都将只是简单的 IPv6 路由器。网络将变得优雅、高效且易于调试。IPv6 超长的地址设计,其部分理由也正是基于未来可以彻底抛弃 MAC 地址这一假设。
梦想的陨落:历史遗留问题无法摆脱
不幸的是,这个美好的愿景从未实现。一个核心的现实是:
网络协议的“层”只会被不断添加,而几乎从不被移除。
我们无法抛弃现有的 IPv4 网络和以太网硬件。这意味着即使 IPv6 普及,我们仍然需要 MAC 地址、WiFi 的多地址帧格式,以及与 ARP 功能类似的“邻居发现协议”。我们仍然需要 NAT 和 DHCP 来支持那些老旧的 IPv4 设备。
更糟糕的是,IPv6 的设计者们忽略了一个即将变得至关重要的问题:移动 IP。
真正的难题:移动 IP
当你的设备(如手机)从一个 WiFi 网络切换到另一个时,它的 IP 地址会改变,这会导致所有正在进行的网络连接(如下载、视频通话)中断。
- 根本原因: TCP 和 UDP 协议通过一个“四元组”(源IP、源端口、目标IP、目标端口)来识别一个网络会话。IP地址是会话身份的一部分,IP 地址一变,会话就断了。
- 目前的“伪解决方案”: 无论是企业 WiFi 还是 LTE 网络,它们能够让你在移动中保持连接,通常是通过将你的所有流量都隧道传输到一个中心点,在一个巨大的虚拟层2网络中进行桥接。这种方法极其复杂,并且会带来显著的延迟。
通往优雅网络的未来之路
真正的解决方案在于将网络会话的身份与 IP 地址分离。
设想一种新的协议,它不使用 IP 地址来识别会话,而是使用一个独立且唯一的“会话 ID”。这样,即使设备的 IP 地址在移动中不断变化,服务器也能知道这仍然是同一个会话,只需将数据包发往最新的 IP 地址即可。
- QUIC 协议的希望: 谷歌开发的 QUIC 协议恰好具备这种潜力。它在 UDP 之上运行,并使用自己独立的连接标识符。理论上,只需稍加改造,QUIC 就可以支持设备在不同网络间无缝漫游而不断开连接。
如果 QUIC 或类似协议能够最终取代 TCP 和 UDP,那么对层2桥接的需求将不复存在。到那时,我们才能真正摆脱 MAC 地址、广播和 DHCP 等历史遗留问题,最终实现 IPv6 最初设想的那个优雅、简洁的互联网。