2011-02-07 34 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是在硬件中實現的並且已被證明。您的可靠性層是軟件(較慢)和未經證實(風險)。