Протоколы TCP/IP прикладного уровня

Верхний уровень TCP/IP - это уровень приложений, или прикладной уровень.

Рис. 1. Прикладной уровень набора протоколов TCP/IP.
Прикладной уровень набора протоколов TCP/IP
На рисунке показаны уровни набора протоколов TCP/IP. На верхнем (прикладном) уровне находится приложение. На транспортном уровне работают UDP и TCP. Сетевой уровень представлен сетевым (аппаратным) интерфейсом. Аппаратный уровень - это физическая сеть.

При отправке данных от одного приложения приложению другого хоста сети, данные приложения передаются на нижний транспортный уровень, где информация подготавливается к передаче.

Ниже приведен список стандартных протоколов Internet прикладного уровня:

Помимо стандартных протоколов, в TCP/IP реализован ряд других популярных протоколов Internet прикладного уровня. Среди них такие протоколы, как:

В TCP/IP не предусмотрены API для этих протоколов прикладного уровня.

Протокол имен доменов

Протокол имен доменов (DOMAIN позволяет хосту выступать в качестве сервера имен для других хостов.

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

В иерархической системе имен DOMAIN для преобразования имен и адресов Internet применяются локальные процедуры преобразования, работающие на основе локальной базы данных имен, которая обслуживается демоном named. Если указанное хостом имя отсутствует в локальной базе данных, процедура преобразования обращается к удаленному серверу имен DOMAIN. Если необходимая информация не найдена и на удаленном сервере, то процедура преобразования просматривает файл /etc/hosts.

Прим.: TCP/IP разрешает локальным процедурам преобразования применять протокол DOMAIN, если на хосте есть файл /etc/resolv.conf. Если такого файла нет, TCP/IP настраивает локальные процедуры преобразования на применение базы данных /etc/hosts.

Протокол DOMAIN реализован в TCP/IP в виде демона named и процедур преобразования. Для него не предусмотрен API.

Протокол внешних шлюзов

Протокол внешних шлюзов (EGP) позволяет внешними шлюзам автономных систем обмениваться информацией о маршрутизации.

Автономные системы

Если шлюз расположен в той же самой автономной системе, то он называется внутренним соседом, а если в другой автономной системе, то внешним соседом. Шлюзы, которые применяют протокол EGP для обмена информацией о маршрутизации, называются равноправными шлюзами EGP или партнерами. С помощью EGP шлюзы автономных систем предоставляют доступ к информации своим соседям EGP.

С помощью протокола EGP внешние шлюзы могут запрашивать у других внешних шлюзов согласие на обмен информацией о досягаемости сетей, проверять работоспособность соседей EGP и обмениваться сообщениями с информацией об изменении маршрутов.

Протокол EGP позволяет внешним шлюзам обмениваться информацией о досягаемости лишь тех сетей, которые достижимы из автономной сети шлюза. Таким образом, внешний шлюз передает с помощью EGP информацию своим соседям EGP , но не распространяет информацию о соседях EGP за пределы автономной системы.

Протокол EGP не анализирует метрики расстояний, которые указываются в сообщениях о маршрутизации, передаваемых другими протоколами. В поле расстояния EGP указывает, существует ли данный путь (значение 255 означает, что сеть недостижима). Это значение не применяется для выбора наикратчайшего из двух маршрутов, если эти маршруты не относятся к одной автономной системе. Поэтому EGP не применяется в качестве алгоритма маршрутизации. В результате существует только один путь от внешнего шлюза до любой сети.

В отличие от Протокола информации о маршрутизации (RIP), который применяется в автономных системах Internet для динамической настройки маршрутов, маршруты EGP фиксированы и заданы в файле /etc/gated.conf. EGP применяет IP в качестве протокола нижнего уровня.

Типы сообщений EGP

Здесь приведены сведения о различных типах сообщений Протокола внешних шлюзов (EGP).

Флаг Описание
Neighbor Acquisition Request (Регистрация соседа) Это сообщение содержит приглашение стать соседями, адресованное другому внешнему шлюзу.
Neighbor Acquisition Reply (Ответ на запрос Регистрация соседа) Отправляется внешним шлюзом, если он принимает приглашение стать соседями.
Neighbor Acquisition Refusal (Отклонение запроса Регистрация соседа) Отправляется внешним шлюзом, если он отвергает запрос Регистрация соседа. Это сообщение содержит причины отказа, например, недостаточно памяти в таблице.
Neighbor Cease (Отказ от соседа) Отправляется внешним шлюзом, если он хочет исключить какой-то внешний шлюз из списка соседей. Это сообщение содержит причины отказа, например, возникла неполадка.
Neighbor Cease Acknowledgment (Уведомление о получении отказа) Отправляется внешним шлюзом, чтобы уведомить отправителя о получении сообщения Отказ от соседа.
Neighbor Hello (Приветствие соседа) Отправляется внешним шлюзом, если он хочет проверить готовность соседа к работе. Шлюз отправляет сообщение Hello, а другой хост отвечает ему сообщением I Heard You.
I Heard You (Ответ на приветствие) Отправляется внешним шлюзом в ответ на сообщение Hello. Сообщение I Heard You содержит информацию о досягаемости сетей отвечающего шлюза. Кроме того, в нем может быть указана причина, по которой запрашивающий шлюз недостижим, например, Шлюз недостижим из-за неполадок в работе моего сетевого интерфейса.
NR Poll (Опрос соседей) Отправляется внешним шлюзом для получения информации о досягаемости сетей из автономных систем, в которых расположены соседи.
Network Reachability (Досягаемость сетей) Отправляется внешним шлюзом в ответ на сообщение NR Poll. В сообщении Network Reachability каждый сосед указывает адреса шлюзов, которые достижимы через его соседей.
EGP Error (Ошибка EGP) Отправляется внешним шлюзом в ответ на сообщение EGP, содержащее неправильную контрольную сумму или поля, в которых заданы неверные значения.
В TCP/IP протокол EGP реализован в виде сервера gated. Для него не предусмотрен API.

Протокол передачи файлов

Протокол передачи файлов (FTP) предназначен для обмена данными между хостами различных типов, а также для обмена файлами между внешними хостами через промежуточные системы.

FTP служит для выполнения таких задач, как просмотр списка удаленных каталогов, переход в другой удаленный каталог, создание и удаление каталогов в другой системе и передача набора файлов по одному запросу. FTP обеспечивает защиту данных при передаче, отправляя внешнему хосту имя пользователя и пароль учетного файла пользователя. Хотя в основном FTP предназначен для приложений, этот протокол может применяться и для интерактивного диалога между пользователями.

Для передачи файлов протокол FTP применяет соединения TCP/IP, обеспечивающие надежную доставку данных в режиме потока, а для передачи команд и ответов - соединения Telnet. FTP распознает некоторые форматы файлов, в том числе NETASCII, IMAGE и Local 8.

В TCP/IP протокол FTP реализован в виде команд клиента (ftp) и сервера (ftpd). Для него не предусмотрен интерфейс прикладных программ (API).

При создании анонимных пользователей и каталогов ftp убедитесь в том, что эти каталоги (например, /u/ftp) принадлежат пользователю root и не допускают записи (например, dr-xr-xr-x). Для создания учетных файлов таких пользователей, файлов и каталогов предназначен сценарий /usr/samples/tcpip/anon.ftp.

Упрощенный протокол передачи файлов (TFTP)

Упрощенный протокол передачи файлов (TFTP) предназначен для обмена файлами с внешними хостами.

Для передачи файлов TFTP применяется ненадежный Протокол пользовательских дейтаграмм, поэтому он обычно работает быстрее, чем FTP. Как и FTP, TFTP поддерживает передачу файлов в формате NETASCII и в 8-разрядном двоичном формате. В отличие от FTP, TFTP не поддерживает просмотр каталогов или переход в другой каталог внешнего хоста. Кроме того, в нем не предусмотрена защита с помощью пароля. TFTP позволяет работать только с общими каталогами.

В TCP/IP протокол TFTP реализован в виде команд клиента (tftp и utftp) и сервера (tftpd). Команда utftp применяется в конвейере вместо команды tftpd. В TCP/IP не предусмотрен API для данного протокола.

Протокол Name/Finger

Протокол Name/Finger (FINGER) - это протокол Internet прикладного уровня, предоставляющий интерфейс для передачи данных между командой finger и демоном fingerd.

Демон fingerd предоставляет информацию о пользователях, которые в настоящий момент работают на указанном удаленном хосте. Если в команде finger вы укажете пользователя отдельного хоста, то будет показана информация об этом пользователе. Протокол FINGER должен поддерживаться как удаленным, так и локальным хостом. В качестве протокола нижнего уровня FINGER применяет Протокол управления передачей (Протокол управления передачей).

Прим.: В TCP/IP не предусмотрен API для данного протокола.

Протокол Telnet

Протокол Telnet (TELNET) предназначен для взаимодействия терминалов и связанных с ними процессов.

TELNET часто применяется программами эмуляции терминала для входа в удаленную систему. Однако TELNET может применяться и для установления соединения между терминалами или процессами. Протокол TELNET применяется многими другими протоколами (например, FTP) для создания канала, предназначенного для передачи управляющей информации.

В TCP/IP протокол TELNET реализован в виде команд клиента tn, telnet или tn3270. Демон telnetd не предоставляет API для работы с TELNET.

В TCP/IP предусмотрены следующие параметры TELNET, которые применяются по согласованию между клиентом и сервером:

Флаг Описание
BINARY TRANSMISSION (Применяется в сеансах tn3270) Передача символьной информации в двоичном формате.
SUPPRESS GO_AHEAD (Операционная система подавляет опции GO-AHEAD). После установления соединения между отправителем и получателем данных отправителю не нужно передавать опцию GO_AHEAD. Если опция GO_AHEAD нежелательна, то участники соединения могут ее подавлять при передаче данных в обоих направлениях. Для каждого направления соединения это действие выполняется независимо.
TIMING MARK (Запрос распознан, но ответ отрицательный) Уведомляет, что переданные ранее данные были полностью обработаны.
EXTENDED OPTIONS LIST Увеличивает список опций TELNET еще на 256 опций. В стандартном списке опций TELNET содержится только 256 опций.
ECHO (Пользовательская команда) Передает полученные и выведенные на экран данные обратно отправителю.
TERM TYPE Разрешает серверу определить тип терминала, с которым взаимодействует программа TELNET пользователя.
SAK (Ключ защиты) Настраивает среду, необходимую для установления защищенных соединений между программой TELNET пользователя и удаленным терминалом.
NAWS (Согласование размера окна) Разрешает клиенту и серверу динамически согласовывать размер окна. Этот параметр применяется приложениями, которые поддерживают изменение размера окна в процессе передачи данных.
Прим.: Для поддержки кодовой страницы ISO 8859 Latin клиент и сервер TELNET должны поддерживать передачу 8-разрядных данных в режиме ASCII.

Протокол распределенной вычислительной сети

Автономная система - это набор сетей и шлюзов, которые находятся под единым управлением.

Протокол локальной сети (HELLO) - это протокол внутренних шлюзов для автономной системы. (За дополнительной информацией обратитесь к разделу Протокол внешних шлюзов.) HELLO предоставляет информацию о соединениях, маршрутах и времени прохождения пакетов по определенному маршруту. С помощью этой информации любой компьютер сети может определить наикратчайший маршрут к целевому хосту на основе временной задержки, а затем динамически обновить информацию о маршрутах к данному хосту.

Дополнительная информация приведена в описании демона gated.

Протокол удаленного выполнения команд

Протокол удаленного выполнения команд позволяет запускать команды на удаленных хостах, поддерживающих этот протокол. Он реализован в виде команд клиента (rexec) и сервера (rexecd).

Дополнительная информация приведена в описании команды rexec и описании демона rexecd.

Протокол удаленного входа в систему

Протокол удаленного входа в систему позволяет пользователям входить в удаленные системы и работать с их терминалами так, как если бы они были напрямую подключены к этим системам. Этот протокол реализован в виде команд клиента (rlogin) и сервера (rlogind).

Дополнительная информация приведена в описании команды rlogin и описании демона rlogind.

Протокол удаленной оболочки

Протокол удаленной оболочки позволяет запускать командную оболочку на удаленных хостах, поддерживающих этот протокол. Он реализован в виде команд клиента (rshd) и сервера (rshd).

Дополнительная информация приведена в описании команды rsh и описании демона rshd.

Протокол Wake On LAN

Протокол Wake On LAN (WOL) позволяет восстановить работу одного или нескольких хостов, подключенных к сети и находящихся в ждущем режиме. Для восстановления работы применяется особый пакет, отправляемый на заданный адрес или на адреса заданной подсети.

Дополнительная информация об использовании WOL приведена в описании команды wol.

Протокол информации о маршрутизации

Протокол информации о маршрутизации (RIP) собирает информацию о длине маршрута, измеряемой в транзитных участках, а также обслуживает записи таблиц маршрутизации ядра. Он реализован в виде серверов routed и gated.

Дополнительная информация приведена в описании демонов routed и gated.

Протокол сервера времени

Демон timed применяется для синхронизации системного времени хостов.

Он построен по принципу клиент/сервер. Дополнительная информация приведена в описании команды timedc и описании демона timed.