一个数据包从北京的客户端发出,穿越多个运营商网络,跨越太平洋海底光缆,到达旧金山某个数据中心的服务器——全程可能经过 15 个路由器,耗时 120 毫秒。这个过程没有任何中央调度,每一个路由器只基于自己掌握的信息,独立决定"下一跳去哪里"。
这就是互联网路由的本质:去中心化的、局部决策驱动的、自适应的数据包转发系统。
破除误解:路由器和交换机不一样
网络设备的命名常常让人困惑。两个关键区别:
| 设备 | 工作层次 | 转发依据 | 主要职责 |
|---|---|---|---|
| 交换机(Switch) | 链路层(Layer 2) | MAC 地址 | 局域网内部通信 |
| 路由器(Router) | 网络层(Layer 3) | IP 地址 | 不同网络之间通信 |
交换机"交换"帧(Frame),连接同一局域网内的设备;路由器"路由"数据包(Packet),连接不同的网络。家庭宽带设备通常是"路由器+交换机"的组合。
不过这条界线并非泾渭分明。数据中心里大量使用三层交换机(Layer 3 Switch):它用专用芯片(ASIC,专用集成电路)在硬件中直接按 IP 地址转发,能以线速完成 VLAN 之间的路由,兼具交换机的吞吐与路由器的跨网能力。
所以"交换机只看 MAC、路由器才看 IP"是入门时的有用简化,真实设备的功能边界要模糊得多。
交换:局域网内的通信
交换机维护一张MAC 地址表(CAM 表):记录每个 MAC 地址对应哪个端口。
工作流程: 1. 收到帧,查看源 MAC 地址,记录"这个地址在这个端口" 2. 查看目标 MAC 地址: - 如果在表中,从对应端口转发 - 如果不在表中,泛洪(Flooding):从所有端口广播(除来源端口),等待目标设备回应 3. 随着通信积累,表逐渐完整,泛洪减少
交换机转发一帧有两种时机。存储转发(Store-and-Forward)先把整帧收完、校验 CRC(循环冗余校验)无误再转发,能拦下坏帧,但增加延迟;直通转发(Cut-Through)只读到目标 MAC(帧的前几个字节)就立刻开始转发,延迟低得多,代价是坏帧也会被一并转出。
Cisco 的 Catalyst 系列默认用存储转发,面向数据中心的 Nexus 系列默认用直通——在高频交易这类对每一微秒都敏感的场景里,这点延迟差异足以成为选型理由。
VLAN(虚拟局域网):交换机可以把物理端口分组,形成逻辑上隔离的局域网。即使在同一台物理交换机上,不同 VLAN 的设备也无法直接通信,必须经过路由器。这实现了网络的逻辑分段,常用于安全隔离和流量管理。
生成树协议(STP,Spanning Tree Protocol):为避免交换机之间形成环路(会导致广播风暴),STP 动态计算一棵无环的生成树,关闭冗余链路的转发(保留链路本身,链路断了再激活)。现代数据中心更多使用 RSTP(快速生成树)或基于 ECMP(等价多路径)的架构替代。
路由:网络间的通信
路由器的核心任务是维护路由表(Routing Table),并根据路由表转发数据包。
路由表条目通常包含:
- 目标网络前缀(如 10.0.0.0/8)
- 下一跳地址(Next Hop)
- 出口接口
- 路由来源(直连、静态配置、动态路由协议)
- 度量值(Metric,越小越优先)
最长前缀匹配(Longest Prefix Match):若数据包的目标 IP 匹配多个路由表条目,选择前缀最长(最精确)的那条。这是路由器查找路由的基本规则,大量使用 TCAM(三态内容可寻址存储器)硬件实现纳秒级查找。
TCAM 快,但容量有限且昂贵,这埋下了一个真实隐患。2014 年 8 月 12 日,全球 IPv4 路由表条目数首次突破 512,000——不少老旧路由器(尤其部分 Cisco 型号)出厂默认只给 IPv4 路由划了 512K 的 TCAM 空间。
超限后这些设备被迫退回慢速的软件转发,eBay、LastPass、微软 Azure 等服务相继出现波动,这一天被业界称为"512K Day"。导火索是 Verizon 把大地址块拆成数千条 /24 细分路由对外公告,瞬间推高了表项数。它说明:路由表的增长不是抽象数字,会直接撞上物理硬件的边界。
动态路由协议
路由表可以手动配置(静态路由),但互联网规模下必须动态更新。动态路由协议分两大类:
域内路由协议(IGP,Interior Gateway Protocol):在一个自治系统(AS)内部使用。
- OSPF(开放最短路径优先):链路状态协议。每个路由器广播自己的链路状态(与哪些邻居相连,链路开销多少),所有路由器都有完整的拓扑图,各自独立用 Dijkstra 算法计算最短路径。收敛速度快,适合大型企业和运营商内部网络。
- RIP(路由信息协议):距离向量协议。每个路由器只知道到各目标的跳数(Hop Count),定期广播路由表给邻居。它的"慢"有具体原因:链路故障时距离向量协议会出现"计数到无穷(count-to-infinity)"——错误的跳数在路由器之间循环递增、收敛极慢,要靠水平分割(split horizon)等机制缓解,而最大 15 跳的上限正是给这种递增封顶。它简单,但现在几乎仅用于教学。
域间路由协议(EGP,Exterior Gateway Protocol):
- BGP(边界网关协议):互联网唯一实际使用的域间路由协议(RFC 4271),是 AS 之间交换路由信息的标准。BGP 不追求最短路径,而是基于策略的路径向量协议——AS 可以基于商业协议(对等、上下游付费)、地缘政治、安全等因素选择路由路径。
BGP:互联网的路由黏合剂
全球互联网由约 80,000 个自治系统(AS)组成,它们彼此公告的 IPv4 路由到 2024 年已增长到约 95 万条。BGP 是让它们互相"知道路"的协议。
BGP 路由的基本单元是前缀公告:我能到达 203.0.113.0/24,路径是 [AS64500, AS64501]。
BGP 路由决策(简化): 1. 丢弃本地策略禁止的路由 2. 优先本地优先级(Local Preference)更高的路由 3. 优先路径更短(AS 数量更少)的路由 4. 多路径时,其他属性进一步决策
BGP 的韧性与脆弱性:BGP 的去中心化设计使其极其稳健——没有单点故障。但它也极其脆弱:任何 AS 都可以公告任何前缀,无需验证自己真的拥有这些地址。BGP 劫持(公告他人的 IP 前缀)曾多次发生:
- 2008 年:巴基斯坦电信试图封锁 YouTube,错误地向全球公告了 YouTube 的 IP 前缀,导致 YouTube 短暂断网约 2 小时。
- 2010 年:中国电信公告了约 37,000 个前缀的错误路由,影响全球流量约 18 分钟。
BGP 的另一种失效不来自恶意,而来自自己。2021 年 10 月 4 日,Facebook(Meta)在一次例行维护中误下指令切断了骨干网;它的 DNS 服务器被设计成"一旦连不上数据中心就撤回自己的 BGP 路由公告",于是全球路由表中通往 Facebook 域名服务器的路径被集体撤销。
结果 Facebook、Instagram、WhatsApp 从互联网上"消失"约 6 小时——不是被攻击,而是自己把回家的路从地图上抹掉了。可见路由公告的"撤回"和"劫持"一样,都能造成全球级别的中断。
RPKI(资源公钥基础设施):为 BGP 前缀公告引入数字签名,路由器可以验证"这个 AS 真的有权公告这个前缀"。部署在 2020 年代明显加速——据 NIST(美国国家标准与技术研究院)的监测,2024 年 5 月全球 IPv4 路由中"有 ROA(路由源授权)覆盖"的比例首次过半。但"签了名"不等于"会被检查":真正按 RPKI 主动拒绝非法路由的网络仍是少数,距离全面生效还有距离。
SDN:软件定义网络
传统路由器/交换机把控制平面(决定流量走向)和数据平面(实际转发数据包)集成在同一设备上。
SDN(Software-Defined Networking)把控制平面抽离出来,放到集中的SDN 控制器:
应用层(网络应用、策略)
↕ 北向接口(REST API 等)
控制平面(SDN 控制器,集中式)
↕ 南向接口(OpenFlow、NETCONF 等)
数据平面(交换机/路由器,只做转发)
```优点:网络行为可编程、快速响应(软件升级即可改变路由策略)、集中可视化。缺点:控制器成为新的单点故障,需要分布式高可用设计。Google 的 B4 和 Facebook 的 FBOSS 是生产级 SDN 的著名案例。
代价与争议
互联网的脆弱性:BGP 的基于信任、无认证的设计,是互联网深层的安全隐患。RPKI 是技术解决方案,但国际间协调部署进展缓慢——没有哪个单一实体能强制所有 AS 升级。
SD-WAN vs. MPLS:传统企业广域网使用 MPLS(多协议标签交换,运营商提供有保证的 QoS),费用高昂。SD-WAN 用软件在廉价宽带上构建可靠的企业网络,2015 年后快速替代 MPLS。这是一个典型的"软件吃掉专用硬件"的故事。
跨域连接
- 主权:边界网关协议选的是策略路径而非最短路径,因此「不经过某国网络」这类要求可以直接写进选路。这让网络拓扑承载了管辖权主张,也给出一条推论:任何数据不出境的规定最终都要落到路由策略与互联协议上,而这些是私人商业合同,国家只能间接施压,无法直接改写全球路由表。
- 网络战:路由公告无需证明地址所有权,于是攻击者只要公告比真实持有者更具体的前缀,最长前缀匹配就会把流量优先送给他。这条机制解释了两个可观察事实:更长前缀的劫持比等长劫持有效得多;运营商普遍过滤过长前缀作为对策。劫持因此既可用于封锁,也可用于把流量绕到可监听的路径上。
- 产业组织:自治系统之间分为互不结算的对等与下游付费的中转,本地优先级把这些合同直接翻译成转发决策。于是最优路由是成本最优而非时延最优,路径长度与网络性能可以系统性背离。推论是拓扑会朝经济结构演化:大型内容方自建骨干并广泛对等,正是为了把中转费从成本表里去掉。
- 图论:链路状态与距离向量的分歧是信息结构的分歧。前者让每个节点持有完整拓扑再各自算最短路,后者只交换到各目标的距离。计数到无穷正是局部信息下无法区分「路径确实变长」与「绕成了环」的直接后果,而给公告附上完整路径就能识别环路——这就是域间协议携带路径向量的原因。
- 存储层级与缓存:三态内容可寻址存储器是「快而贵而小」的极端形态,路由表一旦超出它的容量,转发就退回软件路径。这给出一类可预测的失效:用固定容量关联存储做查找的系统,在条目数增长时经历的是断崖式退化而非平滑劣化,且退化时刻由一个多数人不知道的出厂参数决定。
参考文献
- Rekhter, Y. et al. A Border Gateway Protocol 4 (BGP-4). RFC 4271, IETF, 2006.
- Moy, J. OSPF Version 2. RFC 2328, IETF, 1998.
- Tanenbaum, A. & Wetherall, D. Computer Networks. 5th ed. Pearson, 2011.
- McKeown, N. et al. OpenFlow: Enabling Innovation in Campus Networks. ACM SIGCOMM CCR, 2008.
- Lepinski, M. & Kent, S. An Infrastructure to Support Secure Internet Routing. RFC 6480, IETF, 2012.
- Mohapatra, P. et al. BGP Prefix Origin Validation. RFC 6811, IETF, 2013.
- RIPE NCC. YouTube Hijacking: A RIPE NCC RIS Case Study. RIPE Network Coordination Centre, 2008.
- Meta Engineering. More Details About the October 4 Outage. engineering.fb.com, 2021.