Книга: TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
9.2 Порты приложений
9.2 Порты приложений
Что происходит после прибытия данных в хост назначения? Как выполняется их доставка в нужное приложение (процесс)?
На рис. 9.2 видно, что для каждого уровня существует идентификатор протокола, указывающий операции, выполняемые над данными. На втором уровне тип Ethernet X'08-00 в заголовке кадра показывает, что кадр нужно передать в IP. На третьем уровне поле протокола в заголовке IP указывает протокол четвертого уровня, куда нужно переслать данные (например, 6 для TCP или 17 для UDP).
Рис. 9.2. Пересылка данных до уровня приложений
Хост может участвовать одновременно в нескольких коммуникациях. Так как же из общего потока выделяется датаграмма UDP и доставляется на нужный уровень приложения? Такой процесс пересылки данных в требуемый процесс часто называют демультиплексированием. Ответ состоит в том, что каждой конечной коммуникационной точке UDP присвоен 16-разрядный идентификатор, называемый номером порта. Термин "порт" не очень удачен для данного идентификатора. Порт для клиентской и серверной частей приложения не имеет никакого отношения к портам оборудования и физическому пути пересылки данных).
Порты с номерами от 0 до 1023 зарезервированы для стандартных служб. Такие порты называются общеизвестными (well-known). Их использование позволяет клиенту идентифицировать службу, к которой он хочет получить доступ. Например, доступ к DNS (которая основана на UDP) производится через общеизвестный порт 53.
Кто назначает общеизвестные порты? Как не трудно догадаться, этим занимается IANA. Номера портов для определенных приложений регистрируются этой организацией и публикуются в документе RFC Assigned Numbers (присвоенные номера). Сокращенный список портов UDP из текущего документа RFC Assigned Numbers показан в таблице 9.1.
Таблица 9.1 Примеры общеизвестных портов UDP
Служба | Порт/протокол | Описание |
---|---|---|
Echo | 7/udp | Посылка отправителю эхо-ответа на пользовательскую датаграмму |
Discard | 9/udp | Отмена пользовательской датаграммы |
Daytime | 13/udp | Отчет о времени дня в понятном формате |
Quote | 17/udp | Возврат сообщения quote of the day — цитата дня |
Chargen | 19/udp | Генератор символов |
Nameserver | 53/udp | Сервер имен доменов |
Bootps | 67/udp | Порт сервера для загрузки конфигурационной информации |
Bootpc | 68/udp | Порт клиента для получения конфигурационной информации |
TFTP | 69/udp | Порт протокола Trivial File Transfer Protocol |
SunRPC | 111/udp | Вызов удаленных процедур (Remote Procedure Call) компании Sun |
NTP | 123/udp | Протокол Network Time Protocol |
SNMP | 161/udp | Используется для получения сетевых запросов обслуживания |
SNMP-trap | 162/udp | Служит для получения отчетов о проблемах в сети |
Несколько общеизвестных служб обеспечивает модули для тестирования, отладки и измерений. Например, echo (эхо) с портом 7, соответствуя своему имени, возвращает любую посланную на этот порт датаграмму. Служба Discard (отмена) порта 9, наоборот, удаляет из сети любую посланную на этот порт датаграмму. Character generator (генератор символов) отвечает на любое сообщение датаграммой, содержащей от 0 до 512 байт. Количество байт выбирается случайным образом.
Служба quote of the day (цитата дня) отвечает на любую датаграмму определенным сообщением, например, в некоторых системах программа fortune выводит при регистрации "мудрые" советы (в данном примере приведена фраза Уинстона Черчилля: "Человек может случайно споткнуться об истину, но в большинстве случаев не замечает ее и сосредоточенно продолжает дальнейший поиск".):
> fortune
Churchill's Commentary on Man:
Man will occasionally stumble over the truth, but most of the
time he will pick himself up and continue on.
Служба daytime (время дня) отвечает на любые датаграммы сообщением, содержащим текущую дату и время в формате ASCII. Такой формат можно прочитать на экране без дополнительных преобразований. Иначе ведет себя служба Network Time Protocol (NTP), обеспечивающая надежный метод синхронизации компьютеров сети.
Сервер BOOTP и клиент этой службы используются для неконфигурируемых устройств. Рабочая станция может получить для себя IP-адрес, свою маску адреса, узнать местоположение маршрутизатора по умолчанию, адреса наиболее важных серверов сети и, при необходимости, имя и местоположение на сервере boot загружаемого программного файла конфигурации. Программное обеспечение в рабочую станцию поступает через протокол Trivial File Transfer Protocol (см. главу 14).
Мы уже знаем, что сервер имен доступен через порт 53 и команду nslookup. Порты 161 и 162 используются протоколом Simple Network Management Protocol.
Кроме официально назначенных номеров, любая система с TCP/IP может резервировать диапазон номеров для важных сетевых служб и приложений.
Оставшиеся номера портов (выше 1023) предоставляются клиентам от программного обеспечения хоста по мере необходимости. Выделение предусматривает следующие шаги:
1. Пользователь запускает клиентскую программу (например, nslookup).
2. Клиентский процесс исполняет системную подпрограмму, имеющую смысл: "Я хочу выполнить коммуникацию UDP. Предоставьте мне порт".
3. Системная подпрограмма выбирает неиспользованный порт из пула доступных портов и предоставляет его клиентскому процессу.
Можно видеть, что TCP также идентифицирует источник и назначение своим 16-разрядным идентификатором порта. Например, порт 21 применяется для доступа к службе пересылки файлов, а порт 23 — для службы регистрации telnet.
Номера TCP и UDP независимы друг от друга. Один процесс может посылать сообщения из порта UDP с номером 1700, в то время как другой продолжает сеанс TCP через порт 1700. Существует несколько служб, доступных как через TCP, так и через UDP. В этом случае IANA предусматривает присвоение одинакового номера порта для службы UDP и TCP. Однако конечные точки коммуникации остаются в разных местах.
- Порты завершения ввода
- 10.2.5 Порты приложения
- 4.6. Порты ввода
- Повышение производительности приложений с помощью хранимых процедур
- 12. Лекция: Создание приложений с графическим интерфейсом пользователя.
- Разработка приложений баз данных InterBase на Borland Delphi
- 7.5 Программные интерфейсы приложений для адаптеров шины
- Создание рабочих областей для документов из приложений Microsoft Office 2007
- Вызов справки из приложений
- Просмотр эскизов приложений
- Практическая работа 23. Установка и удаление приложений
- Справочная система приложений Office