首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高频交易- TCP > UDP?

高频交易- TCP > UDP?
EN

Stack Overflow用户
提问于 2011-10-31 10:45:04
回答 5查看 5.7K关注 0票数 9

有人告诉我,对于需要低延迟的高频交易(HFT)系统,TCP在UDP上使用。有人告诉我,使用TCP可以建立点对点连接,而使用UDP则不能,但据我所知,您可以将UDP数据包发送到特定的IP/端口。

这个article中使用了几个参数来解释为什么UDP比TCP更适合游戏,但我认为这与高频相关。

为什么TCP更适合用于HFT?

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-10-31 10:55:45

如果你不需要TCP提供的一些特性,那么UDP比TCP更好。每个功能都有成本,所以如果你不需要功能,你就无缘无故地付出了成本。

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

如果有一种方法可以做所有这些事情,而不是TCP做这些事情的方式,那么TCP就会这样做。你会有一只手被绑在背后,因为TCP是由地球上一些最优秀的人大量优化的,并且是在内核中实现的。

票数 15
EN

Stack Overflow用户

发布于 2011-10-31 10:55:09

没有理由期望已经建立的TCP连接上的数据流会比UDP上的相同数据慢,而且您还会得到校验和、重试和所有其他TCP好处。UDP主要在以下情况下胜出:您可以放弃可靠性,或者许多TCP握手的开销太高,例如使用常见的DNS查询。

票数 5
EN

Stack Overflow用户

发布于 2011-11-06 10:34:26

TCP的速度更快,因为当使用几个连接时,重要的区别是现代网卡在TCP上执行大量的加速,而在UDP上没有那么多加速。这意味着有更多的开销来处理每个UDP数据包,因此它们无法竞争,除非您需要同时发送给多个收件人。

然而,UDP组播路由仍然遭受与单播UDP每数据报开销相同的问题。因此,许多HFT系统使用硬件加速系统,可以通过TCP跨多个NIC多路复用数据流,例如Solace。

但现在,您希望完全绕过内核,比如使用Solarflare或Mellanox之类的用户空间IP堆栈,或者甚至使用RDMA跳过内核和IP堆栈。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7949526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档