RFC: 5348
Оригинал: TCP Friendly Rate Control (TFRC): Protocol Specification
Предыдущие версии: RFC 3448
Категория: Предложенный стандарт
Дата публикации:
Авторы: , , ,
Перевод: Николай Малых

6.3.1. Инициализация истории потерь после первого факта потери

В этом параграфе рассматриваются процедуры, которые должны использоваться для инициализации истории потерь после первого факта потерь.

Число пакетов, принятых до первого факта потери, не может напрямую использоваться для расчета допустимой скорости передачи, поскольку в течение этого периода скорость передачи меняется достаточно быстро. TFRC предполагает, что корректная скорость передачи данных после первой потери равна половине скорости передачи перед потерей. TFRC аппроксимирует эту скорость X_target по максимальному значению X_recv (в течение процедуры замедленного старта для отдельного периода кругового обхода скорость передачи данных отправителем в общем случае равна удвоенной скорости приема данных получателем за предыдущий период кругового обхода).

После первой потери вместо инициализации первого интервала без потерь числом пакетов, принятых до первой потери, получатель TFRC рассчитывает интервал без потерь, который нужен для получения скорости X_target, и использует этот искусственный интервал без потерь для запуска механизма истории потерь.

TFRC рассчитывает первый интервал без потерь, находя значение p, для которого уравнение пропускной способности в параграфе 3.1 дает скорость передачи отличающуюся от X_target не более, чем на 5%, для данного времени кругового обхода R — для первого интервала без потерь устанавливается значение 1/p. Если получатель знает размер сегмента s, используемый отправителем, он может использовать уравнение пропускной способности, в противном случае получатель может измерить скорость приема в пакетах за секунду вместо байт/сек и использовать уравнение пропускной способности для X_pps (допуск 5% обусловлен тем, что уравнение пропускной способности трудно обратить и без такого допуска пришлось бы использовать ресурсоемкие численные методы расчета p).

Специальным случаем инициализации первого интервала без потерь является ситуация, когда первый пакет теряется или приходит с маркером насыщения. При потере первого пакета в TCP отправитель повторяет передачу этого пакета по завершении отсчета таймера повторной передачи. Если первый пакет TCP имеет маркер ECN, отправитель сбрасывает и заново запускает таймер повтора передачи и отправляет новый пакет данных только после того, когда будет завершен отсчет запущенного заново таймера [RFC3168] (параграф 6.1.2). Для TFRC, если первый пакет потерян или имеет маркер ECN, первый интервал без потерь не содержит пакетов данных. В этом случае размер этого (пустого) интервала следует устанавливать так, чтобы скорость передачи задавалась как в TCP (см. ниже).

Когда первый интервал без потерь в TFRC пуст (первый пакет потерян или имеет маркер ECN), для обеспечения аналогии с поведением TCP, TFRC желает установить допустимую скорость передачи в 1 пакет за каждые 2 периода кругового обхода (или 0,5 на RTT). Таким образом, получатель TFRC рассчитывает интервал без потерь так, чтобы он обеспечивал значение X_target = 0,5/R пакетов в секунду для периода кругового обхода R и использовал это расчетное значение для первого интервала без потерь. Получатель TFRC использует значение 0,5/R пакетов в секунду в качестве минимального значения X_target при инициализации первого интервала без потерь.

Отметим, что несмотря на использование получателем TFRC искусственного значения интервала без потерь после первой потери, получатель продолжает сообщать о скорости передачи X_recv, как указано в параграфе 6.2.

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