Ответ 1
TL;DR: Оба. Он будет передавать только пакеты с длиной полезной нагрузки, меньшей или равной этому размеру. Точно так же он будет принимать пакеты с длиной полезной нагрузки в вашем MTU. Если устройство отправляет более крупный пакет, оно должно ответить сообщением ICMP unreachable (негабаритного).
Ядро: Настройка MTU для вашего устройства полезна, потому что другие перелеты между вами и вашим пунктом назначения могут инкапсулировать ваш пакет в другой форме (например, VPN или PPPoE.) Этот слой вокруг вашего пакета приводит к тому, что более крупный пакет отправляется по проводу. Если этот новый более крупный пакет превышает максимальный размер слоя, тогда пакет будет разбит на несколько пакетов (в идеальном мире) или будет полностью удален (в реальном мире.)
В качестве практического примера рассмотрим возможность подключения компьютера через Ethernet к модему ADSL, который сообщает PPPoE интернет-провайдеру. Ethernet позволяет использовать полезную нагрузку 1500 байт, из которых 8 байтов будут использоваться PPPoE. Теперь мы доходим до 1492 байт, которые могут быть доставлены в одном пакете вашему интернет-провайдеру. Если вы должны были отправить полноразмерную полезную нагрузку Ethernet 1500 байт, она будет "раздроблена" вашим маршрутизатором и разбита на два пакета (один с полезной нагрузкой 1492 байта, другой с 8-байтовой полезной нагрузкой).
Проблема возникает, когда вы хотите отправить больше данных по этому соединению - скажем, вы хотели отправить 3000 байт: ваш компьютер разделил бы это на основе вашего MTU - в этом случае два пакета по 1500 байт каждый и отправили их к вашему ADSL-модему, который затем разделил бы их так, чтобы он мог выполнить свой MTU. Теперь ваши данные в 3000 байт были фрагментированы на четыре пакета: два с полезной нагрузкой 1492 байта и два с полезной нагрузкой 8 байтов. Это явно неэффективно, нам действительно нужны только три пакета для отправки этих данных. Если бы ваш компьютер был настроен с правильным MTU для сети, он отправил бы это как три пакета в первую очередь (два 1492 байтовых пакета и один 16-байтовый пакет.)
Чтобы избежать этой неэффективности, многие IP-стеки немного перевернуты в заголовке IP, называемом "Do not Fragment". В этом случае мы отправили бы наш первый пакет в 1500 байт на ADSL-модем, и он отклонил бы пакет, ответив сообщением об управлении Интернетом (ICMP), сообщив нам, что наш пакет слишком велик. Затем мы повторили передачу с меньшим пакетом. Это называется обнаружением пути MTU. Аналогичным образом, слой ниже, на уровне TCP, еще одним фактором во избежание фрагментации является параметр MSS (Максимальный размер сегмента), где оба узла отвечают с пакетом максимального размера, который они могут передавать без фрагментации. Это обычно вычисляется из MTU.
Проблема здесь возникает, когда неправильно сконфигурированные брандмауэры удаляют весь ICMP-трафик. Когда вы подключаетесь к (скажем) веб-серверу, вы создаете сеанс TCP и отправляете то, что вы готовы принимать TCP-пакеты на основе вашего 1500-байтового MTU (поскольку вы подключены через ethernet к вашему маршрутизатору.) Если внешняя сеть сервер хотел отправить вам много данных, они разделили бы это на куски, которые (в сочетании с заголовками TCP и IP) выходили на 1500 байтов и отправляли их вам. Ваш интернет-провайдер получит один из них, а затем попытается связать его с PPPoE-пакетом для отправки на ваш ADSL-модем, но он будет слишком большим для отправки. Таким образом, он ответил бы с недостижимым ICMP, который (в идеальном мире) заставляет удаленный компьютер уменьшать свою MSS для соединения и повторной передачи. Однако, если на пути был разбитый брандмауэр, это сообщение ICMP никогда не будет достигнуто внешним веб-сервером, и этот пакет никогда не сделает его вам.
В конечном счете, установка MTU на вашем устройстве Ethernet желательно отправить правильные размерные кадры на ваш ADSL-модем (чтобы избежать запроса о повторной передаче с меньшим фреймом), но это имеет решающее значение для влияния размера MSS, отправляемого на удаленные хосты при создании TCP-соединений.