10.2.2. Иерархия протоколов Интернет
Слово «протокол» в сетевых технологиях имеет смысл, близкий, но несколько отличный от значения, такого, как «документ с записью всего происходящего», приводимого в толковом словаре русского языка Ожегова. За ним стоит многозначное понятие, применяемое в разных контекстах, наиболее важным из которых для конечного пользователя является представление о протоколе как о некотором своде четко определенных правил, которые одинаково реализованы в различных системах (программах, шлюзах, пакетах данных и др.). Благодаря этому в местах взаимодействия этих систем, например, при инициировании соединения программы–клиента с программой–сервером или при попадании передаваемого пакета данных на машину–шлюз, все происходит по заранее определенному сценарию.
Пример. Чтобы пояснить понятие протокола, рассмотрим пример, не имеющий отношения к компьютерным сетям, а именно: обсудим взаимодействие двух предприятии А и Б, связанных между собой деловым сотрудничеством (рис. 10.2.). Между предприятиями существуют многочисленные договоренности и соглашения, такие, например, как регулярные поставки продукции одного предприятия другому. В соответствии с этой договоренностью начальник отдела продаж одного из предприятий каждый месяц должен посылать сообщение начальнику отдела закупок второго предприятия о том, сколько и какого товара они могут поставить в этом месяце. В ответ на это сообщение начальник отдела закупок посылает заявку на требуемое количество продукции. (Условленный порядок взаимодействия начальником в данном случае соответствует понятию «протокол уровня начальников».) Начальники посылают свое сообщение и заявки через своих секретарей.
Р ис. 10.2. Пример многоуровневого взаимодействия предприятий
После того как сообщения переданы секретарям, начальников не волнует, каким образом эти сообщения будут перемещаться дальше – обычной или электронной почтой, факсом или нарочным. Выбор способа передачи – это уровень компетенции секретарей, они могут решать этот вопрос, не уведомляя об этом своих начальников, так как их протокол взаимодействия связан только с передачей сообщений, поступающих сверху, и не касается содержания этих сообщений. Отправив письмо, секретари считают свою функцию выполненной, разве что в правила работы хорошего секретаря входит еще и проверка получения сообщения адресатом.
При решении других вопросов начальники могут взаимодействовать по другим правилам, но это не повлияет на работу секретарей, для которых не важно, какие сообщения отправлять, а важно, чтобы они дошли адресату. Итак, в данном случае имеем дело с двумя уровнями – начальниками и секретарями, и каждый уровень имеет собственный протокол, который может быть изменен независимо от протокола другого уровня. Эта независимость протоколов друг от друга и делает привлекательным многоуровневый подход.
Как и в рассмотренном примере, по мере продвижения пакета данных по сети на каждом этапе его взаимодействия с другими сетевыми элементами отрабатывают протоколы разных уровней (см. ЭМВОС п. 4.2.3). Полную совокупность таких протоколов, необходимых для успешного взаимодействия разных элементов в рамках сети данного типа, принято называть семейством или стеком. Интернет работает под семейством протоколов ТСР/IР, которое имеет многоуровневую структуру.
Структура протоколов ТСР/IР имеет четыре уровня и приведена на рис. 10.3.
Р ис. 10.3. Стек протоколов TCP/IP
Самый нижний (уровень IV) соответствует уровню доступа к сети. В протоколах ТСР/IР он не регламентируется, но поддерживает все популярные стандарты протоколов физического и канального уровня, такие, как Ethernet, Token Ring, SLIP, PPP и другие (по причинам, которые станут понятны ниже, пока не будем расшифровывать эти аббревиатуры). Протоколы данного уровня обеспечивают передачу пакетов данных в сети на уровне аппаратных средств.
Следующий уровень (уровень III) – это уровень межсетевого взаимодействия, который обеспечивает передачу пакетов данных из одной подсети в другую. В качестве протокола в стеке используется протокол IP.
Следующий уровень (уровень II) называется основным. На этом уровне функционирует протокол управления передачей TCP, который обеспечивает надежную передачу сообщений между удаленными друг от друга различными прикладными программами за счет образования виртуальных соединений между ними.
Все перечисленные выше протоколы с легким сердцем можно отнести к «уровню секретарей» из примера, описанного выше, и, почувствовав себя начальниками, на время забыть о них. Для конечного пользователя («начальника») наиболее необходима компетентность на самом верхнем уровне (уровень I), или «уровне начальников», который называется на языке стека ТСР/IР прикладным.
За долгие годы использования в сетях различных стран и организаций стек ТСР/IР накопил большое количество протоколов и сервисов прикладного уровня. Предметом нашего детального рассмотрения будут следующие четыре:
- протокол копирования файлов FTP (File Transfer Protocol),
- протокол эмуляции терминала telnet,
- протокол Gopher для доступа к ресурсам всемирного пространства GopherSpace
- и наиболее популярный на данный момент протокол HTTP (Hyper Text Transfer Protocol) доступа к удаленным гипертекстовым базам данных во всемирный паутине WWW (World Wide Web).
Для того чтобы предотвратить путаницу в терминах, связанную с одинаковыми именами протоколов, программ и информационных ресурсов, сделаем несколько замечаний.
Так, под термином FTP понимается как сам стандарт протокола, так и программа–клиент на компьютере пользователя, которая инициирует соединение с одноименной программой–сервером. Последняя в свою очередь исполняется на машине–сервере и пребывает в режиме постоянного ожидания запроса от клиента. Кроме того, о самих ресурсах, доступ к которым осуществляется по протоколу ftp, принято говорить как об ftp–архивах. Аналогичная ситуация характерна и для остальных протоколов.
Сетевые протоколы, используемые в сети Интернет Иерархия протоколов tcp/ip.
Протоколы TCP/IP широко применяются во всем мире для соединения компьютеров в сеть Internet. Архитектура протоколов TCP предназначена для объединенной сети, состоящей из соединенных друг с другом шлюзами отдельных разнородных компьютерных подсетей. Иерархию управления в TCP/IP-сетях обычно представляют в виде двух уровневой модели, приведенной на рисунке.
- Этот нижний уровеньhardware описывает ту или иную среду передачи данных
- На уровнеnetworkinterface (сетевой интерфейс) лежит аппаратно — зависимое программное обеспечение, реализующее, распространение информации на том или ином отрезке среды передачи данных. Отметим, что TCP/IP, изначально ориентированный на независимость от среды передачи данных, никаких ограничений «от себя» на программное обеспечение, этих двух уровней не накладывает. Понятия «среда передачи данных» и «программное обеспечение сетевого интерфейса» могут на практике иметь различные по сложности и функциональности наполнения. Это могут быть и простое модемное двухточечное звено, и представляющая сложную многоузловую коммуникационную структуру сеть Х.25 или Frame Relay.
- Уровеньinternet (межсетевой) представлен протоколом IP. главная задача — маршрутизация (выбор пути через множество промежуточных узлов) при доставке информации от узла отправителя до узла-адресата. Вторая важная задача протокола IP — сокрытие аппаратно-программных особенностей среды передачи данных и предоставление вышележащим уровням единого унифицированного и аппаратно независимого интерфейса для доставки информации. Достигаемая при этом канальная (аппаратная) независимость и обеспечивает много платформенное применение приложений, работающих над TCP/IP.
- Протокол IP не обеспечивает транспортную службу в том смысле, что не гарантирует доставку пакетов, сохранение порядка и целостности потока пакетов и не различает логические объекты (процессы), порождающие поток информации. Это задачи других протоколов — TCP и UDP, относящихся к следующему transport (транспортному) уровню. TCP и UDP реализуют различные режимы доставки данных. TCP, как говорят, — протокол с установлением соединения. Это означает, что два узла, связывающиеся помощи этого протокола, «договариваются» о том, что будут обмениваться потоком данных, и принимают некоторые соглашения об управлении этим потоком. UDP (как, собственно, и IP) является дейтаграммным протоколом, т. е. таким, что каждый блок передаваемой информации (пакет) обрабатывается и распространяется от узла к узлу не как часть некоторого потока, а как независимая единица информации — дейтаграмма (datagram).
- Выше — на уровнеapplication (прикладном) — лежат прикладные задачи, такие как обмен, файлами (File Transfer Protocol, FTP) и сообщениями электронной почты (Simple Mail Transfer Protocol, SMTP), терминальный доступ к удаленным серверам (Telnet)
- Класс А: Большие сети с миллионами узлов. Первый октет (самый левый) обозначает адрес сети. Оставшиеся три — обозначают номер узла.
- Класс В: Сети средних размеров с тысячами узлов. Первые два октета (слева) обозначают адрес сети. Остальные два (справа) — обозначают номер узла.
- Класс С: Небольшие сети с несколькими сотнями узлов. Первые три октета обозначают адрес сети. Последний октет — адрес узла.
- НТМL (hypertext markup language), язык разметки гипертекста. Это формат гипертекстовых документов, использующихся в WWW для предоставления информации. Этот формат описывает не вид документа, а его структуру и связи. Внешний вид документа на экране пользователя определяется программой просмотра (browser). Имена файлов в формате HTML обычно оканчиваются на html (или имеют расширение htm в случае, если сервер работает под MS-DOS или Windows).
- HTTP (hypertext transfer protocol, протокол передачи гипертекста). Это название протокола, по которому взаимодействуют клиент и сервер WWW.
- URL (uniform resource locator, универсальный указатель на ресурс). Так называются ссылки на информационные ресурсы Internet. Они имеют следующие форматы.
- «Type» — устанавливает режим пересылки файла — текстового («ascii») или двоичного («image»).
- «Dir.» или «Ls» — показывает содержимое текущего каталога на удаленном компьютере
- «CD» — изменяет текущий каталог.
- «Get remote_file_namelocal_file_name» — считывает файл из удаленного компьютера в локальный.
- «Put local_Jite_nameremote_flle_name» — передать файл из локального Компьютера в удаленный.
- «Close» — завершение FTP соединения.
- «Open» — инициализировать другое соединение FTP.
- «Quit» — завершить работу.