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

8.3. Передача пакетов раньше номинального времени

В этом параграфе рассматривается один из механизмов планирования передачи пакетов на стороне отправителя для операционных систем с грубой гранулярностью отсчета времени (параграф 4.6).

Пусть t_gran задает гранулярность таймера планирования в операционной системе, а t_ipi — интервал между передачей пакетов (как указано в параграфе 4.6). Если операционная система не обеспечивает нужной гранулярности таймеров или по иным причинам не может поддерживать короткие интервалы t_ipi, отправитель TFRC будет ограничен возможностью передачи не более 1 пакета за каждые t_gran секунд или ему должна быть разрешена передача множества пакетов сразу в форме коротких пиков. В дополнение к разрешению отправителю накапливать кредиты на передачу пакетов за прошлые неиспользованные периоды, полезным может оказаться разрешение отправителю передавать пакет раньше запланированного времени, как описано ниже в этом параграфе.

Параметр t_delta может использоваться для того, чтобы разрешить передачу пакетов раньше номинального времени. Рассмотрим приложение, которое переходит в режим бездействия и запрашивает следующую передачу в момент t_i = t_(i-1) + t_ipi, где t_(i-1) показывает время передачи предыдущего пакета. Когда приложение снова активизируется, оно проверяет значение текущего времени t_now. Если t_now > t_i - t_delta, пакет передается. Когда рассчитывается номинальное время передачи следующего пакета t_i, может оказаться, что t_now > t_i - t_delta. В таких случаях пакет передается незамедлительно.

Для того, чтобы раньше номинального времени передавалось не более одного пакета и пакеты никогда не передавались ранее, чем за период кругового обхода до номинального времени передачи, параметр t_delta следует выбирать, как показано ниже:

t_delta = min(t_ipi, t_gran, rtt)/2;

(гранулярность планирования t_gran в некоторых старых системах Unix составляет 10 мсек.).

В качестве примера рассмотрим поток TFRC с допустимой скоростью передачи X = 10 пакетов за период кругового обхода (PPR), временем кругового обхода 100 мсек, гранулярностью планирования операционной системы t_gran = 10 мсек и возможностью аккумулирования неиспользованных кредитов на передачу в течение периода кругового обхода. В этом случае t_ipi будет иметь значение 1 мсек. Отправителю TFRC будет разрешено передавать пакеты за 0,5 мсек до номинального времени и сохранять неиспользованные кредиты на передачу в течение 100 мсек. Гранулярность планирования в 10 мсек не будет оказывать существенного влияния на работу соединения.

В качестве другого примера рассмотрим поток TFRC с гранулярностью планирования хуже периода кругового обхода — пусть время кругового обхода составляет 0,1 мсек, а гранулярность планирования в операционной системе - 1 мсек и обеспечивается возможность накопления кредитов на передачу в течение периода кругового обхода. Отправителю TFRC будет дозволено сохранять неиспользованные кредиты на передачу в течение 0,1 мсек. Если гранулярность планирования «не оказывает» влияния на отклики отправителя на получение пакетов обратной связи, отправитель TFRC сможет передать RTT пакетов (в соответствии с разрешенной скоростью) за каждый период RTT в ответ на принятый пакет обратной связи. В этом случае грубая гранулярность планирования не позволит существенно снизить скорость передачи, но передача может носить пиковый характер с передачей данных в течение периода кругового обхода в ответ на каждый пакет обратной связи.

Однако в этом случае производительность будет отличаться, если гранулярность планирования операционной системы будет влиять на время отклика на получение пакетов обратной связи, наряду с влиянием на обычное планирование передачи. В этом случае производительность отправителя будет существенно ограничена гранулярностью планирования, превышающей период кругового обхода, - при возможности отправителя передавать RTT данных с дозволенной скоростью передачи не более 1 пакета за каждую мсек. Такое ограничение скорости передачи является неизбежным результатом разрешения пиковой передачи не более периода кругового обхода.

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