
- •Вопрос 1
- •Вопрос 2
- •3.3. Технология Ethernet (802.3)
- •3.3.1. Метод доступа csma/cd
- •3.3.3. Форматы кадров технологии Ethernet
- •Кадр 802.3/llc
- •Cтруктура mac-адреса
- •Этапы доступа к среде
- •Возникновение коллизии
- •Домен коллизий
- •Вопрос 4
- •1.2.6. Структуризация как средство построения больших сетей
- •Ограничения топологии сети, построенной на мостах
- •5.1.1. Ограничения мостов и коммутаторов
- •Поддержка алгоритма Spanning Tree
- •Вопрос 7
- •1.3.1. Многоуровневый подход. Протокол. Интерфейс. Стек протоколов
- •1.3.2. Модель osi
- •1.3.3. Уровни модели osi
- •Вопрос 9
- •5.2. Адресация в ip-сетях
- •5.2.1. Типы адресов стека tcp/ip
- •5.2.2. Классы ip-адресов
- •5.2.3. Особые ip-адреса
- •Вопрос 10
- •5.2.4. Использование масок в ip-адресации
- •Вопрос 11
- •5.3.3. Таблицы маршрутизации в ip-сетях
- •Вопрос 12
- •5.3.5. Маршрутизация с использованием масок
- •Вопрос 13
- •Вопрос 14
- •[Править] Принцип работы
- •[Править] Применение
- •Вопрос 15
- •5.4.2. Дистанционно-векторный протокол rip
- •Вопрос 16
- •5.3. Протокол ip
- •5.3.1. Основные функции протокола ip
- •5.3.2. Структура ip-пакета
- •5.3.6. Фрагментация ip-пакетов
- •Вопрос 17
- •Вопрос 18
- •Вопрос 19
- •2.2. Методы передачи дискретных данных на физическом уровне
- •2.2.1. Аналоговая модуляция
- •Методы аналоговой модуляции
- •2.2.2. Цифровое кодирование
- •Требования к методам цифрового кодирования
- •Потенциальный код без возвращения к нулю
- •Потенциальный код с инверсией при единице
- •Манчестерский код
- •Четвертая передача — код mlt-3
- •Пятая передача — код pam 5
- •Вопрос 20
- •2.2.3. Логическое кодирование
- •Редуктор — координирование данных 4в5в
- •Вопрос 21
- •2.4. Методы коммутации
- •2.4.1. Коммутация каналов
- •2.4.2. Коммутация пакетов
Вопрос 17
UDP (англ. User Datagram Protocol — протокол пользовательских дейтаграмм) — это транспортный протокол для передачи данных в сетях IP без установления соединения. Он является одним из самых простых протоколов транспортного уровня модели OSI. Его IP-идентификатор — 0x11.
В отличие от TCP, UDP не подтверждает доставку данных, не заботится о корректном порядке доставки и не делает повторов. Поэтому аббревиатуру UDP иногда расшифровывают как Unreliable Datagram Protocol (протокол ненадёжных датаграмм). Зато отсутствие соединения, дополнительного трафика и возможность широковещательных рассылок делают его удобным для применений, где малы потери, в массовых рассылках локальной подсети, в медиапротоколах и т.п.
Протокол UDP (User Datagram Protocol, RFC-768) является одним из основных протоколов, расположенных непосредственно над IP. Он предоставляет прикладным процессам транспортные услуги, немногим отличающиеся от услуг протокола IP. Протокол UDP обеспечивает доставку дейтограмм, но не требует подтверждения их получения. Протокол UDP не требует соединения с удаленным модулем UDP ("бессвязный" протокол). К заголовку IP-пакета UDP добавляет поля порт отправителя и порт получателя, которые обеспечивают мультиплексирование информации между различными прикладными процессами, а также поля длина UDP-дейтограммы и контрольная сумма, позволяющие поддерживать целостность данных. Таким образом, если на уровне IP для определения места доставки пакета используется адрес, на уровне UDP - номер порта.
Область использования UDP
Примерами сетевых приложений, использующих UDP, являются NFS (Network File System), TFTP (Trivial File Transfer protocol, RFC-1350), RPC (Remote Procedure Call, RFC-1057) и SNMP (Simple Network Management Protocol, RFC-1157). Малые накладные расходы, связанные с форматом UDP, а также отсутствие необходимости подтверждения получения пакета, делают этот протокол наиболее популярным при реализации приложений мультимедиа, но главное его место работы - локальные сети и мультимедиа.
Хотя протокол UDP не гарантирует доставки, по умолчанию предполагается, что вероятность потери пакета достаточно мала. |
Прикладные процессы и модули UDP взаимодействуют через UDP-порты. Эти порты нумеруются, начиная с нуля. Прикладной процесс, предоставляющий некоторые услуги (сервер), ожидает сообщений, направленных в порт, специально выделенный для этих услуг. Программа-сервер ждет, когда какая-нибудь программа-клиент запросит услугу.
Например, сервер SNMP всегда ожидает сообщения, адресованного в порт 161. Если клиент snmp желает получить услугу, он посылает запрос в UDP-порт 161 на машину, где работает сервер. На каждой машине может быть только один агент SNMP, т.к. существует только один порт 161. Данный номер порта является общеизвестным, т.е. фиксированным номером, официально выделенным в сети Internet для услуг SNMP. Общеизвестные номера портов определяются стандартами Internet (см. табл. 4.4.2.1).
Данные, отправляемые прикладным процессом через модуль UDP, достигают места назначения как единое целое. Например, если процесс-отправитель производит 5 записей в порт, то процесс-получатель должен будет сделать 5 чтений. Размер каждого записанного сообщения будет совпадать с размером каждого прочитанного. Протокол UDP сохраняет границы сообщений, определяемые прикладным процессом. Он никогда не объединяет несколько сообщений в одно и не делит одно сообщение на части. Формат UDP-сообщений представлен ниже на рис. 4.4.2.1:
Формат UDP-дейтограмм
Рис. 4.4.2.1 Формат UDP-дейтограмм
Длина сообщения равна числу байт в UDP-дейтограмме, включая заголовок. Поле UDP контрольная сумма содержит код, полученный в результате контрольного суммирования UDP-заголовка и поля данные. Не трудно видеть, что этот протокол использует заголовок минимального размера (8 байт). Таблица номеров UDP-портов приведена ниже (4.4.2.1). Номера портов от 0 до 255 стандартизованы и использовать их в прикладных задачах не рекомендуется. Но и в интервале 255-1023 многие номера портов заняты, поэтому прежде чем использовать какой-то порт в своей программе, следует заглянуть в RFC-1700. Во второй колонке содержится стандартное имя, принятое в Internet, а в третей - записаны имена, принятые в UNIX.
Порты
Взаимодействие между прикладными процессами и модулем UDP осуществляется через UDP-порты. Порты нумеруются начиная с нуля. Прикладной процесс, предоставляющий некоторые услуги другим прикладным процессам (сервер), ожидает поступления сообщений в порт, специально выделенный для этих услуг. Сообщения должны содержать запросы на предоставление услуг. Они отправляются процессами-клиентами.
Например, сервер SNMP всегда ожидает поступлений сообщений в порт 161. Если клиент SNMP желает получить услугу, он посылает запрос в UDPпорт 161 на машину, где работает сервер. В каждом узле может быть только один сервер SNMP, так как существует только один UDP-порт 161. Данный номер порта является общеизвестным, то есть фиксированным номером, официально выделенным для услуг SNMP. Общеизвестные номера определяются стандартами Internet.
Данные, отправляемые прикладным процессом через модуль UDP, достигают места назначения как единое целое. Например, если процессотправитель производит 5 записей в UDP-порт, то процесс-получатель должен будет сделать 5 чтений. Размер каждого записанного сообщения будет совпадать с размером каждого прочитанного. Протокол UDP сохраняет границы сообщений, определяемые прикладным процессом. Он никогда не объединяет несколько сообщений в одно и не делит одно сообщение на части. Контрольное суммирование
Когда модуль UDP получает датаграмму от модуля IP, он проверяет контрольную сумму, содержащуюся в ее заголовке. Если контрольная сумма равна нулю, то это означает, что отправитель датаграммы ее не подсчитывал, и, следовательно, ее нужно игнорировать. Если два модуля UDP взаимодействуют только через одну сеть Ethernet, то от контрольного суммирования можно отказаться, так как средства Ethernet обеспечивают достаточную степень надежности обнаружения ошибок передачи. Это снижает накладные расходы, связанные с работой UDP. Однако рекомендуется всегда выполнять контрольное суммирование, так как возможно в какой-то момент изменения в таблице маршрутов приведут к тому, что датаграммы будут посылаться через менее надежную среду.
Если контрольная сумма правильная (или равна нулю), то проверяется порт назначения, указанный в заголовке датаграммы. Если к этому порту подключен прикладной процесс, то прикладное сообщение, содержащееся в датаграмме, становится в очередь для прочтения. В остальных случаях датаграмма отбрасывается. Если датаграммы поступают быстрее, чем их успевает обрабатывать прикладной процесс, то при переполнении очереди сообщений поступающие датаграммы отбрасываются модулем UDP.
В компьютерах номера некоторых портов присваиваются (по умолчанию) к некоторым сервисам и службам. Порты с 1 по 1024 являются привилегированными зарезервированными за компьютерными службами). А порты с 1024 по 65535 - непривилегированные, "отданные" под нужды пользователей.