Потеря пакетов и дублирование пакетов

Я пытаюсь выяснить, в чем разница между потерей пакетов и проблемами с дублированием пакетов. Кто-нибудь знает, что такое "дублирование пакетов"? Это то же самое, что и повторная передача пакетов при обнаружении потери в TCP?

2 ответа

Решение

№ в TCP доставка "пакетов" является надежной (я думаю, что термин "данные" должен быть лучше в этом случае, так как это потоковый протокол).

Потеря пакетов и дублирование - это проблема, связанная с ненадежными протоколами дейтаграмм, ориентированными как UDP, В UDP, когда вы отправляете дейтаграмму, это может быть дублировано, не в порядке или даже не прибыть вообще.

Это то же самое, что и повторная передача пакетов при обнаружении потери в TCP?

И да и нет. Скажем, TCP использует внутренний механизм подтверждения для обнаружения пропущенных данных и их автоматической повторной передачи. Таким образом, отсутствующие данные прозрачны для пользователя и обрабатываются самим протоколом.

Кто-нибудь знает, что такое "дублирование пакетов"?

В определенных ситуациях может случиться так, что IP пакеты дублируются по пути к месту назначения. Например, маршрутизатор может решить перенаправить входящий трафик через 2 разных сетевых интерфейса. В этом случае может случиться так, что оба IP-пакета достигнут пункта назначения.

TCP обрабатывать дубликаты IP проблема с пакетами, поэтому вы не заботитесь о них.

UDP не справляется с ними. Когда вы получаете дейтаграмму, не гарантируется, что вы не получали такую ​​же дейтаграмму раньше. Вы должны это проверить.

Есть две вещи, которые вы могли бы иметь в виду: дубликаты пакетов: дублирование полезной нагрузки (отправляемых данных) или точная копия полезной нагрузки и заголовков. TCP попытается повторно отправить данные, для которых он не получил ACK (подтверждение от получателя, что пакет получен в порядке). Однако это приводит к известной проблеме " двух генералов", когда вы никогда не можете быть уверены в том, что данные действительно поступили, или если вы просто не получили ACK из-за потери пакета ACK. Получатель мог получить пакет и ответить ACK, но ACK был потерян. В этом случае отправитель будет считать, что пакет не был получен, и отправит другой пакет с той же копией полезной нагрузки. В связи с этим протоколы, такие как TCP, должны обрабатывать данные, отправляемые несколько раз. В этом случае ответ "да", это одно и то же.

Во-вторых, дублированные пакеты могут означать фактический 100% дублированный пакет (полезная нагрузка и заголовки). Это может произойти из-за ошибок в программном, аппаратном обеспечении, проблем с маршрутизацией или неправильной конфигурации. В этом случае нет, это несколько иная проблема, чем то, что TCP намеренно отправляет новые пакеты с дублированной полезной нагрузкой при обнаружении потери пакетов. В этом случае отправитель только отправил один пакет, но он был продублирован где-то по пути маршрутизаторами или аппаратными интерфейсами.

Другие вопросы по тегам