关于数据碎片/MTU 的困惑 - 为什么首先引入它?

网络工程 ip 层2 第3层 碎片化
2021-07-30 20:27:32

我目前正在作为学士学位的一部分学习网络,我对为什么需要碎片化/MTU 感到有些困惑。在我的讲座幻灯片中,在“网络层的功能”下只说了“必要时分片”,当重新听讲座录音时,讲师并没有真正扩展太多。我们的课程教科书是 Tanenbaum 的“计算机网络”,它也没有提供额外的信息。

我阅读了关于 MTU 的维基百科文章,现在我了解了核心概念,但是,我无法理解为什么首先引入碎片和 MTU。直观地,我可以理解如果有大量数据并且发生小错误,您将不得不重新发送整个巨大的数据包,这是浪费的。这个对吗?使用分片的其他原因是什么?在没有数据碎片/没有 MTU 的假设网络中会发生什么 - 物理层甚至有可能处理它吗?

2个回答

IPv4 的两个基本功能之一是数据包分段(另一个是寻址)。IP 旨在将数据包从一个网络发送到另一个网络。每个网络可以有不同的最大数据包大小。

例如。原始串行 WAN 连接的最大数据包大小可能大于 4000 字节,但以太网指定的最大数据包大小为 1500 字节。如果网络上的主机将 4000 字节的数据包发送到最大数据包大小为 1500 字节的以太网网络,没有分段,路由器将需要简单地丢弃数据包。通过分段,路由器可以将数据包分段为可以在以太网网络上发送的较小数据包。

RFC 791,互联网协议解释了碎片:

如有必要,互联网协议还提供长数据报的分段和重组,以便通过“小数据包”网络进行传输。

-和-

互联网协议实现了两个基本功能:寻址和分片。

-和-

互联网模块使用互联网报头中的字段在需要通过“小包”网络传输时对互联网数据报进行分段和重组。

-和-

在从一个 Internet 模块到另一个 Internet 模块的消息路由中,数据报可能需要遍历最大数据包大小小于数据报大小的网络。为了克服这个困难,互联网协议中提供了分片机制。

等等...



请记住,IPv4 是一项政府/学术实验,它逃脱了实验室并失控。从来没有想过它会成为我们今天拥有的互联网。在看到 IPv4 的优点和缺点后,IETF 设计了 ​​IPv6,它消除了路径中的数据包碎片(需要在发送之前使用 PMTUD 来确定路径中的最小最大数据包大小),以及对 IP 的其他改进。


编辑您对 MTU 的澄清:

MTU 没有像您暗示的那样“引入”。MTU 是第 2 层协议的最大有效载荷大小的函数。每个协议都必须有一个最大负载大小。对于以太网,确定 1500 个八位字节在不垄断介质的情况下可以传输的数据量取得了很好的平衡。其他第 2 层协议的设计者自己决定了第 2 层协议的帧的最大有效载荷大小。

IP 作为第 3 层协议(第 2 层协议的有效载荷),必须与用于承载它的第 2 层协议的 MTU 一起使用。IP 不知道是哪个第 2 层协议携带它,或者在到 IP 数据包目的地的路径中可以使用哪些其他第 2 层协议。


请记住,IP 是由政府计划与大学和电信公司共同设计的,但该计划与当今使用的第 2 层协议的设计无关。IP 旨在由任何第 2 层协议承载。

今天,以太网和 WiFi 几乎是通用的第 2 层介质,但在网络的早期,情况并非如此。有多种类型的 WAN 协议,基于不同的底层技术(主要与电话网络相关)。这些不同的技术具有不同的 MTU 大小。分片用于适应具有不同 MTU 的不同网络类型的遍历。

请注意,路径中的路由器可以对数据包进行分段以适应 MTU,但由接收主机将它们全部重新组合在一起。