Тайм-аут повторной передачи
В результате постоянно происходящих в сети изменений и использования различных соединений TCP значение тайм-аута для повторной передачи должно динамически изменяться. Ниже приведен пример определения значения тайм-аута для повторной передачи.
- Пример процедуры тайм-аута
Измеряется задержка между передачей октета данных с конкретным порядковым номером и получением подтверждения, покрывающего этот порядковый номер (переданные сегменты не точно соответствуют принятым), в единицах RTT (Round Trip Time — время обхода). После этого рассчитывается значение SRTT (Smoothed Round Trip Time — взвешенное время обхода), как:
SRTT = ( ALPHA * SRTT ) + ((1-ALPHA) * RTT)
и на основе этого рассчитывается тайм-аут для повторной передачи (RTO):
RTO = min[UBOUND,max[LBOUND,(BETA*SRTT)]]
где UBOUND задает верхний предел значения тайм-аута (например, 1 минута), LBOUND — нижний предел (например, 1 секунда), ALPHA — весовой фактор (например, 0.8 — 0.9), а BETA — коэффициент вариаций задержки (например, 1.3 — 2.0).