- •А. М. Шабалин
- •Предисловие
- •Введение
- •1 Современные классификации операционных систем
- •1.1 Основные аспекты изучения современных операционных систем
- •1.2 Определение сетевых операционных систем
- •1.3 Характеристика популярных операционных систем по различным классификационным критериям
- •1.3.1 Операционные системы компании Microsoft
- •1.3.2 Альтернативные операционные системы
- •2 Современные сетевые протоколы
- •2.1 Стандартная семиуровневая эталонная модель взаимодействия открытых систем и стек протоколов tcp/ip
- •2.2 Протоколы межсетевого взаимодействия семейства ip
- •2.2.1 Протокол iPv4
- •2.2.2 Протокол iPv6
- •2.3 Основы адресации в ip-сетях
- •2.3.1 Адресация iPv4
- •2.3.2 Адресация iPv6
- •2.4 Проблема установления соответствия между адресами различных типов
- •00-18-F3-4a-a1-55
- •192.168.200.199
- •194.85.135.75 – 008048Ев7е60.
- •2.5 Протоколы транспортного уровня стека tcp/ip
- •2.5.1 Протокол udp
- •2.5.2 Протокол tcp
- •2.6 Протоколы маршрутизации
- •2.6.1 Классификации протоколов маршрутизации
- •2.6.2 Внутренние протоколы маршрутизации rip и ospf
- •2.6.3 Внешний шлюзовый протокол bgp
- •2.6.4 Дополнительные протоколы маршрутизации icmp и igmp
- •Заключение
- •Библиографический список
- •Приложение а
- •Синтаксис:
- •Приложение б Настройка iPv6 в операционной системе ms WindowsXp
- •Приложение в Контрольно-измерительные материалы
- •Словарь терминов и определений
- •Часть ip-адреса, соответствующая сетевой части адреса.
- •Алфавитно-предметный указатель
- •Часть 71
- •Список сокращений
- •Учебное издание
2.5.1 Протокол udp
Единица данных протокола UDP называется UDP-дейтаграммой, или пользовательской дейтаграммой. Каждая дейтаграмма переносит отдельное пользовательское сообщение. Это приводит к естественному ограничению: длина дейтаграммы UDP не может превышать длины поля данных протокола IP, которое, в свою очередь, ограничено размером кадра технологии нижнего уровня. Поэтому если UDP-буфер переполняется, то данные приложения отбрасываются.
Заголовок UDP, состоящий из четырех 2-х-байтовых полей, содержит номера портов отправителя и получателя, контрольную сумму и длину дейтаграммы (рис.2.11) [24].
16 бит Порт источника |
16 бит Порт приемника |
16 бит Длина дейтаграммы |
16 бит Контрольная сумма |
Рис. 2.11 – Структура UDP-заголовка
Поле Порт источника (Source Port) занимает 2 байта и идентифицирует процесс-отправитель.
Поле Порт приемника (Destination Port) занимает 2 байта и идентифицирует процесс-получатель.
Поле Длина дейтаграммы (Total Length) занимает 2 байта и представляет собой длину UDP-пакета вместе с заголовком.
Поле Контрольная сумма (Checksum) занимает 2 байта.
Ниже приведен пример заголовка UDP с заполненными полями:
1. Source Port = 0x0035 [порт источника].
2. Destination Port = 0x0411 [порт назначения].
3. Total length = 132 (0x84) bytes [длина UDP-заголовка].
4. Checksum = 0x5333 [контрольная сумма].
В этой UDP-дейтаграмме в поле данных, длина которого, как следует из заголовка, равна 132 байтам, помещено сообщение DNS-сервера. Это можно видеть по номеру порта источника (Source Port = 0x0035), что в шестнадцатеричном формате равно стандартному номеру DNS-сервера 53.
Протокол UDP решает задачу демультиплексирования следующим образом: кадры, несущие UDP-дейтаграммы, пребывают на сетевой интерфейс хоста, последовательно обрабатываются протоколами стека и поступают в распоряжение протокола UDP, который извлекает из заголовка номер порта назначения и передает данные на определенный порт соответствующему приложению, то есть выполняет демультиплексирование.
Это решение выглядит очень логично и просто, однако оно неработоспособно в ситуации, когда на конечном узле выполняется несколько копий одного и того же приложения. Пусть, например, на одном хосте запущены два DNS-сервера, причем оба используют для передачи своих сообщений протокол UDP. DNS-сервер имеет хорошо известный UDP-порт 53. В то же время у каждого из DNS-серверов могут быть свои клиенты, собственные базы данных и настройки. Когда на сетевой интерфейс данного компьютера придет запрос от DNS-клиента, в UDP-дейтаграмме будет указан номер порта 53, который в равной степени относится к обоим DNS-серверам. Чтобы снять неоднозначность, используют следующий прием: разным копиям одного приложения, даже установленным на одном компьютере, присваивают различные IP-адреса. В данном примере DNS-сервер1 имеет IP-адрес IР1, а DNS-сервер2 – IP-адрес IР2. Таким образом однозначно определяет прикладной процесс в сети (а тем более в пределах компьютера) пара (IP-адрес, номер порта UDP), называемая UDP-сокетом (UDP socket), то есть протокол UDP выполняет демультиплексирование на основе сокетов [18].