我需要從一個服務器程序每秒推送1000個小對象到100個客戶端上的gigibit局域網,所以我需要最快的方法謝謝。udp單播是否比tcp更快?
我知道usp和TCP之間的不同 - 我在udp之上有一層,使它可靠和有序。
我應該使用哪一個?爲什麼? Udp單播或TCP。對於路由器的原因,我不能使用Udp組播。
感謝
我需要從一個服務器程序每秒推送1000個小對象到100個客戶端上的gigibit局域網,所以我需要最快的方法謝謝。udp單播是否比tcp更快?
我知道usp和TCP之間的不同 - 我在udp之上有一層,使它可靠和有序。
我應該使用哪一個?爲什麼? Udp單播或TCP。對於路由器的原因,我不能使用Udp組播。
感謝
明確,UDP單播,因爲你在它上面一個可靠層。 TCP的問題在於,您無法通過PUSH服務器控制它的速度。它取決於堆棧中編碼的許多算法。使用UDP,您可以儘可能快地發送服務器。這是應該以這種速度應對的客戶。
這當然讓除了標準的「UDP是不可靠」的一部分,因爲它似乎你已經解決了:)
MY2C。
PS:UDP組播規則,太可惜了網絡硬件得很厲害配置;)
性能取決於你對UDP的頂層上。如果您的圖層通過三次握手,擁塞窗口,序列號等重新創建TCP,則性能可能會更差。
否則UDP應該更快。
(每秒1000小物件到100個客戶不算多,恕我直言)
如果您在UDP上有一個自定義層,那麼這個性能還需要考慮到的時候,與TCP進行比較 - 所以我不認爲任何人都可以給你一個明確的答案。
我想你一定會唯一的辦法就是在最現實的環境可能
客戶端可以互相溝通,徹底測試這兩種解決方案?最終,您的服務器只有有限數量的電線,這會限制您的速度。讓客戶做一些分配工作可以爲您提供更多的連線,因此您的速度比任何協議更改都快。
TCP本質上就是具有可靠性層的UDP--正是你所擁有的。然而,TCP是在硬件中實現的並且已被證明。您的可靠性層是軟件(較慢)和未經證實(風險)。
是的,好評:) – neuro 2011-02-07 13:51:12