Как определить оптимальный размер MTU?
Приведем пример. Выполним пинг до сайта www.yandex.ru с размером пакета 1450 байт:
ping www.yandex.ru -f -l 1450
После выполнения команды ping вы сразу увидите результат. В нашем примере был получен ответ, а сообщение о требовании фрагментации пакета не получено. Значит, продолжаем тестирование. Тестирование размера пакета начинайте с 1450 байт, постепенно увеличивая это значение до тех пор, пока не появится сообщение Требуется фрагментация пакета.
Итак, в нашем примере был найден максимальный размер пакета 1472 байта (при этом значении пакет не нуждается во фрагментации), т.к. при значении 1473 байта появилось сообщение о том, что требуется фрагментация пакета.
Но это ещё не значение MTU. Мы получили значение MSS (Maximum Segment Size), которое определяет максимальный размер блока данных в байтах. Этот параметр не учитывает длину заголовков ICMP и IP. В нашем случае значение MTU = MSS + заголовок IP + заголовок ICMP.
Теперь к полученному в ходе тестирования числу прибавим 28 байт, которые зарезервированы под заголовок данных (20 байт для заголовка IP и 8 байт для заголовка запроса протокола ICMP). Для нашего примера MTU=1472+28=1500 байт (это оптимальное значение параметра MTU).