📡 第七章 网络硬件设备的选购要点
📄 一句话概括

路由器与交换机的性能口径不同:交换机靠 ASIC 直通,路由器要查表、改 TTL、做 NAT。 所以「标 10 G 却跑不到」是常态,「按什么包长测的」必须问清。

📝 本节和前面几节的关系

上一节的交换机看 pps 与交换容量,这一节的路由器还要多看一层:「小包走哪条路」。 IMIX 模型是理解这件事的钥匙:真实流量的 pps 只有最小包模型的五分之一。

一、IMIX:真实流量长什么样

真实网络里的包不是一样长的,业界常用 IMIX 模型近似:

帧长 字节 占比 典型内容


60 58% ACK、语音、游戏 590 33% 网页、API 1518 9% 文件、视频

加权平均帧长 366.1 字节。 这个数字很关键:它决定了「混合流量」的 pps 只有最小包模型的 21.8%。

换句话说:一台按 IMIX 测能跑到 10 G 的设备,不等于按 64 字节测也能跑 10 G。 而这两个数字在规格书上经常只写一个。

二、路由器比交换机多哪几道坎

交换机转发靠 ASIC:同一套逻辑对大小包都一样快。路由器要做的更多:

一、查路由表:最长前缀匹配,表越大越慢。二、改 TTL 并重算校验和:每个包都要动头部。 三、做 NAT:改地址与端口,还要查会话表。四、加解密:VPN 场景下多一轮运算。

这四件事里,前三件还能被硬件加速,第四件往往是瓶颈。 所以「路由器的吞吐」必须问清「开不开 NAT、开不开 VPN」。 同样一台机器,开与不开可能差三倍。

三、三条实用的核对方法

一、把厂商标称的 pps 除以「最小包线速 pps」,得到一个百分比。 低于 50% 的,说明它没打算跑小包全速。

二、看「IPsec 吞吐」是不是单独给的。 只写「吞吐 10 G」而没写 VPN 吞吐的,通常意味着 VPN 一开就掉到零头。

三、看「并发会话数」与「新建速率」是否分开给。 只给一个的,另一个多半是短板(下一节讲防火墙时会更细)。

这三条都不用看实物,翻规格书就能做:而它们能筛掉大部分「参数好看但不合用」的型号。

四、动手 Demo:路由器为什么「标着 10 G 却跑不到」

这段先用 IMIX 模型算加权平均帧长,再比较「全小包」与「混合流量」在 10 Gbps 下的 pps,看差多少。

mix = [(60, 0.58), (590, 0.33), (1518, 0.09)]
avg = sum(s * p for s, p in mix)
pps_min = link / 8 / 84
pps_mix = link / 8 / (avg + 20)
T([u"IMIX 混合", u"%.0f" % (pps_mix / 1e4),
   u"%.1f%%" % (pps_mix / pps_min * 100)], [0, 0, 0])

实跑输出:

--------------------------------------------------------------------
路由器为什么「标着 10 G 却跑不到」
--------------------------------------------------------------------
**路由器与交换机的性能口径不同。**
**交换机看 pps 与交换容量,路由器还要看「小包走哪条路」。**

**先看一段混合流量的真实构成。**
**业界常用的 IMIX 模型是「大中小三种包各占一定比例」**:

  帧长 字节     占比     加权 字节
  ------------------------------------
  60            58%      34.8
  590           33%      194.7
  1518          9%       136.6

**加权平均帧长 366.1 字节。**

**同一个 10 Gbps 口,按全力打小包和按 IMIX 打,pps 差多少**:

  流量模型       pps 万     相对最小包
  ----------------------------------------
  全 64 字节     1488       100%
  IMIX 混合      324        21.8%

**混合流量的 pps 只有最小包模型的 21.8%。**
  所以「能跑 10 G」这句话,**必须问清「按什么包长测的」**。
  按 1518 字节测能到 10 G,不代表按 64 字节也能。

**路由器比交换机多一道坎**:
  交换机的转发靠 ASIC,同一套逻辑对大小包都一样快。
  路由器要查路由表、改 TTL、重算校验和、做 NAT 与会话匹配。
  这些动作很多落在「慢路径」上,pps 一高就顶不住。
  **所以「路由器标 10 G」通常指「大包吞吐」,「pps」要单独看。**

**一条实用的核对方法**:
  把厂商标称的 pps 除以「最小包线速 pps」,得到一个百分比。
  这个百分比低于 50% 的,说明它根本没打算跑小包全速。
  这种设备放在「大文件为主」的出口没问题,放在「大量小事务」的出口就会卡。

21.8% 这个数字的含义要说清:它不是「性能下降」,是「流量构成变了」。 同样的线速,包变大了,pps 自然变少。

所以「能跑 10 G」这句话本身没错,错的是不写条件: 按 1518 字节测当然能到 10 G,按 64 字节测就只能到 1.5 G 左右。

最后那段「核对方法」比数字更有用:它把「看不懂的规格书」变成「三个可以算的比值」。 而比值不需要专业知识就能算——这就是它的价值。

30 秒实验

  1. 用 ping 的 -l 参数发一个大包和一个小包,看时延差多少。
  2. 算一下你单位出口路由器的 pps 标称值除以最小包线速,是多少。
  3. 想一想:为什么开了 VPN 之后吞吐会掉一个数量级?

常见误区

  1. 以为标 10 G 就是 10 G。要问清包长、功能开启情况与测量条件。
  2. 以为路由器与交换机可以按同一套指标比。路由器多查表、NAT、加解密三道坎。
  3. 以为 IMIX 下 pps 变少是「性能差」。是包变大了,pps 自然变小。
自测三问(点开对答案) 1. IMIX 模型的三种包长与占比是什么? —— 60 字节占 58%、590 字节占 33%、1518 字节占 9%,加权平均 366.1 字节。 2. 路由器比交换机多哪几道处理? —— 查路由表、改 TTL 与重算校验和、NAT 会话匹配、VPN 加解密。 3. 核对路由器性能的三条实用方法是什么? —— 算 pps 比值、单独看 IPsec 吞吐、看并发会话与新建速率是否分开给。

下一节:防火墙的性能——两个「连接数」不要搞混。

相关笔记