对ip数据报分片的重组通常发生在目的主机,原因如下:

  

  1、在TCPIP分层中,数据链路层用MTU来限制所能传输的数据包大小,MTU是指一次传送的数据最大长度,不包括数据链路层数据帧的帧头,当发送的IP数据报的大小超过了MTU时,IP层就需要对数据进行分片,否则数据将无法发送成功。

  

  2、IP分片发生在IP层,不仅源端主机会进行分片,中间的路由器也有可能分片,因为不同网络的MTU是不一样的,如果传输路径上的某个网络的MTU比源端网络的MTU要小,路由器就可能对IP数据报再次进行分片,而分片数据的重组只会发生在目的端的IP层。

  

  3、IP层是没有超时重传机制的,如果IP层对一个数据包进行了分片,只要有一个分片丢失了,只能依赖于传输层进行重传,结果是所有的分片都要重传一遍,这个代价有点大,由此可见,IP分片会大大降低传输层传送数据的成功率,所以要避免IP分片。