我正在实现一个系统,其中网络上的一台设备通过发送带有8个字节左右数据的小型UDP数据包以很高的频率(每秒数百或数千个查询)进行查询。这是由另一个应用程序(可能在另一个设备上)接收的,该应用程序执行一些非常简单的处理并发送包裹在另一个UDP数据包中的几字节大的结果。
我想知道哪种往返时间对于典型的硬件是可行的,其中通信系统可能通过相隔数米的有线以太网连接,并考虑了传播和传输延迟等。
也欢迎其他想法和建议。
我正在实现一个系统,其中网络上的一台设备通过发送带有8个字节左右数据的小型UDP数据包以很高的频率(每秒数百或数千个查询)进行查询。这是由另一个应用程序(可能在另一个设备上)接收的,该应用程序执行一些非常简单的处理并发送包裹在另一个UDP数据包中的几字节大的结果。
我想知道哪种往返时间对于典型的硬件是可行的,其中通信系统可能通过相隔数米的有线以太网连接,并考虑了传播和传输延迟等。
也欢迎其他想法和建议。
Answers:
Juniper MX80的示例具有大约8us的入口->出口延迟,在低延迟直通开关上,它可以小于1us(也许是0.7us)。(请记住,直通交换机不能100%地进行直通,只有当出口端口恰好处于空闲状态时才可以!)
1km的光纤大约有5us的延迟(再次,单向)。
对于最小大小的有效负载(46B),@ 10G的序列化延迟约为67ns(0.067us),通过提高链接速度,可以减少序列化延迟。
IP标头是20B,UDP标头是8B,您的数据是8B,所以您只有36B的数据,这意味着您的以太网有效负载将包含您必须发送的10B垃圾,即,如果您要添加一些内容,请添加它,它的延迟成本为0。
我希望您可以通过将设备延迟乘以设备计数并为每公里光纤增加5us,然后再乘以2来推断RTT。
我无法抗拒添加有关HFT的一些想法。
根据该数据, HFT数量在2009年至2012年间减半。我希望看到一些有关HFT延迟及其对利润的影响的科学论文或只是真实数据。我怀疑影响贸易利润的延迟比我们现在所说的延迟要大得多。为最大的交易所之一建立网络的我的朋友似乎认为,只是客户在不了解规模的情况下“降低==更好”。
我完全可以理解,当很少有人这样做时,当您可以观察到marketA没有看到变化,marketB确实看到并利用了HFT时,HFT有什么用。有些人在谈论使用法规通过对每笔交易征税来停止HFT,这对每个人来说都是昂贵的,我认为这不是必需的,我认为机会之窗已经关闭。
我认为在常规的半调谐硬件上,您应该能够:
在10gig的10美元中。如果您确实将事情锁定了,那么这个数字可能会大大降低。
您将看到的几乎所有延迟都不来自网络硬件/电缆,而是来自主机系统。合理的直通交换机(Arista,Gnodal,New Cisco等)将低于1us。
首先要确保将消耗UDP数据包的进程固定在与NIC中断相同的内核上。从那里,确保已禁用NIC上的合并,并从那里确保已打开MSI-X和DCA。
如果您更认真...请查看SolarFlare的OpenOnload。他们还有一套用于测试/验证性能的工具。