本文共 417 字,大约阅读时间需要 1 分钟。
我们知道, IP层会分片传输, 这是受到了数据链路层MTU的限制, 那么, 分片后, 多个分片在哪里进行重组呢?
在实际传输中, 不同的分片可能经过不同的路径达到最终的目的地, 所以,中间设备很可能值看到某个分片而已, 根本不可能由中间设备(比如路由器)来承担重组的操作。 这是根本的原因。 另外, 如果让中间设备进行重组, 也会加重中间设置的负担。
所以, IP层的多个分片, 在最终的目的地才会重组。
多说一点, 如果某个分片被弄丢了, 那么在最终目的地是没办法正确重组的。 整个IP包就是一个垃圾IP包, IP层也不会有重传机制。 如果上层是TCP, 那么TCP会负责重传。可以看到, 分片会带来一些问题, 所以TCP尽量避免分片, 而采用提前分段的方式。
另外, 多个分片的达到顺序是无法保证的, 在实际的实现中, 发送方经常会故意捣乱这些分片(会有一些好处), 在最终的接收端, 是有足够能力重组这些分片的, 所以不用担心。
转载地址:http://tjwti.baihongyu.com/