2009-08-19 91 views
0

我試圖讓我的頭繞過TCP並解析大量的RFC並沒有幫助。我相信我理解連接和關閉握手,但我似乎無法找到任何總結實際數據流外觀的內容。握手後的TCP數據包

TCP數據包看起來像之間連接和關閉握手是什麼? (特別是頭部)

回答

4

在連接期間通常的穩定狀態的情況下,報頭將具有:

  • 適當地設定目的地和源端口;
  • ACK標誌設置;
  • 如果連接本質上是事務性的(而不是批量傳輸),PSH標誌也可能被設置;
  • 序號字段設置爲本端發送的下一個字節的序號(如果有的話,統計此分組中的數據爲「待發送」);
  • 確認字段被設置爲尚未從另一端收到的最早字節的序列號;
  • 窗口字段顯示此端的接收窗口中的剩餘空間 - 使用的編碼取決於窗口縮放是否在初始連接設置中進行協商。

也可能有一個8型選項字段,代表RFC1323中描述的時間戳選項。因此,例如,在服務器向客戶端發送大量數據的HTTP連接部分期間,客戶端將發送具有ACK集合的數據包,序列號字段保持不變,確認字段按服務器正在發送的段的大小遞增,並且窗口大小大約在一個段的大小附近。服務器將發送包含ACK集合的數據包,序列號字段按發送段的大小前進,確認字段保持不變,窗口大小爲最大值。

我建議使用Wireshark來檢查一系列真實世界的連接。

+0

謝謝一堆。這正是我所期待的。 – 2009-10-11 23:30:18