第二章:网络硬件基础

做低延迟交易系统,硬件选型是地基。地基没打好,上层软件优化得再好也白搭。今天咱们聊聊网卡、交换机、线缆这些硬家伙,还有硬件加速技术到底是怎么回事。

2.1 网卡(NIC)选型

网卡是交易系统的第一道关卡。我个人习惯把网卡分成三类:通用网卡、智能网卡、FPGA网卡。

类型 延迟 适用场景 代表产品
通用网卡 5-10μs 普通行情接收 Intel X710
智能网卡 1-3μs 高频交易 Mellanox ConnectX-6
FPGA网卡 <1μs 极速交易 Solarflare X2522

选网卡时,我建议重点关注三个指标:

  • 线速转发:别被厂商的"理论带宽"忽悠了。实际能跑满40Gbps的网卡,市面上真不多。
  • 中断延迟:有些网卡支持中断合并,但交易场景下要关掉。我踩过这个坑,一次合并多了几十微秒,订单直接废了。
  • 硬件时间戳:这个必须有。没有硬件时间戳,你根本不知道数据到底什么时候到的。

核心观点:交易网卡选型,延迟比带宽重要。10Gbps够用就别上40Gbps,因为高速率往往意味着更高的处理延迟。

2.2 交换机选型

交换机是网络的中枢神经。做交易系统,我一般只看两种:

  • ToR(Top of Rack)交换机:机柜顶部,连接服务器
  • Spine交换机:核心层,连接多个ToR

选交换机,说白了就是看三个参数:

  1. 端口到端口延迟:越低越好。我见过标称300ns的交换机,实际测出来500ns+。所以一定要实测。
  2. 缓冲区大小:交易场景下,缓冲区越小越好。缓冲区大了反而增加延迟。
  3. PTP支持:精确时间协议。没有这个,多台机器的时间同步就是扯淡。

避坑指南:我曾经遇到过一台交换机,配置了巨型帧后延迟暴增。后来发现是硬件转发引擎对巨型帧处理有bug。所以,别盲目开巨型帧,先测再说。

2.3 光纤与铜缆的选择

线缆这东西,看着简单,其实门道不少。

铜缆(DAC)

  • 便宜,一根线搞定
  • 适合短距离(3米以内)
  • 延迟低,但信号衰减快

光纤

  • 贵,但传输距离远
  • 抗干扰能力强
  • 延迟比铜缆略高(光电转换那一下)

我个人习惯:机柜内部用铜缆,机柜之间用光纤。别问我为什么,问就是经验。铜缆在短距离下延迟确实比光纤低那么一丢丢,但超过5米就别想了。

注意:光纤的弯曲半径有要求。我曾经见过有人把光纤折成90度,结果光功率直接掉到-20dBm,信号全丢了。

2.4 硬件加速技术概述

硬件加速,说白了就是把软件干的活交给硬件干。交易场景下,常见的硬件加速技术有:

  • RDMA:远程直接内存访问。数据从网卡直接进内存,绕过CPU。延迟能降一个数量级。
  • DPDK:数据平面开发套件。绕过内核协议栈,用户态直接操作网卡。我刚开始用DPDK时,觉得这玩意儿太反人类了,但性能确实香。
  • FPGA卸载:把行情解析、订单校验这些逻辑写到FPGA里。延迟能压到纳秒级。

嗯,这里要注意:硬件加速不是万能的。RDMA虽然快,但配置复杂。DPDK虽然性能好,但需要独占CPU核心。选哪种,得看你的业务场景。

我的经验:做交易系统,别一上来就上FPGA。先用DPDK把软件优化到极致,再考虑硬件加速。很多团队连DPDK都没用好,就急着上FPGA,结果钱花了,延迟没降下来。

2.5 知识体系总览

下面这张图,是我自己总结的网络硬件选型决策流程。你想想看,从业务需求出发,一步步往下走,最终落到具体的硬件选型上。

网络硬件选型决策流程 业务需求分析 延迟要求评估 低延迟(<1μs) 普通延迟(>5μs) FPGA网卡 + 光纤 智能网卡 + 铜缆 通用网卡 + 铜缆 硬件加速:RDMA / DPDK / FPGA

这张图的核心逻辑很简单:先搞清楚你的业务到底需要多低的延迟,然后反向推导出硬件选型。别盲目追求极致,够用就好。

最后说一句:硬件选型没有银弹。我见过用FPGA网卡但软件写得一塌糊涂的团队,也见过用通用网卡但优化到极致的高手。硬件是基础,但最终拼的还是系统整体设计能力。


公众号:蓝海资料掘金营,微信deep3321