2

Предположим, что есть UDP-соединение, которое не ожидает большой потери пакетов.

Уже существуют инструменты, позволяющие обернуть соединение UDP для повышения надежности за счет пропускной способности и накладных расходов, например, с использованием кодов Рида-Соломона.

Ожидаемое использование:

host1$ someprogram --listen-udp 127.0.0.1:1234
host1$ reedsolomon_udp --listen 0.0.0.0:1235 --connect 127.0.0.1:1234

host2$ reedsolomon_udp --connect host1:1235 --listen 127.0.0.1:1234
host2$ someprogram --connect-udp 127.0.0.1:1234

Ожидается, что решение не устранит потери напрямую, оно должно уменьшить их, особенно если теряется более 50% пакетов.

2 ответа2

2

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

0

ARQ - это имя семейства методов, одно из которых используется TCP. Некоторые разновидности иногда используются, чтобы "обернуть" UDP.

Например, при потоковой передаче видео UDP может использоваться, чтобы избежать накладных расходов TCP. Различные ARQ используются в некоторых случаях для повышения надежности транспортного потока MPEG, передающего видео через Интернет. Такое разнообразие ARQ предназначено для создания более низких служебных данных, чем TCP, и в то же время позволяет повысить надежность приема видеопотока.

См. Эту статью в Википедии для более полного обсуждения и списка ссылок:https://en.wikipedia.org/wiki/Automatic_repeat_request

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .