高频交易 - TCP> UDP?

n00*_*00b 7 udp tcp low-latency hft

我被告知,对于需要低延迟的高频交易(HFT)系统,TCP通过UDP使用.我被告知使用TCP可以进行点对点连接,而不能使用UDP,但是根据我的理解,您可以将UDP数据包发送到特定的IP /端口.

本文中使用了几个参数来说明为什么UDP> TCP用于游戏,但我可以看到与HFT的相关性.

为什么TCP是一个更好的协议用于HFT?

(管理员:我之前的这个问题的帖子被默默删除,没有任何解释.如果我违反了使用条款,请提醒我这一点,而不是默默地删除问题)

Dav*_*rtz 13

如果您不需要TCP提供的某些功能,UDP优于TCP.每个功能都有成本,因此如果您不需要功能,则无偿支付该费用.

在HFT应用程序中,您几乎需要TCP所需的所有功能.因此,如果您选择UDP,则必须自己实现这些功能.这意味着您必须实现连接建立,连接拆除,重新传输,传输调步,窗口等.

如果有办法做所有那些比TCP正在做的事情更好的事情,那么TCP就是这样做的.你有一只手绑在背后,因为TCP已经被这个星球上的一些最好的头脑大量优化,并在内核中实现.

  • 不确定我同意.当数据包丢失时,TCP将阻止数据流到应用程序,直到成功重新传输.HFT数据就像视频一样 - 如果你没有时间框架,忘了它 - 为时已晚 - 只需获得下一个. (6认同)
  • 这些相同的平台也经过了大量优化的UDP堆栈,在这些平台中,编写此代码的努力有很大的回报.地狱,这些公司正在实施软件FPGA以提高性能.实现自己的UDP传输包装是正确的做法. (4认同)
  • 有些基金拥有自己的内核优化版本,以减少从网卡到算法的延迟. (2认同)

Kir*_*ser 5

没有理由期望已经建立的TCP连接上的数据流比UDP上的相同数据慢,而且你得到校验和,重试以及所有其他TCP优点.UDP主要是在您可以放弃可靠性或许多TCP握手开销过于昂贵的情况下获胜,例如使用常见的DNS查询.