3

接收 TCP 数据包时,Socket会给我重新组装的数据包,以防它们被 IP 分段,因为我保证得到有序的、无间隙的字节流。

当接收 UDP 数据包时,我可能会以与发送不同的顺序接收数据包,或者重复接收数据包,并且其他数据包可能会在此过程中丢失,我希望每个 UDP/IP 数据包在到达时立即“原始”。另一方面,由于我没有得到 IP 标头,我无法自己重新组装数据包。换句话说,我必须依靠Socket为我做这项工作。但这意味着,对于单独的重组,(分段的)数据包必须被缓冲、排序、重复数据删除和丢弃,如果一个片段没有成功的话。

这在现实中如何运作?

4

1 回答 1

3

重组发生在 IP 层,对您来说是透明的。简而言之,除了出于性能原因之外,您无需担心它,除非您自己拆分数据包。

于 2014-07-02T08:32:00.183 回答