我聽說TCP有延遲(出於任何原因),並且有一些選項可以消除較少延遲的延遲。我可以得到一些嗎?TCP模式選項消除延遲?
1
A
回答
2
@Eugen已經指出TCP_NODELAY
,這可能是您的問題最直接的答案。
我會看着一個完全不同的方向:因爲你顯然更關心延遲而不是帶寬,可以考慮使用UDP而不是TCP。是的,有些部件不太方便,但如果你想最大限度地減少延遲,它通常(通常是)更好的答案。
3
你指的是哪個Nagle's algorithm:
是通過減少 一些需要發送 在網絡上的數據包的改進TCP/IP網絡的效率 的一種手段。
通常可以通過TCP_NODELAY
套接字選項在應用程序級別禁用它。
+1
+1用於回答問題。儘管如此,禁用Nagle的算法最終會導致低流量連接的一些重大問題。 Nagle的算法一起批量處理數據以保持TCP/IP開銷不變。通過TCP/IP進行連接以及像Telnet這樣的簡單服務最終可能會在沒有它的情況下高達4000%的開銷。 – jmkeyes
相關問題
- 1. 消除項目中淡化的延遲
- 2. Apache kafka - 消費者延遲選項
- 3. C#TCP第一個消息延遲
- 4. TCP握手延遲
- 5. Linux低延遲tcp流
- 6. 延遲在FIN ACK TCP
- 7. 消息延遲
- 8. JavaScript - 消除文本替換的延遲
- 9. 消除HTML彈出的延遲
- 10. 消除初始按鍵延遲
- 11. 刪除延遲
- 12. 處理延遲填充選擇選項
- 13. ToolStripStatusLabel延遲消息
- 14. MDB消息消費延遲
- 15. HTML選擇:消除瀏覽器按鍵更改的延遲?
- 16. 接收到消息給客戶端時的TCP Remoting延遲
- 17. 在新選項卡中打開延遲
- 18. JList actionlistener選擇項目中的「延遲」
- 19. 小部件首選項「延遲」問題
- 20. 延遲加載WPF選項卡內容
- 21. 延遲計算咕嚕任務選項
- 22. DataTables延遲加載列選項
- 23. 獲取數據包的延遲(TCP \ UDP)
- 24. wireshark中的TCP延遲分析
- 25. 延遲讀取TCP套接字數據
- 26. TCP連接 - 延遲關閉()和RST
- 27. Windows TCP套接字接收延遲
- 28. TCP RST數據包延遲數據包
- 29. 延遲10ms的TCP ACK響應
- 30. Android 3G上的TCP ACK延遲
哦,是TCP比'TCP_NODELAY'選項的UDP慢嗎?我能獲得更多細節嗎? – Eonil
@Eonil:它的某些部分肯定是(例如,用於建立TCP連接的三次握手)。其他部分實際上並不需要速度較慢,但IP堆棧,路由器等傾向於設計假設TCP允許更多延遲,並且在此基礎上優化流量流量。例如,即使您在本地IP堆棧上設置了TCP_NODELAY,路由器仍可能決定將其與其他數據包合併以提高帶寬使用率。 –
@Eonil:最重要的區別在於TCP確保數據包以正確的順序到達,而UDP不能確保任何事情:數據包可能以錯誤的順序到達,根本不是,甚至是重複的。爲了確保這一點,TCP需要一些開銷(握手開始連接,編號的數據包,到達的數據包的確認(以及未到達的數據包的重發))。 –