计算机网络原理-IP分片
计算机网络原理 - IP分片
在计算机网络中,IP分片是一种将IP数据报分割成更小的片段的过程。这种分片机制是为了解决网络传输中的MTU限制(Maximum Transmission Unit)而引入的。本文将介绍IP分片的原理、过程和相关概念。
IP分片的原理
IP分片是在网络层(IP层)进行的,它将大的IP数据报分割成多个较小的片段,以适应不同网络中的MTU限制。MTU是指在某个网络中能够传输的最大数据包大小。当一个IP数据报的大小超过了网络的MTU限制时,就需要进行分片。
IP分片的原理是将原始的IP数据报拆分成多个片段,并在每个片段的首部中添加一些额外的信息,以便接收端能够正确地重新组装这些片段。在发送端,IP层将原始的IP数据报分割成多个片段,并为每个片段设置相应的标识、偏移量和标志位等字段。在接收端,IP层根据这些字段重新组装片段,恢复原始的IP数据报。
IP分片的过程
IP分片的过程如下:
- 发送端的IP层检查待发送的IP数据报的大小是否超过了网络的MTU限制。
- 如果超过了MTU限制,发送端的IP层将原始的IP数据报分割成多个片段。
- 对于每个片段,发送端的IP层设置相应的标识、偏移量和标志位等字段。
- 发送端依次发送这些片段到网络中。
- 接收端的IP层接收到这些片段后,根据标识和偏移量等字段进行排序和组装。
- 接收端的IP层将组装好的IP数据报交给上层的协议进行处理。
相关概念
在IP分片中,有一些相关的概念需要了解:
- 标识(Identification):用于标识一个IP数据报的唯一性,接收端根据标识来判断是否属于同一个IP数据报的片段。
- 偏移量(Fragment Offset):表示片段在原始IP数据报中的位置,以8字节为单位。接收端根据偏移量来确定片段的顺序。
- 标志位(Flags):用于指示片段的状态,包括"不分片"(DF)和"更多片段"(MF)等。
- 片段长度(Fragment Length):表示片段的长度,包括片段首部和数据部分。
- 校验和(Checksum):用于校验IP数据报的完整性。
IP分片试题
最大传输单元(MTU):
网络链路存在MTU (最大传输单元)—链路层数据帧可封装数据的上限
不同链路的MTU不同
大IP分组向较小MTU链路转发时,可以被“分片” (fragmented)
1个IP分组分为多片IP分 组
IP分片到达目的主机后进行“重组”
IP首部的相关字段用于标识分片以及确定分片的相对顺序——总长度、标识、标志位和片偏移
标识字段占16位:标识一个IP分组
IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组的标识
标志位字段占3位:
DF
(Don’t Fragment):不分组
MF
(More Fragment):是否为分组的最后一个
DF =1:禁止分片;
DF =0:允许分片;
MF =1:非最后一片;
MF =0:最后一片(或未分片)
片偏移字段占13位:一个IP分组分片封装原IP分组数据的相对偏移量
片偏移字段以8字节为单位
IP分片过程
假设原IP分组总长度为L,待转发链路的MTU为M;
若L>M,且DF=0,则可以/需要分片
分片时每个分片的标识复制原IP分组的标识
通常分片时,除最后一个分片,其他分片均分为MTU允许的最大分片
一个最大分片可封装的数据应该是8的倍数,因此,一个最大分片可封装的数据为:
M减去20除以8,向下取整,再乘8
需要的总片数为:
L减去20除以d,向上取整
总结
IP分片是一种将IP数据报分割成多个片段的机制,用于解决网络传输中的MTU限制。它通过在每个片段的首部添加一些额外的信息,使得接收端能够正确地重新组装这些片段。在实际的网络通信中,IP分片是由操作系统的网络协议栈自动完成的,应用程序无需关心具体的分片过程。
虽然IP分片可以解决MTU限制的问题,但它也会增加网络传输的复杂性和延迟。因此,在设计网络应用时,应尽量避免产生过大的IP数据报,以减少IP分片的发生。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)