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

Приложение C. Отклик на период ограниченной передачи

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

В частности [RFC2861] предлагает экспериментальный механизм проверки корректности окна насыщения (CWV) для TCP. Далее мы будем использовать термин «стандартный TCP» для механизмов контроля насыщения, описанных в [RFC2581] и [RFC2581bis]. [RFC2861] задает иной отклик на периоды бездействия или ограниченной передачи, нежели принято в стандартном TCP. При использовании CWV отправитель TCP снижает вдвое размер окна насыщения после каждого RTO в течение периода бездействия, вплоть до начального размера окна. Аналогично при использовании CWV отправитель TCP уменьшает вдвое окно насыщения после каждого RTO в периоды ограниченной передачи.

В этом документе уже задан отклик TFRC на периоды бездействия, похожий на поведение TCP с CWV. Однако этот документ не задает отклик TFRC на периоды ограниченной передачи данных по аналогии с CWV. Добавление такого механизма в TFRC будет требовать изменения одной строки в псевдокоде п. 4) параграфа 4.3. В частности, отклик отправителя на пакет обратной связи:

If (если весь интервал, закрываемый пакетом обратной связи, характеризуется
                ограниченной передаче данных) {
    If (пакет обратной связи говорит о новом факте потерь или росте частоты потерь p) {
        уменьшить вдвое элементы X_recv_set;
        X_recv = 0.85 * X_recv;
        Maximize X_recv_set();
        recv_limit = max(X_recv_set);
    } Else {
        Maximize X_recv_set();
        recv_limit = 2 * max (X_recv_set);
    }
}

будет заменен на:

If (если весь интервал, закрываемый пакетом обратной связи, характеризуется
                ограниченной передаче данных) {
    Старые элементы X_recv_set умножаются на 0,85;
    If (пакет обратной связи говорит о новом факте потерь или росте частоты
                потерь p) {
        Новое значение X_recv умножается на 0,85.
    }
    Maximize X_recv_set();
    recv_limit = 2 * max (X_recv_set);
}

В частности, если скорость приема из предыдущего периода ограниченной передачи сохранена в X_recv_set, приведенное выше изменение п. 4) будет приводить к умножению этой скорости на 0,85 всякий раз при получении пакета обратной связи и выполнении приведенного выше псевдокода. В результате после 4 последовательных периодов кругового обхода скорость приема из предыдущего периода ограниченной передачи будет умножаться на 0,85^4 = 0,52. Таким образом, изменение одной строки в п. 4) параграфа 4.3 будет приводить к снижению дозволенной скорости вдвое за каждые 4 периода кругового обхода, в течение которых отправитель ограничивал передачу данных. По самой природе X_recv_set этот механизм никогда не будет снижать дозволенную скорость передачи ниже удвоенного последнего значения скорости приема.

Отметим, что для сохранения похожего на CWV стиля откликов на ограничение передачи данных сохраняется значение

recv_limit = 2 * max (X_recv_set);

взамен

recv_limit = max (X_recv_set);

для реагирования на потери в периоды ограниченной передачи. Такой ослабленный отклик на факт потери дозволен потому, что поведение в стиле CWV само по себе ограничивает скорость флуктуаций скорости передачи в периоды ограниченной передачи данных.

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