RFC: 3168
Оригинал: The Addition of Explicit Congestion Notification (ECN) to IP
Предыдущие версии: RFC 2481
Категория: Предложенный стандарт
Дата публикации:
Авторы: , ,
Перевод: Николай Малых

6.1. TCP

В последующих параграфах детально рассматривается предложенное использование ECN в TCP. Эти предложения представлены в той же форме, что и в работе [Floyd94]. Предполагается, что TCP на стороне отправителя использует стандартные алгоритмы контроля насыщения Slow-start, Fast Retransmit и Fast Recovery [RFC2581].

Это предложение задает два новых флага в резервном поле заголовка TCP. Механизм TCP для согласования поддержки ECN использует флаг ECE (ECN-Echo) в заголовке TCP. Бит 9 в поле Reserved заголовка TCP предназначен для использования в качестве флага ECN-Echo. Местоположение 6-битового резервного поля заголовка TCP показано на рисунке 4 в RFC 793 [RFC793], воспроизведенном здесь для полноты. Данная спецификация поля ECN оставляет 4-битовое резервное поле (биты 4 — 7).

Чтобы обеспечить получателю TCP возможность определения момента прекращения установки флага ECN-Echo, в заголовок TCP добавлен еще один флаг — CWR. Для флага CWR выделен бит 8 резервного поля в заголовке TCP.

  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|               |                       | U | A | P | R | S | F |
| Header Length |        Reserved       | R | C | S | S | Y | I |
|               |                       | G | K | H | T | N | N |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+


Рисунок 3: Старое определение байтов 13 и 14 в заголовке TCP
  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|               |               | C | E | U | A | P | R | S | F |
| Header Length |    Reserved   | W | C | R | C | S | S | Y | I |
|               |               | R | E | G | K | H | T | N | N |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+


Рисунок 4: Новое определение байтов 13 и 14 в заголовке TCP

Таким образом, ECN использует флаги ECT и CE в заголовке IP (см. Рисунок 1) для сигнализации между маршрутизаторами и конечными точками соединений, а также флаги ECN-Echo и CWR в заголовке TCP (Рисунок 4) для сигнализации между конечными точками TCP. Для соединения TCP типичная последовательность событий в основанной на ECN реакции на перегрузку имеет вид:

  • В передаваемых отправителем пакетах устанавливается код ECT для индикации поддержки ECN для этих пакетов транспортыми элементами.

  • Поддерживающий ECN маршрутизатор детектирует приближающееся насыщение и видит код ECT в пакете, намеченном для отбрасывания. Вместо отбрасывания этого пакета маршрутизатор устанавливает код CE в заголовке IP и пересылает пакет.

  • Получатель принимает пакет с кодом CE и устанавливает флаг ECN-Echo в следующем пакете TCP ACK, передаваемом отправителю.

  • Отправитель получает пакет TCP ACK с флагом ECN-Echo и реагирует на перегрузку как в случае отбрасывания пакета.

  • Отправитель устанавливает флаг CWR в заголовке TCP следующего пакета, передаваемого получателю, для подтверждения приема и реакции на флагECN-Echo.

Согласование использования ECN транспортными элементами TCP, а также использование флагов ECN-Echo и CWR более подробно описаны в последующих параграфах.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.