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

4.6. Планирование передачи пакетов

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

В дополнение к этому планирование передачи пакетов управляет допустимыми пиками передачи после периодов бездействия и ограниченной передачи. Отправитель TFRC может накапливать «кредиты на передачу» за прошлые периоды бездействия; это позволяет отправителю TFRC передавать данные с пиковой скоростью после периодов бездействия или ограничения передачи. TCP, для сравнения, может передать в одном пике число пакетов, передаваемое за период кругового обхода, но не более того. Например, пиковое число пакетов может быть передано TCP при получении пакетов ACK, подтверждающих окно данных, или когда отправитель внезапно получает окно данных для передачи после задержки приблизительно на время кругового обхода.

Для ограничения пиков трафика реализация TFRC должна предотвращать выборы трафика произвольной величины. Предел допустимых пиков должен быть не больше числа пакетов, передаваемых за один период кругового обхода. Реализация TFRC может ограничивать пики значением меньше числа пакетов, передаваемых за период кругового обхода. Кроме того, реализация TFRC может использовать ограничение пиков по скорости в целях выравнивания потока трафика.

Например, реализация протокола может рассчитывать интервал между пакетами (t_ipi) следующим образом:

t_ipi = s/X_inst;

Пусть t_now показывает текущее время, а i является натуральным числом (i = 0, 1, ...) и t_i показывает номинальное время передачи i-го пакета. Тогда номинальное время t_(i+1) можно рекурсивно определить следующим образом:

t_0 = t_now,
t_(i+1) = t_i + t_ipi.

Отправителя TFRC разрешается накапливать «кредиты на передачу» за неиспользованное для передачи время в течение последних T секунд отправителю разрешено передавать за неиспользованное номинальное время t_j в пока t_j < t_now - T для T, равного времени кругового обхода.

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