Лучшие вопросы
Таймлайн
Чат
Перспективы

Explicit Congestion Notification

Из Википедии, свободной энциклопедии

Remove ads

Explicit Congestion Notification (ECN, с англ.«Явное Уведомление о Перегруженности») — расширение протокола IP, описанное в RFC 3168. ECN позволяет обеим сторонам в сети узнавать о возникновении затора на маршруте к заданному хосту или сети без отбрасывания пакетов. Это дополнительная функция, которая используется только в том случае, когда обе конечные точки обмена информацией сообщают, что они хотят её использовать.

Remove ads

Основные понятия

Обычно, узлы TCP/IP сетей сообщают о возникновении затора путём отбрасывания пакетов. Если ECN сессия успешно установлена, поддерживающие расширение ECN маршрутизаторы могут сигнализировать о начале заторов устанавливая биты в заголовке IP, а не удаляя пакеты. Получатель пакетов информирует отправителя о заторе, который должен реагировать так, как будто был обнаружен сброс пакетов.

ECN использует два бита в DiffServ области в заголовке IP, для IPv4 в байте TOS, а в IPv6 в октете класса передачи пакета. Эти два бита могут использоваться для установки в одно из следующих значений:

  • поток поддерживающий ECN: англ. ECN-Capable Transport (ECT)
  • поток не поддерживающий ECN: англ. Not-ECN-Capable Transport (Not-ECT)
  • подтвержденная перегрузка: англ. Congestion Experienced (CE)

Некоторое устаревшее или тестовое сетевое оборудование отбрасывает пакеты с установленными битами ECN, а не игнорирует их[1].

Remove ads

Использование

Для использования ECN требуется его поддержка на транспортном уровне.

Использование в TCP/IP

В дополнение к двум ECN-битам в заголовке IP, TCP использует два флага заголовка TCP для сигнализации отправителю о заторе и сокращения объема информации, которую он посылает.

Использование ECN в соединениях TCP не является обязательным.

Использование в других транспортных протоколах

Расширение ECN также определено для других протоколов транспортного уровня, которые выполняют контроль заторов в сети, в частности DCCP и SCTP. Общий принцип использования похож на TCP, хотя детали кодирования отличаются.

В принципе можно использовать расширение ECN и с протоколами, лежащими на уровнях над UDP. Однако, UDP требует, чтобы контроль перегрузок осуществлялся на уровне приложений, а текущей возможности приложений для сетей не дают им доступа к ECN битам

Remove ads

Производительность

Использование ECN эффективно только в сочетании с политикой активного управления очередью (AQM), и польза от ECN зависит от правильности использования AQM.

Опытным путём было установлено, что ECN плохо влияет на производительность сильно перегруженной сети, если используются AQM алгоритмы, никогда не отбрасывающие пакеты[2]. Современные реализации AQM позволяют избежать подобной проблемы, заменяя маркировку пакетов на их отбрасывание, в случае критических перегрузок.

Реализация

Многие современные реализации протокола TCP/IP имеют поддержку ECN, однако они обычно поставляются с выключенным ECN.

Поддержка на серверах

Windows Server 2008 и Windows Vista поддерживают расширение ECN, но оно отключено по умолчанию[3]. Поддержка ECN может быть включена с помощью следующей команды:

netsh interface tcp set global ecncapability=enabled 

Mac OS X 10.5 по умолчанию поддерживает ECN. Управление производится с помощью интерфейса sysctl[4] :

net.inet.tcp.ecn_negotiate_in net.inet.tcp.ecn_initiate_out 

Ядро Linux поддерживает расширение ECN уже в течение некоторого времени, однако оно по умолчанию отключено. В большинстве версий ядра, оно может быть активировано через интерфейс Sysctl :

sysctl net.ipv4.tcp_ecn=1

FreeBSD 8.0 поддерживает расширение ECN. Оно может быть активировано через интерфейс Sysctl:

sysctl net.inet.tcp.ecn.enable=1 

Поддержка на маршрутизаторах

Маркировка ECN полей маршрутизаторами зависит в той или иной форме от активного управления очередями. Маршрутизаторы должны быть соответствующим образом настроены для маркировки полей ECN.

Маршрутизаторы Cisco IOS выполняют маркировку ECN , если настроен WRED, начиная с версии 12.2 (8) T.

Remove ads

Примечания

См. также

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads