IP分片与重组机制详解

需积分: 10 3 下载量 62 浏览量 更新于2024-07-29 收藏 788KB PDF 举报
"TCP-IP卷2-10_IP的分片与重组" 在TCP/IP通信中,IP(Internet Protocol)层扮演着至关重要的角色,它负责数据在网络中的传输。本章详细介绍了IP分片与重组的过程,这对于理解网络数据包的传输机制至关重要。 IP分片是当一个IP数据报(datagram)的大小超过了目标网络接口的最大传输单元(Maximum Transmission Unit, MTU)时,路由器为了使其能适应网络传输条件而进行的操作。数据报会被分割成若干小块,每个小块被称为一个IP分片。这些分片在目的地重组成原始数据报,交由上层协议(如TCP或UDP)处理。IP分片通常发生在路由器上,因为路由器需要判断数据报是否超过下游网络的MTU。 在IP首部,有三个关键字段用于实现分片和重组:标识字段(ip_id)、标志字段(ip_off的3个高位比特)和偏移字段(ip_off的13个低位比特)。标识字段是一个唯一的值,用于区分同一数据报的不同分片;标志字段包含两个重要的标志位,分别是不分片(Don't Fragment, DF)和更多分片(More Fragments, MF)标志。DF标志用来指示是否允许路由器对数据报进行分片,而MF标志则表示该分片是否是数据报的最后一个分片。偏移字段则用于表示当前分片相对于原始数据报起始位置的偏移量,以8字节为单位计算。 在Net/3体系结构中,访问和设置这些标志位的方法与标准IP略有不同,通过IP_DF和IP_MF掩码来操作IP_off字段。然而,对于普通的应用层程序,如使用UDP或TCP,Net/3不直接提供对DF标志的控制。程序需要使用原始IP接口来构造并发送包含自定义IP首部的数据报,这样运输层就可以直接设置DF比特。例如,TCP的路径MTU发现机制就需要设置DF标志以探测网络路径上的最小MTU。 分片过程可能导致分片沿着不同的路径到达目的地,因此,只有目的主机能够收集所有的分片并进行重组。重组过程中,目的主机根据标识字段匹配分片属于同一数据报,然后依据偏移字段确定每个分片在原始数据报中的相对位置。一旦所有分片都到达,它们按照正确的顺序组合起来,恢复成原始数据报,并传递给相应的运输层协议(如TCP或UDP)继续处理。 IP分片虽然提供了适应不同网络环境的能力,但也带来了一些问题,比如增加了网络延迟和复杂性,以及可能的安全风险,如IP碎片攻击。因此,通常建议尽量避免产生大到需要分片的IP数据报,通过合理设置MTU值或使用路径MTU发现来优化网络性能。