#udp
#udp
Вопрос:
Я хотел бы знать, считается ли UDP сервисом «с максимальными усилиями»?
Причина, по которой я спрашиваю, заключается в том, что нет никаких гарантий, что какой-либо из пакетов вообще достигнет своего назначения. Следовательно, можно ли классифицировать UDP как «с максимальными усилиями» или есть другой термин, который считается «правильным» способом описания этого?
Спасибо.
Комментарии:
1. Я склонен думать об этом как о сервисе «Удачи!».
Ответ №1:
«С максимальными усилиями» — это один из способов описать UDP; однако говорить, что это «с максимальными усилиями», несколько двусмысленно.
Лучшим словом для доставки пакетов UDP является «ненадежный»…
Рассмотрим записи в Википедии… сравните использование слов «надежный» и «надежность» из википедии (ниже)…
- Цитирую из статьи TCP в Википедии…
TCP обеспечивает надежную, упорядоченную и проверенную на ошибки доставку потока октетов (байтов) между приложениями, запущенными на хостах, обменивающихся данными через IP-сеть.
Проблема надежности UDP также обсуждается в статьях Википедии.
- Цитирую из статьи UDP в Википедии…
UDP использует простую модель связи без установления соединения с минимумом протокольных механизмов. UDP предоставляет контрольные суммы для обеспечения целостности данных и номера портов для обращения к различным функциям в источнике и пункте назначения дейтаграммы. В нем отсутствуют диалоги подтверждения связи, и, таким образом, программа пользователя подвергается любой ненадежности базовой сети; нет гарантии доставки, заказа или защиты от дублирования.
- Из UDP RFC -> RFC 768 — User Datagram Protocol… выделение мое…
Этот протокол предоставляет прикладным программам процедуру отправки сообщений другим программам с минимальным использованием протокольного механизма. Протокол ориентирован на транзакции, а доставка и защита от дублирования не гарантируются.
Когда приложениям UDP требуется надежная доставка пакетов, им приходится самостоятельно обнаруживать, повторно передавать и отменять дублирование отброшенных UDP-пакетов … примером UDP-приложения, которое выполняет эти функции через UDP, является потоковая передача котировок TIBCO.
Комментарии:
1. Я все еще не вижу, насколько это оптимально из вашего ответа. Если защита не гарантируется и в нем есть минимальные механизмы, не требует ли это наименьших усилий (поскольку он делает очень мало)? В то время как TCP был бы наилучшим (поскольку он вкладывает много усилий в эти гарантии)? (Я не являюсь носителем языка)
2. Спасибо за ваш комментарий… Я отредактировал и перефразировал.
Ответ №2:
На самом деле это не самое лучшее усилие, скорее запустить и забыть. Хотя термин «с максимальными усилиями» на самом деле используется, ИМХО, это неверно, поскольку в использовании, не связанном с телекоммуникациями, это подразумевает, по крайней мере, незначительные усилия, выходящие за рамки поведения по умолчанию, и часто несколько больше этого.
Ни одна часть сети не делает каких-либо специальных надбавок для любого IP-пакета, за исключением случаев, когда имеется качественное обслуживание, и даже тогда это действительно переход за переходом, а не сквозное.
Комментарии:
1. Наилучшее использование относится к сети, в которой нет специальных разрешений для пакетов.
2. @Alnitak, по сравнению с TCP, UDP является наилучшим сервисом, поскольку TCP обеспечивает последовательность и повторную передачу помимо того, что делает UDP.
3. действительно, хотя это конечные узлы, которые предоставляют это, а не промежуточные.
4. @Alnitak, промежуточные узлы не должны обеспечивать последовательность и повторную передачу
5. @Arelius, весь IP-трафик по определению является наилучшим.
Ответ №3:
UDP, как правило, быстрее TCP, поскольку ему не нужно выполнять служебную проверку согласованности, с которой должен иметь дело TCP. Это означает, что UDP чаще всего используется в программах, где необходимым действием является правильная передача каждого последнего пакета. Это не означает, что UDP является сервисом «с максимальными затратами», это нечто большее в духе «Вам нужна информация сейчас, и вам все равно, есть ли она вообще»
Это полезно во многих ситуациях, когда TCP был бы менее оптимальным. Например, DNS и DHCP используют UDP, поскольку это только один пакет в каждую сторону. Так получается быстрее, и когда пользователь хочет выйти в Интернет, скорость важна. Он также используется в ситуациях потоковой передачи, когда потеря одного пакета или нарушение порядка не влияет на поток потока. Как и в случае с TV, никто не заметит потери одного пакета, это не такая уж большая проблема.
В любом случае, я не могу ответить на этот вопрос так хорошо, как смогла бы википедия. Итак, вот ссылка на UDP в Википедии, http://en.wikipedia.org/wiki/User_Datagram_Protocol
Комментарии:
1. Хотя это разумное описание протоколов, я чувствую, что это подразумевает неправильное понимание термина «с максимальными усилиями»
2. @Arelius Наилучшие усилия звучат как дрянная попытка, которая не даст хороших результатов. UDP дает хорошие результаты, но только для определенных его применений. Для меня «с максимальными усилиями» звучит плохо. UDP не так плох, как это могло бы показаться.
3. Действительно? Ни одно из слов не звучит отрицательно. UDP дает хорошие результаты для передачи, которая требует только максимальных усилий.
4. Я действительно не знаю. Мне всегда казалось, что наилучшие усилия — это тот тип работы, который просто выводит кого-то из себя. Например, пытаешься попасть на рейс с 1 пересадкой, но вместо этого тебе говорят, что у тебя 5. Или быть исключенным из команды из-за сына тренера, хотя он был хуже. Что-то в этом роде.
5. Хм, мне это больше похоже на «Достаточно хорошие усилия».