Часть вторая. Модель OSI
В нашей предыдущей статье мы начали рассказ о том, как спроектировать и построить локальную сеть. Причем, не желая ограничиваться лишь какой-то частью сети, мы решили рассказать обо всех интересующих нас уровнях - от физического до транспортного. Чтобы более ясно понять, как сеть подразделяется на уровни, в этой части мы разберем их, поскольку понимание этого вопроса важно для расширения кругозора в области сетей вообще и локальных, в частности. Дело в том, что модель OSI проецируется на любую сеть, независимо от технологии передачи. Понимание этой модели дает возможность не только более грамотно проектировать сети, но и намного быстрее находить неисправности и проблемы, не говоря уже о том, что позволяет не запутаться в сетевых вопросах.
Физический уровень: 1
О части реализации этого уровня мы уже рассказывали в предыдущей статье, а именно - о кабельной системе. В случае Ethernet первый уровень модели OSI представлен как непосредственно кабельной системой (например, медная витая пара), так и аппаратной частью активного оборудования (сетевой адаптер, коммутатор), задача первого уровня - передавать битовую последовательность, т.е. электрическими (световыми, электромагнитными и т.п.) сигналами передавать какую-то информацию по среде передачи. Физический уровень просто передает данные - по медному проводу, оптоволокну, радиоэфиру, воздуху, электропроводке и т.п. (рано или поздно, сюда добавится что-нибудь из фантастики, например, гравитационное поле).
Канальный уровень: 2
На этом уровне сеть уже начинает проявлять некий интеллект, например, именно здесь появляются кадры - логически организованные последовательности битов. Именно кадр является базовой единицей передачи информации, поскольку он передается непосредственно на первый (физический) уровень, где уже и транслируется по среде передачи. Второй уровень делится на два подуровня: MAC (Media Access Control - управление передачей по среде) и LLC (Logical Link Control - контроль логического соединения между станциями).
MAC-подуровень ответственен за контроль доступа к среде передачи, например, в Ethernet это контроль коллизий и алгоритм доступа к среде (т.е. описание того, как станция может передавать данные в сеть).
LLC-подуровень занимается контролем синхронизации кадров, контролем потока и обнаружением ошибок передачи. Тут уместно заметить, что перечисленные функции LLC-подуровня реализуются далеко не всегда даже для того же самого протокола.
Кстати, известный многим MAC-адрес принадлежит именно ко второму уровню модели OSI - так адресуются рабочие станции в локальной сети на подуровне LLC, каждый MAC-адрес уникален в рамках локальной сети и зашит аппаратно в сетевой адаптер.
Здесь важно остановиться на примере того, как проецирование модели OSI используется для создания сетей с различными средами передачи. Возьмем для простоты Ethernet - кадр (подуровень LLC) не зависит от физической среды передачи (физический уровень + подуровень MAC), и действительно, Ethernet работает по медной паре, оптоволокну, радиоэфиру, оптической связи, электропроводке и так далее, и так далее...
При этом сеть, начиная с подуровня LLC и выше, вообще "не знает", какая среда передачи используется. Соответственно, производителям оборудования и ПО, работающего на указанных уровнях, не нужно ломать голову над тем, как передавать данные по каждой новой среде - это за них делает первый уровень и подуровень MAC. ПО или оборудованию достаточно только знать, как взаимодействовать с уровнем модели OSI, который располагается ниже, в данном случае, между подуровнями LLC и MAC.
По большому счету, для организации локальной сети достаточно двух уровней, однако такая сеть не будет масштабируемой и расширяемой, поскольку протоколы второго уровня не являются маршрутизируемыми, т.е. предназначены для использования только в локальной среде передачи. Именно поэтому появились протоколы третьего уровня, которые снимают это ограничение и способны объединять подсети.
Сетевой уровень: 3
Этот уровень самый интересный хотя бы потому, что именно на нем работает интернет. На третьем уровне модели OSI начинается маршрутизация пакетов, т.е. передача не только по локальной среде передачи от станции к станции, но и транзит пакетов через локальные среды к третьему получателю. На третьем уровне происходит абстрагирование от локальной сети и использование маршрутизируемых протоколов. Основным признаком протоколов третьего уровня является деление адресного пространства на подсети и введение таблиц маршрутизации, которые указывают, куда для данной подсети отправлять пакеты. "Куда" в данном случае означает "на какой шлюз", именно на третьем уровне появляются шлюзы между сетями, которые пропускают через себя пакеты в другие сети. Как и подуровень LLC, третий уровень модели OSI независим от предыдущих уровней, что позволяет универсализировать ПО и оборудование.
Интересно, что сам по себе термин internet изначально означает "сеть, которая объединяет сети". Действительно, интернет есть просто соединение независимых сетей между собой по протоколу 3-го уровня (IP), просто их очень много, поэтому и получилось такое мега-образование, которое мы и называем интернетом, подразумевая под ним уже нечто целостное.
Транспортный уровень: 4
Сама же передача данных начинается на транспортном уровне. Именно этот уровень, накладываясь на сетевой, уже передает данные между программами. На этом уровне работают протоколы TCP и UDP, которые и передают данные в современных сетях. На транспортный уровень возложены функции контроля ошибок и потока данных уже между конечными точками (а не только в локальной сети, как это делает подуровень LLC). На этом уровне реализуется трансляция адресов для TCP и UDP, что позволяет организовывать доступ в интернет с рабочих станций в локальной сети.
Сеансовый уровень: 5
Этот уровень - точка взаимодействия сети с программами. Начиная с этого уровня, как правило, обработка данных переходит от сетевого стека к программам, которые и реализуют уровни 5, 6 и 7. Мы не будем подробно останавливаться на этих уровнях, поскольку в сетях TCP/IP это уже вопрос не сетевого взаимодействия, а программирования с использованием API. Подробности об этом и других уровнях можно найти на ya.ru по ключевой фразе "модель OSI".
Вложенность уровней
Интересно, что для передачи информации по сети она вкладывается в пакеты на каждом уровне, причем первое вложение происходит на уровне 7, затем пакет уровня 7 вкладывается в пакет уровня 6 и т.д. до уровня 1. Не трудно догадаться, что к уровню 1 пакет может существенно разрастись, поскольку каждый уровень добавляет к нему какую-то свою служебную информацию. Например, в протоколе IP уровень 4 добавляет информацию о подпротоколе, порте получателя и отправителя (в случае TCP или UDP), уровень 3 добавляет информацию об IP-адресе отправителя и получателя, а уровень 2 еще и информацию о MAC-адресах отправителя и получателя, и только потом этот пакет, собранный как матрешка, передается на уровень 1 для передачи по физической среде.
При получении пакета на станции-получателе процесс работает в обратном направлении - из пакета уровня 1 извлекается пакет уровня 2, из него пакет уровня 3, и т.д., пока данные не будут доставлены непосредственно к программе, которая их должна получить.
Такая схема позволяет добавить гибкость в организацию сетевого взаимодействия, поскольку без проблем можно добавлять другие подуровни в существующие или даже заменять (например, среду передачи) - для всех остальных более высоких уровней это останется прозрачным. Например, известный протокол PPTP, используемый для создания VPN-соединений, сам передается уровнем 4 (транспортным), в то время как он туннелирует (передает через себя) пакеты уровня 3 (сетевой). При этом программы вообще "не знают", что пакет передан через уровень 4, поскольку они работают на уровне 5, а значит, нижние уровни для них прозрачны.
Заключение
В заключение хочется сказать несколько слов о том, что конкретно дает понимание модели OSI.
- Знание уровней 1 и 2 позволяет строить надежные локальные сети;
- Знание уровня 3 позволяет грамотно объединять сети между собой, например, локальные или локальную и провайдера;
- Знание уровня 4 дает возможность настраивать взаимодействие из локальной сети с интернетом через трансляцию адресов, а не только через прокси;
- А знание всех семи уровней позволяет проводить комплексное проектирование сетей от среды передачи до самого пользователя и быстро диагностировать сетевые проблемы.
Другими словами, современная локальная сеть уже не ограничивается в работе только в рамках локальной среды передачи, но и взаимодействует, как минимум, с интернетом. Это вносит массу новых вопросов в проектирование локальной сети, поэтому важно понимать азы построения сетей. Семиуровневая модель OSI используется для классификации всего сетевого оборудования и ПО, что позволяет четко понимать его функции и место в сети.
В следующей части статьи перейдем к практическому применению модели OSI. В частности, будут рассмотрены вопросы построения сетей Ethernet на примере канального уровня (2).
Алексей ГРЕЧАНИНОВ,
портал IT'шников Беларуси www.administrators.ws
Горячие темы