我對這個問題有另一個問題,但我沒有正確地問,所以在這裏我再次去!奇怪的發送()問題(使用Wireshark日誌)
我發送的文件是通過大塊發送的。現在,我正在用不同的數字來計算該塊的大小,以查看哪種大小最有效。
在本地主機上測試時,任何塊大小似乎都正常工作。但是當我通過網絡測試它時,最大塊大小似乎是8191字節。如果我嘗試更高,轉移變得極其痛苦,緩慢。
爲了說明會發生什麼,當我使用8191字節的塊大小以及使用8192字節的塊大小時,以下是Wireshark日誌的前100行:(發送方爲192.168.0.102,接收方是192.168.0.100)
8191:http://pastebin.com/E7jFFY4p
8192:http://pastebin.com/9P2rYa1p
注意如何在8192日誌中,線路33上,接收器需要很長的時間到ACK的數據。這在103行和132行再次發生。我相信這個延遲是問題的根源。
請注意,我沒有修改SO_SNDBUF選項,也沒有修改TCP_NODELAY選項。
所以我的問題是,爲什麼我在發送8192字節塊文件時延遲應答,當使用8191字節的塊時,一切正常?
你能展示一些代碼嗎?這可能會讓我們知道發生了什麼。另外,你的代碼是否在雙方運行?或者只是連接的一側? – Pretzel 2010-04-22 21:02:25
我加了一些相關章節的僞代碼。 – Meta 2010-04-23 00:00:18