前言

上一章我们把数据通信设备拆到了"骨骼"——整机架构、核心单板与三种硬件形态。但一块只运行着空转发的板卡并不能称为路由器:决定报文如何流动、网络如何收敛、业务如何管控的,是设备里的软件。如果说硬件是骨骼,软件就是灵魂。本章要回答的问题是:数据通信设备的软件由哪些平面构成?同一个"转发"任务,可以用哪些不同的技术路线来实现?路由器、以太网交换机、防火墙、WLAN 这四类产品的软件架构,各自走过了怎样的演进之路?

数据通信产品主要包括路由器、以太网交换机、防火墙以及 WLAN 无线产品,它们都从最早的路由器发展而来,逐步分化演变,以满足不同网络环境的需求。也正因为同源,这四类产品的软件架构既有共享的骨架,又各自长出了鲜明的个性。下文就按这条脉络依次展开。

本章内容概览

产品线

核心议题

演进主线

路由器

三平面功能逻辑架构、 IP 转发流程、软件实现架构

集中式软转发 → 分布式软转发 → NP / ASIC / FPGA → 结构化网络架构

以太网交换机

存储转发、堆叠技术、 M-LAG

单机 → 堆叠虚拟化 → 跨设备链路聚合

防火墙

包过滤起源、盒式高性能架构、流转发

由路由器 ACL 衍生 → 专用转发硬件 → 会话级流转发

WLAN

AP 的三种组网方案

Fat AP → AC + Fit AP → Central AP + RRU (及 AC + Central AP + RRU )

一、路由器产品软件架构发展演进

路由器是数据通信产品的"祖先",它的软件架构也最为完整地体现了数据通信设备的设计思想:先用三层功能平面把"管理、控制、转发"解耦,再围绕转发平面不断升级硬件实现路线,最后在软件工程层面从单体走向组件化。

1.1 功能逻辑架构:管理面、控制面、转发面三层

路由器采用管理面—控制面—转发面三层功能逻辑架构:管理面承担各类管理相关功能,涵盖北向管理协议与完整配置管理;控制面依据管理员配置,完成二三层路由计算、接入安全认证及各类业务控制逻辑;转发面负责路由器核心的分组报文转发工作。

三个平面并非各自为政,而是通过两条信息纽带协作:控制平面把计算出的控制信息(转发表)发送至转发平面,指导其转发行为;转发平面则生成统计信息,供管理平面和控制平面查询。

图 1 路由器管理面—控制面—转发面三层功能逻辑架构(控制平面生成控制信息下发转发平面,转发平面处理数据包)

1.2 IP 转发流程:一个报文的十步旅程

转发面的核心功能是 IP 转发流程。一个报文从进入物理线路到发出,要经历完整的十个步骤:

步骤

处理内容

所在环节

①

物理线路上的报文在接口芯片和 I/O 控制器协同控制下,通过 DMA 方式被接收至内存中指定入接口的接收缓冲区

接收

②

I/O 控制器通过中断唤醒 CPU , CPU 在中断处理中将特定内存缓冲区交换至队列,并唤醒相应的转发线程

接收

③

线程获取 CPU 控制权后,从特定队列读取报文,传递给与接口相连的链路层进行接收和处理

接收

④

链路层解析报文并完成 L2 解封装( PPP / 以太等),确认是 IP 数据报文后,调用 IP 入口函数 IP_Input

入方向

⑤

完成 IP 报文解析后,调用 ifnet 接口上入方向的业务处理( ACL / NAT / IPSec )

入方向

⑥

开始 IP 路由,查找转发信息表 FIB ,确定出接口和下一跳

路由

⑦

调用 IP_Output 函数,完成 IP 报文改写,最后将报文交给链路层处理

出方向

⑧

链路层根据下一跳 IP 地址查询 ARP 表,找到对应的 MAC 封装地址,完成 L2 报文封装,放入接口发送队列

出方向

⑨

进行接口出方向的业务处理( IPSec / NAT / ACL )

出方向

⑩

在 I/O 控制器和接口芯片协同控制下,通过 DMA 方式将报文发送到特定接口的物理线路上

发送

图 2 路由器 IP 转发流程(上半部为控制平面,下半部为转发平面,编号对应报文处理的十个步骤)

控制平面计算控制信息的过程同样清晰:各个路由协议(RIP、OSPF、BGP 等)通过本机协议栈收发路由协议报文并计算形成路由信息;随后路由协议将计算出的路由发送给路由管理器 RM,RM 对路由进行优选,选出最佳路由后发送给 IP 转发面,形成转发信息表 FIB;同时 ARP 通过 ARP 协议解析形成 ARP 表,发送给以太网模块,指导以太网报文的封装处理。

1.3 转发实现的五条技术路线

同一个转发任务,硬件上可以由通用 CPU、专用处理器或固定逻辑电路来完成。路由器产品先后发展出五种转发架构:

集中式软转发是早期产品形态:所有接口连接在同一个 I/O 总线上,由 CPU 软件完成全部转发,报文转发性能有限。其架构简单、灵活性极强,但性能瓶颈明显,适用于低带宽、强管控、功能快速迭代的场景。

图 3 集中式软转发产品的硬件架构(CPU + 内存控制器 + I/O 控制器,所有接口挂在同一 I/O 总线上)

分布式软转发由专属机框插多个单板组成:MPU 负责管理和控制,LPU 负责转发,所有 LPU 都连接在背板总线上,共同构成一个完整的转发平面。在双主控系统中,两个 MPU 分别处于主备状态——主 MPU 承担全部管理和控制职责,控制协议在其上执行,生成的转发表分发至所有 LPU;备用 MPU 存储所有相关信息,并实时监控主 MPU 的状态。这种架构无单点瓶颈、转发路径更优,代价是复杂度提升,适用于接入层、处理复杂协议的设备,以及高吞吐、高可用、需弹性扩容的虚拟化网络。

图 4 分布式软转发路由器硬件架构(双 MPU 主备 + 多 LPU,通过三类总线互连)

分布式架构下,IP 转发流程被划分为两个阶段:入方向流程处理至路由转发,通过查找 FIB 获取出接口和下一跳信息,随后将数据包发送至出接口所在的板卡;出方向流程接续处理,依据已获取信息查询 ARP 表,完成链路层封装。

NP 转发利用专用网络处理器提升网络处理复杂度,通过编程实现灵活配置:NP 芯片负责转发面的工作,并通过 PCI-e 接口与 CPU 建立上行链接。它支持微码工程、可快速适配新协议,常用于高位置的核心路由设备。采用框式分布式的 NP 路由器机框上一般有三种单板——MPU、LPU、SFU,其接口板上的转发功能可细分为九个环节:以太网接口物理层处理、入方向 L2/L3 协议和业务处理与转发表查找、入方向队列缓存和调度、数据包切分成固定长度信元并通过交换网 SFC 发送给出接口板、信元重组为报文、出方向队列缓存、出方向 L3 和业务处理与 L3/L2 报文改写、出接口调度、以太网接口物理层处理。

ASIC 转发使用专用固定逻辑芯片替代 CPU 完成转发功能,极致性能但灵活性极差,适用于变化少、流量大的大带宽设备;FPGA 转发功能实现上与 ASIC 相近,但具备逻辑可编程特性,硬件级并行 + 可重构、低延迟,适用于有定制化协议扩展需求的设备。

结构化网络架构(DDC)则通过多框级联实现高集成度和高性能:控制单元由服务器承担,连接交换单元;交换单元提供以太网接口,连接控制单元、Fabric 和接口板;Fabric 构成所有接口板之间的交换总线;接口板实现网络报文转发及各类业务处理。

路线

转发载体

特点

适用场景

集中式软转发

通用 CPU

架构简单、灵活性极强、性能瓶颈明显

低带宽、强管控、功能快速迭代

分布式软转发

MPU + 多 LPU 背板互连

无单点瓶颈、转发路径更优、复杂度提升

接入层、复杂协议、高吞吐高可用

NP 转发

网络处理器(可编程)

支持微码工程、快速适配新协议

核心路由设备

ASIC / FPGA 转发

固定逻辑 / 可编程逻辑芯片

极致性能、灵活性极差( ASIC );硬件级并行、可重构( FPGA )

大带宽设备 / 定制化协议扩展

结构化网络架构( DDC )

多框级联(服务器 + 交换 + Fabric )

高集成度、高性能

超大容量场景

1.4 软件实现架构:五个平面与三种形态

如果说转发路线解决"跑多快",软件实现架构解决的就是"怎么组织代码"。路由器的软件实现架构主要包括基础设施平面、系统服务平面、管理平面、控制平面和转发平面五个部分:基础设施平面将操作系统的基础功能——内核、驱动、基础 C 库、数据库、基础中间件——统称为基础设施层;系统服务平面提供软件升级、部署与管理、热补丁管理、高可用性管理及分布式管理等特定的系统级服务。

这个五平面分层之下,软件的实现形态经历了三个阶段的演进。

第一阶段:单任务 / 实模式操作系统之上的单体软件架构。所有功能编译在一个程序里,自下而上分为九层:

层次

内容

职责

第 1 层

硬件

最底层

第 2 层

设备管理和驱动程序

启动时构建设备链,负责与底层驱动交互,收发总线上的数据包

第 3 层

接口抽象层(接口管理 ifnet )

启动时构建接口链,承上启下,负责报文的完整上下行及相关控制流程

第 4 层

链路层协议( ETH 、 PPP 、 HDLC 、 X.25 、 FR 、 ATM 、 SLIP )

根据 ifnet 类型和配置选择合适协议挂载在 ifnet 上,完成 L2 处理

第 5 层

IP ( Forwarding )及 L3 协议( ARP 、 ICMP 、 IPSec 、 GRE )

转发的核心部分,同时承担上层协议收发报文通道功能

第 6 层

传输层( TCP 、 UDP 、 RAWIP )

负责自身报文处理,为上层路由协议、 IP 应用提供类似 socket 的编程接口

第 7 层

路由协议( BGP 、 ISIS 、 OSPF 、 RIP )

通过协议发现网络拓扑、计算路由、形成转发表并下发给 IP 层指导转发

第 8 层

IP 应用( AAA 、 ACL 、 IKE 及接入认证、加密协商等)

各种 IP 相关业务

第 9 层

UI 接口( CLI / Telnet 、 SNMP / MIB )

最终提供 CLI 或网络管理接口

图 5 单体软件模式下的路由器软件架构(九层自下而上依次为硬件、驱动、ifnet、L2、L3、L4、路由协议、IP 应用、UI)

第二阶段:多任务 / 实模式操作系统之上的模块化软件架构。随着功能复杂化,许多路由器采用多任务实时操作系统或通用操作系统。多任务系统中,可按需创建多个独立任务,每个任务有独立栈空间和程序入口,任务调度由操作系统统一管理,避免个别任务"饿死",保障高优先级任务忙时调度。模块化架构具有两个特征:各任务有独立入口,独立任务上下文中运行的二进制代码相对独立,可在创建任务时加载;可独立加载意味着编译时需生成独立二进制可执行文件,更符合高内聚、低耦合的设计原则,利于构建复杂软件系统。

第三阶段:多任务 / 用户态—内核态操作系统之上的组件化架构。整个系统划分为内核和用户态程序两大部分,组件化的最显著特征就体现在各种网络控制、管理协议或应用中。进一步地,对比 Linux 宏内核系统,微内核 OS 系统具有两个特点:原内核中的文件系统、设备管理、网络功能等服务被移出,转化为独立服务程序;上层软件通过 LibC 接口调用系统服务时,微内核会切换上下文到对应服务进程。

图 6 组件化架构(内核提供进程 / 内存 / 文件系统 / 设备驱动等基础能力,用户空间运行各类功能组件)

二、以太网交换机产品软件架构发展演进

看完了架构最复杂的路由器,再看以太网交换机——它的问题域更聚焦:如何在二层把报文又快又准地送出去,以及如何让多台盒子像一台设备一样工作。早期以太网无需交换机,通过无源同轴电缆构成线性拓扑,或借助有源集线器形成星形拓扑,这也是以太网采用 CSMA/CD 技术的根源。以太网交换机出现后,摒弃了 CSMA/CD 方式,不再在二层域内物理广播,采用存储转发,依据以太网报文头的目的 MAC 地址进行二层转发。

2.1 典型硬件逻辑架构:一颗交换芯片 + 一个 CPU

典型以太网交换机的硬件逻辑架构非常精简:由交换芯片连接网络接口,通过 PCI-e 总线连接 CPU,管理接口通常由 CPU 直出。转发走芯片、管理走 CPU,分工一目了然。

2.2 堆叠技术:多台盒子合成一台"虚拟交换机"

堆叠技术是以太网交换机发展中的一个重要特点,最初是为适应 LAN 网络规模增长的低成本方案。堆叠以太网交换机的结构特点是:交换机通过专用堆叠口,以电缆或光纤环形连接;均为盒式设备,部分指定或选举主 / 从交换机,通常有两个主交换机形成 1:1 备份;整体构成一台虚拟大交换机,拥有全部接口;环形拓扑下,单线路故障仍可连通,两处断点以上才会断开——有主交换机一侧成小堆叠,无主交换机一侧被隔离以防环路。

图 7 以太网交换机堆叠(多台盒式交换机经 stack port 环形连接,虚拟为一台大交换机)

堆叠系统的逻辑架构有三个特点:功能逻辑上看,主交换机相当于 MPU,从交换机相当于 LPU;二者的软硬件版本无差异,身份由指定或选举确定;仅靠堆叠线缆连接、没有背板总线或 SFU,因此跨板转发流量和控制管理逻辑均需经堆叠口,且要划分管理 / 控制通道来传递消息。

在此基础上,以太网交换机形成了三种功能逻辑结构:

运行模式

功能定位

独立模式

作为独立的盒式交换机运行

主交换机

作为堆叠的主交换机运行,承担管理控制

从交换机

作为堆叠的从交换机运行,负责转发

2.3 M-LAG:把可靠性从单板级提升到设备级

堆叠之后,交换机虚拟化还在继续。为应对业务量增长与网络高可靠性需求,M-LAG 虚拟化技术应运而生:通过多台设备间的链路聚合,将链路可靠性由单板级提升至设备级。其核心组件包括 Peer-Link(对等链路)、DFS Group(动态交换服务组)、DAD(双主检测)和 M-LAG 成员口;典型应用场景覆盖服务器双归接入、二层 / 三层网络高可靠部署以及多级 M-LAG 部署。

三、防火墙产品软件架构

第三类产品是防火墙。它的软件架构同样源自家门:早期防火墙由路由器衍生而来——路由器转发流程中,接口入 / 出方向有 ACL 过滤,通过匹配 IP 报文五元组(源 IP 地址、目的 IP 地址、协议号、源端口号和目的端口号)决定报文是否通过,这就是包过滤防火墙的雏形。

3.1 盒式高性能防火墙:主控 CPU + NP + 转发 CPU

盒式高性能防火墙包含主控 CPU、NP 及多个转发 CPU,三者分工明确:主控 CPU 负责设备管理、控制协议功能,生成指导转发的转发表;NP 承担报文负载分担,按规则将报文分发至各转发 CPU;转发 CPU 处理转发业务,其所需配置信息及 FIB、ARP 等转发表项由主控 CPU 生成并通过总线下发。此外,部分产品会将转发 CPU 生成的会话信息下发至 NP,使符合条件的直通流量可由 NP 处理,无需再经过转发 CPU——会话一旦建立,后续报文在 NP 上就能"直通"。

3.2 流转发:防火墙区别于路由器的关键

防火墙多需关注报文上下文,即"流转发"。流,一般指终端上的一次完整的 TCP/IP 通信过程。防火墙的转发处理流程包括两条路径:一条是标准的 IP 包转发流程,处理和路由器的软转发功能大致相当;另一条是流转发流程——完成首包处理后,在流表中生成一个流信息,记录后续报文处理所需的参数;后续报文到达时,在入方向的会话查找过程中匹配到会话,就走流转发流程,处理效率大大提升。

图 8 防火墙转发处理流程(首包经内容安全链处理后创建会话,后续报文命中会话直接快速转发)

从流程图可以看到首包的完整旅程:报文接收、低层解析、Anti-DDoS、预处理、入方向进程、路由 / 负载分担、出方向进程(ACL / Policy / S-NAT)、Source NAT,随后进入会话创建;内容安全环节串联起 IPS、反病毒、URL 过滤、业务感知以及 D-NAT / SLB 等处理;会话建立后,后续报文只需在会话表中命中即可沿快速路径传送。

四、WLAN 产品软件架构发展演进

最后一类产品是 WLAN。WLAN 组网中最核心的设备被称为 AP,围绕着 AP 的架构,出现了三种典型的组网解决方案:Fat AP、AC + Fit AP、Central AP + RRU。

4.1 Fat AP:一个人战斗的"胖"接入点

Fat AP 是早期 WLAN 产品,每个 AP 都是一个独立的网关路由器,提供独立的 WLAN 接入热点。其软件架构在路由器基础上增加了无线网络接口,支持 BSS 和 SSID 配置:CPU(SoC)之外配以 RF 模块和天线,直接为多个 BSS 提供接入。这种架构部署简单,但每台 AP 各自为政,不适合需要统一管理的大规模场景。

4.2 AC + Fit AP:大规模园区的统一管理

AC + Fit AP 组网中,AC 管理其下连接的所有 Fit AP。Fit AP 是无线接入点,不能单独工作,必须由上一级的 AC 进行统一管理,二者之间通过 CAPWAP 隧道传递控制与数据。这一方案适合大规模园区,能提供大范围统一的 WLAN 接入,终端移动时不中断连接,提升体验。

图 9 AC + Fit AP 组网(AC 通过 CAPWAP 统一管理多台 Fit AP,终端在 BSS 间漫游不断线)

4.3 Central AP + RRU:天线拉远的第三条路

Central AP + RRU 方案中,Central AP 加上其所连接的 RRU 完全可以看成是一个独立的网元:每个 RRU 都是一个拉远的天线模块,射频处理主要在 Central AP 完成,因此 RRU 单元可以做得更为简单。该方案比 AC + Fit AP 更为便宜,比 Fat AP 的 WLAN 覆盖空间更大。在进阶的 AC + Central AP + RRU 方案中,Central AP 相当于 Fit AP,只不过天线被拉远,可以比普通的 Fit AP 覆盖更大的范围,同时保留 AC 的集中管理能力。

方案

管理方式

覆盖能力

成本

适用场景

Fat AP

独立网关,自行管理

单点热点

低

小型场景、独立热点

AC + Fit AP

AC 集中管理, CAPWAP

大范围统一接入,移动不中断

中

大规模园区

Central AP + RRU

独立网元( Central AP + RRU )

射频集中处理, RRU 拉远覆盖

低于 AC + Fit AP

覆盖优先的室内场景

AC + Central AP + RRU

AC 集中管理

相当于天线拉远的 Fit AP ,覆盖更大

中

大范围 + 集中管理

本章总结

● 路由器软件架构:功能逻辑采用管理面、控制面、转发面三层设计,分别承担管理配置、控制逻辑计算、报文转发核心职责;核心是 IP 转发流程,涵盖报文接收、解析、路由查找、封装发送等全环节。

● 转发架构演进:从早期集中式软转发(性能有限),发展到分布式软转发(多单板分工)、NP 转发(专用硬件提升灵活度)、ASIC / FPGA 转发(高性能专用芯片),直至结构化网络架构实现高集成度。

● 软件实现架构演进:从单任务单体架构,过渡到多任务模块化架构,最终形成多任务用户态—内核态组件化架构;五平面分层(基础设施、系统服务、管理、控制、转发)贯穿始终。

● 以太网交换机:发展基础是替代早期 CSMA/CD 技术,采用存储转发模式,依据目的 MAC 地址实现二层转发;堆叠技术让多台盒式交换机经专用端口环形连接构成虚拟大交换机,分主、备、从三种运行模式,主交换机承担管理控制、从交换机负责转发;M-LAG 进一步把链路可靠性提升至设备级。

● 防火墙:源于路由器 ACL 过滤功能,通过匹配 IP 报文五元组实现包过滤;盒式高性能防火墙由主控 CPU、NP 及多个转发 CPU 分工协作;转发流程分为标准 IP 包转发和流转发,流转发通过首包创建会话表、后续报文匹配会话快速处理,大幅提升效率。

● WLAN:核心设备为 AP,衍生出三种组网方案——Fat AP(独立网关,支持 BSS 和 SSID)、AC + Fit AP(AC 统一管理,适合大规模园区,终端移动不断线)、Central AP + RRU(射频集中于 Central AP,覆盖大且成本较低);进阶方案 AC + Central AP + RRU 兼顾覆盖范围与集中管理。

结语

把四章内容放在一起看,数据通信软件架构的演进有一个共同的主题——分工。路由器把软件拆成管理、控制、转发三个平面,又把转发从 CPU 搬到 NP、ASIC,直至搬进独立的交换框;交换机把多台盒子捏合成一台虚拟设备,让主从各司其职;防火墙把"一条流"的首包与后续报文分开处理,用会话表换转发效率;WLAN 则把"胖"AP 的职责一层层上收到 AC、下放到 RRU。软件架构史,就是一部不断回答"谁来干什么"的历史——当分工足够精细,性能与灵活这对老冤家,才能各得其所。