我正在重新實現一箇舊的網絡層庫,但是這次使用boost asio。我們的軟件是tcpip與第三方軟件對話。幾條消息在雙方表現都非常好,但有一種情況我誤解了:TCP數據包通常是否重新排序?
第三方一個接一個地發送兩個消息(msg A和B)(實際的短時間),但我只收到一部分消息A在tcp-packet 1中,並且消息A的結束和在tcp-packet 2中的整個消息B.(我用wireshark嗅探)。
我還沒有想到這種情況,我想知道它是否與tcp常見,如果我的圖層應該適應這種情況 - 或者我應該告訴第三方檢查他們在他們身邊做了什麼因爲我收到了不同數據包中的兩個消息。
這是通過相同的套接字嗎? – Default
你的意思是你永遠不會得到完整的信息A? – Default
我使用相同的套接字是的,我收到完整的消息A,但分派到兩個數據包。所有的數據都在這裏。我的問題是與消息B,我沒有看到,因爲它是在同一個數據包中的消息一結束後。 –