Кратко
- RFC 3742 замедляет рост TCP-окна после того, как
cwndпревыситmax_ssthresh: экспоненциальный медленный старт способен добавить тысячи сегментов за один RTT. - Верифицированная Erratum 236 исправила диапазон роста за RTT: в примере до 83 000 пакетов требуется как минимум 836 RTT, а не ровно столько.
«Ограниченный» не означает «с фиксированной скоростью». RFC 3742 была опубликованным в 2004 году экспериментальным необязательным предложением для TCP-соединений с окнами в тысячи максимальных размеров сегмента. Пока cwnd не превышает max_ssthresh, сохраняется обычное увеличение на один MSS за каждый ACK. Выше порога алгоритм вычисляет K = int(cwnd / (0.5 * max_ssthresh)) и прибавляет примерно 1/K MSS на ACK. Дополнительный параметр не заменяет ssthresh: превышение ssthresh по-прежнему завершает медленный старт.
Первоначальная формулировка раздела 2 звучала точнее, чем позволял сам алгоритм. В ней говорилось, что после max_ssthresh прирост за RTT не превышает половины порога. Но правило на каждый ACK, где K меняется ступенчато, задаёт диапазон. Верифицированная RFC Editor Erratum 236 исправила инвариант: прирост составляет не более max_ssthresh MSS за RTT и не менее половины этой величины. Единственную формулу времени достижения цели заменили нижней и верхней оценками. Поэтому часто цитируемые 836 RTT в примере с порогом 100 MSS и окном 83 000 пакетов означают «как минимум 836».
Это исправление описания, а не новая алгоритмическая версия управления перегрузкой. Текст RFC, опубликованный в 2004 году, остался прежним; эррата — отдельная запись, которую нужно читать вместе с ним. Она расширяет допустимый диапазон роста и времени, но не превращает его границы в универсально измеренные результаты.
Ограничение должно было уменьшить не только проблемы отправителя, но и внешние эффекты. Резкий рост в медленном старте мог вызвать множество потерь за один раз, тайм-ауты повторной передачи и возврат соединения к малому окну. Очереди и потери затрагивали также потоки, разделяющие узкое место. RFC 3742 приводит пример с порогом 100 MSS и сообщает о ранних опытах на ядре Linux 2.4.16 Web100. Это ограниченное историческое свидетельство, а не доказательство нынешнего широкого применения, всеобщей пользы для Интернета или гарантии длины очереди.
В более поздних документах TCP используются другие сигналы управления. RFC 9438 обычно рекомендует HyStart++ для медленного старта CUBIC и называет Limited Slow-Start экспериментальной альтернативой. RFC 9406 использует рост RTT как признак для выхода из медленного старта, а затем вводит консервативную фазу, которая проверяет, не произошёл ли выход слишком рано. Это иной сигнал, чем зависимый от размера окна прирост на ACK в RFC 3742; механизмы нельзя считать взаимозаменяемыми.
Для сетевого оператора эта эррата — повод спросить, что именно ограничивает броская цифра. Прирост окна за RTT — не прямой предел скорости в байтах, не измерение очереди и не доказательство справедливости на общем пути. На результат влияют порог, поведение ACK, pacing, буфер, RTT и конкурирующие потоки. Исправление делает неопределённость самого RFC явнее, но не устраняет её.
Источники
- RFC 3742 — Limited Slow-Start for TCP with Large Congestion Windows
- Erratum 236 редактора RFC
- RFC 7414 — обзор спецификаций TCP
- RFC 9438 — CUBIC для высокоскоростных и дальних сетей
- RFC 9406 — HyStart++
- Страница RFC Editor о статусе RFC 3742
- RFC 5681 — TCP Congestion Control
- RFC 3465 — TCP Congestion Control with Appropriate Byte Counting (ABC)
- RFC 2414 — Increasing TCP’s Initial Window
- RFC 2415 — Simulation Studies of Increased Initial Window Size
- RFC 2416 — When TCP Starts Up With Four Packets Into Only Three Buffers
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
