Повторная отправка пакетов, которые были повреждены или утеряны
Повторная передача , по сути идентичная автоматическому запросу на повтор (ARQ), представляет собой повторную отправку пакетов , которые были либо повреждены, либо утеряны. Повторная передача является одним из основных механизмов, используемых протоколами , работающими в компьютерной сети с коммутацией пакетов , для обеспечения надежной связи (например, обеспечиваемой надежным потоком байтов , например, TCP ). [1] [2] [3]
Такие сети обычно «ненадежны», то есть они не дают никаких гарантий, что они не будут задерживать, повреждать или терять пакеты или доставлять их не по порядку. Протоколы, которые обеспечивают надежную связь по таким сетям, используют комбинацию подтверждений (т. е. явное получение от получателя данных ) , повторную передачу отсутствующих или поврежденных пакетов (обычно инициированную тайм-аутом ) и контрольные суммы для обеспечения этой надежности.
Подтверждение
Существует несколько форм подтверждения , которые могут использоваться по отдельности или вместе в сетевых протоколах:
- Положительное подтверждение: получатель явно уведомляет отправителя, какие пакеты, сообщения или сегменты были получены правильно. Положительное подтверждение, таким образом, также неявно информирует отправителя, какие пакеты не были получены, и предоставляет подробную информацию о пакетах, которые необходимо передать повторно.
- Отрицательное подтверждение (NACK): получатель явно уведомляет отправителя, какие пакеты, сообщения или сегменты были получены неправильно и, следовательно, могут нуждаться в повторной передаче (RFC 4077).
- Выборочное подтверждение (SACK): получатель явно перечисляет, какие пакеты, сообщения или сегменты в потоке подтверждены (отрицательно или положительно). Положительное выборочное подтверждение — это опция в TCP (RFC 2018), которая полезна в спутниковом доступе в Интернет (RFC 2488).
- Накопительное подтверждение: получатель подтверждает, что он правильно получил пакет, сообщение или сегмент в потоке, что неявно информирует отправителя о том, что предыдущие пакеты были получены правильно. TCP использует кумулятивное подтверждение со скользящим окном TCP .
Ретрансляция
Повторная передача — очень простая концепция. Всякий раз, когда одна сторона отправляет что-либо другой стороне, она сохраняет копию отправленных данных до тех пор, пока получатель не подтвердит, что он их получил. В различных обстоятельствах отправитель автоматически повторно передает данные, используя сохраненную копию. Причины повторной отправки включают:
- если в течение разумного времени такое подтверждение не поступает, тайм-аут
- отправитель обнаруживает, часто с помощью каких-то внеполосных средств, что передача не удалась
- если получатель знает, что ожидаемые данные не поступили, и уведомляет об этом отправителя
- если получатель знает, что данные поступили, но в поврежденном состоянии, и сообщает об этом отправителю
Смотрите также
Ссылки
- ^ Куроуз, Джеймс Ф.; Росс, Кит В. (2021). Компьютерные сети: подход сверху вниз (8-е изд.). Хобокен: Pearson. ISBN 978-0-13-668155-7.[ нужна страница ]
- ^ Мэтьюз, Джинна (2005). Компьютерные сети: Интернет-протоколы в действии . Хобокен, Нью-Джерси: Wiley. ISBN 978-0-471-66186-3.[ нужна страница ]
- ^ Стивенс, В. Ричард (1994). TCP/IP иллюстрированный . Серия Addison-Wesley professional computing. Reading, MA: Addison-Wesley publ. ISBN 978-0-201-63346-7.[ нужна страница ]