stringtranslate.com

Обнаружение MTU пути

Обнаружение MTU пути ( PMTUD ) — это стандартизированный метод в компьютерных сетях для определения максимального размера единицы передачи (MTU) на сетевом пути между двумя хостами Интернет-протокола (IP), обычно с целью избежать фрагментации IP . PMTUD изначально предназначался для маршрутизаторов с протоколом Интернета версии 4 (IPv4). [1] Однако все современные операционные системы используют его на конечных точках. В IPv6 эта функция явно делегирована конечным точкам сеанса связи. [2] В качестве расширения стандартного обнаружения MTU пути метод, называемый «Обнаружение MTU пути на уровне пакетизации», работает без поддержки ICMP . [3]

Выполнение

Для пакетов IPv4 обнаружение Path MTU работает путем установки бита флага «Не фрагментировать» (DF) в IP-заголовках исходящих пакетов. Затем любое устройство на пути, чей MTU меньше, чем пакет, отбросит его и отправит обратно сообщение о необходимости фрагментации протокола управляющих сообщений Интернета (ICMP) (тип 3, код 4), содержащее его MTU, что позволит исходному хосту уменьшить свой MTU. путь MTU соответственно. Процесс повторяется до тех пор, пока MTU не станет достаточно маленьким, чтобы пройти весь путь без фрагментации.

Поскольку маршрутизаторы IPv6 не фрагментируют пакеты, в заголовке IPv6 нет опции «Не фрагментировать» . Для IPv6 обнаружение MTU пути изначально предполагает, что MTU пути совпадает с MTU на интерфейсе канального уровня , откуда исходит трафик. Затем, как и в случае с IPv4, любое устройство на пути, чей MTU меньше пакета, отбросит пакет и отправит обратно сообщение ICMPv6 «Слишком большой пакет (тип 2)», содержащее его MTU, что позволит исходному хосту соответствующим образом уменьшить MTU своего пути. Процесс повторяется до тех пор, пока MTU не станет достаточно маленьким, чтобы пройти весь путь без фрагментации. [4]

Если MTU пути изменится после установки соединения и станет меньше ранее определенного MTU пути, первый большой пакет вызовет ошибку ICMP и будет найден новый, меньший MTU пути. Если путь изменится и новый MTU пути станет больше, источник не узнает об увеличении, поскольку все маршрутизаторы на новом пути будут способны ретранслировать все пакеты, которые отправляет источник, используя первоначально определенный, меньший MTU пути. [5] [6] [4]

Проблемы

Многие устройства сетевой безопасности блокируют все сообщения ICMP ради предполагаемых преимуществ безопасности, включая ошибки, необходимые для правильной работы PMTUD. Это может привести к тому, что соединения правильно завершат трехстороннее подтверждение TCP , но затем зависнут при передаче данных. Это состояние называется соединением черной дыры . [7]

Некоторые реализации PMTUD пытаются предотвратить эту проблему, предполагая, что большие пакеты полезной нагрузки отбрасываются из-за MTU, а не из-за перегрузки канала. Однако для того, чтобы протокол управления передачей (TCP) работал наиболее эффективно, следует разрешить сообщения ICMP о недоступности (тип 3). Надежный метод PMTUD, который использует TCP или другой протокол для проверки пути с постепенно увеличивающимися пакетами, был стандартизирован в RFC 4821.

Обходной путь, используемый некоторыми маршрутизаторами [ какими? ] заключается в изменении максимального размера сегмента (MSS) всех TCP-соединений, проходящих через каналы, у которых MTU меньше, чем значение по умолчанию для Ethernet , равное 1500. Это известно как ограничение MSS . [8] [ нужно обновить? ]

Рекомендации

  1. ^ Дж. Могул; С. Диринг (ноябрь 1990 г.). Путь обнаружения MTU. Сетевая рабочая группа. дои : 10.17487/RFC1191 . РФК 1191. Проект стандарта. Устаревший RFC 1063.
  2. ^ Дж. Макканн; С. Диринг ; Дж. Могул (июль 2017 г.). Р. Хинден (ред.). Обнаружение MTU пути для IP версии 6. IETF . дои : 10.17487/RFC8201 . СТД 87. RFC 8201. Интернет-стандарт 87. Устаревший RFC 1981.
  3. ^ Г. Фэйрхерст; Т. Джонс; М. Тюксен; И. Рюнгелер; Т. Фёлькер (сентябрь 2020 г.). Обнаружение MTU пути уровня пакетизации для транспорта дейтаграмм. IETF . дои : 10.17487/RFC8899 . ISSN  2070-1721. РФК 8899. Предлагаемый стандарт. Обновления RFC 4821, 4960, 6951, 8085 и 8261.
  4. ^ Аб Дэвис, Джозеф (2012). Понимание IPv6 (3-е изд.). Редмонд: Microsoft Press. стр. 146–147. ISBN 978-0735659148. ОКЛК  810455372.
  5. ^ Э. Комер, Дуглас (2014). Межсетевое взаимодействие с TCP/IP, том 1 (6-е изд.). Пирсон. стр. 133–134. ISBN 0-13-608530-Х.
  6. ^ исходный код Linux (ipv4) и исходный код Linux (ipv6) см. строку с «mtu_expires» 10 * 60 секунд.
  7. ^ К. Лэхи (сентябрь 2000 г.). Проблемы TCP с обнаружением Path MTU. Сетевая рабочая группа. дои : 10.17487/RFC2923 . РФК 2923. Информационный.
  8. ^ Хьюберт, Берт (2002). «Обход проблем обнаружения MTU пути с помощью ограничения MSS (для пользователей ADSL, кабельного телевидения, PPPoE и PPtP)». HOWTO по расширенной маршрутизации и управлению трафиком в Linux . Проверено 15 апреля 2019 г.