Когда необходимо обеспечить обмен данными между прикладными процессами, которые выполняются на удаленных компьютерах, требуется поддерживать довольно сложные процедуры.
Поэтому логика взаимодействия процессов в сети не реализуется в виде единого модуля, а разбивается на множество подзадач. Каждая подзадача реализуется отдельным программным или аппаратным модулем.
Модули распределяются по функциональным уровням, которые организуются в виде ВЕРТИКАЛЬНОГО СТЕКА:
Каждый уровень стека выполняет свое подмножество функций, необходимое для общения с другой системой, при этом каждый уровень предоставляет услуги смежному вышестоящему уровню и в свою очередь пользуется услугами смежного нижнего уровня.
Таким образом, функциональные уровни внутри одной системы взаимодействуют на строго иерархической основе.
Архитектура процессов в компьютерной сети
При идеальной реализации такой архитектуры удаленные системы общаются при помощи обмена блоками данных строго определенного формата. И модули каждого функционального уровня на передающей стороне генерируют управляющую информацию, которая анализируется и обрабатывается на приемной стороне модулями того же ранга. Этот обмен подчиняется набору правил, который называется протоколом уровня.
В 1983 году в целях упорядочения принципов взаимодействия устройств в сетях передачи данных Международная организация по стандартизации (МОС, ISO) утвердила в качестве международного стандарта 7-ми уровневую модель для архитектуры коммуникационных протоколов. Предполагалось, что эта модель должна послужить основой для разработки международных стандартов протоколов. Модель получила название - Эталонная модель Взаимодействия Открытых Систем ВОС (стандарт ISO #7498, рекомендация Международного Союза электросвязи МСЭ-Т Х.200). Разработчики модели полагали, что эта модель и протоколы, разрабатываемые в ее рамках, будут преобладать в средствах компьютерной связи, и, в конце концов, вытеснят фирменные протоколы и конкурирующие модели, такие как TCP/IP. Хотя этого не произошло, в рамках модели было создано много полезных протоколов. И в настоящее время, большинство разработчиков и поставщиков сетевого оборудования определяют свои продукты в терминах эталонной модели ВОС или OSI (Open System Interconnection).
Термин " открытая система " означает возможность использования в сети компьютеров разных типов и классов, с различным программным и аппаратным обеспечением. Главное, чтобы сетевые устройства использовали открытые (то есть, известные, стандартизованные) форматы данных, протоколы взаимодействия и интерфейсы. Это гарантирует возможность обмена информацией между пользователями сети, независимо от способов программной и аппаратной реализации используемых сетевых устройств. Такая сеть является открытой.
В соответствии с моделью OSI взаимодействие прикладных процессов пользователей в сети разбивается на 7 функциональных уровней.
Нумерация функциональных уровней идет снизу вверх. На рисунке показаны названия уровней ВОС и соответствующих уровневых протоколов.
Наименование блока данных протокола | |
7Прикладной (Application) | Сообщение |
6Представительный (Presentation) | Пакет |
5Сеансовый (Session) | Пакет |
4Транспортный (Transport) | Пакет, сегмент |
3Сетевой (Network) | Пакет, дейтаграмма |
2Канальный (Data Link) | Кадр (frame), ячейка |
1Физический (Physical) | Бит |
Среда передачи |
На стороне передаче пересылаемый блок данных проходит вниз через все функциональные уровни компьютера-отправителя, а на приеме - проходит снизу вверх через все функциональные уровни получателя.
Как правило, каждый уровень на передаче добавляет к блоку данных свой заголовок, который содержит служебную информацию (адресация сообщений и управляющие функции) для модулей, работающих на том же функциональном уровне на приемной стороне.
Функциональные уровни 1-4 (физический – транспортный) предоставляют транспортные услуги по доставке блока данных от прикладного процесса компьютера – источника до прикладного процесса компьютера – получателя информации.
Фунциональный уровень | Добавленные заголовки | ||||||||
Кадр | К | Сет | Т | С | Пр | Прик | Данные ППП | К | |
Биты | |||||||||
Пакет, поступающий от смежного вышестоящего уровня, называется блоком данных протокола этого уровня PDU (Protocol Data Unit). Например, блок данных сетевого уровня может включать в себя собственно данные прикладного процесса пользователя (Данные ППП) и заголовки "Сет -….- Прик".
Когда поток бит по сети поступает на вход сетевого разъема компьютера-получателя, он принимается его физическим уровнем, затем канальный уровень выделяет в этом потоке кадры, и далее, блок данных последовательно перемещается по функциональным уровням вверх. Каждый уровень анализирует и обрабатывает свой заголовок, выполняет необходимые функции, удаляет свой заголовок и передает оставшийся блок данных протоколу верхнего смежного уровня.
Правила, определяющие последовательность и формат сообщений, которыми обмениваются сетевые компоненты (модули, сущности) одного функционального уровня, но работающие в разных узлах, называются протоколом уровня.
Иерархически организованный набор протоколов, достаточный для организации взаимодействия узлов в сети, называется стеком коммуникационных протоколов.
Совокупность правил взаимодействия сетевых компонентов смежных уровней внутри одной системы и аппаратно-программных средств на границе уровней называется интерфейсом. Интерфейсы бывают аппаратные (физический уровень) и программные (например, транспортный уровень).
Набор уровней и протоколов называется архитектурой сети.
Физический уровень обеспечивает передачу/прием неструктурированного потока бит в физической среде.
Уровень определяет механические, электрические и функциональные параметры физической связи, то есть описывает процесс прохождения сигналов через среду передачи между сетевыми устройствами. На этом уровне решаются вопросы: какое количество контактов должно быть в сетевом разъеме и для чего используется каждый контакт, какие сигналы используются для передачи битов "1" и "0" в последовательности данных, чему должна быть равна скорость модуляции В (число импульсов в секунду), как устанавливается начальное физическое соединение и как оно разрывается, как обеспечивается синхронизация приемника с поступающими сигналами.
Сетевое устройство - Повторитель или хаб (hub, repeater) выполняет только функции физического уровня. Функции хаба – усиление и ретрансляция сигналов. Хаб имеет несколько сетевых разъемов (портов) для подключения среды передачи (кабеля). Сигнал, поступивший на вход одного из портов, пересылается параллельно на все выходные порты (за исключением входного).
Канальный уровень (уровень звена данных). Звено данных – это участок сети, включающий два соседних сетевых устройства и физическую линию связи между ними. Например, компьютер пользователя – линия связи кабель UTP 5e – коммутатор.
Основными функциями протоколов канального уровня являются управление потоком данных на звене, управление доступом к среде передачи, защита от ошибок.
Протокол канального уровня в глобальной (региональной) сети Wide Area Network (WAN) обеспечивает доставку кадра между соседними в сети узлами, соединенными индивидуальной линией связи.
Протокол канального уровня в локальной сети Local Area Network (LAN) может обеспечить доставку кадра между любыми узлами этой сети, но в современных сетях при этом задействуются протоколы вышестоящих уровней – сетевого и транспортного.
Локальные сети изначально строились с использованием разделяемой (share) среды передачи. В настоящее время методы разделения среды передачи в локальной сети используются на участках беспроводного доступа (например, WI-FI). Поэтому, канальный уровень LAN разделен на два подуровня (стандарты IEEE 802.x):
· LLC (Logical Link Control) - подуровень управления логическим каналом (взаимодействие с сетевым уровнем, управление потоком кадров, передача кадров между рабочими станциями сети в соответствии с определенной процедурой: 1) без установления логического соединения и без подтверждения правильного приема кадра; 2) с установлением логического соединения, нумерацией передаваемых кадров и повторной передачей искаженных кадров; 3) без установления логического соединения, но с подтверждением.
· MAC (Media Access Control) - подуровень управления доступом к среде передачи (реализация алгоритма доступа к среде, адресация узлов сети по физическим (аппаратным) адресам сетевых карт, проверка принятого кадра на наличие ошибок).
Сетевые устройства, выполняющие функции канального уровня – коммутатор (SW-switch), мост (bridge), сетевой адаптер (сетевая карта) узла в локальной сети (NIC – Network Interface Card).
Сетевой уровень отвечает за организацию маршрута передачи пакетов в сложной сети, состоящей из множества сегментов (подсетей), и позволяет работать в произвольных сетевых топологиях. Внутри сегментов могут использоваться совершенно разные принципы передачи сообщений между конечными узлами – компьютерами. Примером такой сети является сеть Интернет. Основным функциональным устройством сетевого уровня является маршрутизатор (router). Маршрутизатор всегда реализуется программно, протоколы сетевого уровня включаются в состав сетевой операционной системы компьютера.
На сетевом уровне создаётся логический адрес подсети для идентификации группы компьютеров. Этот адрес присваивается автоматически операционной системой или администратором системы.
Маршрутизаторы не видят физических адресов, используемых канальным уровнем. Они пересылают информацию по логическим адресам подсетей.
Маршрутизатор (R, router) принимает решение о том, куда направлять поступающие пакеты данных, исходя из информации в заголовке сетевого уровня. Заголовок содержит сетевой адрес отправителя и адрес получателя, то есть числовые идентификаторы, которые позволяют однозначно определить устройство в сети.
Работу маршрутизатора поддерживают два процесса. Один процесс обрабатывает приходящие пакеты и выбирает для них по своей таблице маршрутизации исходящую линию (исходящий порт). Второй процесс отвечает за заполнение и обновление таблиц маршрутизации. Второй процесс работает в соответствии с определенным алгоритмом выбора маршрута – алгоритмом маршрутизации.
Алгоритмы маршрутизации можно разбить на два основных класса: адаптивные и неадаптивные.
Неадаптивные алгоритмы (статическая маршрутизация) не учитывают топологию и текущее состояние сети и не измеряют трафик на линиях связи. Список маршрутов загружается в память маршрутизатора заранее и не изменяется при изменении состояния сети.
Адаптивные алгоритмы (динамическая маршрутизация) изменяют решение о выборе маршрутов при изменении топологии сети и в зависимости от загруженности линий.
Маршрутизатор (router) определяет оптимальный (лучший) путь передачи пакета, вычисляя количественные показатели, которые называются метриками. Обычно лучший путь – это путь с наименьшей метрикой.
Переход пакета через маршрутизатор часто называют скачком (hop) или хопом.
Простейшие алгоритмы маршрутизации определяют маршрут на основании наименьшего числа транзитных узлов на пути к адресату (дистанционно-векторные алгоритмы DVA или маршрутизация по вектору расстояния, протокол маршрутизации RIP – routinginformationprotocol). Более сложные алгоритмы учитывают несколько показателей, например, общую задержку при передаче пакетов до узла назначения, пропускную способность каналов связи или денежную стоимость связи (протокол OSPF, алгоритмы состояния связей LSA, алгоритм Дейкстры – поиск оптимального маршрута на графе).
Основным результатом работы алгоритма маршрутизации является создание и поддержка таблицы маршрутизации, в которую записывается вся маршрутная информация.
Транспортный уровень фактически отделяет приложение пользователя и три верхних уровня, которые отвечают за обработку данных, от физических и функциональных особенностей коммуникационной сети. Главная задача транспортного уровня – обеспечить надежный и прозрачный перенос данных между конечными точками (компьютерами пользователей, компьютером и сервером) через сеть.
Транспортный уровень должен довести качество сетевого соединения до того класса надежности, который запросило приложение.
Модель OSI определяет 5 классов сервиса (услуг), предоставляемых транспортным уровнем. Они отличаются срочностью, возможностью восстановления прерванного соединения, а главное – обнаружением и исправлением ошибок в принятых пакетах.
К средствам обнаружения и устранения ошибок транспортными протоколами относятся: предварительное установление логического соединения, вычисление контрольных сумм, нумерация пакетов (сегментов), установление таймеров доставки, повторная передача пакетов через сеть и т.д.
Сеансовый уровень управляет сеансами взаимодействия прикладных процессов пользователей. На этом уровне определяется, какая из сторон является активной в данный момент, и обеспечивается синхронизация диалога прикладных процессов. Средства синхронизации позволяют организовывать контрольные точки в длинных передачах, чтобы в случае отказа можно было вернуться к последней контрольной точке, не начиная всю передачу данных сначала.
Представительный уровень или уровень представления определяет синтаксис передаваемых сообщений, то есть, набор символов алфавита и способы их представления в виде двоичных чисел (первичный код). Уровень обеспечивает процесс согласования различных кодировок, а также может выполнять шифрование, дешифрование и сжатие данных.
Прикладной уровень обеспечивает доступ для приложений пользователя к сетевым службам, таким как доступ к файлам, пересылка электронной почты, обработчик запросов к базам данных. Уровень отвечает за семантику, то есть смысловое содержание сообщений, которыми обмениваются удаленные приложения.
Устройство, которое занимается распределение информационных потоков в сети и которое выполняет функции всех уровней до прикладного уровня включительно, называется шлюз (gateway).