由于在Internet上传输信息的最大单位变为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字节,整个Internet几乎也将完全以1500 B的大小工作。但是,这并不意味着这些通信技术无法传输更大的数据包。

例如,在802.11(更广泛地称为WiFi)中,MTU为2304 bps,如果您的网络使用FDDI,则MTU为4352 bps。以太网本身具有“巨型帧”的概念,可以为MTU分配最大9000 bps的大小(支持NIC,交换机和路由器的这种模式)。

但是,在Internet上这不是特别必要。由于主要的Internet干线主要是以太网连接,因此实际上非官方的最大数据包大小设置为1500 B,以避免其他设备上的数据包分段。

数字1500本身很奇怪-例如,人们希望计算机世界中的常数将基于2的幂。那么1500 B是从哪里来的,为什么我们仍在使用它们呢?

幻数


以太网进入世界的第一个重大突破是以标准10BASE-2(薄)和10BASE-5(厚)的形式出现的,其中的数字表示单个网段可以覆盖数百米。

由于当时存在许多竞争协议,并且Iron具有其自身的局限性,因此该格式的创建者承认,数据包缓冲存储器的要求在魔术数字1500的出现中起作用:

回顾一下,很明显,可能会有更大的最大值。最好的解决方案是,如果我们在早期阶段增加了NIC(网络控制器)的成本,这将阻止以太网如此广泛地传播。

但是,这还不是全部。在工作中“以太网:本地计算机网络中的分布式数据包交换”,1980,对在网络中使用大型数据包的效率进行的最早分析之一。那时,这对于以太网尤为重要,因为它们可以通过一根同轴电缆连接所有系统,或者由能够一次向一个网段的所有节点发送一个数据包的集线器组成。

有必要选择一个数字,该数字在分段传输消息时(有时很忙)不会造成太大的延迟,同时又不会增加太多的数据包数量。

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

从那时起,各种其他消息传递系统出现并消失了,但是其中以太网具有自1500 B以来的最低MTU值。要超过网络中的最小MTU值,可能会导致数据包碎片或参与PMTUD [寻找最大的MTU值。选择的路径]。两种选择都有其自身的特殊问题。即使有时主要的OS制造商忽略了更低的MTU值。

绩效因素


现在,我们知道Internet上的MTU限制为1,500 B,这在很大程度上是由于旧的延迟和硬件限制所致。这对互联网性能有多大影响?



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



如果将这两个图组合在一起,则会得到以下内容(每个数据包大小范围的流量估计):



或者,如果查看所有这些标头和其他服务信息的流量,我们将获得与另一个图相同的图规模:



带宽的很大一部分用于最大大小类的数据包的报头。由于在流量高峰时,最大的开销成本为246 Gb / s,因此可以假设,如果在这种可能性仍然存在的情况下我们全部切换到“巨型帧”,则这些开销将仅为41 Gb / s。

但是,我认为,今天这列火车已经离开了互联网的大部分。而且,尽管某些提供商使用的MTU等于9000,但大多数提供商不支持它,并且不时尝试在Internet上进行全局更改已变得非常困难。

All Articles