Вычисление MTU маршрута TCP
По умолчанию в операционной системе AIX вычисление MTU маршрута выполняется. С помощью этой опции стек протокола определяет минимальный размер MTU во всех промежуточных сетях между двумя хостами, управляемыми сетевой опцией tcp_pmtu_discover=1.
В реализации функции поиска путей TCP MTU применяются не сообщения ICMP ECHO, а непосредственно пакеты TCP. Расширение ядра TCP/IP поддерживает таблицу PMTU, в которой хранится информация о поиске путей MTU. При создании соединения TCP с целевым узлом в таблицу PMTU добавляется запись для этого целевого узла. Значение PMTU соответствует значению MTU интерфейса исходящей связи.
В заголовке IP отправляемых пакетов TCP установлен бит отключения фрагментирования (DF). При передаче пакета TCP на сетевой маршрутизатор, значение MTU которого меньше размера этого пакета TCP, на исходный узел отправляется сообщение ICMP с информацией о том, что пересылка сообщения невозможна, так как его нельзя разбить на фрагменты. Если маршрутизатор, отправляющий сообщение об ошибке, соответствует RFC 1191, сообщение об ошибке ICMP содержит значение MTU сети. В противном случае для повторной передачи пакета TCP необходимо задать меньшее значение размера MTU из таблицы известных значений MTU расширения ядра AIX TCP/IP. При этом табличное значение PMTU для целевого узла заменяется на новое, меньшее значение MTU и пакет TCP отправляется еще раз. При создании последующих соединений TCP с этим целевым узлом применяется новое значение PMTU.
# вывод pmtu
цлв шлз Иф pmtu refcnt redisc_t exp
-------------------------------------------------------------------------
10.10.1.3 10.10.1.5 en1 1500 2 9 0
10.10.2.5 10.10.2.33 en0 1500 1 0 0
Поскольку записи PMTU refcnt со значением 0 не применяются,
система автоматически удаляет их, что позволяет предотвратить создание таблиц
PMTU слишком большого размера. Такие записи удаляются через
pmtu_expire минут после того, как записи
refcnt присваивается значение 0. По умолчанию параметру сети
pmtu_expire присвоено значение 10 минут. Для того чтобы
предотвратить удаление записей PMTU, можно присвоить записи
pmtu_expire значение 0.
В данной реализации поиска путей TCP MTU можно не применять создание копий маршрутов, что позволяет поддерживать относительно небольшой размер таблицы маршрутизации и упрощает управление ей.