互联网上信息传输的最大单位是如何变成1500字节的

互联网上信息传输的最大单位是如何变成1500字节的

以太网无处不在,数以万计的制造商生产支持它的设备。 然而,几乎所有这些设备都有一个共同点—— MTU:

$ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP 
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff

MTU(最大传输单元)定义单个数据包的最大大小。 一般来说,当您与 LAN 上的设备交换消息时,MTU 约为 1500 字节,几乎整个互联网都以 1500 字节运行,但这并不意味着这些通信技术不能传输更大的数据包大小。

例如,802.11(俗称WiFi)的MTU为2304字节,如果您的网络使用FDDI,那么您的MTU为4352字节。 以太网本身有“巨型帧”的概念,其中MTU最多可以分配9000字节的大小(网卡、交换机和路由器都支持这种模式)。

然而,在互联网上这并不是特别必要。 由于互联网的主干网主要由以太网连接组成,因此事实上的非官方最大数据包大小设置为 1500B,以避免其他设备上的数据包碎片。

数字 1500 本身很奇怪——例如,人们会期望计算机世界中的常数基于 1500 的幂。 那么XNUMXB从何而来,为什么我们还在使用它呢?

幻数

以太网的第一个重大突破是以标准的形式出现的。 10BASE-2 (薄)和 10BASE-5 (粗),其中的数字表示特定网段可以覆盖多少数百米。

由于当时有许多相互竞争的协议,而且硬件也有其局限性,该格式的创建者承认数据包缓冲区的内存要求在幻数 1500 的出现中发挥了作用:

事后看来,显然更大的最大值可能是更好的解决方案,但如果我们尽早增加 NIC 的成本,就会阻碍以太网的普及。

然而,这并不是故事的全部。 在 工作 “以太网:本地计算机网络中的分布式数据包交换”,1980 年,提供了对在网络中使用大数据包的有效性的最早分析之一。 当时,这对于以太网尤其重要,因为它们可以使用一根同轴电缆连接所有系统,或者由能够一次向同一网段上的所有节点发送一个数据包的集线器组成。

有必要选择一个在分段传输消息时(有时非常繁忙)不会导致过高延迟的数字,同时不会过多地增加数据包的数量。

显然,当时的工程师选择了数字1500 B(约12000位)作为最“安全”的选择。

此后,各种其他消息系统不断出现和消失,但其中以太网的 MTU 值最低,为 1500 字节。超过网络中的最小 MTU 值意味着要么导致数据包碎片,要么参与 PMTUD [查找最大数据包大小]对于选定的路径]。 这两种选择都有其自身的特殊问题。 即使有时大型操作系统制造商将 MTU 值降低得更低。

效率系数

我们现在知道,互联网 MTU 限制为 1500B,这主要是由于遗留延迟指标和硬件限制。 这对互联网的效率有多大影响?

互联网上信息传输的最大单位是如何变成1500字节的

如果我们查看来自大型 Internet 交换点 AMS-IX 的数据,我们会发现至少 20% 的传输数据包具有最大大小。 您还可以查看 LAN 总流量:

互联网上信息传输的最大单位是如何变成1500字节的

如果将两个图结合起来,您会得到如下所示的内容(每个数据包大小范围的流量估计):

互联网上信息传输的最大单位是如何变成1500字节的

或者,如果我们查看所有这些标头和其他服务信息的流量,我们会得到不同比例的相同图表:

互联网上信息传输的最大单位是如何变成1500字节的

相当大一部分带宽花费在最大尺寸类别的数据包的报头上。 由于峰值流量时的最高开销为 246 GB/s,因此可以假设,如果在这种选项仍然存在的情况下全部切换到“巨型帧”,则该开销大约仅为 41 GB/s。

但我认为今天对于互联网的最大部分来说,火车已经离开了。 尽管一些提供商支持 9000 的 MTU,但大多数提供商并不支持它,事实证明,尝试在互联网上全局更改某些内容是极其困难的。

来源: habr.com

添加评论