
- •Прикладной уровень
- •Протоколы передачи электронной почты
- •Протокол http
- •Протоколы ftp и tftp
- •Система доменных имен dns
- •Протокол удаленного доступа Telnet
- •Введение[править | править исходный текст]
- •Устройство[править | править исходный текст]
- •Опции[править | править исходный текст]
- •Применения[править | править исходный текст]
- •Безопасность[править | править исходный текст]
- •Протокол dhcp
- •История[править | править исходный текст]
- •Распределение ip-адресов[править | править исходный текст]
- •Опции dhcp[править | править исходный текст]
- •Предложение dhcp[править | править исходный текст]
- •Запрос dhcp[править | править исходный текст]
- •Подтверждение dhcp[править | править исходный текст]
- •Транспортный уровень (протоколы, их функции, соединение и передача данных)
Протокол http
HTTP (англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов в формате HTML). Основой HTTP является технология «клиент-сервер», то есть предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.
HTTP в настоящее время повсеместно используется во Всемирной паутине для получения информации с веб-сайтов. В 2006 году в Северной Америке доля HTTP-трафика превысила долю P2P-сетей и составила 46 %, из которых почти половина — это передача потокового видео и звука[1].
HTTP используется также в качестве «транспорта» для других протоколов прикладного уровня, таких как SOAP, XML-RPC, WebDAV.
Основным объектом манипуляции в HTTP является ресурс, на который указывает URI (англ. Uniform Resource Identifier) в запросе клиента. Обычно такими ресурсами являются хранящиеся на сервере файлы, но ими могут быть логические объекты или что-то абстрактное. Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д. (В частности для этого используется HTTP-заголовок.) Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя данный протокол является текстовым.
HTTP — протокол прикладного уровня, аналогичными ему являются FTP и SMTP. Обмен сообщениями идёт по обыкновенной схеме «запрос-ответ». Для идентификации ресурсов HTTP использует глобальные URI. В отличие от многих других протоколов, HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами «запрос-ответ». Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами (например, «куки» на стороне клиента, «сессии» на стороне сервера). Браузер, посылающий запросы, может отслеживать задержки ответов. Сервер может хранить IP-адреса и заголовки запросов последних клиентов. Однако сам протокол не осведомлён о предыдущих запросах и ответах, в нём не предусмотрена внутренняя поддержка состояния, к нему не предъявляются такие требования.
Протоколы ftp и tftp
Протокол FTP
Протокол FTP (File Transfer Protocol – протокол передачи файлов) используется службой FTP для передачи файлов, непосредственно взаимодействует с протоколом транспортного уровня TCP.
Первый стандарт – RFC-114 (File Transfer Protocol A.K. Bhushan Apr-10-1971).
Последняя версия – RFC-959 (File Transfer Protocol J. Postel, J.K. Reynolds Oct-01-1985).
FTP отличается от других приложений тем, что он использует два TCP соединения для передачи файла:
Управляющее соединение – соединение для посылки команд серверу и получения ответов от него.
Для организации такого соединения используется протокол Telnet. Telnet-соединение устанавливается в один шаг – посылка запроса и ожидание ответа, получение которого свидетельствует о возможности передачи команд FTP.
Канал управления существует на протяжении всей FTP-сессии и закрывается после завершения информационного обмена.
Соединение данных – соединение для передачи файлов.
Передача файлов после установленного Telnet-соединения осуществляется через логическое соединение, организуемое протоколом TCP, который проверяет доступность портов, закрепленных за FTP.
Канал данных формируется и ликвидируется по мере необходимости.
Протокол FTP предусматривает два возможных режима установления связи для обмена файлами:
активный режим;
пассивный режим.
Активный режим
Действия клиента и сервера:
Клиент устанавливает связь и посылает с нестандартного порта N ( N>1024 ) запрос на 21 порт сервера;
Сервер посылает ответ на порт N клиента;
Сервер устанавливает связь для передачи данных по порту 20 на порт клиента N+1.
Рис. 1.2. Пример установления связи для обмена файлами в активном режиме
Активный режим выгоден для FTP-сервера, но вреден для клиента. Так как FTP сервер пытается соединиться со случайным высоким (по номеру) портом на клиенте, то такое соединение может быть блокировано брандмауэром на стороне клиента.
Пассивный режим
Действия клиента и сервера:
Клиент устанавливает связь и посылает запрос (сообщает, что надо работать в пассивном режиме) на 21 порт сервера с нестандартного порта N ( N>1024 );
Сервер назначает нестандартный порт P для канала данных ( P>1024 ) и посылает на порт N клиента ответ, в котором сообщает номер порта P;
Клиент устанавливает связь для передачи данных по порту N+1 на порт сервера P.
Рис. 1.3. Пример установления связи для обмена файлами в пассивном режиме
Пассивный режим выгоден для клиента, но вреден для FTP-сервера. Клиент будет делать два соединения к серверу, при этом второе будет к случайному высокому порту. Такое соединение может быть блокировано брандмауэром на стороне сервера.
Рис. 1.4. Схема соединения по протоколу FTP в активном режиме
Работа FTP на пользовательском уровне при передаче файлов содержит несколько этапов:
Идентификация (ввод имени-идентификатора и пароля);
Выбор каталога;
Определение режима обмена:
передача файлов в текстовом виде;
передача файлов в бинарном виде;
Выполнение команд обмена;
Завершение работы.
Протокол FTP определяет запрос-ответный способ взаимодействия между программой-клиентом и программой-сервером.
Примеры команд и сеансов работы с FTP-сервером: прил. 1.1, прил. 1.2, прил. 1.3, прил. 1.4, прил. 1.5, прил. 1.6.
Протокол TFTP
Иногда для передачи файлов используется упрощенный протокол TFTP (Trivial File Transfer Protocol – простейший протокол передачи файлов). Он работает поверх транспортного протокола UDP. Обмен осуществляется в стартстопном режиме (с подтверждением доставки каждого переданного информационного блока) пакетами стандартной длины (512 байт) с заголовком (4 байта). Контроль ошибок не выполняется. Пакет считается принятым, если на него получено подтверждение, в противном случае выполняется однократная повторная передача.
Для начала обмена клиент случайным образом выбирает уникальный идентификатор TID (номер порта) и выдает на сервер запрос на чтение (RRQ) или запись (WRQ) файла. Запрос отправляется на UDP-порт 69 (порт инициализации). Сервер также случайным образом выбирают номер порта (уникальный идентификатор TID) и выдает клиенту подтверждение готовности (ACK). Затем начинается передача файла (команда DATA, блок данных, номер блока, …). Соединение закрывается после передачи пакета, имеющего длину менее 512 байт, и при получении пакета ERROR.
Команды протокола TFTP:
Read request (RRQ) – запрос на чтение файла;
Write request (WRQ) – запрос на запись файла;
Data (DATA) – пакет данных;
Acknowledgment (ACK) – подтверждение;
Error (ERROR) – ошибка.
Обычно TFTP используется при загрузке ОС в бездисковые рабочие станции и для загрузки конфигурационных файлов в маршрутизатор.
Отсутствие авторизации в TFTP может явиться одной из угроз безопасности.