5.4. Средний интервал без потерь
Для расчета частоты потерь p сначала вычислим продолжительность среднего интервала без потерь. Это осуществляется с помощью взвешенного фильтра, определяющего средний интервал на основе значений n последних интервалов так, чтобы значение частоты потерь изменялось достаточно непрерывно. Если получатель еще не имеет данных о потерях или маркированных пакетах, средний интервал без потерь не рассчитывается.
Веса w_0 - w_(n-1) определяются следующим образом:
If (i < n/2) { w_i = 1; } Else { w_i = 2 * (n-i)/(n+2); }
Таким образом, для n=8 значения w_0 - w_7 составляют:
1.0, 1.0, 1.0, 1.0, 0.8, 0.6, 0.4, 0.2
Значение n для числа интервалов без потерь, используемых при расчете частоты потерь, определяет скорость отклика TFRC на изменение уровня насыщения. Рекомендуется использовать в качестве значения этого параметра 8. TFRC не следует использовать значения n > 8 для трафика, который может конкурировать в глобальной сети Internet с трафиком TCP. В крайнем случае при использовании значений n > 8 для обеспечения безопасной работы потребуется незначительное изменение механизмов TFRC для обеспечения более резкого отклика на два и более периода RTT с высоким уровнем потерь.
При расчете среднего интервала без потерь требуется решить вопрос о включении последнего интервала. Предлагается включать его только в тех случаях, когда он существенно увеличивает значение среднего интервала.
Пусть I_0 - I_n обозначают интервалы без потерь и I_0 относится к текущему факту потерь. Если имеется по крайней мере n интервалов без потерь, установим k = n, в остальных случаях в качестве значения k будем использовать максимальный номер имеющегося интервала без потерь. Тогда средний интервал рассчитывается следующим образом:
I_tot0 = 0; I_tot1 = 0; W_tot = 0; for (i = 0 to k-1) { I_tot0 = I_tot0 + (I_i * w_i); W_tot = W_tot + w_i; } for (i = 1 to k) { I_tot1 = I_tot1 + (I_i * w_(i-1)); } I_tot = max(I_tot0, I_tot1); I_mean = I_tot/W_tot;
Частота (вероятность) потерь p составит:
p = 1/I_mean;