网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

IPv4数据报的分割与延迟问题

更新时间:2026年03月27日   作者:spoto   标签(Tag):

在IPv4协议中,当数据包的大小超过网络链路的“最大传输单元”时,该数据包会被分割成多个较小的数据包。每个分割后的数据包都包含原始数据包的一部分信息,同时还会包含用于标识该分割后数据包在原始数据包中的位置以及它如何与后续的分割后的数据包相连接的额外信息。

对IPv4数据报分片的需求

  • IPv4数据报碎片化这是必要的,因为网络存在传输单元大小的限制(MTU)。为了确保即使路径中的某些部分只能传输较小的数据包,大型数据包仍然能够到达目的地。
  • 不同的网络可能会有不同的表现/特点。最大传输单元例如,由于局域网技术的差异,可能会导致这种情况发生。
  • 当某个网络希望向具有较小MTU的另一个网络传输数据报时,路径上的路由器可能会将数据报进行分割和重新组装。
  • 在IPv4协议中,当某个数据包的大小超过网络链路的最大传输单元(MTU)时,该数据包会被分割成多个较小的数据包进行传输。
  • 这些片段中的每一个都包含了原始数据包的一部分内容,同时还包含了一些额外的信息。这些信息用于说明该片段在原始数据包中的位置,以及它如何与整个片段序列相衔接。
碎片化

数据包分片机制

每个片段都会被转换为一个数据包。在数据报的头部,会发生以下变化:

  • “总长度”字段的值已更改为该片段的实际长度。
  • “More Fragment”位(MF位)被设置为1,适用于除最后一个片段包之外的所有片段包。
  • “Fragment Offset”字段的值是根据要设置的碎片数量以及MTU来确定的。
  • 头部校验和重新计算一下吧。
片段的格式

示例/例子

对于一个大小为4000字节的数据包,其MTU为1500字节。因此,实际需要传输的数据量为3980字节,而允许传输的最大数据量则限制为1480字节。所以,数据会被分成3个片段来传输。

碎片化示例

对于第一个片段来说,数据大小为1480字节,偏移量为0,而MF标志的值为1。
对于第二个片段来说,数据大小为1480字节,偏移量为185(1480除以8的结果),而MF标志的值为1。
对于第三个片段来说,数据大小为1020字节,偏移量为370(2960除以8),而MF标志的值为0。

需要注意的一点是,所有的片段都拥有相同的识别编号。这意味着,所有这些片段都属于同一个父数据包。

由于碎片化而产生的問題

  • 处理成本增加:碎片化处理需要网络设备投入更多的处理能力和内存资源。这可能会增加处理负担。间接费用/管理费用同时,这些额外的延迟也会给网络带来更多的麻烦。
  • 数据包丢失的可能性增加:由于每个数据片段都是单独传输的,因此在传输过程中出现数据包丢失或损坏的可能性会增加。如果某个数据片段丢失或损坏了,那么整个数据包就需要重新传输,这会带来额外的延迟,同时还会增加网络的拥塞程度。
  • 重新组装的延迟:接收这些被分割后的数据包的实体,必须在处理之前将原始数据包重新组装起来。这个过程可能会引入额外的延迟,尤其是在所有数据片段都未能及时接收到的情况下,或者当各个数据片段的到达顺序不正确时。

为了尽量减少这些问题

通常建议尽可能避免数据分片的情况,确保数据包的大小适合它们所经过的网络连接。这可以通过使用路径MTU发现机制来实现,该机制可以让设备确定在给定网络路径上可以传输的最大数据包大小,而无需进行数据分片处理。

此外,网络管理员还可以实施相关措施。服务质量(QoS)机制,用于优先处理交通流量,从而减少因交通拥堵导致的延误。拥堵.

IPv4数据报延迟

IPv4数据报的延迟指的是在IPv4网络中,一个数据报从源点传输到目标点所花费的总时间。这个时间包括了处理、排队、传输以及传播过程中的延迟。不过,这个数值并不包括数据包丢失或重新传输的情况。

处理延迟

处理延迟指的是路由器或交换机检查数据包的头部信息所需的时间,同时还会检查是否存在位级错误,并决定该数据包的下一跳地址。

这种情况会在网络中的每个中间设备发生。它受到设备的处理速度以及所使用的路由或过滤算法的复杂程度的影响。

此外,它并没有固定的计算公式,因为其效果取决于处理器的速度。而处理器的速度则因不同的计算机而有所差异。

排队延迟

排队等待时间指的是数据包在等待被传输到网络中的过程中所花费的时间。这种延迟通常发生在路由器的缓冲区中,尤其是在设备同时处理多个数据包时。

这会根据当前的网络流量、队列的长度以及所使用的排队算法而有所不同(例如,先进先出算法或优先级排队算法)。

在交通繁忙或拥堵的情况下,排队等待的时间会显著延长,这也会给视频会议或在线游戏等实时应用带来延迟问题。

一般来说,我们无法计算排队延迟的时间,因为并没有适用于此情况的公式。这种延迟取决于以下因素:

  • 如果排队的人数很多,那么等待时间就会变得非常长。而如果队列为空的话,那么等待时间就会很少或根本没有等待时间。
  • 如果短时间内或根本没有时间间隔的情况下,有大量的数据包到达,那么排队等待的时间就会变得很长。
  • 服务器或链接的数量越少,排队等待的时间就越长。

传输延迟

传输延迟所谓传输延迟,指的是将数据包中的所有比特位传输到通信链路上的所需时间。这一时间取决于数据包的大小(以比特为单位来衡量)以及通信链路的带宽(以每秒比特数来表示)。计算传输延迟的公式就是:总比特数除以传输速率。

公式/表达式:TdL / B在何处L= 位数数量B传输速率。

  • 示例/例子在10 Mbps的连接上,一个大小为1 Mb的文件传输时间将会是:

L = 1Mb = 106 比特数,B = 10 Mbps = 10 × 106 每秒比特数
Td L/B = 106 比特 / 10 x 106 每秒比特数
Td= 0.1秒

这种延迟取决于以下因素:

  • 如果有多个活动会话存在,那么延迟就会变得相当明显了。
  • 随着带宽的增加,传输延迟也会降低。
  • MAC协议在很大程度上决定了当链路被多个设备共享时,数据传输的延迟情况。
  • 发送和接收数据包的过程中,操作系统需要执行上下文切换操作,这个过程需要一定的时间。

传播延迟

传播延迟所谓“传输时间”,指的是信号从发送方传递到接收方所需的时间。这一时间取决于两台设备之间的距离,以及介质的传播速度——比如铜缆、光纤还是无线传输方式。

这种延迟是通过将距离除以传播速度来计算得出的。通常情况下,传播速度接近于光速,但实际上,由于介质的不同,传播速度会有所变化,因此实际的速度会慢一些。

Pd= 距离/速度
速度 = 3 × 108米/秒(适用于空气环境)
速度 = 2.1 × 108米/秒(适用于光纤传输)

在像海底电缆或卫星通信这样的长距离连接中,即使使用了高速连接,传播延迟仍然会非常明显。

了解更多关于……的信息计算机网络中的延迟问题

还可能出现其他一些延迟情况:

  • 序列化延迟现在是时候在传输之前,将数据包转换为比特流了。这一过程取决于数据包的大小以及连接的速度。在速度较慢的连接上,这种差异会更加明显。
  • 缓冲延迟这是数据包在队列中等待的时间,此时输出端口处于繁忙状态。这种情况是由于临时性的拥塞导致的。它可能会导致实时传输中的抖动现象。
  • 存储转发延迟从接收到完整的数据包,检查其中的错误,再到将数据包转发出去,整个过程所需的时间是很长的。在存储转发型设备中,这种情况很常见。而且,随着数据包大小的增加,所需的时间也会随之增加。
  • 重传延迟重新发送在传输过程中丢失或损坏的数据包所需的时间。这种情况通常由超时或NACK触发。在不可靠的网络环境中,这种情况会严重影响性能。
  • 拥塞控制延迟由于协议的存在,数据传输速度会有所延迟,从而有助于控制网络流量。这样做可以避免网络过载,但也可能暂时降低网络的吞吐量。

与上述相关的条款/内容

  • 延迟数据包从发送方传输到接收方所需的时间。
  • 抖动/不稳定数据包的到达时间存在差异,这导致数据包实际接收时间与预期接收时间之间存在延迟。

在之前的GATE考试中,关于上述主题的提问如下所示。

  • GATE CS 2012 | 问题42
  • GATE-CS-2013 | 问题65
  • GATE-CS-2014 第3套试题 | 问题65
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料