兩個要點:
- 同組包識别
- 每組最後一個包識别
同組包識别使用ACK實作。資料包之是以被拆分是由于鍊路層以太網限制,并非傳輸層或網絡層限制。
資料到達傳輸層時還是完整的,被拆分後一并發出,此時使用ACK确認的前一收到包是同一個。
第二個問題的解決是抓包發現的,每組内的包TCP标志設定了ACK,每組最後一個包同時設定ACK和PSH。可以以該标志作為一個組包接受結束的标志。
不貼代碼了,上傳了一個工程,VS2015編譯。
點選打開連結
暫時未考慮丢包、重傳情況,同組内的包TCP序列号是連續的,可以據此實作。