udp unicast比tcp更快吗?

时间:2011-02-07 13:42:45

标签: tcp network-programming udp

我需要将每秒1000个小对象从服务器程序推送到gigibit LAN上的100个客户端,所以我需要最快的方法,谢谢。

我知道usp和TCP之间的区别 - 我在udp之上有一层让它可靠和有序。

我应该使用哪种?为什么? Udp单播或TCP。出于路由器的原因,我不能使用Udp组播。

由于

4 个答案:

答案 0 :(得分:5)

客户可以互相沟通吗?最终,您的服务器只有有限数量的电线,这限制了您的速度。让客户进行一些分发工作可以为您提供更多的线路,从而使您的速度倍增,而不是任何协议更改。

TCP本质上是具有可靠性层的UDP - 正是您拥有的。然而,TCP在硬件中实现并且已经过验证。您的可靠性层是软件(较慢)和未经证实(风险)。

答案 1 :(得分:3)

如果您在UDP之上有自定义图层,那么在与TCP进行比较时也需要考虑其性能 - 因此我认为SO上的任何人都无法为您提供明确的权限答案。

我认为你唯一能确定的方法是在最现实的环境中彻底测试这两种解决方案

答案 2 :(得分:0)

最终,UDP单播,因为你有一个可靠的层。 TCP的问题是你无法从PUSH服务器控制它的速度。它取决于堆栈中编码的许多算法。使用UDP,您可以像服务器一样快速发送。那是应该应对这种速度的客户。

这当然让标准的“UDP不可靠”分开,因为它似乎已经解决了这个问题:)

MY2C。

PS:UDP多播规则,可怜的网络硬件配置如此糟糕;)

答案 3 :(得分:0)

性能取决于UDP之上的层。如果您的图层使用三向握手,拥塞窗口,序列号等重新发送TCP,那么性能可能会更差。

否则UDP应该更快。

(100个客户每秒1000个小对象并不多,恕我直言)