Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
15.09.2014
Размер:
847.67 Кб
Скачать

6. Протокол дейтограмм пользователя udp.

UDP (англ. User Datagram Protocol — протокол пользовательских дейтаграмм, RFC-768) — это транспортный протокол для передачи данных в сетях IP без установления соединения, обслуживает взаимодействие между прикладным уровнем и уровнями IP, а также обслуживает взаимодействие между прикладными программами и сетевыми операциями. Он является одним из самых простых протоколов транспортного уровня модели OSI. Его IP-идентификатор - 0x11. Протокол UDP является одним из основных протоколов, расположенных непосредственно над IP. Он предоставляет прикладным процессам транспортные услуги, немногим отличающиеся от услуг протокола IP.

Протоколы транспортного уровня имеют несколько задач. Одна из них — создать связь "процесс-процесс" (процесс – это работающая прикладная программа); чтобы это выполнить, UDP использует номер порта. Другая задача — обеспечить механизм управления транспортным уровнем. UDP не обеспечивает механизма управления потоками, а следовательно, не обрабатывает подтверждения полученных пакетов. Однако UDP обеспечивает в некоторой степени контроль ошибок. Если UDP обнаруживает ошибку в принятом пакете, он, ничего не оповещая, удаляет его. Он может только получать блоки данных от процесса и доставлять их недостоверно приемнику. Блоки данных должны быть достаточно малы, чтобы подогнать их в пакет передачи. UDP называют не ориентированным на соединение, недостоверным транспортным протоколом.

В отличие от TCP, UDP не подтверждает доставку данных, не заботится о корректном порядке доставки и не делает повторов. Поэтому аббревиатуру UDP иногда расшифровывают как Unreliable Datagram Protocol (протокол ненадёжных датаграмм). Зато отсутствие соединения, дополнительного трафика и возможность широковещательных рассылок делают его удобным для применений, где малы потери, в массовых рассылках локальной подсети, в медиапротоколах и т.п. Также к достоинствам UDP можно отнести использование минимальных дополнительных затрат, а также меньшее взаимодействие (обмен сигналами) между передатчиком и приемником.

К заголовку IP-пакета UDP добавляет поля порт отправителя и порт получателя, которые обеспечивают мультиплексирование информации между различными прикладными процессами, а также поля длина UDP-дейтограммы и контрольная сумма, позволяющие поддерживать целостность данных. Т. о., если на уровне IP для определения места доставки пакета используется адрес, на уровне UDP - номер порта.

Область использования udp.

Основные области использования UDP-протокола.

  • UDP подходит для процесса, который требует простой связи “запрос – ответ”, мало заинтересованной в управлении потоком и контроле ошибок. Он обычно не используется для процесса, которому необходимо посылать большое количество данных, такого как FTP.

  • UDP подходит для процессов с внутренним механизмом управления потоком и контролем ошибок. Например, тривиальный протокол передачи файлов (Trivial File Transfer Protocol — TFTP, RFC-1350) включает в себя механизмы управления потоком и контроля ошибок. Он может просто использовать UDP.

  • UDP подходит как транспортный протокол для многоадресного и широковещательного распространения. Многоадресные и широковещательные возможности вставлены в программное обеспечение UDP, но их нет в программном обеспечении TCP

  • UDP используется для процессов административного управления, таких как SNMP (Simple Network Management Protocol, RFC-1157).

  • UDP применяется для нескольких протоколов обновления маршрута, таких как протокол информации маршрутизации (Routing Information Protocol –RIP, RFC 1058).

Хотя протокол UDP не гарантирует доставки, по умолчанию предполагается, что вероятность потери пакета достаточно мала.

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

Например, сервер SNMP всегда ожидает сообщения, адресованного в порт 161. Если клиент snmp желает получить услугу, он посылает запрос в UDP-порт 161 на машину, где работает сервер. На каждой машине может быть только один агент SNMP, т.к. существует только один порт 161. Данный номер порта является общеизвестным, т.е. фиксированным номером, официально выделенным в сети Интернет для услуг SNMP. Общеизвестные номера портов определяются стандартами Интернет (таблица. 6.1).

Данные, отправляемые прикладным процессом через модуль UDP, достигают места назначения как единое целое. Например, если процесс-отправитель производит 5 записей в порт, то процесс-получатель должен будет сделать 5 чтений. Размер каждого записанного сообщения будет совпадать с размером каждого прочитанного. Протокол UDP сохраняет границы сообщений, определяемые прикладным процессом. Он никогда не объединяет несколько сообщений в одно и не делит одно сообщение на части. Формат UDP-сообщений представлен на рисунке6.1:

Рис. 6.1. Формат UDP-дейтограмм.

  • Порт отправителя. Это номер порта, который используется процессом, выполняющимся в хосте сервера. Он равен 16 битам длины - это означает, что номер порта может быть в пределах от 0 до 65 535. Если хост отправителя - клиент (клиент, посылающий зарос), номер порта в большинстве случаев – это кратковременный номер порта, затребованный процессом и выбранный работающим на хосте отправителя программным обеспечением UDP.

  • Порта получателя. Это номер порта, используемый процессом в получателя. Он также имеет 16 бит длины. Если хост получателя – это сервер (клиент, посылающий запрос), то номер порта в большинстве случаев хорошо известен. Если хост получателя – это клиент (сервер, посылающий отклик), номер порта в большинстве случаев кратковременный. В этом случае сервер копирует кратковременный номер порта, он получен в пакете запроса.

  • Длина датаграммы. Это поле длиной 16 бит, которое определяет полную длину датаграммы пользователя, плюс заголовок данных. Эти 16 бит могут определять полную длину от 0 до 65 535 байт.

  • Контрольная сумма. Это поле используется для обнаружения всей пользовательской датаграммы (заголовок плюс данные).

UDP использует общую концепцию для транспортного уровня. UDP обеспечивает услуги, не ориентированные на соединение. Это означает, что каждая дейтаграмма посылает независимую UDP-дейтаграмму. Между различными пользовательскими дейтаграммами нет никакой зависимости, даже если они поступили от одного и того же исходного процесса и пришли в программу от одного и того же пункта назначения. Пользовательская дейтаграмма не нумерована. Это означает, что каждая пользовательская дейтаграмма может проходить различным путем. Одно из направлений существующих не ориентированных на соединение услуг — это то, что процесс не может передавать потоки данных, поэтому применяется протокол UDP, который разбивает потоки на различные зависимые пользовательские дейтаграммы. Вместо каждого сообщения может быть послана достаточно малая его часть, которая подгоняется под размер дейтаграммы пользователя UDP. Для использования в UDP желательны процессы, посылающие короткие сообщения.

Соседние файлы в папке Контрольная Петровский