Назад | Перейти на главную страницу

(Простой) Протокол UDP - Сеть

Я знаю, что UDP - ненадежный протокол, в котором что-то может прийти не по порядку, не прийти полностью и т. Д.

Я также знаю, что при использовании UDP для чего-то вроде traceroute пакеты, которые приходят на маршрутизаторы с TTL = 1, и пакеты, которые прибывают на конечные хосты, предназначенные для закрытых портов, создают сообщения об ошибках ICMP, которые передаются обратно отправителю.

У меня вопрос - есть ли у отправителя способ узнать, был ли отброшен стандартный пакет? Я знаю, что протокол ненадежен, но отправляет ли получатель в протоколе UDP какое-либо «подтверждение», чтобы отправитель мог узнать об отброшенном пакете?

Это прямой вопрос протокола для базового UDP, я не хочу знать, что я «могу сделать». Я прочитал несколько вещей, и хотя я в основном на 100% уверен, что ответ отрицательный, вы не можете сказать, я прочитал пару вещей, которые меня беспокоили.

По определению, если пакет UDP отброшен, получатель не может отправить уведомление обратно отправителю, потому что ничего не было получено. Вы можете создать собственную систему подтверждения поверх UDP. Даже простое «если данные не были получены за X секунд, отправить пакет отправителю с указанием этого». Вы можете встраивать свои собственные порядковые номера в пакеты UDP, чтобы можно было обнаруживать отброшенные / потерянные пакеты, но тогда вы, вероятно, захотите использовать TCP в любом случае, поскольку порядковые номера и обработка отбрасываемых / потерянных пакетов приходят `` бесплатно '' с TCP.

По сути, UDP работает по принципу «запустил и забыл». Маршрутизаторы могут по своему усмотрению отбрасывать пакеты без какого-либо уведомления отправителя или получателя. Если бы им действительно пришлось сгенерировать такой пакет с уведомлением об отбрасывании, это просто добавило бы к условиям перегрузки, которые в первую очередь вызывали отбрасывание пакета UDP. Маршрутизаторы БУДУТ доставить пакет UDP, если они могут, но если что-то будет загружено, UDP будет иметь более низкий приоритет, чем другие протоколы.

Самый простой способ понять UDP-пакет - сравнить его с выстрелом из пистолета. Его отправляют, и что касается оружия (отправителя), то работа выполнена. Хотя есть способы создать обратную связь, это то, что нужно использовать, так как это не встроено.