Алгоритм повторной передачи данных в сетях работает на основе метода автоматического запроса повторной передачи (ARQ). 1 Он использует сигнал подтверждения приёма (получателем данных отправляются служебные данные, указывающие на то, что им был правильно принят фрагмент или пакет данных) и тайм-аут (определённые периоды времени, по истечении которых должно быть получено подтверждение). 1
Если отправитель данных до истечения тайм-аута не получает подтверждения, то, как правило, повторно передаёт фрейм или пакет, пока отправитель не получит подтверждение или не будет превышено заданное число повторных передач. 1
Разные реализации протокола TCP могут поддерживать три стратегии повторной передачи: 2
- «Только первый». 2 Поддерживается один таймер повторной передачи для всей очереди. 2 При получении подтверждения первый сегмент удаляется из очереди повторной передачи и таймер сбрасывается. 2 Если время таймера истекает, повторно передаётся сегмент из начала очереди и таймер обнуляется. 2
- Пакетная. 2 Также поддерживается один таймер повторной передачи для всей очереди. 2 Когда приходит подтверждение, из очереди повторной передачи удаляются все сегменты и таймер сбрасывается. 2 Если время таймера истекает, повторно передаются все сегменты из очереди и таймер обнуляется. 2
- Индивидуальная. 2 Для каждого сегмента в очереди существует отдельный таймер. 2 При получении подтверждения из очереди повторной передачи удаляется первый сегмент, а соответствующий таймер обнуляется. 2 По истечении времени какого-либо таймера повторно передаётся только соответствующий сегмент и его таймер сбрасывается. 2