| Translations Blog |

Transparent PNG

Как 1500 байт стали MTU интернета

Перевод статьи - How 1500 bytes became the MTU of the internet

Автор(ы) - Ben Cox

Источник оригинальной статьи:

https://blog.benjojo.co.uk/post/why-is-ethernet-mtu-1500

Карта ethernet 10BASE

CC BY-SA 4.0 - Дмитрий Носачев

Ethernet есть везде, десятки тысяч производителей оборудования говорят и внедряют его. Однако почти каждый канал ethernet имеет один общий номер-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 (Максимальная единица передачи) указывает, насколько большим может быть один пакет. Вообще говоря, когда вы разговариваете с устройствами в вашей собственной локальной сети, MTU будет составлять около 1500 байт, и Интернет также работает почти повсеместно на 1500 байтах. Однако это не означает, что эти технологии канального уровня не могут передавать большие пакеты.

Например, 802.11 (более известный как Wi-Fi) имеет MTU 2304 байта, или если ваша сеть использует FDDI, то у вас есть MTU около 4352 байт. Сам Ethernet имеет понятие “jumbo frames”, где MTU может быть установлен до 9000 байт (на поддерживающих сетевых картах, коммутаторах и маршрутизаторах).

Однако в Интернете это почти не имеет значения. Поскольку магистраль Интернета в настоящее время в основном состоит из каналов Ethernet, фактический максимальный размер пакета теперь неофициально установлен в 1500 байт, чтобы избежать фрагментации пакетов по каналам.

На первый взгляд 1500-это странное число, обычно мы ожидаем, что многие константы в вычислениях будут основаны на математических константах, таких как степени 2. Однако 1500 не подходит ни к одной из них.

Так откуда же взялись 1500 долларов и почему мы все еще их используем?

Магическое число

Первый крупный прорыв Ethernet в мир произошел в виде 10BASE-2 (cheapernet'а) и 10BASE-5 (thicknet-а) - цифр, примерно указывающих, сколько сотен метров может охватывать один сегмент сети.

Поскольку в то время существовало много конкурирующих протоколов и существовали аппаратные ограничения, оригинальный создатель отмечает это в электронном письме, что требования к пакетной буферной памяти имели некоторую игру в магическом числе 1500. (спасибо @yeled за то, что нашел это)

Оглядываясь назад, более длительный максимум, возможно, был бы лучше, но если бы он увеличил стоимость сетевых карт в первые дни, это, возможно, помешало бы широкому распространению Ethernet, так что я на самом деле не беспокоюсь.

Однако это еще не вся история. Статья “Ethernet: Распределенная коммутация пакетов для локальных компьютерных сетей”, опубликованная в 1980 году, представляет собой раннюю заметку об анализе затрат на эффективность больших пакетов в сети. Это было особенно важно для ethernet в то время, так как сети ethernet обычно делили бы один и тот же коаксиальный кабель между всеми системами, или существовали бы концентраторы ethernet, которые позволяли бы передавать только один пакет за раз вокруг всех членов сегмента ethernet.

Нужно было выбрать число, которое означало бы, что задержка передачи на этих общих (иногда занятых) сегментах не будет слишком высокой, но и накладные расходы на заголовок пакета не будут слишком большими. (см. Некоторые таблицы на бумаге, связанные выше на стр. 15-16)

Казалось бы, в лучшем случае, инженеры в то время выбрали 1500 байт или около 12000 бит как лучшее “безопасное” значение.

С тех пор появились и исчезли различные другие системы передачи данных, но самым низким значением MTU из них по-прежнему был ethernet в 1500 байт. Превышение самого низкого MTU в сети приведет либо к фрагментации IP-адреса, либо к необходимости обнаружения MTU пути. И у того, и у другого есть свои проблемы. Даже если иногда крупные поставщики ОС снижали MTU по умолчанию до еще более низкого уровня в разы.

Коэффициент полезного действия

Итак, теперь мы знаем, что MTU Интернета ограничен 1500 в основном из-за устаревших чисел задержек и аппаратных ограничений, насколько это плохо для эффективности Интернета?

AMS-IX разбивка размеров кадров Ethernet

Если мы посмотрим на данные с крупной точки обмена интернет-трафиком (AMS-IX), мы увидим, что по крайней мере 20% пакетов, проходящих через обмен, являются максимальным размером. Мы также можем видеть общий трафик локальной сети:

График трафика AMS-IX

Если вы объедините эти два графика, вы получите что-то, что примерно выглядит так. Это оценка того, сколько трафика составляет каждое ведро размера пакета:

AMS-IX трафик по размеру пакета

Или если мы посмотрим только на трафик, который вызывают все эти предусилители и заголовки Ethernet, мы получим тот же график, но с разными масштабами:

Трафик AMS-IX по размеру пакета накладные расходы

Это показывает, что большая пропускная способность тратится на заголовки для самого большого класса пакетов. Поскольку пиковый трафик показывает самое большое значение пакетного ведра примерно при 246 Гбит/с накладных расходов, мы можем предположить, что если бы мы все приняли гигантские кадры, пока у нас была такая возможность, то эти накладные расходы составили бы только около 41 Гбит/с.

Но я думаю, что на данный момент корабль уже отплыл, чтобы сделать это в более широком Интернете. В то время как некоторые интернет-перевозчики работают на 9000 MTU, подавляющее большинство этого не делает, и коллективное изменение мнения Интернета снова и снова доказывается как непомерно трудное.


Если у вас есть больше контекста по истории 1500 байт, пожалуйста, отправьте их по [email protected] электронной почте. К сожалению, руководства, сообщения в списках рассылки и другой контекст этого быстро исчезают без следа.

До следующего раза!