Открыть сервис

Source Quench

Source Quench — это сообщение (ICMP-пакет) в протоколе управления сообщениями Интернета (ICMP), которое отправляется маршрутизатором или хостом-получателем отправителю данных с требованием снизить интенсивность передачи пакетов. Source Quench относится к категории управляющих сообщений, предназначенных для реализации механизма управления перегрузкой в сетях с коммутацией пакетов на основе протокола IP. В современных сетях данный механизм считается устаревшим и практически не используется, однако он представляет исторический интерес как одна из первых попыток регулирования трафика на сетевом уровне.

История и развитие

Механизм Source Quench был впервые описан в документе RFC 792 (Сентябрь 1981 года), который определил стандарт протокола ICMP для IPv4. Разработчики исходили из простой логики: если маршрутизатор или хост не справляется с объёмом входящего трафика, он отправляет отправителю специальное сообщение, предписывающее уменьшить скорость передачи. Предполагалось, что отправитель, получив такое сообщение, снизит темп отправки пакетов до определённого уровня, а затем постепенно увеличит его, чтобы проверить, не исчезла ли перегрузка.

Изначально Source Quench рассматривался как элементарный и универсальный способ борьбы с перегрузками, не требующий сложной логики на стороне отправителя или получателя. Однако на практике механизм показал серьёзные недостатки. Во-первых, он создавал дополнительную нагрузку на сеть: каждое сообщение Source Quench генерировало новый пакет, что при массовой перегрузке могло усугубить ситуацию. Во-вторых, отсутствовал чёткий алгоритм, определяющий, насколько именно следует снижать скорость передачи. В-третьих, злоумышленник мог легко подделать сообщение Source Quench, заставив легитимного отправителя искусственно снизить пропускную способность (атака типа «отказ в обслуживании»).

Уже в RFC 1812 (Июнь 1995 года), описывающем требования к маршрутизаторам IPv4, генерация сообщений Source Quench была объявлена необязательной, а их обработка — нерекомендуемой. В последующих документах, в частности RFC 6633 (Май 2012 года), Source Quench был официально признан устаревшим. В протоколе ICMPv6 для IPv6 данный тип сообщения отсутствует полностью.

Формат и структура сообщения

Сообщение Source Quench имеет тип 4 в протоколе ICMPv4. Его формат включает следующие поля:

Общая длина ICMP-сообщения Source Quench составляет не менее 28 байт (8 байт заголовка ICMP + 20 байт IP-заголовка исходного пакета). На практике размер может варьироваться в зависимости от длины исходного IP-заголовка (если используются опции).

Принцип работы

Когда маршрутизатор или хост-получатель обнаруживает, что его буферы переполняются из-за избыточного трафика, он может сгенерировать ICMP Source Quench и отправить его исходному отправителю пакета. Предполагалось, что отправитель, получив такое сообщение, должен:

  1. Снизить скорость передачи данных для данного потока (обычно вдвое или на определённый процент).
  2. Продолжать отправлять данные с пониженной скоростью до тех пор, пока не перестанут приходить сообщения Source Quench.
  3. Постепенно увеличивать скорость (например, каждые несколько секунд), чтобы проверить, не исчезла ли перегрузка.

На практике реализации TCP/IP-стека часто игнорировали Source Quench или обрабатывали его непоследовательно. В большинстве современных операционных систем (Linux, Windows, macOS) поддержка Source Quench отключена по умолчанию или удалена из кода.

Применение и значение

Исторически Source Quench применялся в ранних сетях с относительно низкой пропускной способностью, где не было более совершенных алгоритмов управления перегрузкой. Например, в сетях ARPANET и ранних версиях Ethernet Source Quench мог использоваться для снижения потерь пакетов при перегрузке маршрутизаторов. Однако уже к середине 1990-х годов стало очевидно, что механизм неэффективен и даже вреден.

Современные сети полагаются на другие методы управления перегрузкой, реализованные на транспортном уровне (например, алгоритмы TCP: Reno, NewReno, Cubic, BBR). Эти алгоритмы используют потери пакетов, задержки (RTT) и явные уведомления о перегрузке (ECN — Explicit Congestion Notification) для адаптации скорости передачи. ECN, в отличие от Source Quench, не генерирует дополнительных ICMP-пакетов, а помечает существующие IP-пакеты специальными флагами, что значительно эффективнее.

Критика и недостатки

Механизм Source Quench подвергался критике по нескольким причинам:

  1. Неэффективность при массовой перегрузке: генерация дополнительных ICMP-пакетов увеличивает нагрузку на сеть, что может усугубить перегрузку.
  2. Отсутствие гарантии доставки: сообщение Source Quench само может быть потеряно при перегрузке, что делает механизм ненадёжным.
  3. Проблемы безопасности: поддельные сообщения Source Quench легко используются для атак типа «отказ в обслуживании» (DoS), заставляя жертву снижать скорость передачи.
  4. Сложность настройки: не было единого стандарта, определяющего, насколько следует снижать скорость, что приводило к непредсказуемому поведению сети.
  5. Несовместимость с мультимедийным трафиком: для потокового видео и аудио резкое снижение скорости могло приводить к разрыву соединения или ухудшению качества.

Современное состояние

Начиная с конца 1990-х годов, поддержка Source Quench постепенно удалялась из сетевых стеков операционных систем и прошивок маршрутизаторов. В RFC 6633 (2012 год) IETF официально объявила Source Quench устаревшим (deprecated) и рекомендовала не реализовывать его в новых устройствах. Большинство современных маршрутизаторов и хостов игнорируют входящие сообщения Source Quench или генерируют их только в режиме совместимости с устаревшим оборудованием.

В протоколе ICMPv6, используемом в IPv6, тип сообщения Source Quench отсутствует. Вместо него для управления перегрузкой применяются механизмы ECN и алгоритмы транспортного уровня.

Интересные факты

Источники

  1. RFC 792 — Internet Control Message Protocol (1981).
  2. RFC 1812 — Requirements for IP Version 4 Routers (1995).
  3. RFC 6633 — Deprecation of ICMP Source Quench (2012).
  4. Stevens, W. Richard. TCP/IP Illustrated, Volume 1: The Protocols. Addison-Wesley, 1994.
  5. Comer, Douglas E. Internetworking with TCP/IP, Volume 1: Principles, Protocols, and Architecture. Prentice Hall, 2006.
  6. Postel, J. «Internet Control Message Protocol». IETF, 1981.
  7. Kurose, James F.; Ross, Keith W. Computer Networking: A Top-Down Approach. Pearson, 2017.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →