Ретрансляция , по существу , совпадает с автоматическим запросом повторной передачи (ARQ), является Resending из пакетов , которые были либо повреждены или потеряны. Повторная передача - один из основных механизмов, используемых протоколами, работающими в компьютерной сети с коммутацией пакетов, для обеспечения надежной связи (например, обеспечиваемой надежным потоком байтов , например TCP ).
Такие сети обычно «ненадежны», то есть они не дают никаких гарантий, что они не задержат, не повредят или не потеряют пакеты или не доставляют их с нарушением порядка. Протоколы, которые обеспечивают надежную связь по таким сетям, используют комбинацию подтверждений (т. Е. Явное получение от места назначения данных ), повторной передачи отсутствующих или поврежденных пакетов (обычно инициируемых тайм-аутом ) и контрольных сумм для обеспечения такой надежности.
Подтверждение
Существует несколько форм подтверждения, которые можно использовать по отдельности или вместе в сетевых протоколах:
- Положительное подтверждение: получатель явно уведомляет отправителя, какие пакеты, сообщения или сегменты были получены правильно. Таким образом, положительное подтверждение также неявно информирует отправителя, какие пакеты не были получены, и предоставляет подробную информацию о пакетах, которые необходимо повторно передать.
- Отрицательное подтверждение (NACK): получатель явно уведомляет отправителя, какие пакеты, сообщения или сегменты были получены неправильно и, следовательно, могут потребоваться повторной передачи (RFC 4077).
- Выборочное подтверждение (SACK): получатель явно перечисляет, какие пакеты, сообщения или сегменты в потоке подтверждены (отрицательно или положительно). Положительное выборочное подтверждение - это опция TCP (RFC 2018), которая полезна при доступе к спутниковому Интернету (RFC 2488).
- Кумулятивное подтверждение: получатель подтверждает, что он правильно получил пакет, сообщение или сегмент в потоке, что неявно информирует отправителя о том, что предыдущие пакеты были получены правильно. TCP использует кумулятивное подтверждение со своим скользящим окном TCP .
Повторная передача
Повторная передача - это очень простая концепция. Всякий раз, когда одна сторона отправляет что-то другой стороне, она сохраняет копию отправленных данных до тех пор, пока получатель не подтвердит, что он их получил. В ряде случаев отправитель автоматически повторно передает данные, используя сохраненную копию. Причины повторной отправки включают:
- если такое подтверждение не поступает в течение разумного времени, тайм-аут
- отправитель обнаруживает, часто с помощью некоторых внешних средств, что передача была неудачной
- если получатель знает, что ожидаемые данные не прибыли, и поэтому уведомляет отправителя
- если получатель знает, что данные прибыли, но в поврежденном состоянии, и сообщает об этом отправителю