Если программа ожидает надежных соединений, то ей нужно использовать TCP, а не UDP. UDP не защищен от потери на уровне протокола - это только система доставки с максимальными усилиями. TCP - это система гарантированной доставки.
Как обернуть соединение UDP, чтобы улучшить сопротивление потери пакетов?
Предположим, что есть 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 ответа на вопрос
ARQ - это имя семейства методов, одно из которых используется TCP. Некоторые разновидности иногда используются, чтобы "обернуть" UDP.
Например, при потоковой передаче видео UDP может использоваться, чтобы избежать накладных расходов TCP. Различные ARQ используются в некоторых случаях для повышения надежности транспортного потока MPEG, передающего видео через Интернет. Такое разнообразие ARQ предназначено для создания более низких служебных данных, чем TCP, и в то же время позволяет повысить надежность приема видеопотока.
См. Эту статью в Википедии для более полного обсуждения и списка ссылок: https://en.wikipedia.org/wiki/Automatic_repeat_request
Похожие вопросы
-
2
Windows 7 Home Premium запоминает пароли общего доступа к сети?
-
5
Поделитесь XP сетевым подключением без перезагрузки?
-
5
Как мне сказать Windows использовать 802.11 вместо 3G?
-
-
4
Есть ли способ поделиться сканером многофункционального принтера?
-
3
Есть ли способ соединить два компьютера через USB?
-
3
Как сохранить несколько подключений к интернету?
-
4
iPod-Touch для воспроизведения фильмов с ПК на PS3?
-
2
Mac не присоединится к рабочей группе Windows
-
1
Как я могу повысить безопасность своего портала?
-
1
Как подключить к сети Windows XP и Ubuntu Linux?