Стандартизация в компьютерных сетях

 

Суть сети заключается в соединении различного оборудования. В этой ситуации вопросы совместимости этого оборудования являются наиболее важными. В перечень этих вопросов входит: согласование уровней электрических сигналов, формирование кадров (фреймов, пакетов) передаваемой по сети информации в зависимости от используемой сетевой технологии, проверка контрольных сумм и т.д. Без принятия всеми производителями общепринятых правил построения оборудования, прогресс в развитии компьютерных сетей невозможен. Любая новая компьютерная технология только тогда приобретает законный статус, когда ее содержание закрепляется в соответствующем стандарте.

В компьютерных сетях основой стандартизации является многоуровневый подход к разработке средств внутрисетевого взаимодействия. Это означает, что задача организации взаимодействия между устройствами в сети разбивается на несколько частных, более простых задач. Средства решения этих частных задач упорядочены в виде иерархии уровней. Для решения задачи некоторого уровня могут быть использованы средства, непосредственно примыкающего нижележащего уровня. С другой стороны, результаты работы средства некоторого уровня могут быть переданы только средством нижележащего уровня.

Многоуровневое представление средств сетевого взаимодействия имеет свою специфику – в процессе обмена сообщениями участвуют два компьютера. Это означает, что необходимо организовывать согласованную работу двух «иерархий». При передаче сообщений оба участника сетевого обмена должны принять множество соглашений: требуется согласовать способ кодирования электрических сигналов, согласовать правила длины сообщения, договориться о методах контроля достоверности и т.п. Таким образом соглашения должны быть приняты для всех уровней, начиная от самого низкого – уровня передачи битов (физический уровень), до самого высокого уровня, предоставляющего услуги пользователя сети (уровень приложений).

Формализованные правила определяющие последовательность и формат сообщений, которыми обмениваются сетевые компоненты, лежащие на одном уровне иерархии, но в разных узлах называются протоколом.

Модули, реализующие протоколы модулей соседних уровней и находящиеся в одном узле также взаимодействуют друг с другом, в соответствии с четко определенными правилами и с помощью стандартизованных форматов сообщений. Эти правила принято называть интерфейсом. Таким образом, интерфейс определяет услуги, предоставляемые данным уровнем соседнему уровню.

Протокол и интерфейс выражают одно и то же понятие, но в сетях за ними закреплены разные области действия: протоколы определяют правила взаимодействия модулей одного уровня в разных узлах, а интерфейсы - модулей соседних уровней в одном узле. Таким образом, средства каждого уровня должны отрабатывать, с одной стороны, свой собственный протокол, а с другой – интерфейсы с соседними уровнями.

Иерархически организованный набор протоколов, достаточный для организации взаимодействия всех узлов сети (составной сети (интерсети - синоним), понимая под этими понятиями возможность объединения сетей посредством маршрутизаторов (router)), называют стеком коммуникационных протоколов. Наиболее широко используемым стеком в настоящее время является стек коммуникационных протоколов TCP/IP.

Коммуникационные протоколы могут быть реализованы как программно, так и аппаратно, а так же комбинацией программных и аппаратных средств. В качестве аппаратных средств используются не только компьютеры, но и другие сетевые устройства: концентратор (hub), мост (bridge), коммутатор (switch), маршрутизатор (router) и т.д. Это объясняется тем, что в общем случае связь компьютеров в сети осуществляется не напрямую, а через различные коммуникационные устройства. В зависимости от типа устройства, в нем должны быть встроенные средства, реализующие требуемый набор протоколов. В начале 80х годов прошлого века ряд международных организаций, в частности, международная организация по стандартизации (The International Organization for Standardization - ISO) разработала стандарт, который используется как модель для сетевой связи. Этот стандарт называется «эталонная модель взаимодействия открытых систем» Open System Interconnection, OSI. OSI описывает взаимодействие различных систем, дает им стандартные имена и указывает, какие функции должен выполнять каждый уровень. Модель OSI описывает только системные средства взаимодействия реализуемые операционной системой, системными утилитами, системными аппаратными средствами. Модель не включает средства взаимодействия приложений конечных пользователей. Свои собственные протоколы взаимодействия приложения реализуют обращаясь к системным средствам.

В модели OSI взаимодействие делится на 7 уровней. Приведем список этих уровней, начиная от самого нижнего, до самого верхнего:

1. Physical layer, физический уровень – отвечает за пересылку данных.

2. Data link layer, канальный уровень – отвечает за порядок получения и отправки данных.

3. Network layer, сетевой уровень – отвечает за назначение адреса назначения для передаваемой информации.

4. Transport layer, транспортный уровень – обеспечивает проверку наличия ошибок и контролирует доставку информации.

5. Session layer, сеансовый уровень – устанавливает каналы взаимодействия между узлами.

6. Presentation layer, уровень представления данных – формирует информацию (устанавливает форматы и структуру данных).

7. Application layer, уровень приложений – определяет порядок взаимодействия приложений с сетью.

Представим модель для сетевой связи OSI в следующем графическом виде:

 

Функции всех уровней модели OSI могут быть отнесены к двум группам:

1. функции, зависящие конкретной технической реализации сети,

2. функции, ориентированные на работу с приложениями.

Три нижних уровня модели OSI (физический, канальный и сетевой) являются сетезависимыми, т.е. протоколы этих уровней тесно связаны с технической реализацией сети и используемым коммуникационным оборудованием. Три верхних уровня (прикладной, представления данных и сеансовый) ориентированы на приложения и мало зависят от технических особенностей сети. На протоколы этих уровней не влияют как изменение топологии сети, так и замена оборудования в каждой из используемых топологий. На протоколы этих уровней не влияет также переход на другую сетевую технологию. Пример: переход с Ethernet на более скоростную технологию Fast Ethernet не требует никаких изменений в программных средствах, которые реализуют функции трех верхних уровней. Транспортный уровень является промежуточным, он скрывает все детали функционирования нижних уровней от верхних. Это позволяет разрабатывать приложения не зависящие от технических средств непосредственной транспортировки сообщений.

Пример. Рассмотрим пример прохождения запроса между двумя узлами сети (компьютер А и компьютер В): пусть приложение А обращается с запросом к прикладному уровню, например, к файловой службе. На основании этого запроса, программное обеспечение запроса узла А формирует сообщение стандартного формата. Обычное сообщение состоит из заголовка и поля данных.

 

Заголовок содержит служебную информацию, которую необходимо передать прикладному уровню машине адресата (компьютер В), чтобы сообщить ему какую работу необходимо выполнить. Для данного примера, заголовок должен содержать информацию о месте нахождения файла и типе операции, которую необходимо выполнить над файлом. Поле данных может быть пустым или содержать данные, например те, которые нужно записать в файл, находящийся на машине-адресате. После формирования сообщения, прикладной уровень машины А передает его вниз по стеку на уровень представления данных. Протокол представительского уровня на основании информации полученной из заголовка прикладного уровня выполняет требуемые действия и добавляет к сообщению собственную служебную информацию – заголовок представительского уровня, в котором содержаться указания для протокола представительского уровня машины-адресата (узел В). Полученное в результате сообщение передается вниз сеансовому уровню, который, в свою очередь, добавляет свой заголовок. И так далее. Некоторые реализации протоколов помещают служебную информацию в виде заголовка, но и в конец сообщения, в виде концевика. И наконец, информация достигает физического уровня, который передает ее по линиям коммуникациям до машины-адресата (для данного примера). К этому моменту сообщение обрастает заголовками всех уровней.

Вложенность (инкапсуляцию) сообщений различных уровней можно представить следующим образом:

 

В итоге, когда сообщение достигает машину-адресат, оно принимается ее физическим уровнем и перемещается вверх уровень за уровнем. Каждый уровень анализирует и обрабатывает заголовок своего уровня, удаляет его и передает сообщение вышележащему уровню. На ряду с термином «сообщение» в стандартах для обозначения единиц данных с которыми имеют дело протоколы разных уровней часто используется общее название – протокольный блок данных (Protocol Data Unit - PDU)

Для обозначения блоков данных разных уровней используются названия: кадр (frame) - канальный, пакет (packet) – сетевой уровень, дейтаграмма (datagram) – транспортный уровень, сегмент (segment).

 

В стандарте OSI есть два основных вида протоколов. Первый требует подключение обоих компьютеров. После завершения диалога они должны разорвать соединение. Пример – телефон.

 

Вторая группа протоколов – протоколы без предварительного установления соединения. Эти протоколы называются дейтаграммными протоколами. В этом случае отправитель просто передает сообщение когда оно готово. Например: опускание письма в почтовый ящик.

Рассмотрим подробнее функции и сетевые задачи уровней модели OSI.

1. Физический уровень.

Этот уровень имеет дело с передачей битов по физическим каналам связи: коаксиальные кабели (тонкий и толстый), витая пара (определенные категории – как экранированная, так и не экранированная), оптоволоконные кабели. К этому уровню имеют отношение характеристики физических сред передачи данных:

· полоса пропускания (диапазон частот при котором полезный сигнал передается по линиям связи без значительных искажений)

· помехозащищенность (способность уменьшать уровень помех, создаваемых во внешней среде на внутренних проводниках)

· волновое сопротивление (импеданс) - это полное (активное и реактивное) сопротивление электрический цепи; активное сопротивление – сопротивление постоянному току в электрической цепи. В отличие от импеданса, активное сопротивление не зависит от частоты передаваемого сигнала и возрастает только с увеличением длины сетевого кабеля.

· на физическим уровне определяются характеристики электрических сигналов, передающих дискретную информацию, стандартизируются типы разъемов и назначение каждого контакта, в зависимости от типа сетевого кабеля.

Функции физического уровня реализуются всеми устройствами подключенными к сети. Со стороны рабочей станции эти функции реализуются сетевыми адаптерами (сетевыми картами). Ключевое слова уровня – БИТЫ.

2. Канальный уровень

Протоколы, решающие задачи этого уровня определяют следующее:

1) проверяют доступность среды передачи (поскольку в некоторых сетевых технологиях, в которых каналы связи используются попеременно несколькими парами взаимодействующих компьютеров, среда передачи может быть занята);

2) реализуют механизмы обнаружения и коррекции ошибок; для этого на канальном уровне передаваемые биты информации группируются в логические группы, называемые кадрами(frames). Канальный уровень обеспечивает корректность передачи кадров, помещая последовательность бит в начало и конец, вычисляет контрольную сумму, обрабатывая все байты передаваемого кадра и добавляет ее кадру.

Ключевое слово уровня – КАДРЫ (ФРЕЙМЫ).

Канальный уровень (уровень связи по данным) подразделяется на два функциональных подуровня:

1) подуровень управления доступом к среде передачи данных или MAC-подуровнем (Media Access Control);

2) подуровень управления логическим соединением или LLC (Logical Link Control)

Подуровень MAC находится между физическим уровнем модели OSI и подуровнем LLC. Процессы, работающие на подуровне MAC помещают физический адрес (который идентифицирует устройство в сети и который устанавливается изготовителем, такими устройствами являются: сетевой адаптер (сетевая карта), который либо интегрированы на материнской плате рабочей станции, либо устанавливаются в слоты расширения материнской платы в зависимости от типа системной шины) в заголовок кадра(фрейма), передаваемого по сети. Физические адреса используются для идентификации устройств отправки и назначения каждого кадра с данными.

MAC представляет собой 6-байтное слово, причем, каждый байт в этом слове всегда представляется двумя hex-цифрами. Пример: «01:BC:1F:E1:B:AA».

Роутер (маршрутизатор), как устройство в целом, не имеет ни MAC-адреса, ни IP-адреса. А MAC-адрес всегда имеет интерфейсная карта, которая устанавливается в слот расширения маршрутизатора для подключения к нему определенной сетевой технологии локальной сети. Например, если к интерфейсной карте роутера необходимо подключить локальную сеть (подсеть), то в слот расширения маршрутизатора должна быть установлена интерфейсная карта той же сетевой технологии. Например, Fast Ethernet, FDDI.

Протоколы для задач подуровня LLC определяют:

· услуги связи (здесь определяется, какими услугами связи пользуется процесс: ориентирован на соединение или без установки соединения);

· контроль ошибок (надежность - включает протокол с пропавшими кадрами, повторную передачу кадров и т.п.);

· синхронизация кадров (определяет, как из данных формируется кадр, применительно к используемой технологии локальной сети, и где любой кадр начинается и заканчивается).

В локальных сетях протоколы канального уровня используются компьютерами, мостами, коммутаторами и маршрутизаторами. Тем не менее, в компьютерах функции канального уровня реализуются совместными усилиями сетевых карт и их драйверов, зависящих от загруженной сетевой ОС компьютера.

3. Сетевой уровень

Этот уровень необходим для объединения нескольких сетей (подсетей) в одну составную (интер-) сеть. При этом сети или подсети могут использовать различные принципы передачи сообщений между конечными узлами (различные сетевые технологии) и обладать произвольной структурой связей. Сети соединяются между собой специальными устройствами – маршрутизаторами. Маршрутизатор – устройство, которое за счет использования специальных служебных протоколов, называемых протоколами маршрутизации, собирает информацию о топологии межсетевых соединений и тем самым формируя на нем таблицу маршрутизации, на основании которой пересылает пакеты сетевого уровня в сеть назначения.

Для того, чтобы передать сообщение сетевого уровня (на этом уровне они называются пакетами) от отправителя, который находится в одной сети, получателю, который находится в другой сети, как правило, необходимо совершить некоторое количество транзитных передач между сетями. Таким образом, конечным маршрут – последовательность маршрутизаторов, через которые проходит пакет. Проблема выбора наилучшего пути для пакета называется маршрутизацией – ее решение является одной из главных задач сетевого уровня.

Сетевой уровень кроме главной задачи решает также задачи согласования разных технологий за счет использования требуемых интерфейсных карт, которые всегда соответствуют подключаемой технологии локальной сети; это дает основание утверждать, что порт маршрутизатора принадлежит всегда этой подключаемой сети.

Создание барьеров на пути нежелательного трафика между сетями (определенные модели маршрутизаторов могут выполнять функции брандмауэров (фаерволов - firewall), т.е. осуществлять фильтрацию передаваемых пакетов).

Примером протоколов сетевого уровня является протокол межсетевого взаимодействия IP стека протоколов TCP/IP.

4. Транспортный уровень

На пути от отправителя к получателю пакеты могут быть искажены или утеряны (протокол IP является дейтаграммным, т.е. не гарантирует доставку сообщений). Работа транспортного уровня заключается в том, чтобы обеспечить приложениям или верхним уровням стека (например, прикладному) передачу с той степенью надежности, которая им требуется. Модель OSI определяет ряд классов услуг, предоставляемых транспортному уровню. Эти услуги отличаются качеством: срочностью, возможностью восстановления прерванной связи, способностью к обнаружению и исправлению ошибок передачи, таких как: искажение, потеря и дублирование пакетов. Как правило, все протоколы, начиная с транспортного уровня и выше, реализуются программными средствами конечных узлов сети – компонентами их сетевых операционных систем. В качестве примера транспортных протоколов можно привести транспортные протоколы TCP и UDP, принадлежащих стеку TCP/IP.

5. Сеансовый уровень

Обслуживание соединений на уровнях модели OSI выше сетевого, как правило, ориентировано на соединение и как следствие надежно. Процессы этого уровня устанавливают, поддерживают и разрывают соединения. Однако на практике не многие приложения используют сеансовый уровень и этот уровень редко реализуется в виде отдельных протоколов. Часто функции этого уровня объединяют с функциями прикладного уровня и реализуют в одном протоколе.

6. Уровень представления данных

Процессы этого уровня являются единственными сетевыми процессами, которые на самом деле преобразуют данные. Процесс преобразования может включать в себя: форматирование, сжатие, кодирование данных. На этом уровне может выполняться шифрование и дешифрование данных, это обеспечивает секретность обмена данными сразу для всех прикладных служб. Протокол безопасности - SSL (Secure Socket Layer), обеспечивающий секретный обмен сообщениями уровня приложений стека TCP/IP.

 

7. Уровень приложений

Протоколы этого уровня обеспечивают совместный доступ пользователей сети к разделяемым ресурсам: файлы, принтеры, гипертекстовые веб-страницы и т.п. Протоколы этого уровня позволяют пользователям организовывать свою совместную работу, например, с помощью протокола электронной почты. Единица данных, с которой оперирует прикладной уровень – сообщение. Существует большое разнообразие служб и сервисов прикладного уровня. В качестве примера можно привести работу файловой службы, протокол передачи файлов FTP (File Transfer Protocol), входящий в стек TCP/IP. Протокол FTP предоставляет возможность пользователю, работающему на каком-либо компьютере, считывать файлы с другого компьютера или передавать файлы на другой компьютер, на котором работает FTP-сервис.