Зарезервированные и доступные UDP-порты

Сетевой уровень –передача между произвольными узлами.

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

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

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

Назначение номеров портов прикладным процессам осуществляется либо централизовано, если эти процессы представляют собой популярные общедоступные сервисы, типа сервиса удаленного доступа к файлам TFTP (Trivial FTP) или сервиса удаленного управления telnet, либо локально для тех сервисов, которые еще не стали столь распространенными, чтобы за ними закреплять стандартные (зарезервированные) номера.

Централизованное присвоение сервисам номеров портов выполняется организацией InternetAssignedNumbersAuthority. Эти номера затем закрепляются и опубликовываются в стандартах Internet. Локальное присвоение номера порта заключается в том, что разработчик некоторого приложения просто связывает с ним любой доступный, произвольно выбранный числовой идентификатор, обращая внимание на то, чтобы он не входил в число зарезервированных номеров портов.

Динамические номера – операционная система выделяет под работу приложения свободный номер. После завершения работы приложения , номер освобождается.

Формат сообщений UDP

Единица данных протокола UDP называется UDP-пакетом или пользовательской дейтаграммой. UDP-пакет состоит из заголовка и поля данных, в котором размещается пакет прикладного уровня. Заголовок имеет простой формат и состоит из четырех двухбайтовых полей:

  • Поле sourceport - номер порта процесса-отправителя.
  • Поле destinationport - номер порта процесса-получателя.
  • Поле messagelength - длина UDP-пакета в байтах.
  • Поле checksum - контрольная сумма UDP-пакета.

Не все поля UDP-пакета обязательно должны быть заполнены. Например, если посылаемая дейтаграмма не предполагает ответа, то на месте адреса отправителя могут помещаться нули.

Контрольное суммирование

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

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

Инкапсуляция.

Например, когда процесс хочет послать сообщение с помощью UDP, то производится последовательность действий:

§ процесс передает сообщение к UDP в соответствии с парой гнездовых адресов и длины данных;

§ UDP получает данные, дополненные заголовком UDP;

§ UDP передает пользовательскую дейтаграмму к IP с гнездовым адресом;

§ IP дополняет свой заголовок, который использует значение 17 в поле протокола, указывающее, что данные поступили от UDP-протокола;

§ IP-дейтаграмма дополняет и добавляет собственный заголовок (при необходимости и окончание) и передает его к физическому уровню;

§ физический уровень кодирует биты в электрические или оптические сигналы и посылает их отдалённой машине.

Работа протокола на хосте – отправителе

Вопрос 22