当收到TCP数据包时,Socket
会给我重新组装的数据包,以防它们被IP分片,因为我保证会得到一个有序的,无间隙的字节流。
当接收UDP数据包时,我可能会以不同于发送的顺序接收数据包,或者重复数据包,并且其他数据包可能会在此过程中丢失,我本来希望将每个UDP / IP数据包“生成”,立即它来了。另一方面,由于我没有获得IP头,我无法自己重新组装数据包。换句话说,我必须依靠Socket
为我做这份工作。但这意味着,对于单独的重新组装,(碎片化的)数据包必须进行缓冲,排序,去除和丢弃,如果片段不成功的话。
这在现实中如何运作?
答案 0 :(得分:3)
重组在IP层发生,对您来说是透明的。简而言之,除了出于性能原因之外,您不需要担心它,除非您自己拆分数据包。