當接收到TCP數據包時,Socket
會給我重組的數據包,以防IP分片,因爲我保證得到一個有序的,無間隙的字節流。當我接收到UDP數據包時,我可能會以不同的順序接收數據包,而不是發送或複製,並且其他數據包可能會丟失,我希望每個UDP/IP數據包都是「原始的」,立即當它到達時。另一方面,由於我沒有得到IP頭,我無法自己重新組裝數據包。換句話說,我必須依靠Socket
爲我完成這項工作。但這意味着,對於單獨重組而言,(碎片)數據包必須進行緩衝,排序,放棄和丟棄,如果片段不成立的話。請問Socket將IP分片數據包作爲一個重組的UDP數據包傳遞嗎?
這是如何工作的現實?
通常情況下,對於UDP,您可以爲每個數據包自己添加一種標題,以便識別數據並知道什麼時候丟失了某些數據。您還可以選擇足夠小的分組大小以防止分裂。如果碎片化發生,我不知道如何處理它。 – PMF