Введение

Размер самого большого разрешенного пакета на сетевом сегменте

В компьютерных сетях максимальный размер передаваемой единицы (MTU) – это размер наибольшей протокольной единицы данных (PDU), которая может быть передана в рамках одной транзакции сетевого уровня. MTU связан с, но не идентичен максимальному размеру кадра, который может быть передан на канальном уровне, например, кадру Ethernet. Больший MTU обычно связан со снижением накладных расходов. Меньшие значения MTU могут уменьшить сетевую задержку. Во многих случаях MTU зависит от возможностей базовой сети и должен быть настроен вручную или автоматически, чтобы не превышать эти возможности. Параметры MTU могут быть указаны для коммуникационного интерфейса или стандарта. Некоторые системы могут определять MTU при установлении соединения, например, с помощью Path MTU Discovery.

Применимость

MTU применимы к протоколам связи и сетевым уровням. MTU определяется в байтах или октетах наибольшей PDU, которую данный уровень может передать далее. Параметры MTU обычно указываются в отношении коммуникационного интерфейса (NIC, последовательный порт и т. д.). Стандарты (например, Ethernet) могут фиксировать размер MTU, или системы (например, последовательные соединения типа «точка-точка») могут определять MTU при установлении соединения. Канальный и физический уровни обычно добавляют служебную информацию к данным сетевого уровня для передачи, поэтому для заданного максимального размера кадра среды необходимо вычесть объем служебной информации, чтобы вычислить MTU этой среды. Например, для Ethernet максимальный размер кадра составляет 1518 байт, из которых 18 байт – служебная информация (заголовок и контрольная сумма кадра), что дает MTU в 1500 байт.

Компромиссные меры

Более высокий MTU обеспечивает большую эффективность, поскольку каждый сетевой пакет передает больше пользовательских данных, а протокольные накладные расходы, такие как заголовки или задержки, связанные с обработкой каждого пакета, остаются неизменными. Эта повышенная эффективность приводит к увеличению пропускной способности протокола при передаче больших объемов данных. Более крупный MTU также требует обработки меньшего числа пакетов для передачи одного и того же объема данных. В некоторых системах обработка каждого пакета может быть серьезным ограничением производительности. Однако у этого преимущества есть и обратная сторона. Большие пакеты занимают канал связи на большее время, чем меньшие пакеты, что приводит к увеличению задержек для последующих пакетов и, как следствие, к увеличению сетевой задержки и вариации задержки. Например, пакет размером 1500 байт, максимальный размер, разрешенный Ethernet на сетевом уровне, может занимать 14,4-килобатный модем около одной секунды. Большие пакеты также создают проблемы при возникновении ошибок связи. Если не используется коррекция прямых ошибок, повреждение даже одного бита в пакете требует повторной передачи всего пакета, что может быть затратно. При заданной вероятности возникновения ошибок большие пакеты более подвержены повреждениям. Их большая полезная нагрузка означает, что повторная передача больших пакетов занимает больше времени. Несмотря на негативное влияние на длительность повторной передачи, большие пакеты все же могут оказывать положительное влияние на общую производительность TCP.

Интернет-протокол

Комплекс протоколов Интернет был разработан для работы с различными сетевыми технологиями, каждая из которых может использовать пакеты разных размеров. Хотя хост будет знать MTU своего собственного интерфейса и, возможно, MTU своих соседей (в процессе первоначального обмена данными), он изначально не будет знать наименьший MTU в цепочке соединений до других соседей. Другая потенциальная проблема заключается в том, что протоколы более высокого уровня могут создавать пакеты, превышающие размер, поддерживаемый даже локальным каналом связи. IPv4 допускает фрагментацию, которая разбивает датаграмму на части, каждая из которых достаточно мала, чтобы соответствовать заданному ограничению MTU. Этот процесс фрагментации происходит на сетевом уровне. Фрагментированные пакеты маркируются таким образом, чтобы IP-уровень хоста назначения знал, что ему следует собрать пакеты обратно в исходную датаграмму. Для того чтобы пакет считался полученным, должны прибыть все его фрагменты. Если в сети будет потерян какой-либо фрагмент, весь пакет будет утерян. Когда количество пакетов, которые необходимо фрагментировать, или количество фрагментов велико, фрагментация может привести к чрезмерным или ненужным накладным расходам. Например, в различных сценариях туннелирования превышение MTU может быть незначительным, поскольку добавляется лишь объем одного заголовка. Добавление небольшое, но теперь каждый пакет должен быть отправлен в двух фрагментах, второй из которых несет очень мало полезной нагрузки. Передается тот же объем полезной нагрузки, но каждый промежуточный маршрутизатор должен пересылать вдвое больше пакетов. Протокол Интернет требует, чтобы хосты могли обрабатывать IP-датаграммы размером не менее 576 байт (для IPv4) или 1280 байт (для IPv6). Однако это не исключает возможности передачи IP-данных на канальном уровне с MTU, меньшим, чем этот минимальный MTU. Например, согласно спецификации IPv6, если определенный канальный уровень не может передать IP-датаграмму размером 1280 байт в одном кадре, то этот канальный уровень должен предоставить собственный механизм фрагментации и сборки, отличный от механизма фрагментации IP, чтобы гарантировать доставку IP-датаграммы размером 1280 байт на IP-уровень в неизменном виде.