Эталонная модель OSI взаимосвязи открытых систем
Стандарт ISO 7498
Данный стандарт имеет тройной заголовок «Информационно-вычислительные системы — Взаимодействие открытых систем — Эталонная модель». Обычно его называют короче «Эталонная модель взаимодействия открытых систем». Публикация этого стандарта в 1983 году подвела итог многолетней работы многих известных телекоммуникационных компаний и стандартизующих организаций.
Основной идеей, которая положена в основу этого документа, является разбиение процесса информационного взаимодействия между системами на уровни с четко разграниченными функциями.
Преимущества слоистой организации взаимодействия заключаются в том, что такая организация обеспечивает независимую разработку уровневых стандартов, модульность разработок аппаратуры и программного обеспечения информационно-вычислительных систем и способствует тем самым техническому прогрессу в данной области.
В соответствии с ISO 7498 выделяются семь уровней (слоёв) информационного взаимодействия:
- Уровень приложения
- Уровень представления
- Уровень сессии
- Транспортный уровень
- Сетевой уровень
- Канальный уровень
- Физический уровень
Информационное взаимодействие двух или более систем, таким образом, представляет собой совокупность информационных взаимодействий уровневых подсистем, причем каждый слой локальной информационной системы взаимодействует только с соответствующим слоем удаленной системы.
Протоколом называется набор алгоритмов (правил) взаимодействия объектов одноименных уровней.
Интерфейсом называется совокупность правил, в соответствии с которыми осуществляется взаимодействие с объектом данного уровня.
Процесс помещения фрагментированных блока данных одного уровня в блоки данных другого уровня называют инкапсуляцией.
Иерархия уровней, протоколы и стеки
Иерархически организованный набор протоколов, который достаточен для организации взаимодействия узлов в сети, носит название стеков коммуникационных протоколов.
Коммуникационные протоколы можно выполнить как программно, так и аппаратно. Протоколы нижних уровней чаще всего реализуются комбинацией программных и аппаратных средств, а протоколы верхних уровней – обычно чисто программными средствами.
Программный модуль, который реализует некоторый протокол, часто для краткости также именуют протоколом. В данном случае соотношение между протоколом – формально определенной процедурой и протоколом – программным модулем, который выполняет эту процедуру, аналогично соотношению между алгоритмом решения некоторой задачи и программой, решающей эту задачу.
Один и тот же алгоритм можно запрограммировать с разной степенью эффективности. Аналогично и протокол может обладать несколькими программными средствами реализации. Исходя из этого при сравнении протоколов необходимо учитывать не только логику их работы, но и качество программных решений. Кроме того, на эффективность взаимодействия устройств в сети оказывает влияние качество всей совокупности протоколов, которые составляют стек, в частности, насколько рационально распределены функции между протоколами различных уровней и насколько хорошо определены интерфейсы между ними.
Протоколы организуются не только компьютерами, но и другими сетевыми устройствами, например концентраторами, мостами, коммутаторами, маршрутизаторами и т. д. В общем случае связь компьютеров в сети выполняется не напрямую, а через различные коммуникационные устройства. В зависимости от вида устройства в нем необходимы определенные встроенные средства, которые реализуют тот или иной набор протоколов.
Уровни модели TCP/IP
Интернет-уровень
Все эти требования обусловили выбор модели сети с коммутацией пакетов, в основе которой лежал не имеющий соединений межсетевой уровень. Этот уровень, называемый интернет-уровнем или межсетевым уровнем, является основой всей архитектуры. Его задача заключается в обеспечении возможности для каждого хоста посылать в любую сеть пакеты, которые будут независимо двигаться к пункту назначения (например, в другой сети). Они могут прибывать не в том порядке, в котором были отправлены. Если требуется соблюдение порядка отправления, эту задачу выполняют более верхние уровни. Обратите внимание, что слово «интернет» здесь используется в своем первоначальном смысле несмотря на то, что этот уровень присутствует в сети Интернет.
Здесь можно увидеть аналогию с почтовой системой. Человек может бросить несколько международных писем в почтовый ящик в одной стране, и если повезет, большая часть из них будет доставлена по правильным адресам в других странах. Вероятно, письма по дороге пройдут через несколько международных почтовых шлюзов, однако это останется тайной для корреспондентов. В каждой стране (то есть в каждой сети) могут быть свои марки, свои предпочитаемые размеры конвертов и правила доставки, незаметные для пользователей почтовой службы.
Межсетевой уровень определяет официальный формат пакета и протокол, называемый IP (Internet Protocol). Задачей межсетевого протокола является доставка IP-пакетов к пунктам назначения. Основными аспектами здесь являются выбор маршрута пакета и недопущение закупорки транспортных артерий. Поэтому можно утверждать, что межсетевой уровень модели TCP/IP функционально близок сетевому уровню модели OSI. Это соответствие показано на рис.
Транспортный уровень
Уровень, расположенный над межсетевым уровнем модели TCP/IP, как правило, называют транспортным. Он создан для того, чтобы одноранговые сущности на приемных и передающих хостах могли поддерживать связь, подобно транспортному уровню модели OSI. На этом уровне должны быть описаны два сквозных протокола. Первый, TCP (Transmission Control Protocol — протокол управления передачей), является надежным протоколом с установлением соединений, позволяющим без ошибок доставлять байтовый поток с одной машины на любую другую машину объединенной сети. Он разбивает входной поток байтов на отдельные сообщения и передает их межсетевому уровню. В пункте назначения получающий TCP-процесс собирает из полученных сообщений выходной поток. Кроме того, TCP осуществляет управление потоком, чтобы быстрый отправитель не завалил информацией медленного получателя.
Второй протокол этого уровня, UDP (User Data Protocol — пользовательский протокол данных), является ненадежным протоколом без установления соединения, не использующим последовательное управление потоком протокола TCP, а предоставляющим свое собственное. Он также широко используется в одноразовых клиент-серверных запросах и приложениях, в которых оперативность важнее аккуратности, например, при передаче речи и видео. Взаимоотношения протоколов IP, TCP и UDP показаны на рис. 1.18. Со времени создания протокола IP этот протокол был реализован во многих других сетях.
Прикладной уровень
В модели TCP/IP нет сеансового уровня и уровня представления. В этих уровнях просто не было необходимости, поэтому они не были включены в модель. Опыт работы с моделью OSI доказал правоту этой точки зрения: большинство приложений в них мало нуждаются.
Над транспортным уровнем располагается прикладной уровень. Он содержит все протоколы высокого уровня. К старым протоколам относятся протокол виртуального терминала (TELNET), протокол переноса файлов (FTP) и протокол электронной почты (SMTP), как показано на схеме. Протокол виртуального терминала позволяет пользователю регистрироваться на удаленном сервере и работать на нем. Протокол переноса файлов предоставляет эффективный способ перемещения информации с машины на машину. Электронная почта изначально представляла собой разновидность переноса файлов, однако позднее для нее был разработан специальный протокол. С годами было добавлено много других протоколов, таких как DNS (Domain Name Service — служба имен доменов), позволяющая преобразовывать имена хостов в сетевые адреса, NNTP (Network News Transfer Protocol — сетевой протокол передачи новостей), HTTP, протокол, используемый для создания страниц на World Wide Web, и многие другие.
Хост-сетевой уровень
В эталонной модели TCP/IP не описывается подробно, что располагается ниже межсетевого уровня. Сообщается только, что хост соединяется с сетью при помощи какого-нибудь протокола, позволяющего ему посылать по сети IP-пакеты. Этот протокол никак не определяется и может меняться от хоста к хосту и от сети к сети. В книгах и статьях, посвященных модели TCP/IP, этот вопрос обсуждается редко.