Кратко
- RFC 3465 предложил Appropriate Byte Counting: увеличивать окно TCP по ранее не подтверждённым байтам, которые впервые охватывает ACK, а не давать фиксированную прибавку каждому сообщению ACK.
- Байтовое свидетельство оставалось ограниченным.
Lсдерживал прибавку от одного ACK в slow start, не мог превышать два SMSS и после RTO должен был равняться одному SMSS, потому что кумулятивный ACK мог включать старый прогресс.
Число квитанций не измеряло прогресс
Традиционный рост cwnd воспринимал каждый входящий ACK как возможность. При подтверждении каждого сегмента без потерь это было удобным приближением. Отложенный ACK давал меньше возможностей для тех же байтов. ACK division позволял получателю разбить подтверждение одного сегмента на несколько малых сообщений и получить несколько прибавок из одной доставки.
Опубликованный в феврале 2003 года как Experimental RFC 3465 сменил единицу учёта. Текст, карточка RFC Editor, Datatracker, история, ссылки, последующие цитирования и исправления образуют публичную запись. Предложение меняло логику RFC 2581, позднее заменённого стандартом RFC 5681.
Отложенное подтверждение по RFC 1122 могло охватить примерно два полных сегмента. Счётчик сообщений тогда открывал окно вдвое медленнее. Потерянный ACK также уничтожал возможность, хотя следующий кумулятивный ACK доказывал приход тех же байтов.
ACK division использовал обратный перекос. Получатель подтверждал последовательные малые части одного сегмента. Если каждое сообщение приносило фиксированный рост, одни и те же байты чеканили повторный кредит. ABC заставлял все фрагменты вместе вносить лишь реальный новый объём.
Отправитель вёл байтовую книгу
В congestion avoidance bytes_acked накапливал только ранее не подтверждённые байты. Достигнув текущего cwnd, отправитель вычитал размер окна и добавлял к нему один SMSS. Цель около одного сегмента за RTT сохранялась независимо от числа ACK.
В slow start окно могло вырасти на новые байты одного ACK, но не более L. При L=1*SMSS алгоритм не был агрессивнее прежнего и рекомендовался в такой форме. L=2*SMSS разрешался для эксперимента, компенсируя подтверждение двух сегментов; большее значение запрещалось.
Предел не позволял большому кумулятивному или stretch ACK выпустить произвольную очередь. Но два SMSS могли усилить микровсплески и приблизить slow start к удвоению за RTT. Ограниченные симуляции RFC в ряде случаев показали больше потерь и обосновали дальнейшие опыты, а не всеобщую справедливость или внедрение. Документ рекомендовал SACK из RFC 2018. RFC 2861 рассматривал родственную проблему неиспользованного оконного кредита.
После RTO настоящее несло старую историю
Если ранний сегмент потерян, а следующие уже у получателя, повторная передача пробела после RTO может вызвать кумулятивный ACK через несколько сегментов. Для состояния отправителя все байты подтверждены впервые, но в текущем RTT сеть мог покинуть лишь повторный сегмент.
Поэтому RFC 3465 требовал L=1*SMSS при slow-start-восстановлении после RTO. Контекст таймера задавал RFC 2988, позднее заменённый RFC 6298. ACK оставался правильным; его временная область была шире свежей проверки ёмкости.
Соседние механизмы имели другую власть. Limited Transmit в RFC 3042 ограниченно разрешал новые данные до третьего дублирующего ACK, но не определял книгу ABC. RFC 3449 изучал асимметричные пути, фильтрацию и восстановление ACK, не меняя единицу кредита отправителя. Каталог RFC 2525 даёт контекст ошибок реализации, но не доказательство внедрения.
Позднейшие слои реальности Heng Lu разделяют наблюдаемый ACK, новые байты, допущенный кредит и выпущенные пакеты. Приоритет исполняемого кода направляет к аккумулятору, пределу, состоянию восстановления и всплеску. Это поздние редакционные инструменты, а не частный замысел автора RFC.
RFC 3465 сделал счёт устойчивее, не объявляя каждый подтверждённый байт свежей ёмкостью. Квитанции можно делить и объединять; основной прогресс не должен размножаться вместе с ними.
Источники
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
