Прикладной уровень (уровень приложений) TCP/IP
Протоколы прикладного уровня TCP/IP работают с прикладным программным обеспечением, запущенном на компьютере. Прикладной уровень не определяет работу самого приложения, но определяет службы, которые ему необходимы. Например, протокол приложения HTTP определяет, как веб-браузеры могут извлекать содержимое веб-страницы с веб-сервера. Проще говоря, прикладной уровень обеспечивает интерфейс между программным обеспечением, работающим на компьютере, и самой сетью.
Функции прикладного уровня TCP/IP объединяют три верхних уровня модели OSI.
Уровень модели TCP/IP | Уровень модели OSI | Функции | Примеры |
---|---|---|---|
Прикладной уровень (уровень приложений) | Прикладной уровень (уровень приложений) | Обмен данными между программами, выполняемыми на узле источника и узле назначения. | DNS (служба доменных имен); DHCP (протокол динамической настройки узлов); HTTP (протокол передачи гипертекста); SMTP (простой протокол электронной почты); POP (почтовый протокол); IMAP (протокол доступа к сообщениям Интернета); FTP (протокол передачи файлов). |
Уровень представления | Форматирование или представление данных из исходного устройства в форме, подходящей для получения устройством назначения. Сжатие данных таким образом, чтобы их можно было распаковать на устройстве назначения. Шифрование данных для передачи и дешифрование при получении. | Формат видеофайлов QuickTime; Стандарт сжатия движущихся видеоизображений (MPEG); Формат обмена графическими даннами (GIF); Стандарт цифрового сжатия неподвижных изображений (JPEG); Формат файловдля растровых графических изображений (PNG). | |
Сеансовый уровень | Установление и поддержание связи между приложениями источника и назначения. |
Возможно, самым популярным приложением TCP/IP сегодня является веб-браузер. Многие крупные поставщики программного обеспечения либо уже изменили, либо меняют свое прикладное программное обеспечение для поддержки доступа через веб-браузер. И, к счастью, использовать веб-браузер очень просто: вы запускаете веб-браузер на своем компьютере и выбираете веб-сайт, вводя имя веб-сайта, и появляется веб-страница.
Обзор HTTP
Что на самом деле происходит, чтобы эта веб-страница могла отобразиться в вашем браузере?
Представьте, что Роб открывает свой браузер. Его браузер был настроен так, чтобы по умолчанию автоматически запрашивать веб-страницу Гарри (т.е. его домашнюю страницу). Общая логика показана на рисунке 1.
Итак, что же произошло на самом деле? Изначальный запрос Роба на самом деле просит Гарри отправить свою домашнюю страницу обратно Бобу. Программное обеспечение веб-сервера Гарри настроено так, чтобы знать, что домашняя веб-страница содержится в файле с именем home.htm. Роб получает файл от Гарри и отображает содержимое файла в окне веб-браузера Роба.
Механизмы протокола HTTP
При более внимательном рассмотрении этот пример показывает, как приложения на каждом конечном компьютере (приложение веб-браузера и приложение веб-сервера) используют протокол прикладного уровня TCP/IP. Чтобы сделать запрос веб-страницы и вернуть содержимое веб-страницы, приложения используют протокол передачи гипертекста (HTTP).
HTTP не существовал до тех пор, пока Тим Бернерс-Ли не создал первый веб-браузер и веб-сервер в начале 1990-х годов. Бернерс-Ли предоставил HTTP функцию для запроса содержимого веб-страниц, а именно, предоставив веб-браузеру возможность запрашивать файлы с сервера и дав серверу возможность возвращать содержимое этих файлов. Общая логика соответствует тому, что показано на рисунке 1; на рисунке 2 показана та же идея, но с подробностями, относящимися к HTTP.
ПРИМЕЧАНИЕ. Полная версия большинства веб-адресов, также называемых унифицированными указателями ресурсов (URL, Uniform Resource Locators) или универсальными идентификаторами ресурсов (URI, Universal Resource Identifiers), начинается с букв http, что означает, что для передачи веб-страниц используется HTTP.
Чтобы получить веб-страницу от Гарри, Роб на этапе 1 отправляет сообщение с заголовком HTTP. Обычно протоколы используют заголовки как место для размещения информации, используемой этим протоколом. Этот HTTP заголовок включает запрос на «получение» файла. Запрос обычно содержит имя файла (в данном случае home.htm), или, если имя файла не упоминается, веб-сервер предполагает, что Бобу нужна веб-страница по умолчанию.
Шаг 2 на рисунке 2 показывает ответ веб-сервера Гарри. Сообщение начинается с HTTP заголовка с кодом состояния (200), который означает нечто простое, например, «ОК», возвращаемое в заголовке. HTTP также определяет другие коды состояния, чтобы сервер мог сообщить браузеру, сработал ли запрос (например: если вы когда-нибудь искали веб-страницу, которая не была найдена, и получили ошибку HTTP 404 «не найдена», вы получили HTTP код состояния 404). Второе сообщение также включает начальную часть запрошенного файла.
Шаг 3 на рисунке 2 показывает еще одно сообщение от веб-сервера Гарри веб-браузеру Роба, но на этот раз без HTTP заголовка. HTTP передает данные, отправляя несколько сообщений, каждое из которых является частью файла. Вместо того, чтобы тратить место на отправку повторяющихся HTTP заголовков, содержащих повторяющуюся информацию, эти дополнительные сообщения просто пропускают заголовок.
Обзор протокола SMTP
Простой протокол передачи почты (SMTP) основан на сквозной доставке сообщений. Клиент SMTP, чтобы отправить почту, связывается с SMTP-сервером конечного хоста через общеизвестный порт 25. Затем клиент ожидает, пока сервер отправит сообщение 220 READY FOR MAIL
. После получения сообщения 220 клиент отправляет команду HELO
. Затем сервер отвечает сообщением «250 Requested mail action okay
».
После этого передача почты начнется с команды MAIL
, которая указывает идентификатор отправителя, а также поля FROM:
, содержащего адрес, на который следует сообщать об ошибках.
После успешной команды MAIL
отправитель выдает серию команд RCPT
, которые идентифицируют получателей почтового сообщения. Получатель будет подтверждать каждую команду RCPT
, отправляя 250 OK
или отправляя сообщение об ошибке 550 No such user here
(такого пользователя здесь нет).
После подтверждения всех команд RCPT
отправитель выдает команду DATA
, чтобы сообщить получателю, что отправитель готов передать полное почтовое сообщение. Получатель отвечает сообщением 354 Start mail input
с конечной последовательностью, которую отправитель должен использовать для завершения данных сообщения. Последовательность завершения состоит из 5 символов: возврат каретки, перевод строки, точка, возврат каретки и перевод строки (<CRLF>.<CRLF>
).
Теперь клиент отправляет данные построчно, заканчивая строки 5-символьной последовательностью <CRLF>.<CRLF>
, после чего получатель отправляет подтверждение 250 OK
или соответствующее сообщение об ошибке, если что-то пошло не так.
После завершения отправки клиент может выполнить любое из следующих действий.
Завершение сеанса: если у текущего клиента SMTP больше нет сообщений для отправки, соединение может быть закрыто командой QUIT
, на которую будет дан ответ 221 The server is closing its transmission channel
.
Изменение ролей: если у текущего клиента SMTP больше нет сообщений для отправки, но он готов принимать любые сообщения от текущего сервера SMTP, он может отправить команду TURN
. Теперь SMTP-клиент и SMTP-сервер поменяются своими ролям отправителя/получателя, и отправитель (ранее получатель) теперь может отправлять сообщения, выдав команду MAIL
.
Отправка других писем: если у клиент SMTP (отправитель) есть еще одно сообщение для отправки, он может выдать новую команду MAIL
.
Обзор протокола POP
POP3 (Post Office Protocol Version 3) – это сетевой протокол, используемый почтовым клиентом для получения сообщений электронной почты с сервера. Обычно используется в паре с протоколом SMTP.
По умолчанию использует TCP-порт 110. Существуют реализации POP3-серверов, поддерживающие TLS и SSL.
После установки соединения протокол РОР3 проходит три последовательных состояния:
- авторизация клиент проходит процедуру аутентификации;
- транзакция клиент получает информацию о состоянии почтового ящика, принимает и удаляет почту;
- обновление сервер удаляет выбранные письма и закрывает соединение.
Не смотря на то, что протокол РОР3 действительно поддерживает возможность получения одного или нескольких писем и оставления их на сервере, большинство программ обработки электронной почты просто скачивают все письма и опустошают почтовый ящик на сервере.
Так как при использовании POP сообщения электронной почты загружаются клиентом и удаляются с сервера, это означает, что они не хранятся централизованно. Так как протокол POP не сохраняет сообщения, его нецелесообразно использовать компаниям малого бизнеса, которым необходимо решение для централизованного резервного копирования.
Обзор протокола IMAP
IMAP (Internet Message Access Protocol) – протокол прикладного уровня для доступа к электронной почте.
IMAP предоставляет пользователю богатые возможности для работы с почтовыми ящиками, находящимися на центральном сервере. Почтовая программа, использующая этот протокол, получает доступ к хранилищу корреспонденции на сервере так, как будто эта корреспонденция расположена на компьютере получателя. Электронными письмами можно манипулировать с компьютера пользователя (клиента) без необходимости постоянной пересылки с сервера и обратно файлов с полным содержанием писем.
IMAP был разработан для замены более простого протокола POP3 и имеет следующие преимущества по сравнению с последним:
- Письма хранятся на сервере, а не на клиенте. Возможен доступ к одному и тому же почтовому ящику с разных клиентов. Поддерживается также одновременный доступ нескольких клиентов. В протоколе есть механизмы с помощью которых клиент может быть проинформирован об изменениях, сделанных другими клиентами.
- Поддержка нескольких почтовых ящиков (или папок). Клиент может создавать, удалять и переименовывать почтовые ящики на сервере, а также перемещать письма из одного почтового ящика в другой.
- Возможно создание общих папок, к которым могут иметь доступ несколько пользователей.
- Информация о состоянии писем хранится на сервере и доступна всем клиентам. Письма могут быть помечены как прочитанные, важные и т. п.
- Поддержка поиска на сервере. Нет необходимости скачивать с сервера множество сообщений для того чтобы найти одно нужное.
- Поддержка онлайн-работы. Клиент может поддерживать с сервером постоянное соединение, при этом сервер в реальном времени информирует клиента об изменениях в почтовых ящиках, в том числе о новых письмах.
- Предусмотрен механизм расширения возможностей протокола.