我的問題是通過TCP數據傳輸丟失數據。在TCP傳輸丟失數據
我已經建立了一個自制的基於AVR的網絡服務器(或至少試圖)。
我能夠與客戶端PC(我的電腦)進行通信,並且我可以發送幾條HTML線(總數據爲< 100字節),沒有問題。
但是,當我想發送我的基本主頁(〜1KB)時,我只能獲得WireShark 181bytes的數據。
我懷疑問題在於TCP的構建。下面
數據是十六進制格式
從客戶端(我的電腦):
sequence number: de db c7 b1
ack number: 00 0a 00 0b
從服務器(AVR):
sequence number: 00 0a 00 0b
ack number: de b6 c9 18
總TCP長度:935byte,IP和TCP標題20-20字節
我設置了哪些設置錯誤?
我想我的問題並不清楚。 我有一個大約1KB的頁面,所以它適合於一個TCP數據包。 這個數據包是通過AVR正確生成的,但是在傳輸過程中(LAN)只收到181byte。我知道數據包可能會丟失,但數據包的一部分?並在局域網?哦,我得到的大小總是181byte。 – 2014-10-31 19:00:01
沒有TCP數據包這樣的東西,只有TCP數據流。在TCP中,您可以放心地忽略MTU。但是你不能忽略send和recv的返回碼。 – 2014-11-01 08:58:26