同样做转发,通用服务器靠软件,专用设备靠芯片。 前者灵活但慢两个量级,后者快但出厂就定死了能做什么。
前面三节讲的是「数据怎么在线上跑」,从这一节起拆开盒子看里面。 这一节是全章的分水岭:后面十几个零件,都是这两种路线的具体配置。
一、两条路线的分野
通用服务器做网络功能(NFV):一台 x86 服务器跑软件,网卡收包、CPU 处理、再发出去。 装什么软件就有什么功能,路由器、防火墙、负载均衡都能跑。 专用设备:转发芯片是流水的,包进来按固定路径走完就出去,CPU 只做管理。
差在哪儿:通用 CPU 每个包要几千个周期,专用芯片一个周期出一个包。 这就是 Demo 里二十几个核对一个芯片的由来。
二、各自的地盘
专用设备的地盘:接入层、汇聚层、核心层、出口防火墙。 这些位置要的是「稳定、线速、便宜、省电」,功能几年不变。 通用服务器的地盘:需要频繁变功能的地方——负载均衡、WAF、SD-WAN 边缘、虚拟化平台里的虚拟交换机。
分界线其实很清楚:功能稳定选专用,功能常变选通用。 这条判据在云数据中心里也成立:物理网络用专用交换机,租户隔离用软件定义。
三、为什么「软件定义」不是万能药
NFV 被吹了很多年,落地时总会撞上三堵墙:
① 性能:同样的端口数,软件方案要多几倍的电与机架空间。 ② 确定性:通用 CPU 有调度、有中断,抖动比流水线大得多。 ③ 故障面:一台服务器挂了是一台,一台交换机挂了是一片——反过来也一样,软件栈越深, 出问题的地方越多。
所以今天的主流是混合:转发面用专用芯片(或可编程的 P4 芯片),控制面用通用服务器。 这就是 SDN 的实质分工。
四、动手 Demo:通用 CPU 要几个核才顶得上一台 24 口千兆交换机
这段按「每包多少周期」估算 CPU 的转发能力,再跟 24 口千兆线速的需求比。
cyc_per_pkt = 2000
mpps_per_core = 3.0 * 1e9 / cyc_per_pkt / 1e6
need = 24 * 1.488
print(mpps_per_core, need, need / mpps_per_core)
实跑输出:
--------------------------------------------------------------------
通用 CPU 转发与专用 ASIC 转发,差的是几个数量级
--------------------------------------------------------------------
**同样一台盒子,里面装的可能是通用 CPU,也可能是专用芯片。**
这决定了它不是「慢一点」,而是「根本不在一个量级」。
项 值
-------------------------------------
通用 CPU 主频 3.0 GHz
每包处理开销 2000 周期
单核转发能力 1.50 Mpps
24 口千兆满线速需要 35.7 Mpps
需要几个核 23.8 个
**一台普通服务器要将近 24 个核,才能勉强顶上 24 口千兆。**而且这只是转发,还没算路由查找、ACL、
NAT。
**专用 ASIC 为什么快**:转发路径被固化在硬件里,一个流水线周期出一个包,不需要取指、不需要中断、
不需要内存拷贝。**同样的活,它一个芯片就干了。**
**代价是「不会变」。**ASIC 出厂就定死了能做什么;要加新功能,只能换芯片。
这就是为什么「硬件交换机快但僵、软件转发慢但活」——一直到 SDN 才把两边接上。
单核 1.5 Mpps,需求 35.7 Mpps,差 24 倍。这就是为什么纯软件转发在接入层很难打。
而且这 2000 周期是乐观估计:真实环境里还要走中断、内存分配、协议栈,很多实现是每包上万周期。 所以「用服务器当交换机」这件事,只在流量很小的时候成立。
反过来看,一台 ASIC 交换机 30 W 干完的活,服务器要 300 W——这才是专用芯片真正的护城河:不是快, 是「快得省电」。
30 秒实验
- 找一台你熟悉的设备,判断它是通用还是专用路线(看它有没有「软件版本升级加功能」的说明)。
- 算一下如果全用服务器做转发,你们机房要多几台机器、多几千瓦。
- 查一个 SD-WAN 产品的规格,看它的吞吐是指「IMIX」还是「大包」。
常见误区
- 以为通用服务器能完全替代交换机。小流量可以,线速不行。
- 以为专用设备不能加功能。固件升级照样加,只是加不了芯片不支持的。
- 只看吞吐不看包长。同样标 10 G,64 字节与大包差好几倍。
自测三问(点开对答案)
1. 通用与专用最本质的差别是什么? —— 转发路径是软件逐包走,还是硬件流水线一次通过。 2. 什么位置适合通用服务器? —— 功能常变、流量不大的位置,如负载均衡、WAF、SD-WAN 边缘。 3. 专用芯片真正的优势除了快还有什么? —— 每比特的功耗低一个量级,同样端口数省电省空间。下一节:把这些盒子按 OSI 层次分个类,看一个园区网到底要买多少台。
- ☐ (本节完,下一节 01.04.02 分门别类的网络设备)