Читать книгу 📗 "Операционная система UNIX - Робачевский Андрей Михайлович"
Протоколы транспортного уровня замыкают систему адресации DARPA. Адреса, которые используются протоколами этого уровня и называются номерами портов (port number), служат для определения процесса (приложения), выполняющегося на данном хосте, которому адресованы данные. Другими словами, для передачи сообщения от источника к получателю требуется шесть адресов — по три с каждой стороны (физический адрес адаптера, IP-адрес и номер порта) — для однозначного определения пути. Номер порта адресует конкретный процесс (приложение) и содержится в заголовке TCP- или UDP-пакета. IP-адрес определяет сеть и хост, на котором выполняется процесс, и содержится в заголовке IP-датаграммы. Адрес сетевого адаптера определяет расположение хоста в физической сети.
Номера портов занимают 16 бит и стандартизированы в соответствии с их назначением. Полный список стандартных номеров портов приведен в RFC 1700 "Assigned Numbers". Часть из них в качестве примера приведена в табл. 6.4.
Таблица 6.4. Некоторые стандартные номера портов
Номер порта | Название | Назначение (протокол уровня приложений) |
---|---|---|
7 | echo | Echo |
20 | ftp-data | Передача данных по протоколу FTP |
21 | ftp | Управляющие команды протокола FTP |
23 | telnet | Удаленный доступ (Telnet) |
25 | smtp | Электронная почта (Simple Mail Transfer Protocol) |
53 | domain | Сервер доменных имен (Domain Name Server) |
67 | bootps | Сервер загрузки Bootstrap Protocol |
68 | bootpc | Клиент загрузки Bootstrap Protocol |
69 | tftp | Передача файлов (Trivial File Transfer Protocol) |
70 | gopher | Информационная система Gopher |
80 | www-http | World Wide Web (HyperText Transfer Protocol) |
110 | pop3 | Электронная почта (POP версии 3) |
119 | nntp | Телеконференции (Network News Transfer Protocol) |
123 | ntp | Синхронизация системных часов (Network Time Protocol) |
161 | snmp | Менеджмент/статистика (Simple Network Management Protocol) |
179 | bgp | Маршрутизационная информация (Border Gateway Protocol) |
User Datagram Protocol (UDP)
UDP является протоколом транспортного уровня и, как следует из названия, обеспечивает логический коммуникационный канал между источником и получателем данных без предварительного установления связи. Другими словами, сообщения, обрабатываемые протоколом не имеют друг к другу никакого отношения с точки зрения UDP. Для передачи датаграмм использует протокол IP и так же, как и последний, не обеспечивает надежности передачи. Поэтому приложения, использующие этот транспортный протокол, должны при необходимости самостоятельно обеспечить надежность доставки, например, путем обмена подтверждениями и повторной передачей недоставленных сообщений.
Однако благодаря минимальной функциональности протокола UDP, передача данных с его использованием вносит гораздо меньшие накладные расходы по сравнению, скажем, с парным ему транспортным протоколом TCP. Размер заголовка UDP, показанного на рис. 6.9, составляет всего 8 октетов.

Рис. 6.9. Заголовок UDP
Первые два поля, каждое из которых занимает по 2 октета, адресуют соответственно порты источника и получателя. Указание порта источника является необязательным и это поле может быть заполнено нулями. Поле
Length
Checksum
Protocol

Рис. 6.10. Псевдозаголовок UDP
В качестве примеров протоколов уровня приложений, которые используют в качестве транспортного протокол UDP, можно привести:
□ Протокол взаимодействия с сервером доменных имен DNS, порт 53.
□ Протокол синхронизации времени Network Time Protocol, порт 123.
□ Протокол удаленной загрузки BOOTP, порты 67 и 68 для клиента и сервера соответственно.
□ Протокол удаленного копирования Trivial FTP (TFTP), порт 69.
□ Удаленный вызов процедур RPC, порт 111.
Для всех перечисленных протоколов и соответствующих им приложений предполагается, что в случае недоставки сообщения необходимые действия предпримет протокол верхнего уровня (приложение). Как правило, приложения, использующие протокол UDP в качестве транспорта, обмениваются данными, имеющими статистический повторяющийся характер, когда потеря одного сообщения не влияет на работу приложения в целом. Приложения, требующие гарантированной надежной доставки данных, используют более сложный протокол транспортного уровня, в значительной степени дополняющего функциональность протокола IP, — протокол TCP.
Transmission Control Protocol (TCP)
TCP является протоколом транспортного уровня, поддерживающим надежную передачу потока данных с предварительным установлением связи между источником информации и ее получателем. На базе протокола TCP реализованы такие протоколы уровня приложений, как Telnet, FTP или HTTP.
Протокол TCP характеризуется следующими возможностями, делающими его привлекательным для приложений:
□ Перед фактической передачей данных необходимо установление связи, т.е. запрос на начало сеанса передачи данных источником и подтверждение получателем. После обмена данными сеанс передачи должен быть явно завершен.
□ Доставка информации является надежной, не допускающей дублирования или нарушения очередности получения данных.