天天看點

winpcap分段的多個TCP包組裝HTTP資料

兩個要點:

  1. 同組包識别
  2. 每組最後一個包識别

同組包識别使用ACK實作。資料包之是以被拆分是由于鍊路層以太網限制,并非傳輸層或網絡層限制。

資料到達傳輸層時還是完整的,被拆分後一并發出,此時使用ACK确認的前一收到包是同一個。

第二個問題的解決是抓包發現的,每組内的包TCP标志設定了ACK,每組最後一個包同時設定ACK和PSH。可以以該标志作為一個組包接受結束的标志。

不貼代碼了,上傳了一個工程,VS2015編譯。

點選打開連結

暫時未考慮丢包、重傳情況,同組内的包TCP序列号是連續的,可以據此實作。