3、网络与硬件基础:低延迟网络架构、时间同步(NTP/PTP)、硬件选型(FPGA、网卡、服务器)
做高频交易的人都知道一句话:“你的对手不是市场,是物理定律”。
我入行那会儿,带我的老工程师跟我说过一句让我记到现在的话——「行情数据从交易所网口到你策略进程的每一纳秒,都是真金白银」。嗯,这话一点不夸张。今天这一章,我们就来聊聊底层那些“硬核”的东西:网络怎么搭、时间怎么对、硬件怎么选。
3.1 低延迟网络架构:别让数据在路上堵车
先问一个问题:你从上海到北京,坐高铁快还是开车快?
答案显而易见。但很多人做网络架构时,偏偏选了“开车”的方案。
核心原则就一条:减少跳数,减少转发。
我个人习惯把网络架构分成三层来看:
- 接入层:直接连交易所的机房。这里尽量用万兆甚至25G/100G的光纤直连,别过交换机。我在项目中遇到过,有人为了省光纤钱,硬是串了一台千兆交换机,结果延迟直接多了几十微秒——这在高频里简直是灾难。
- 汇聚层:如果你必须用交换机,选低延迟交换机(比如思科Nexus 3000系列、Mellanox SN系列)。注意,别开那些花里胡哨的功能(比如ACL、QoS复杂队列),每多一个功能,延迟就多一截。
- 核心层:你的策略服务器。这里要绑核、隔离中断,别让操作系统调度给你添乱。
下面这张图是我自己总结的典型低延迟网络架构,你一看就明白:
3.2 时间同步:NTP vs PTP,差的不只是字母
时间不同步,行情数据就是一堆废纸。你想想看,如果你记录的A交易所时间是10:00:00.001,B交易所是10:00:00.002,你怎么判断谁先发生?
NTP(网络时间协议):精度在毫秒级,适合普通交易系统。但高频场景下,毫秒误差足以让你做出完全相反的判断。
PTP(精确时间协议):这才是高频的标配。配合硬件时间戳,精度可以做到亚微秒甚至纳秒级。
具体怎么搭?我建议你这样做:
- 选一台PTP Grandmaster:最好是GPS/北斗驯服的铷钟,精度最高。
- 交换机必须支持PTP Transparent Clock:普通交换机转发PTP包时会引入抖动,Transparent Clock能自动修正这个误差。
- 服务器网卡开启硬件时间戳:在Linux下用
ptp4l和phc2sys配置。
下面是一个典型的PTP配置示例:
# ptp4l 配置文件 (ptp4l.conf)
[global]
network_transport L2
delay_mechanism P2P
time_stamping hardware
ptp_dst_mac 01:1B:19:00:00:00
logAnnounceInterval 1
logSyncInterval 0
logMinDelayReqInterval 0
3.3 硬件选型:FPGA、网卡、服务器
硬件选型这事儿,说白了就是“用钱换时间”。但钱要花在刀刃上。
3.3.1 网卡:你的数据入口
网卡是行情数据进入服务器的第一道关卡。选错了,后面再优化也白搭。
| 特性 | 普通网卡 | 低延迟网卡 |
|---|---|---|
| 延迟 | 10-50μs | < 1μs |
| 硬件时间戳 | 不支持 | 支持(PTP) |
| DPDK支持 | 有限 | 原生支持 |
| 推荐型号 | Intel I350 | Mellanox ConnectX-5/6, Solarflare X2522 |
我个人习惯用Mellanox的卡,尤其是ConnectX-5系列。它内置了硬件卸载引擎,能把TCP/IP协议栈的处理从CPU手里抢过来,延迟直接砍半。
3.3.2 FPGA:硬核加速器
FPGA这东西,说白了就是“用电路写逻辑”。行情数据进来,不用经过CPU,直接在FPGA里完成解析、清洗、组播转发。
我参与过一个项目,用Xilinx Kintex-7 FPGA做行情解析。原来用CPU解析需要5微秒,FPGA只用了200纳秒——快了25倍。
- 你的策略延迟要求 < 1微秒
- 你需要同时处理多个交易所的行情(比如沪深+中金所)
- 你不想让CPU被行情解析占满
常见的FPGA开发板:
- Xilinx Alveo U200/U250:数据中心级,PCIe接口,适合做行情加速卡
- Intel Arria 10:功耗低,适合放在交易所机房
- 国产复旦微FPGA:信创需求时考虑,性能稍弱但够用
3.3.3 服务器:别让CPU成为瓶颈
服务器选型,我总结了三句话:
- CPU要高频:别迷信核心数,高频交易吃的是单核性能。我推荐Intel Xeon W系列或AMD EPYC 7F系列,主频4.0GHz以上。
- 内存要低延迟:用DDR4-3200或DDR5-4800,时序越低越好。别用ECC内存?不,必须用ECC,数据完整性比那点延迟重要。
- PCIe通道要够:网卡、FPGA卡、NVMe硬盘都要抢PCIe通道。至少要有40条PCIe 4.0通道。
3.4 总结:一张表看清你的选择
| 场景 | 网络架构 | 时间同步 | 网卡 | 加速方案 |
|---|---|---|---|---|
| 入门级(延迟 > 10μs) | 千兆交换机 | NTP | Intel I350 | CPU解析 |
| 进阶级(延迟 1-10μs) | 万兆直连+低延迟交换机 | PTP(软件) | Mellanox ConnectX-4 | DPDK |
| 顶级(延迟 < 1μs) | 25G/100G直连+PTP交换机 | PTP(硬件) | Mellanox ConnectX-6 | FPGA |
嗯,这一章的内容就到这里。硬件和网络是高频交易的地基,地基不稳,上面盖多高的楼都没用。下一章我们会聊到行情数据的传输协议——UDP组播和TCP的取舍,那又是另一番天地了。
公众号:蓝海资料掘金营,微信deep3321