Определения UDP (англ. User Datagram Protocol — протокол пользовательских датаграмм) — это транспортный протокол для передачи данных в сетях IP. Он является одним из самых простых протоколов транспортного уровня модели OSI. В отличие от TCP, UDP не гарантирует доставку пакета, поэтому аббревиатуру иногда расшифровывают как «Unreliable Datagram Protocol» (протокол ненадёжных датаграмм). Это позволяет ему гораздо быстрее и эффективнее доставлять данные для приложений, которым требуется большая пропускная способность линий связи, либо требуется малое время доставки данных. Принцип работы протокола При использовании UDP приложение почти напрямую взаимодействует с протоколом сетевого уровня IP. UDP : • получает сообщения от прикладного уровня, • добавляет к ним поля номеров портов отправителя и получателя для демультиплексирования приемной стороной, а также два других специальных поля • передает полученный сегмент сетевому уровню. Сетевой уровень заключает сегмент в дейтаграмму и «по возможности» передает ее хосту назначения. Если последний успешно получает сегмент, протокол UDP с помощью поля номера порта получателя направляет данные сегмента нужному процессу. Принцип работы протокола UDP осуществляет передачу данных без установления соединения. UDP добавляет к сообщению заголовочные поля и передает его сетевому уровню. Сетевой уровень заключает сообщение в дейтаграмму и передает ее серверу имен. Прикладные процессы и модули UDP взаимодействуют через UDP-порты. Эти порты нумеруются, начиная с нуля. Прикладной процесс, предоставляющий некоторые услуги (сервер), ожидает сообщений, направленных в порт, специально выделенный для этих услуг. Программа-сервер ждет, когда какая-нибудь программа-клиент запросит услугу. Пример работы в SNMP сервере Сервер SNMP всегда ожидает сообщения, адресованного в порт 161. Если клиент желает получить SNMP услугу, он посылает запрос в UDP-порт 161 на машину, где работает сервер. На каждой машине может быть только один агент SNMP, т.к. существует только один порт 161. Данный номер порта является общеизвестным, т.е. фиксированным номером, официально выделенным в сети Internet для услуг SNMP. Структура UDP-сегмента ПОРТЫ Протокол UDP использует 16-ти битные порты, которые могут принимать значения от 0 до 65535. 1…1023 - системные и фиксированные порты; 1024…49151 – зарегистрированные порты; 49152…65535 - свободно используемые и временные порты; Контрольная сумма Контрольная сумма UDP-сегмента предназначена для обнаружения ошибок. Протокол UDP способен лишь обнаруживать ошибки, однако не располагает средствами их исправления. Некоторые реализации UDP удаляют искаженный сегмент, а некоторые передают его прикладному уровню с соответствующим предупреждением. Пример расчета контрольной суммы В качестве примера рассмотрим три 16-разрядных слова: 0110011001100110 0101010101010101 0000111100001111 Сумма первых двух слов равна: 1011101110111011 Сложение полученной суммы с третьим словом дает результат: 1100101011001010 Дополнение до 1 вычисляется путем замены всех нулей суммы единицами и наоборот. Дополнением до 1 слова 1100101011001010 является слово 0011010100110101, которое и будет записано в поле контрольной суммы. На приемной стороне производится суммирование всех слов сегмента, включая поле контрольной суммы. Если при передаче не произошло искажения ни одного из битов, результатом суммирования является 1111111111111111. Присутствие хотя бы одного нулевого бита в сумме свидетельствует о наличии ошибок в данных. Мультиплексирование и демультиплексирование прикладных протоколов Протокол UDP ведет для каждого порта две очереди: очередь пакетов, поступающих в данный порт из сети очередь пакетов, отправляемых данным портом в сеть. Процедура обслуживания протоколом UDP запросов, поступающих от нескольких различных прикладных сервисов, называется мультиплексированием. Распределение протоколом UDP поступающих от сетевого уровня пакетов между набором высокоуровневых сервисов, идентифицированных номерами портов, называется демультиплексированием (рисунок). Схема взаимодействия клиента и сервера для протокола UDP Достоинства протокола UDP Отсутствие процедуры установления соединения Не вносит дополнительную задержку в процесс передачи. Отсутствие информации о состоянии соединения Нет необходимость в наличии буферов для промежуточного хранения информации о приеме и передаче, параметров контроля перегрузки, порядковых номеров и номеров квитанций. Небольшой размер заголовка Улучшенный механизм управления передачей данных приложением Данные, поступающие от приложения, сразу же упаковываются в сегмент и передаются сетевому уровню. Использование Приложение Прикладной протокол Транспортный протокол Электронная почта SMTP TCP Доступ с удаленного терминала Web Telnet TCP HTTP TCP Паредача файлов FTP TCP Удаленный файловый сервер NFS UDP или TCP Потоковое мультимедиа Нестандартный UDP или TCP Интернет-телефония Нестандартный Как правило, UDP Сетевое администрирование SNMP Как правило, UDP Протокол маршрутизации RIP Как правило, UDP Трансляция имен DNS Как правило, UDP Протоколы прикладного и транспортного уровней, используемые Интернет-приложениями Вывод Протокол UDP выполняет минимум действий, необходимых для протокола транспортного уровня. Фактически функции UDP сводятся к операциям мультиплексирования и демультиплексирования, а также несложной проверке наличия ошибок в данных. При использовании UDP приложение почти напрямую взаимодействует с протоколом сетевого уровня IP. Список литературы: Д.Ф. Куроуз. Компьютерные сети. 2-е изд. – СПб.Питер,2004г. В. Столингс. Передача данных. 4-е изд. – СПб.Питер, 2004г http://ru.wikipedia.org/ http://www.oszone.ru/