Explicit Congestion NotificationExplicit Congestion Notification (ECN, с англ. — «Явное Уведомление о Перегруженности») — расширение протокола IP, описанное в RFC 3168. ECN позволяет обеим сторонам в сети узнавать о возникновении затора на маршруте к заданному хосту или сети без отбрасывания пакетов. Это дополнительная функция, которая используется только в том случае, когда обе конечные точки обмена информацией сообщают, что они хотят её использовать. Основные понятияОбычно, узлы TCP/IP сетей сообщают о возникновении затора путём отбрасывания пакетов. Если ECN сессия успешно установлена, поддерживающие расширение ECN маршрутизаторы могут сигнализировать о начале заторов устанавливая биты в заголовке IP, а не удаляя пакеты. Получатель пакетов информирует отправителя о заторе, который должен реагировать так, как будто был обнаружен сброс пакетов. ECN использует два бита в DiffServ области в заголовке IP, для IPv4 в байте TOS, а в IPv6 в октете класса передачи пакета. Эти два бита могут использоваться для установки в одно из следующих значений:
Некоторое устаревшее или тестовое сетевое оборудование отбрасывает пакеты с установленными битами ECN, а не игнорирует их[1]. ИспользованиеДля использования ECN требуется его поддержка на транспортном уровне. Использование в TCP/IPВ дополнение к двум ECN-битам в заголовке IP, TCP использует два флага заголовка TCP для сигнализации отправителю о заторе и сокращения объема информации, которую он посылает. Использование ECN в соединениях TCP не является обязательным. Использование в других транспортных протоколахРасширение ECN также определено для других протоколов транспортного уровня, которые выполняют контроль заторов в сети, в частности DCCP и SCTP. Общий принцип использования похож на TCP, хотя детали кодирования отличаются. В принципе можно использовать расширение ECN и с протоколами, лежащими на уровнях над UDP. Однако, UDP требует, чтобы контроль перегрузок осуществлялся на уровне приложений, а текущей возможности приложений для сетей не дают им доступа к ECN битам ПроизводительностьИспользование ECN эффективно только в сочетании с политикой активного управления очередью (AQM), и польза от ECN зависит от правильности использования AQM. Опытным путём было установлено, что ECN плохо влияет на производительность сильно перегруженной сети, если используются AQM алгоритмы, никогда не отбрасывающие пакеты[2]. Современные реализации AQM позволяют избежать подобной проблемы, заменяя маркировку пакетов на их отбрасывание, в случае критических перегрузок. РеализацияМногие современные реализации протокола TCP/IP имеют поддержку ECN, однако они обычно поставляются с выключенным ECN. Поддержка на серверахWindows Server 2008 и Windows Vista поддерживают расширение ECN, но оно отключено по умолчанию[3]. Поддержка ECN может быть включена с помощью следующей команды:
Mac OS X 10.5 по умолчанию поддерживает ECN. Управление производится с помощью интерфейса sysctl[4] :
Ядро Linux поддерживает расширение ECN уже в течение некоторого времени, однако оно по умолчанию отключено. В большинстве версий ядра, оно может быть активировано через интерфейс Sysctl :
FreeBSD 8.0 поддерживает расширение ECN. Оно может быть активировано через интерфейс Sysctl:
Поддержка на маршрутизаторахМаркировка ECN полей маршрутизаторами зависит в той или иной форме от активного управления очередями. Маршрутизаторы должны быть соответствующим образом настроены для маркировки полей ECN. Маршрутизаторы Cisco IOS выполняют маркировку ECN , если настроен WRED, начиная с версии 12.2 (8) T. Примечания
См. также
Ссылки |
Portal di Ensiklopedia Dunia