RFC: 2001
Оригинал: TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms
Другие версии: RFC 2581
Категория: Предложенный стандарт
Дата публикации:
Автор:
Перевод: Николай Малых

RFC 2001, Страница 5 из 5

Fast Recovery

После выполнения быстрого повтора (fast retransmit), связанного с потерей сегмента, выполняются операции congestion avoidance, а не slow start. Такая процедура используется как алгоритм восстановления. Это повышает эффективность работы протокола, поскольку обеспечивает высокую пропускную способность при условиях незначительного насыщения. Особенно эффективно такое решение при большом размере окон.

Причина отказа от процедуры slow start в данном случае связана с тем, что прием дубликатов ACK говорит модулю TCP больше, нежели просто о потере пакета. Поскольку принимающая сторона может генерировать дубликат ACK только после получения другого сегмента, этот сегмент уже покинул сеть и находится в буфере принимающей стороны (т. е., существует поток данных между обеими сторонами соединения и TCP нет смысла уменьшать этот поток с помощью процедуры slow start).

Алгоритмы быстрого повтора и восстановления обычно используются совместно следующим образом:

  1. При получении подряд третьего дубликата ACK для переменной ssthresh устанавливается значение в половину размера текущего окна насыщения cwnd, но не менее двух сегментов и повторяется передача потерянного сегмента. Далее для переменной cwnd устанавливается значение ssthresh + размер 3 сегментов. Это увеличивает окно насыщения на количество сегментов, которые покинули сеть и находятся в кэше удаленной стороны.
  2. При получении каждого следующего дубликата ACK значение cwnd увеличивается на размер сегмента. Это увеличивает окно насыщения с учетом дополнительных пакетов, принятых удаленной стороной из сети. Пакет передается в сеть, если новое значение cwnd допускает это.
  3. При получении пакета ACK, подтверждающего доставку новых данных для переменной cwnd устанавливается значение ssthresh (с округлением до целого числа). Этот пакет ACK должен быть подтверждением повторной передачи на этапе 1 в течение одного периода RTT. В дополнение к этому данный пакет ACK подтверждает доставку всех промежуточных сегментов, переданных в интервале между потерей пакета и получением первого дубликата ACK. Этот этап является процедурой предотвращения насыщения, поскольку TCP снижает скорость передачи до половины значения скорости в момент потери пакета.

Алгоритм быстрого повтора был впервые реализован в 4.3BSD Tahoe и после него использовалась процедура slow start. Алгоритм быстрого восстановления был реализован в 4.3BSD Reno.

Вопросы безопасности

Рассматриваемые в этом документе вопросы не связаны с безопасностью.

Литература

[1] Robert Braden, «Требования к хостам Internet - Коммуникационные уровни», RFC 1122, Октябрь 1989.
[2] V. Jacobson, «Congestion Avoidance and Control», Computer Communication Review, vol. 18, no. 4, pp. 314-329, Aug.1988. ftp://ftp.ee.lbl.gov/papers/congavoid.ps.Z.
[3] V. Jacobson, «Modified TCP Congestion Avoidance Algorithm», end2end-interest mailing list, April 30, 1990. ftp://ftp.isi.edu/end2end/end2end-interest-1990.mail.
[4] W. R. Stevens, «TCP/IP Illustrated, Volume 1: The Protocols», Addison-Wesley, 1994.
[5] G. R. Wright, W. R. Stevens, «TCP/IP Illustrated, Volume 2: The Implementation», Addison-Wesley, 1995.

Адрес автора

W. Richard Stevens
1202 E. Paseo del Zorro
Tucson, AZ 85718
Phone: 520-297-9416
EMail: ude.oaon@snevetsr
Site: http://www.noao.edu/~rstevens

Страница 5 из 5

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