2011-02-07 29 views
2

我需要从一个服务器程序每秒推送1000个小对象到100个客户端上的gigibit局域网,所以我需要最快的方法谢谢。udp单播是否比tcp更快?

我知道usp和TCP之间的不同 - 我在udp之上有一层,使它可靠和有序。

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

感谢

回答

0

明确,UDP单播,因为你在它上面一个可靠层。 TCP的问题在于,您无法通过PUSH服务器控制它的速度。它取决于堆栈中编码的许多算法。使用UDP,您可以尽可能快地发送服务器。这是应该以这种速度应对的客户。

这当然让除了标准的“UDP是不可靠”的一部分,因为它似乎你已经解决了:)

MY2C。

PS:UDP组播规则,太可惜了网络硬件得很厉害配置;)

0

性能取决于你对UDP的顶层上。如果您的图层通过三次握手,拥塞窗口,序列号等重新创建TCP,则性能可能会更差。

否则UDP应该更快。

(每秒1000小物件到100个客户不算多,恕我直言)

+0

是的,好评:) – neuro 2011-02-07 13:51:12

3

如果您在UDP上有一个自定义层,那么这个性能还需要考虑到的时候,与TCP进行比较 - 所以我不认为任何人都可以给你一个明确的答案。

我想你一定会唯一的办法就是在最现实的环境可能

5

客户端可以互相沟通,彻底测试这两种解决方案?最终,您的服务器只有有限数量的电线,这会限制您的速度。让客户做一些分配工作可以为您提供更多的连线,因此您的速度比任何协议更改都快。

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