Re[5]: форма подтверждения доставки в UDP
От: Andrew S Россия http://alchemy-lab.com
Дата: 23.12.02 23:04
Оценка: 45 (2)
В UDP itself подтверждения нет. И быть не может. Читаем RFC 768.

The protocol is transaction oriented, and delivery and duplicate protection
are not guaranteed. Applications requiring ordered reliable delivery of
streams of data should use the Transmission Control Protocol (TCP)

Там есть исключительные ситуации — когда порт на получателе отсутствует либо ошибка при формировании/получении пакета. Все это оговаривается в RFC на ICMP, его и надо читать. Кроме той ситуации, которую я уже описывал, еще есть ICMP собщение "требуется фрагментация". Собственно, кажется это почти все, что может указать нам о том, что UDP пакет не доставлен. Однако. Повторюсь. Нормальные реализации IP стека _позволяют_ прописать реакцию системы/маршрутизатора не посылать подобных ICMP откликов. Это первое соображение. Второе — ICMP относится к сетевому уровню, тогда как UDP — к транспортному. Вкупе с первым соображением — подобные отклики никак нельзя считать свойством протокола UDP.
Да, подтверждения о доставке есть во многих протоколах, использующих в качестве транспорта UDP (например, та же icq98 и TFTP), однако все это делается "ручками". Т.о. — UDP — протокол с негарантированной доставкой сообщений.
Единственное свойство UDP, которое хоть как то можно считать полезным (это глубоко мое мнение) — простой мультикаст.
Собственно, вопрос был о том, есть ли в UDP механизм подтверждения доставки. Ответ — нет.

O>

O>Подтверждение часто есть в дейтаграммных протоколах для экстремальных ситуаций.
O>Точно также в протоколах с виртуальным каналом часто есть способ отправки дейтаграммы.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.