2012-07-26 74 views
1

我的應用程序使用TCP連接到服務器,系統工作正常。使用Wireshark我注意到一些60字節的TCP數據包沒有數據發送。這是正常的嗎?60個字節的Tcp數據包,無數據發送

作爲TCP傳輸和握手的一部分,有沒有發送數據的一些數據包?

感謝 庫馬爾

+0

這些包是用IPv4還是IPv6地址發送的? – Nobody 2012-07-27 09:54:17

回答

3

有攜帶任何數據,只有確認接收到的數據包ACK。當使用Wireshark時,它應該在空包上顯示這些「標誌」。

爲了更加準確,您應該顯示wireshark capture的屏幕截圖,所以我們知道您的尺寸是多少。 同時我在這裏解剖的IPv4 TCP流量的一個ACK數據包,這些是我的結果:

 
    Protocol   Size  Description 
Ethernet protocol 14 byte 2 MAC adresses (6 byte), Protocoll type (2 byte) 
Internet protocol 20 byte The default header size 
     TC protocol 32 byte The default header size (20 byte) + options (12 byte) 
_____________________________________________________________________________________ 
      Total 66 byte 
     without EP 52 byte (Probably the size the OP is talking about) 
without EP, Opts 40 byte (The size talked about in the comments) 

在我的情況下的選擇是2個NOP指令(每個1個字節)和兩個時間戳(每個5字節?)。協議的順序與Wireshark中的相同。

Wireshark將信息分解到每個字段,因此您可以看到佔用了多少空間。

+0

我不明白爲什麼一個ACK數據包將是60個字節,但應該是40個? – EJP 2012-07-27 01:05:59

+0

允許IPv4 TCP包承載選項字段,最多可能需要40個字節。最小標題大小(沒有選項)是20個字節,所以這個整齊地加起來60個字節。 – Nobody 2012-07-27 09:51:40

+0

但我不明白爲什麼一個簡單的ACK數據包會有任何選項。 – EJP 2012-07-30 01:02:36