网络延迟基础:延迟的构成、度量与波动性

做跨所套利,说白了就是在跟时间赛跑。你比别人慢1毫秒,可能就吃不到价差了。我刚开始接触这个领域时,总觉得网络延迟不就是个数字吗?后来被市场狠狠教育了几次,才真正理解延迟的每一个细节都值得深挖。

今天咱们聊聊网络延迟的基础。这部分内容不复杂,但很重要。你想想看,如果连延迟是什么都搞不清楚,后面那些对抗技术根本无从谈起。

网络延迟的构成:三部分缺一不可

网络延迟不是单一的东西。它由三部分组成:传输延迟、处理延迟、排队延迟。我习惯把它们拆开来看,因为每一部分的优化手段都不一样。

1. 传输延迟

这是光信号在光纤里跑的时间。说白了,就是距离除以速度。光在光纤中的传播速度大约是真空光速的2/3,也就是每秒20万公里左右。

举个例子:上海到深圳的直线距离约1200公里。那么传输延迟就是:

传输延迟 = 距离 / 传播速度
         = 1200 km / (200,000 km/s)
         = 6 毫秒

嗯,这里要注意:这是理想情况。实际线路会有绕行,所以真实延迟会比这个值大一些。我在项目中遇到过,某条专线的实际路由比直线距离多了30%,直接导致延迟多了近2毫秒。

核心结论:传输延迟是物理定律决定的,你没法改变光速。唯一能做的就是缩短距离——把服务器搬到交易所隔壁。

2. 处理延迟

这部分是设备处理数据包花的时间。包括网卡接收、协议栈解析、应用程序处理等。我见过很多团队只盯着传输延迟,却忽略了处理延迟——其实这部分往往才是优化空间最大的地方。

处理延迟的典型构成:

  • 网卡中断处理:几十微秒到几百微秒
  • TCP/IP协议栈:几十微秒,取决于包大小
  • 应用层逻辑:从几微秒到几毫秒不等

我曾经帮一个团队排查问题,发现他们的处理延迟占了总延迟的60%。原因很简单——用了通用的消息中间件,每次处理都要经过好几层封装。换成直连的UDP后,处理延迟直接降了一个数量级。

我的建议:做套利系统时,尽量用用户态协议栈。内核态的那些处理流程,对延迟敏感的应用来说太慢了。

3. 排队延迟

这是最容易被忽视的部分。数据包在交换机、路由器、网卡缓冲区里排队等待处理的时间。为什么会有排队?因为瞬间流量可能超过设备的处理能力。

排队延迟的特点:

  • 它是动态变化的,不像传输延迟那样固定
  • 流量越大,排队延迟越大
  • 突发流量会导致排队延迟急剧上升

我记得有一次做压力测试,平时延迟只有2毫秒的系统,在行情爆发时突然跳到50毫秒。查了半天,发现是交换机缓冲区满了,数据包排队等了40多毫秒。

避坑指南:我曾经以为买最好的交换机就万事大吉。后来发现,即使是最贵的设备,在流量超过设计容量时也会出现排队。所以一定要做容量规划,留出足够的余量。

延迟的度量单位:从毫秒到纳秒

做跨所套利,你得对时间单位有感觉。不同场景下,关注的粒度完全不同。

单位 符号 换算 典型场景
s 1 s 人工交易、风控检查
毫秒 ms 10⁻³ s 跨所套利、行情推送
微秒 μs 10⁻⁶ s 高频交易、硬件加速
纳秒 ns 10⁻⁹ s FPGA处理、芯片内部

你想想看,1毫秒等于1000微秒。而一个数据包在光纤里跑1公里大约需要5微秒。所以,如果你能优化掉1毫秒的延迟,就相当于把服务器搬近了200公里——这个性价比非常高。

我个人习惯用微秒作为基本单位。毫秒太粗,纳秒又太细。微秒刚好能覆盖大部分网络场景。

延迟的波动性:比延迟本身更可怕

固定延迟不可怕,可怕的是延迟在不停变化。为什么?因为套利策略依赖的是两个交易所之间的价差。如果延迟是固定的,你可以通过校准来消除影响。但如果延迟忽高忽低,你永远不知道看到的价差是真实的还是延迟造成的。

延迟波动性通常用以下几个指标衡量:

  • 抖动(Jitter):延迟的标准差。抖动越大,延迟越不稳定。
  • 最大延迟:最坏情况下的延迟。这个值决定了你的策略会不会错过机会。
  • 延迟分布:延迟值的概率分布。通常不是正态分布,而是有长尾的。

我在项目中遇到过最极端的情况:某条线路的平均延迟只有5毫秒,但最大延迟能达到200毫秒。这种线路根本没法做套利——你永远不知道什么时候会突然卡一下。

关键认知:做跨所套利时,不仅要看平均延迟,更要看延迟的稳定性。一条延迟10毫秒但波动很小的线路,可能比一条延迟5毫秒但波动很大的线路更适合套利。

为什么会这样?因为套利策略本质上是在做相对定价。如果两个交易所的延迟波动不同步,你看到的价差信号就是扭曲的。我见过有人花大价钱优化了到A交易所的延迟,却忽略了到B交易所的延迟波动——结果套利效果反而更差了。

知识体系总览

下面这张图把网络延迟的核心知识点串起来了。你可以把它当作本章的思维导图:

网络延迟知识体系 网络延迟 延迟构成 传输延迟 处理延迟 排队延迟 度量单位 毫秒(ms) 微秒(μs) 纳秒(ns) 延迟波动性 抖动(Jitter) 最大延迟 延迟分布 核心:延迟的稳定性比绝对值更重要 优化方向:缩短距离 → 减少处理 → 控制排队

这张图把本章的三个核心知识点串在了一起。你可以看到,延迟构成、度量单位、波动性这三者是相互关联的。理解它们之间的关系,比死记硬背每个概念更重要。

好了,网络延迟的基础就聊到这儿。记住一句话:延迟是物理的,但优化是工程的。下一章我们会深入具体的测量方法,到时候再细聊。


专注资料整理