Модель osi протоколы. Как работают сетевые устройства согласно сетевой модели OSI
Эталонная модель OSI являет собой 7-уровневую сетевую иерархию созданную международной организацией по стандартам (ISO). Представленная модель на рис.1 имеет 2 различных модели:
- горизонтальная модель на основе протоколов, реализующую взаимодействие процессов и ПО на разных машинах
- вертикальную модель на основе услуг, реализуемых соседними уровнями друг другу на одной машине
В вертикальной — соседние уровни меняются информацией с помощью интерфейсов API. Горизонтальная модель требует общий протокол для обмена информацией на одном уровне.
Рисунок — 1
Модель OSI описывает только системные методы взаимодействия, реализуемые ОС, ПО и тд. Модель не включает методы взаимодействия конечных пользователей. В идеальных условиях приложения должны обращаться к верхнему уровню модели OSI, однако на практике многие протоколы и программы имеют методы обращения к нижним уровням.
Физический уровень
На физическом уровне данные представлены в виде электрических или оптических сигналов, соответствующие 1 и 0 бинарного потока. Параметры среды передачи определяются на физическом уровне:
- тип разъемов и кабелей
- разводка контактов в разъемах
- схема кодирования сигналов 0 и 1
Самые распространенные виды спецификаций на этом уровне:
- — параметры несбалансированного последовательного интерфейса
- — параметры сбалансированного последовательного интерфейса
- IEEE 802.3 —
- IEEE 802.5 —
На физическом уровне нельзя вникнуть в смысл данных, так как она представлена в виде битов.
Канальный уровень
На этом канале реализована транспортировка и прием кадров данных. Уровень реализует запросы сетевого уровня и использует физический уровень для приема и передачи. Спецификации IEEE 802.x делят этот уровень на два подуровня управление логическим каналом (LLC) и управление доступом к среде (MAC). Самые распространенные протоколы на этом уровне:
- IEEE 802.2 LLC и MAC
- Ethernet
- Token Ring
Также на этом уровне реализуется обнаружение и исправление ошибок при передаче. На канальном уровне пакет помещается в поле данных кадра — инкапсуляция. Обнаружение ошибок возможно с помощью разных методов. К примеру реализация фиксированных границ кадра, или контрольной суммой.
Сетевой уровень
На этом уровне происходит деление пользователей сети на группы. Здесь реализуется маршрутизация пакетов на основе MAC-адресов. Сетевой уровень реализует прозрачную передачу пакетов на транспортный уровень. На этом уровне стираются границы сетей разных технологий. работают на этом уровне. Пример работы сетевого уровня показан на рис.2 Самые частые протоколы:
Рисунок — 2
Транспортный уровень
На этом уровне потоки информации делятся на пакеты для передачи их на сетевом уровне. Самые распространенные протоколы этого уровня:
- TCP — протокол управления передачей
Сеансовый уровень
На этом уровне происходит организация сеансов обмена информацией между оконечными машинами. На этом уровне идет определение активной стороны и реализуется синхронизация сеанса. На практике многие протоколы других уровней включают функцию сеансового уровня.
Уровень представления
На этом уровне происходит обмен данными между ПО на разных ОС. На этом уровне реализовано преобразование информации ( , сжатие и тд) для передачи потока информации на транспортный уровень. Протоколы уровня используются и те, что используют высшие уровни модели OSI.
Прикладной уровень
Прикладной уровень реализует доступ приложения в сеть. Уровень управляет переносом файлов и управление сетью. Используемые протоколы:
- FTP/TFTP — протокол передачи файлов
- X 400 — электронная почта
- Telnet
- CMIP — управление информацией
- SNMP — управление сетью
- NFS — сетевая файловая система
- FTAM — метод доступа для переноса файлов
Модель OSI — это базовая эталонная модель взаимодействия открытых систем. Она представляет собой систему, состоящую из семи уровней, на каждом из которых задействованы определенные сетевые протоколы, обеспечивающие передачу данных на всех ступенях взаимодействия.
Общие сведения
Для того чтобы облегчить понимание и проще ориентироваться в различных направлениях работы с сетевыми протоколами, была создана принятая за эталон модульная система, благодаря чему стало гораздо проще локализовать проблему, зная, на каком из участков сети она располагается.
На каждом из уровней модели OSI ведется работа с определенными наборами протоколов (стеками). Они четко локализуются в рамках каждого уровня, не выходя за его границы, при этом будучи связанными в четкую и удобную для восприятия систему.
Итак, сколько уровней в сетевой модели OSI и какие они?
- Физический.
- Канальный.
- Сетевой.
- Транспортный.
- Сеансовый.
- Представительский.
- Прикладной.
Чем сложнее структура сетевого устройства, тем большее количество возможностей оно открывает, при этом работает одновременно на большем количестве уровней модели. Это влияет в том числе и на быстродействие устройств: чем больше уровней задействовано, тем медленнее происходит работа.
Взаимодействие уровней происходит при помощи интерфейсов между двумя соседними уровнями и через протоколы в рамках одного уровня.
Физический уровень
Первый уровень сетевой модели OSI - среда передачи данных. На нем происходит передача данных как таковая. За единицу нагрузки принимается бит. Происходит передача сигнала по кабелю или беспроводным сетям и соответствующее кодирование в информацию, выраженную посредством битов.
Протоколы, которые здесь задействованы: провод (витая пара, оптика, телефонный кабель и другие), среды беспроводной передачи данных (к примеру, Bluetooth или Wi-Fi) и так далее.
Также на этом уровне работают медиаконвертеры, репитеры сигнала, концентраторы, а также все механические и физические интерфейсы, при помощи которых осуществляют взаимодействие системы.
Канальный уровень
Здесь передача информации происходит в виде блоков данных, которые называются кадрами или фреймами, канальный уровень сетевой модели OSI осуществляет их создание и передачу. Взаимодействует, соответственно, с физическим и сетевым уровнями OSI.
Подразделяется на два подуровня:
- LLC — управляет логическим каналом.
- MAC — работа с доступом непосредственно к физической среде.
Для облегчения понимания разберем следующий пример.
В компьютере или ноутбуке существует сетевой адаптер. Чтобы он мог корректно работать, используется программное обеспечение, драйвера, относящиеся к верхнему подуровню — через них ведется взаимодействие с процессором, находящимся на нижнем подуровне.
Протоколы используются следующие: PPP (связность двух ПК прямым образом), FDDI (передача данных на расстояние менее двухсот километров), CDP (собственный протокол компании Cisco, используемый для обнаружения и получения информации о соседних сетевых устройствах).
Сетевой уровень
Это уровень модели OSI, отвечающий за маршруты, по которым идет передача данных. Устройства, которые работают на этой ступени, называются маршрутизаторами. Данные на этом уровне передаются пакетами. На канальном уровне устройство определялось при помощи физического адреса (MAC), а на сетевом начинают фигурировать IP-адреса — логический адрес какого-либо устройства сети, интерфейса.
Рассмотрим функции сетевого уровня модели OSI.
Основная задача данной ступени — это обеспечение передачи данных между оконечными устройствами.
Для этого обеспечивается назначение уникального адреса для всех этих устройств, инкапсуляция (снабжение данных соответствующим заголовком или метками, посредством чего и создается основная единица нагрузки — пакет).
Как только пакет достигает точки назначения, происходит процесс декапсуляции — конечный узел исследует полученные данные, чтобы убедиться, что пакет доставлен туда, куда требовалось, и передается на следующий уровень.
Рассмотрим список протоколов сетевого уровня модели OSI. Это упомянутый раньше IP, который входит в стек TCP/IP, ICMP (отвечает за передачу управляющих и сервисных данных), IGMP (групповая передача данных, мультикаст), BGP (осуществление динамической маршрутизации) и многие другие.
Транспортный уровень
Протоколы этого уровня служат для того, чтобы обеспечить надежность передачи сведений от отправляющего устройства до принимающего, отвечают непосредственно за доставку информации.
Основная задача транспортного уровня — чтобы пакеты данных были отправлены и получены без ошибок, отсутствовали потери, соблюдалась последовательность передачи.
Этот уровень работает с целыми блоками данных.
К примеру, требуется передать некий файл по электронной почте. Для того чтобы до получателя дошла корректная информация, требуется соблюдение точной структуры и последовательности передачи данных, ведь если будет утерян хотя бы один бит при загрузке файла, его невозможно будет открыть.
Можно выделить два основных протокола, которые работают на этом уровне: TCP и UDP.
UDP отправляет данные, не запрашивая от оконечного устройства ответ о доставке, и не повторяет отправку в случае неудачи. TCP же, наоборот, устанавливает соединение и требует ответа о доставке данных, если информация не доходит, повторяет отправление.
Сеансовый уровень
Он же сессионный. На этом уровне сетевой модели OSI происходит установка и поддержка сеансов связи между двумя оконечными устройствами. Этот уровень, как и все последующие, работает непосредственно с данными.
Для примера вспомним, как проводятся видеоконференции. Для того чтобы сеанс связи прошел успешно, необходимы соответствующие кодеки, которыми шифруется сигнал, с обязательным требованием наличия их на обоих устройствах. Если на одном из устройств кодек отсутствует или поврежден, связь не будет установлена.
Помимо этого, на сеансовом уровне могут использоваться такие протоколы, как L2TP (туннельный протокол для поддержки пользовательских виртуальных сетей), PAP (отправляет на сервер данные авторизации пользователей без шифрования и подтверждает их подлинность) и другие.
Представительский уровень
Отвечает за отображение данных в необходимом формате. Реализуется видоизменение информации (к примеру, кодирование), для того чтобы поток данных был успешно переведен на транспортный уровень.
В качестве примера можно перевести пересылку изображения по электронной почте. В результате работы протокола SMTP изображение преобразуется в удобный для восприятия на нижних уровнях формат, а для пользователя выводится в привычном формате JPEG.
Протоколы данного уровня: стандарты изображений (GIF, BMP, PNG, JPG), кодировки (ASCII и др.), видео- и аудиозаписи (MPEG, MP3) и т. д.
Прикладной уровень
Прикладной уровень, или уровень приложений, — самый верхний уровень модели OSI. Он отличается самым большим разнообразием протоколов и выполняемых ими функций.
Здесь нет необходимости отвечать за построение маршрутов или гарантию доставки данных. Каждый протокол выполняет свою конкретную задачу. В качестве примеров протоколов, действующих на данном уровне, можно привести HTTP (отвечает за передачу гипертекста, то есть в конечном итоге позволяет пользователям открывать в браузере веб-страницы), FTP (сетевая передача данных), SMTP (отправка электронной почты) и другие.
Стеки протоколов
Как уже рассматривалось выше, существует большое количество сетевых протоколов, выполняющих самые разнообразные задачи. Как правило, большинство из них работают в связках, выполняя свои функции слаженно, одновременно друг с другом реализуя собственный функционал.
Такие связки называются стеками протоколов.
Опираясь на сетевую модель OSI, стеки протоколов условно делят на три группы:
- Прикладные (соответствуют данному уровню OSI и отвечают непосредственно за обмен данными между различными уровнями модели).
- Сетевые (отвечают за обеспечение и поддержку связи между оконечными сетевыми устройствами, гарантируют надежность соединения).
- Транспортные (их основная задача — построение маршрута передачи информации, проверка возникающих во время маршрутизации ошибок и направление запросов на повторную передачу данных).
Стеки можно настраивать, опираясь на поставленные задачи и необходимый функционал сети, регулировать количество протоколов и прикреплять протоколы к серверным сетевым интерфейсам. Это позволяет выполнять гибкую настройку сети.
Заключение
В этой статье мы изложили базовую информацию для ознакомления с сетевой моделью OSI. Это те основы, которые просто необходимо знать каждому, кто работает в сфере IT, для понимания того, как устроена система передачи данных.
В этой статье на уровне сетевой модели OSI для "чайников" мы постарались простым языком объяснить, как передача данных реализуется, а главное — как устроена система взаимодействия сетевого оборудования на различных уровнях.
О каждом из протоколов можно рассказать очень и очень много. Хочется надеяться, что эта статья вызовет интерес к дальнейшему ознакомлению с этой интересной темой.
Понятие “открытая система” и проблемы стандартизации
Универсальный тезис о пользе стандартизации, справедливый для всех отраслей, в компьютерных сетях приобретает особое значение. Суть сети - это соединение разного оборудования, а значит, проблема совместимости является одной из наиболее острых. Без принятия всеми производителями общепринятых правил построения оборудования прогресс в деле “строительства” сетей был бы невозможен. Поэтому все развитие компьютерной отрасли в конечном счете отражено в стандартах - любая новая технология только тогда приобретает “законный” статус, когда ее содержание закрепляется в соответствующем стандарте.
В компьютерных сетях идеологической основой стандартизации является многоуровневый подход к разработке средств сетевого взаимодействия. Именно на основе этого подхода была разработана стандартная семиуровневая модель взаимодействия открытых систем, ставшая своего рода универсальным языком сетевых специалистов.
Многоуровневый подход. Протокол. Интерфейс. Стек протоколов
Организация взаимодействия между устройствами в сети является сложной задачей. Как известно, для решения сложных задач используется универсальный прием - декомпозиция, то есть разбиение одной сложной задачи на несколько более простых задач-модулей (рис. 1.20). Процедура декомпозиции включает в себя четкое определение функций каждого модуля, решающего отдельную задачу, и интерфейсов между ними. В результате достигается логическое упрощение задачи, а кроме того, появляется возможность модификации отдельных модулей без изменения остальной части системы.
При декомпозиции часто используют многоуровневый подход. Он заключается в следующем. Все множество модулей разбивают на уровни. Уровни образуют иерархию, то есть имеются вышележащие и нижележащие уровни (рис. 1.21). Множество модулей, составляющих каждый уровень, сформировано таким образом, что для выполнения своих задач они обращаются с запросами только к модулям непосредственно примыкающего нижележащего уровня. С другой стороны, результаты работы всех модулей, принадлежащих некоторому уровню,могут быть переданы только модулям соседнего вышележащего уровня. Такая иерархическая декомпозиция задачи предполагает четкое определение функции каждого уровня и интерфейсов между уровнями. Интерфейс определяет набор функций, которые нижележащий уровень предоставляет вышележащему. В результате иерархической декомпозиции достигается относительная независимость уровней, а значит, и возможность их легкой замены.
При этом модули нижнего уровня могут, например, решать все вопросы, связанные с надежной передачей электрических сигналов между двумя соседними узлами. Модули более высокого уровня организуют транспортировку сообщений в пределах всей сети, пользуясь для этого средствами упомянутого нижележащего уровня. А на верхнем уровне работают модули, предоставляющие пользователям доступ к различным службам - файловой, печати и т. п. Конечно, это только один из множествавозможных вариантов деления общей задачи организации сетевого взаимодействия на частные подзадачи.
Многоуровневый подход к описанию и реализации функций системы применяется не только в отношении сетевых средств. Такая модель функционирования используется, например, в локальных файловых системах, когда поступивший запрос на доступ к файлу последовательно обрабатывается несколькими программными уровнями (рис. 1.22). Запрос вначале анализируется верхним уровнем, на котором осуществляется последовательный разбор составного символьного имени файла и определение уникального идентификатора файла. Следующий уровень находит по уникальному имени все основные характеристики файла: адрес, атрибуты доступа и т. п. Затем на более низком уровне осуществляется проверка прав доступа к этому файлу, а далее, после расчета координат области файла, содержащей требуемые данные, выполняется физический обмен с внешним устройством с помощью драйвера диска.
Многоуровневое представление средств сетевого взаимодействия имеет свою специфику, связанную с тем, что в процессе обмена сообщениями участвуют две машины, то есть в данном случае необходимо организовать согласованную работу двух “иерархий”. При передаче сообщений оба участника сетевого обмена должны принять множество соглашений. Например, они должны согласовать уровни и форму электрических сигналов, способ определения длины сообщений, договориться о методах контроля достоверности и т. п. Другими словами, соглашения должны быть приняты для всех уровней, начиная от самого низкого - уровня передачи битов - до самого высокого, реализующего сервис для пользователей сети.
На рис. 1.23 показана модель взаимодействия двух узлов. С каждой стороны средства взаимодействия представлены четырьмя уровнями. Процедура взаимодействия этих двух узлов может быть описана в виде набора правил взаимодействия каждой пары соответствующих уровней обеих участвующих сторон.
Формализованные правила, определяющие последовательность и формат сообщений, которыми обмениваются сетевые компоненты, лежащие на одном уровне, но в разных узлах, называются протоколом.
Модули, реализующие протоколы соседних уровней и находящиеся в одном узле, также взаимодействуют друг с другом в соответствии с четко определенными правилами и с помощью стандартизованных форматов сообщений. Эти правила принято называть интерфейсом. Интерфейс определяет набор сервисов, предоставляемый данным уровнем соседнему уровню.
В сущности, протокол и интерфейс выражают одно и то же понятие, но традиционно в сетях за ними закрепили разные области действия: протоколы определяют правила взаимодействия модулей одного уровня в разных узлах, а интерфейсы - модулей соседних уровней в одном узле.
Средства каждого уровня должны отрабатывать, во-первых, свой собственный протокол, а во-вторых, интерфейсы с соседними уровнями.
Иерархически организованный набор протоколов, достаточный для организации взаимодействия узлов в сети, называется стеком коммуникационных протоколов.
Коммуникационные протоколы могут быть реализованы как программно, так и аппаратно. Протоколы нижних уровней часто реализуются комбинацией программных и аппаратных средств, а протоколы верхних уровней - как правило, чисто программными средствами.
Программный модуль, реализующий некоторый протокол, часто для краткости также называют “протоколом”.При этом соотношение между протоколом - формально определенной процедурой и протоколом - программным модулем, реализующим эту процедуру, аналогично соотношению между алгоритмом решения некоторой задачи и программой, решающей эту задачу.
Понятно, что один и тот же алгоритм может быть запрограммирован с разной степенью эффективности. Точно так же и протокол может иметь несколько программных реализации. Именно поэтому при сравнении протоколов следует учитывать не только логику их работы, но и качество программных решений. Более того, на эффективность взаимодействия устройств в сети влияет качество всей совокупности протоколов, составляющих стек, в частности, насколько рационально распределены функции между протоколами разных уровней и насколько хорошо определены интерфейсы междуними.
Модель OSI
Из того, что протокол является соглашением, принятым двумя взаимодействующими объектами, в данном случае двумя работающими в сети компьютерами, совсем не следует, что он обязательно является стандартным. Но на практике при реализации сетей стремятся использовать стандартные протоколы. Это могут быть фирменные, национальные или международные стандарты.
В начале 80-х годов ряд международных организаций по стандартизации - ISO, ITU-T и некоторые другие, разработали модель, которая сыграла значительную роль в развитии сетей. Эта модель называется моделью взаимодействия открытых систем (Open System Interconnection , OSI ) или моделью OSI. Модель OSI определяет различные уровни взаимодействия систем, дает им стандартные имена и указывает, какие функции должен выполнять каждый уровень. Модель OSI была разработана на основании большого опыта, полученного при создании компьютерных сетей, в основном глобальных, в 70-е годы. Полное описание этой модели занимает более 1000 страниц текста.
В модели OSI (рис. 1.25) средства взаимодействия делятся на семь уровней:
Прикладной
Представительный
Сеансовый
Транспортный
Сетевой
Канальный
Физический.
Каждый уровень имеет дело с одним определенным аспектом взаимодействия сетевых устройств.
Модель OSI описывает только системные средства взаимодействия, реализуемые операционной системой, системными утилитами, системными аппаратными средствами. Модель не включает средства взаимодействия приложений конечных пользователей. Свои собственные протоколы взаимодействия приложения реализуют, обращаясь к системным средствам. Поэтому необходимо различать уровень взаимодействия приложений и прикладной уровень.
Следует также иметь в виду, что приложение может взять на себя функции некоторых верхних уровней модели OSI. Например, некоторые СУБД имеют встроенные средства удаленного доступа к файлам. В этом случае приложение, выполняя доступ к удаленным ресурсам, не использует системную файловую службу: оно обходит верхние уровни модели OSI и обращается напрямую к системным средствам, ответственным за транспортировку сообщений по сети, которые располагаются на нижних уровнях модели OSI.
Итак, пусть приложение обращается с запросом к прикладному уровню, например к файловой службе. На основании этого запроса программное обеспечение прикладного уровня формирует сообщение стандартного формата. Обычное сообщение состоит из заголовка и поля данных. Заголовок содержит служебную информацию, которую необходимо передать через сеть прикладному уровню машины-адресата, чтобы сообщить ему, какую работу надо выполнить. В нашем случае заголовок, очевидно, должен содержать информацию о месте нахождения файла и о типе операции, которую необходимо над ним выполнить. Поле данных сообщения может быть пустым или содержать какие-либо данные, например те, которые необходимо записать в удаленный файл. Но для того чтобы доставить эту информацию по назначению, предстоит решить еще много задач, ответственность за которые несут нижележащие уровни.
После формирования сообщения прикладной уровень направляет его вниз по стеку представительному уровню. Протокол представительного уровня на основании информации, полученной из заголовка прикладного уровня, выполняет требуемые действия и добавляет к сообщению собственную служебную информацию - заголовок представительного уровня, в котором содержатся указания для протокола представительного уровня машины-адресата. Полученное в результате сообщение передается вниз сеансовому уровню, который в свою очередь добавляет свой заголовок, и т. д. (Некоторые реализации протоколов помещают служебную информацию не только в начале сообщения в виде заголовка, но и в конце, в виде так называемого “концевика”-.) Наконец, сообщение достигает нижнего, физического уровня, который собственно и передает его по линиям связи машине-адресату. К этому моменту сообщение “обрастает” заголовками всех уровней (рис. 1.26).
Когда сообщение по сети поступает на машину-адресат, оно принимается ее физическим уровнем и последовательно перемещается вверх с уровня на уровень. Каждый уровень анализирует и обрабатываетзаголовок своего уровня, выполняя соответствующие данному уровню функции, а затем удаляет этот заголовок и передает сообщение вышележащему уровню.
Наряду с термином сообщение (message ) существуют и другие термины, применяемые сетевыми специалистами для обозначения единиц данных в процедурах обмена. В стандартах ISO для обозначения единиц данных, с которымиимеют дело протоколы разных уровней, используется общее название протокольный блок данных ( Protocol Data Unit , PDU ). Для обозначения блоков данных определенныхуровней- часто используются специальные названия: кадр (frame), пакет (packet), дейтаграмма (datagram), сегмент (segment).
В модели OSI различаются два основных типа протоколов.В протоколах с установлением соединения (connection - oriented ) перед обменом данными отправитель и получатель должны сначала установить соединение и, возможно, выбрать некоторые параметры протокола, которые они будут использовать приобмене данными.После завершения диалога они должны разорвать этосоединение. Телефон - это примервзаимодействия, основанного на установлениисоединения.
Вторая группа протоколов - протоколы без предварительного установления соединения (connectionless ). Такие протоколы называются также дейтаграммнылш протоколами. Отправитель просто передает сообщение, когда оно готово. Опускание письма в почтовый ящик - это пример связи без предварительного установления соединения. При взаимодействии компьютеров используются протоколы обоих типов.
Уровни модели OSI
Физический уровень
физический уровень (Physical layer) имеет дело с передачей битов по физическим каналам связи, таким, например, как коаксиальный кабель, витая пара, оптоволоконный кабель или цифровой территориальный канал. К этому уровню имеют отношение характеристики физических сред передачи данных, такие как полоса пропускания, помехозащищенность, волновое сопротивление и другие. На этом же уровне определяются характеристики электрических сигналов, передающих дискретную информацию, например, крутизна фронтов импульсов, уровни напряжения или тока передаваемого сигнала, тип кодирования, скорость передачи сигналов. Кроме этого, здесь стандартизуются типы разъемов и назначение каждого контакта.
Функции физического уровня реализуются во всех устройствах, подключенных к сети. Со стороны компьютера функции физического уровнявыполняютсясетевым адаптером или последовательным портом.
Примером протокола физического уровняможет служить спецификация1OBase- Tтехнологии Ethernet, которая определяет в качестве используемого кабеля неэкранированную витую пару категории 3 с волновым сопротивлением100 Ом, разъемRJ-45, максимальную длину физического сегмента 100 метров,манчестерский код для представления данных в кабеле, а также некоторые другие характеристики среды и электрических сигналов.
Канальный уровень
На физическом уровне просто пересылаются биты. При этом не учитывается, что в некоторых сетях, в которых линии связи используются (разделяются) попеременно несколькими парами взаимодействующих компьютеров, физическая среда передачи может быть занята. Поэтому одной из задач канального уровня (Data Link layer) является проверка доступности среды передачи. Другой задачей канальногоуровня является реализация механизмов обнаружения и коррекции ошибок.Дляэтого на канальном уровне биты группируются в наборы, называемые кадрами (frames ). Канальный уровень обеспечивает корректность передачи каждого кадра, помещая специальную последовательность бит в начало и конец каждого кадра, для его выделения, а также вычисляет контрольную сумму, обрабатывая всебайтыкадра определенным способом и добавлял контрольную сумму к кадру. Когда кадр приходит по сети, получатель снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой из кадра. Если они совпадают, кадр считается правильным и принимается. Если же контрольные суммы не совпадают, то фиксируется ошибка. Канальный уровеньможет не только обнаруживать ошибки, но и исправлять их за счет повторной передачи поврежденных кадров. Необходимо отметить, что функция исправления ошибок не является обязательной для канального уровня, поэтому в некоторых протоколах этого уровня она отсутствует, например, в Ethernet и frame relay.
В протоколах канального уровня, используемых в локальных сетях, заложена определенная структура связей между компьютерами и способы их адресации. Хотя канальный уровень и обеспечивает доставку кадра между любыми двумя узлами локальной сети, он это делает только в сети с совершенно определенной топологией связей, именно той топологией, для которой он был разработан. К таким типовым топологиям, поддерживаемым протоколами канального уровня локальных сетей, относятся общая шина, кольцо и звезда, а также структуры, полученные из них с помощью мостов и коммутаторов. Примерами протоколов канального уровня являются протоколы Ethernet, Token Ring, FDDI, lOOVG-AnyLAN.
В локальных сетях протоколы канального уровня используются компьютерами, мостами, коммутаторами и маршрутизаторами. В компьютерах функции канального уровня реализуются совместными усилиями сетевых адаптеров и их драйверов.
В глобальных сетях, которые редко обладают регулярной топологией, канальный уровень часто обеспечивает обмен сообщениями только между двумя соседними компьютерами, соединенными индивидуальной линией связи. Примерами протоколов “точка-точка” (как часто называют такие протоколы) могут служить широко распространенные протоколы РРР и LAP-B. В таких случаях для доставки сообщений между конечными узлами через всю сеть используются средства сетевого уровня. Именно так организованы сети Х.25. Иногда в глобальных сетях функции канального уровня в чистом виде выделить трудно, так как в одном и том же протоколе они объединяются с функциями сетевого уровня. Примерами такого подхода могут служить протоколы технологий АТМ и frame relay.
В целом канальный уровень представляет собой весьма мощный и законченный набор функций по пересылке сообщений между узлами сети. В некоторых случаях протоколы канального уровня оказываются самодостаточными транспортными средствами и могут допускать работу поверх них непосредственно протоколов прикладного уровня или приложений, без привлечения средств сетевого и транспортного уровней. Например, существует реализация протокола управления сетью SNMP непосредственно поверх Ethernet, хотя стандартно этот протокол работает поверх сетевого протокола IP и транспортного протокола UDP. Естественно, что применение такой реализации будет ограниченным - она не подходит для составных сетей разных технологий, например Ethernet и Х.25, и даже для такой сети, в которой во всех сегментах применяется Ethernet, но между сегментами существуют петлевид-ные связи. А вот в двухсегментной сети Ethernet, объединенной мостом, реализация SNMP над канальным уровнем будет вполне работоспособна.
Тем не менее, для обеспечения качественной транспортировки сообщений в сетях любых топологий и технологий функций канального уровня оказывается недостаточно, поэтому в модели OSI решение этой задачи возлагается на два следующих уровня - сетевой и транспортный.
Сетевой уровень
Сетевой уровень (Network layer) служит для образования единой транспортной системы, объединяющей несколько сетей, причемэти сети могут использовать совершенно различные принципы передачи сообщений между конечными узлами и обладать произвольной структурой связей. Функции сетевого уровня достаточно разнообразны. Начнем их рассмотрение на примере объединения локальных сетей.
Протоколы канального уровня локальных сетей обеспечивают доставку данных между любыми узлами только в сети с соответствующей типовой топологией, например топологией иерархической звезды. Это очень жесткое ограничение, которое не позволяет строить сети с развитой структурой, например, сети, объединяющие несколько сетей предприятия в единую сеть, или высоконадежные сети, в которых существуют избыточные связи между узлами. Можно было бы усложнять протоколы канального уровня для поддержания петлевидных избыточных связей, но принцип разделения обязанностей между уровнями приводит к другому решению. Чтобы с одной стороны сохранить простоту процедур передачи данных для типовых топологии, а с другой допустить использование произвольных топологий, вводится дополнительный сетевой уровень.
На сетевом уровне сам термин сеть наделяют специфическим значением. В данном случае под сетью понимается совокупность компьютеров, соединенных между собой в соответствии с одной из стандартных типовых топологий и использующих для передачи данных один из протоколов канального уровня, определенный для этой топологии.
Внутри сети доставка данных обеспечивается соответствующим канальным уровнем, а вот доставкой данных между сетями занимается сетевой уровень, который и поддерживает возможность правильного выбора маршрута передачи сообщения даже в том случае, когда структура связей между составляющими сетями имеет характер, отличный от принятого в протоколах канального уровня.
Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами. Маршрутизатор - это устройство, которое собирает информацию о топологии межсетевых соединений и на ее основании пересылает пакеты сетевого уровня в сеть назначения. Чтобы передать сообщение от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно совершить некоторое количество транзитных передач между сетями, или хопов (от hop - прыжок), каждый раз, выбирая подходящий маршрут. Таким образом, маршрут представляет собой последовательность маршрутизаторов, через которые проходит пакет.
На рис. 1.27 показаны четыре сети, связанные тремя маршрутизаторами. Между узлами А и В данной сети пролегают два маршрута: первый через маршрутизаторы 1 и 3, а второй через маршрутизаторы 1,2 и 3.
Проблема выбора наилучшего пути называется маршрутизацией, и ее решение является одной из главных задач сетевого уровня. Эта проблема осложняется тем, что самый короткий путь не всегда самый лучший. Часто критерием при выборе маршрута является время передачи данных по этому маршруту; оно зависит от пропускной способности каналов связи и интенсивности графика, которая может изменяться с течением времени. Некоторые алгоритмы маршрутизации пытаются приспособиться к изменению нагрузки, в то время как другие принимают решения на основе средних показателей за длительное время. Выбор маршрута может осуществляться и по другим критериям, например надежности передачи.
В
общем случае функции сетевого уровня
шире, чем функции передачи сообщений
по связям с нестандартной структурой,
которые мы сейчас рассмотрели на примере
объединения нескольких локальных сетей.
Сетевой уровень решает также задачи
согласования разных технологии, упрощения
адресации в крупных сетях и создания
надежных и гибких барьеров на пути
нежелательного трафика между сетями.
Сообщения сетевого уровня принято называть пакетами (packets ). При организации доставки пакетов на сетевом уровне используется понятие “номер сети”. В этом случае адрес получателя состоит из старшей части - номера сети и младшей - номера узла в этой сети. Все узлы одной сети должны иметь одну и ту же старшую часть адреса, поэтому термину “сеть” на сетевом уровне можно дать и другое, более формальное определение: сеть - это совокупность узлов, сетевой адрес которых содержит один и тот же номер сети.
На сетевом уровне определяются два вида протоколов. Первый вид - сетевые протоколы (routedprotocols ) - реализуют продвижение пакетов через сеть. Именно эти протоколы обычно имеют в виду, когда говорят о протоколах сетевого уровня. Однако часто к сетевому уровню относят и другой вид протоколов, называемых протоколами обмена маршрутной информацией или просто протоколами маршрутизации (routing protocols ). С помощью этих протоколов маршрутизаторы собирают информацию о топологии межсетевых соединений. Протоколы сетевого уровня реализуются программными модулями операционной системы, а также" программными и аппаратными средствами маршрутизаторов.
На сетевом уровне работают протоколы еще одного типа, которые отвечают за отображение адреса узла, используемого на сетевом уровне, в локальный адрес сети. Такие протоколы часто называют протоколами разрешения адресов - Address Resolution Protocol, ARP. Иногда их относят не к сетевому уровню, а к канальному, хотя тонкости классификации не изменяют их сути.
Примерами протоколов сетевого уровня являются протокол межсетевого взаимодействия IP стека TCP/IP и протокол межсетевого обмена пакетами IPX стека Novell.
Транспортный уровень
На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие,которые предпочитают сразу иметь дело с надежнымсоединением. Транспортный уровень (Transport layer) обеспечивает приложениям или верхнимуровням стека - прикладному и сеансовому - передачу данных с той степенью надежности, которая им требуется. Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное - способностью к обнаружению и исправлению ошибок передачи,таких как искажение, потеря и дублирование пакетов.
Выбор класса сервиса транспортного уровня определяется, с одной стороны, тем, в какой степени задача обеспечения надежности решается самими приложениями и протоколами более высоких, чем транспортный, уровней, а с другой стороны, этот выбор зависит от того, насколько надежной является система транспортировки данных в сети, обеспечиваемая уровнями, расположенными ниже транспортного - сетевым, канальным и физическим. Так, например, если качество каналов передачи связи очень высокое и вероятность возникновения ошибок, не обнаруженных протоколами более низких уровней, невелика, то разумно воспользоваться одним из облегченных сервисов транспортного уровня, не обремененных многочисленными проверками, квитированием и другими приемами повышения надежности. Если же транспортные средства нижних уровней изначально очень ненадежны, то целесообразно обратиться к наиболее развитому сервису транспортного уровня, который работает, используя максимум средств, для обнаружения и устранения ошибок, - с помощью предварительного установления логического соединения, контроля доставки сообщений по контрольным суммам и циклической нумерации пакетов, установления тайм-аутов доставки и т. п.
Как правило, все протоколы, начиная с транспортного уровня и выше, реализуются программными средствами конечных узлов сети - компонентами их сетевых операционных систем. В качестве примера транспортных протоколов можно привести протоколы TCP и UDP стека TCP/IP и протокол SPX стека Novell.
Протоколы нижних четырех уровней обобщенно называют сетевым транспортом или транспортной подсистемой, так как они полностью решают задачу транспортировки сообщений с заданным уровнем качества в составных сетях с произвольной топологией и различными технологиями. Остальные три верхних уровня решают задачи предоставления прикладных сервисов на основании имеющейся транспортной подсистемы.
Сеансовый уровень
Сеансовыйуровень (Session layer) обеспечивает управление диалогом: фиксирует, какая из сторон является активной в настоящий момент, предоставляет средства синхронизации. Последние позволяют вставлять контрольные точки в длинные передачи, чтобы в случае отказа можно было вернуться назад к последней контрольной точке, а не начинать все с начала. На практике немногие приложения используют сеансовый уровень, и он редко реализуется в виде отдельных протоколов, хотя функции этого уровня часто объединяют с функциями прикладного уровня и реализуют в одном протоколе.
Представительный уровень
Представительный уровень (Presentation layer) имеет дело с формой представления передаваемой по сети информации, не меняя при этом ее содержания. За счет уровня представления информация, передаваемая прикладным уровнем одной системы, всегда понятна прикладному уровню другой системы. С помощью средств данного уровня протоколы прикладных уровней могут преодолеть синтаксические различия в представлении данных или же различия в кодах символов, например кодов ASCII и EBCDIC. На этом уровне может выполняться шифрование и дешифрование данных, благодаря которому секретность обмена данными обеспечивается сразу для всех прикладных служб. Примером такого протокола является протокол Secure Socket Layer (SSL), который обеспечивает секретный обмен сообщениями для протоколов прикладного уровня стека TCP/IP.
Прикладной уровень
Прикладной уровень (Application layer) - это в действительности просто набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к разделяемым ресурсам, таким как файлы, принтеры или гипертекстовые Web-страницы, а также организуют свою совместную работу, например, с помощью протокола электронной почты. Единица данных, которой оперирует прикладной уровень, обычно называется сообщением (message ).
Существует очень большое разнообразие служб прикладного уровня. Приведем в качестве примера хотя бы несколько наиболее распространенных реализации файловых служб: NCP в операционной системе Novell NetWare, SMB в Microsoft Windows NT, NFS, FTP и TFTP, входящие в стек TCP/IP.
Сетезависимые и сетенезависимые уровни
Функции всех уровней модели OSI могут быть отнесены к одной из двух групп:
либо к функциям, зависящим от конкретной технической реализации сети, либо к функциям, ориентированным на работу с приложениями.
Три нижних уровня - физический, канальный и сетевой - являются сетезависимыми, то есть протоколы этих уровней тесно связаны с технической реализацией сети и используемым коммуникационным оборудованием. Например, переход на оборудование FDDI означает полную смену протоколов физического и канального уровней во всех узлах сети.
Три верхних уровня - прикладной, представительный и сеансовый - ориентированы на приложения и мало зависят от технических особенностей построения сети. На протоколы этих уровней не влияют какие бы то ни было изменения в топологии сети, замена оборудования или переход на другую сетевую технологию. Так, переход от Ethernet на высокоскоростную технологию lOOVG-AnyLAN не потребует никаких изменений в программных средствах, реализующих функции прикладного, представительного и сеансового уровней.
Транспортный уровень является промежуточным, он скрывает все детали функционирования нижних уровней от верхних. Это позволяет разрабатывать приложения, не зависящие от технических средств непосредственной транспортировки сообщений.
На рис. 1.28 показаны уровни моделиOSI, на которых работают различные элементы сети. Компьютер с установленной на нем сетевой ОС взаимодействует с другим компьютером с помощью протоколов всех семи уровней.Этовзаимодействие компьютеры осуществляют опосредовано через различные коммуникационные устройства: концентраторы, модемы, мосты, коммутаторы, маршрутизаторы, мультиплексоры. В зависимости от типа коммуникационное устройство может работать либо только на физическом уровне (повторитель), либо на физическом и канальном (мост), либо на физическом, канальном и сетевом, иногда захватывая и транспортный уровень (маршрутизатор).
На
рис. 1.29 показано соответствие функций
различных коммуникационных устройств
уровням модели OSI.
Модель OSI представляет хотя и очень важную, но только одну из многих моделей коммуникаций. Эти модели и связанные с ними стеки протоколов могут отличаться количеством уровней, их функциями, форматами сообщений, службами, поддерживаемыми на верхних уровнях, и прочими параметрами.
Для облегчения понимания работы всех сетевых устройств, перечисленных в статье Сетевые устройства , касательно уровней сетевой эталонной модели OSI, Я сделал схематичные рисунки с небольшими комментариями.
Для начала вспомним уровни эталонной сетевой модели OSI и инкапсулирование данных.
Посмотрите, как происходит передача данных между двумя соединенными компьютерами. Заодно Я выделю работу сетевой карты на компьютерах, т.к. именно она является сетевым устройством, а компьютер – в принципе нет. (Все картинки кликабельны - для увеличения картинки кликните по ней.)
Приложение на компьютере PC1 отправляет данные другому приложению находящемуся на другом компьютере PC2. Начиная с верхнего уровня (уровень приложений) данные направляются к сетевой карте на канальный уровень. На нём сетевая карта преобразует фреймы в биты и отправляет в физическую среду (например, кабель витую пару). На другой стороне кабеля поступает сигнал, и сетевая карта компьютера PC2 принимает эти сигнала, распознавая их в биты и формируя из них фреймы. Данные (содержащиеся в фреймах) декапсулируются к верхнему уровню, и когда доходят до уровня приложений, соответствующая программа на компьютере PC2 получает их.
Повторитель. Концентратор.
Репитер и концентратор работают на одном и том же уровне, поэтому касательно сетевой модели OSI они изображаются одинаково. Для удобства представлений сетевых устройств будем их отображать между нашими компьютерами.
Репитер и концентратор устройства первого (физического) уровня. Они принимают сигнал, распознают его, и пересылают сигнал далее во все активные порты.
Сетевой мост. Коммутатор.
Сетевой мост и коммутатор тоже работают на одном уровне (канальном) и изображаются они соответственно одинаково.
Оба устройства уже второго уровня, поэтому помимо распознавания сигнала (подобно концентраторам на первом уровне) они декапсулируют его (сигнал) в фреймы. На втором уровне сравнивается контрольная сумма трейлера (прицепа) фрейма. Затем из заголовка фрейма узнаётся MAC-адрес получателя, и проверяется его наличие в коммутируемой таблице. Если адрес присутствует, то фрейм обратно инкапсулируется в биты и отправляется (уже в виде сигнала) на соответствующий порт. Если адрес не найден, происходит процесс поиска этого адреса в подключенных сетях.
Маршрутизатор.
Как Вы видите, маршрутизатор (или роутер) – это устройство третьего уровня. Вот как примерно роутер функционирует: На порт поступает сигнал, и роутер распознаёт его. Распознанный сигнал (биты) формируют фреймы (кадры). Сверяется контрольная сумма в трейлере и MAC-адрес получателя. Если все проверки прошли успешно, фреймы формируют пакет. На третьем уровне маршрутизатор исследует заголовок пакета. В нем присутствует IP адрес пункта назначения (получателя). На основе IP-адреса и собственной таблицы маршрутизации роутер выбирает наилучший путь следования пакеты к получателю. Выбрав путь, роутер инкапсулирует пакет в фреймы, а затем в биты и отправляет их в виде сигналов на соответствующий порт (выбранный в таблице маршрутизации).
Заключение
В заключении Я объединил все устройства в одной картинке.
Теперь у Вас достаточно знаний, чтобы определить какие устройства и как работают. Если у Вас остались вопросы, задавайте их мне и в ближайшее время Вам или Я или другие пользователи непременно помогут.
Эталонная модель OSI
Для наглядности процесс работы сети в эталонной модели OSI разделен на семь уровней. Эта теоретическая конструкция облегчает изучение и понимание довольно сложных концепций. В верхней части модели OSI располагается приложение, которому нужен доступ к ресурсам сети, в нижней - сама сетевая среда. По мере того как данные продвигаются от уровня к уровню вниз, действующие на этих уровнях протоколы постепенно подготавливают их для передачи по сети. Добравшись до целевой системы, данные продвигаются по уровням вверх, причем те же протоколы выполняют те же действия, только в обратном порядке. В 1983 г. Международная организация по стандартизации (International Organization for Standardization, ISO) и Сектор стандартизации телекоммуникаций Международного телекоммуникационного союза (Telecommunication Standardization Sector of International Telecommunication Union, ITU-T) опубликовали документ «The Basic Reference Model for Open Systems Interconnection», где была описана модель распределения сетевых функций между 7 различными уровнями (рис. 1.7). Предполагалось, что эта семиуровневая структура станет основой для нового стека протоколов, но в коммерческой форме он так и не был реализован. Вместо этого модель OSI используется с существующими стеками протоколов в качестве обучающего и справочного пособия. Большая часть популярных в наши дни протоколов появилась до разработки модели OSI, поэтому в точности с ее семиуровневой струк турой они не согласуются. Зачастую в одном протоколе совмещены функции двух или даже нескольких уровней модели, да и границы протоколов часто не соответствуют границам уровней OSI. Тем не менее модель OSI остается отличным наглядным пособием для исследования сетевых процессов, и профессионалы часто связывают функции и протоколы с определенными уровнями.
Инкапсуляция данных
По сути, взаимодействие протоколов, работающих на разных уровнях модели OSI, проявляется в том, что каждый протокол добавляет заголовок (header) или (в одном случае) трейлер (footer) к информации, которую он получил от уровня, расположенного выше. Например, приложение генерирует запрос к сетевому ресурсу. Этот запрос продвигается по стеку протоколов вниз. Когда он достигает транспортного уровня, протоколы этого уровня добавляют к запросу собственный заголовок, состоящий из полей с информацией, специфической для функций данного протокола. Сам исходный запрос становится для протокола транспортного уровня полем данных (полезной нагрузкой). Добавив свой заголовок, протокол транспортного уровня передает запрос сетевому уровню. Протокол сетевого уровня добавляет к заголовку протокола транспортного уровня свой собственный заголовок. Таким образом, для протокола сетевого уровня полезной нагрузкой становятся исходный запрос и заголовок протокола транспортного уровня. Вся эта конструкция становится полезной нагрузкой для протокола канального уровня, который добавляет к ней заголовок и трейлер. Итогом этой деятельности является пакет (packet), готовый для передачи по сети. Когда пакет достигает места назначения, процесс повторяется в обратном порядке. Протокол каждого следующего уровня стека (теперь снизу вверх) обрабатывает и удаляет заголовок эквивалентного протокола передающей системы. Когда процесс завершен, исходный запрос достигает приложения которому он предназначен, в том же виде, в каком он был сгенерирован. Процесс добавления заголовков к запросу (рис. 1.8), сгенериро ванному приложением, называется инкапсуляцией данных (data encapsulation). По сути эта процедура напоминает процесс подготовки письма для отправки по почте. Запрос - это само письмо, а добавление заголовков аналогично вкладыванию письма в конверт, написанию адреса, штемпелеванию и собственно отправке.
Физический уровень
На самом нижнем уровне модели OSI - физическом (physical) - определяются характеристики элементов оборудования сети - сетевая среда, способ установки, тип сигналов, используемых для передачи по сети двоичных данных. Кроме того, на физическом уровне определяется, какой тип сетевого адаптера нужно установить на каждом компьютере и какой использовать концентратор (если это нужно). На физическом уровне мы имеем дело с медным или оптоволоконным кабелем или с каким-либо беспроводным соединением. В ЛВС спецификации физического уровня напрямую связаны с используюемым в сети протоколом канального уровня. Выбрав протокол канального уровня, Вы должны использовать одну из спецификаций физического уровня, поддерживаемую этим протоколом. Например, протокол канального уровня Ethernet поддерживает несколько различных вариантов физического уровня - один из двух типов коаксиального кабеля, любой кабель типа «витая пара», оптоволоконный кабель. Параметры каждого из этих вариантов формируются из многочисленных сведений о требованиях физического уровня, например, к типу кабеля и разъемов, допустимой длине кабелей, числу концентраторов и др. Соблюдение этих требований необходимо для нормальной работы протоколов. Например, в чересчур длинном кабеле система Ethernet может не заметить коллизию пакетов, а если система не в состоянии обнаружить ошибки, она не может и исправить их, результат - потеря данных. Стандартом протокола канального уровня определяются не все аспекты физического уровня. Некоторые из них определяются отдельно. Одна из наиболее часто используемых спецификаций физического уровня описана в документе «Commercial Building Telecommunications Cabling Standard», известном как EIA/TIA 568A. Он опубликован совместно Американским национальным институтом стан дартов (American National Standards Institute, ANSI), Ассоциации от раслей электронной промышленности (Electronics Industry Association, EIA) и Ассоциацией промышленности средств связи (Telecommunications Industry Association, TIA). В этот документ включено подробное описание кабелей для сетей передачи данных в промышленных условиях, в том числе минимальное расстояние от источников электромагнитных помех и другие правила прокладки кабеля. Сегодня кладку кабеля в больших сетях чаще всего поручают специализированным фирмам. Нанятый подрядчик должен быть хорошо знаком с EIA/TIA 568A и другими подобными документами, а также с правилами эксплуатации зданий в городе. Другой коммуникационный элемент, определяемый на физическом уровне, - тип сигнала для передачи данных по сетевой среде. Для кабелей с медной основой таким сигналом является электрический заряд, для оптоволоконного кабеля - световой импульс. В сетевых средах других типов могут использоваться радиоволны, инфракрасные импульсы и другие сигналы. Помимо природы сигналов, на физическом уровне устанавливается схема их передачи, т. е. комбинация электрических зарядов или световых импульсов, используемая для кодирования двоичной информации, которая сгенерирована вышестоящими уровнями. В системах Ethernet применяется схема передачи сигналов, известная как манчестерская кодировка (Manchester encoding), а в системах Token Ring используется дифференциальная манчестерская (Differential Manchester) схема.
Канальный уровень
Протокол канального (data-link) уровня обеспечивает обмен информацией между аппаратной частью включенного в сеть компьютера и сетевым ПО. Он подготавливает для отправки в сеть данные, переданные ему протоколом сетевого уровня, и передает на сетевой уровень данные, полученные системой из сети. При проектировании и создании ЛВС используемый протокол канального уровня - самый важный фактор для выбора оборудования и способа его установки. Для реализации протокола канального уровня необходимо следующее аппаратное и программное обеспечение: адаптеры сетевого интерфейса (если адаптер представляет собой отдельное устройство, подключаемое к шине, его называют платой сетевого интерфейса или просто сетевой платой); драйверы сетевого адаптера; сетевые кабели (или другая сетевая среда) и вспомогательное со единительное оборудование; сетевые концентраторы (в некоторых случаях). Как сетевые адаптеры, так и концентраторы разрабатываются для определенных протоколов канального уровня. Некоторые сетевые кабели также приспособлены для конкретных протоколов, но есть и кабели, подходящие для разных протоколов. Безусловно, сегодня (как и всегда) самый популярный протокол канального уровня - Ethernet. Далеко отстал от него Token Ring, за которым следуют другие протоколы, например, FDDI (Fiber Distributed Data Interface). В спецификацию протокола канального уровня обычно включаются три основных элемента: формат кадра (т. е. заголовок и трейлер, добавляемые к данным сетевого уровня перед передачей в сеть); механизм контроля доступа к сетевой среде; одна или несколько спецификаций физического уровня, применяемые с данным протоколом.
Формат кадра
Протокол канального уровня добавляет к данным, полученным от протокола сетевого уровня, заголовок и трейлер, превращая их в кадр
(frame) (рис. 1.9). Если снова прибегнуть к аналогии с почтой, заголовок и трейлер - это конверт для отправки письма. В них содержатся адреса системы-отправителя и системы-получателя пакета. Для протоколов ЛВС, подобных Ethernet и Token Ring, эти адреса представляют собой 6-байтные шестнадцатеричные строки, присвоенные сетевым адаптерам на заводе-изготовителе. Они, в отличие от адресов, используемых на других уровнях модели OSI, называются аппа
ратными адресами
(hardware address) или МАС-адресами (см. ниже).
Примечание Протоколы различных уровней модели OSI по-разному называют структуры, создаваемые ими путем добавления заголовка к данным, пришедшим от вышестоящего протокола. Например, то, что протокол канального уровня называет кадром, для сетевого уровня будет дейтаграммой. Более общим названием для структурной единицы данных на любом уровне является пакет.
Важно понимать, что протоколы канального уровня обеспечивают связь только между компьютерами одной и той же ЛВС. Аппаратный адрес в заголовке всегда принадлежит компьютеру в той же ЛВС, даже если целевая система находится в другой сети. Другие важные функции кадра канального уровня - идентификация протокола сетевого уровня, сгенерировавшего данные в пакете, и информация для обнаружения ошибок. На сетевом уровне могут использоваться различные протоколы, и потому в кадр протокола канального уровня обычно включается код, с помощью которого можно установить, какой именно протокол сетевого уровня сгенерировал данные в этом пакете. Руководствуясь этим кодом, протокол канального уровня компьютера-получателя пересылает данные соответствующему протоколу своего сетевого уровня. Для выявления ошибок передающая система вычисляет цикличес кий избыточный код (cyclical redundancy check, CRC) полезной нагрузки и записывает его в трейлер кадра. Получив пакет, целевой компьютер выполняет те же вычисления и сравнивает результат с содержимым трейлера. Если результаты совпадают, информация передана без ошибок. В противном случае получатель предполагает, что пакет ис порчен, и не принимает его.
Управление доступом к среде
Компьютеры в ЛВС обычно используют общую полудуплексную сетевую среду. При этом вполне возможно, что передавать данные начнут одновременно два компьютера. В таких случаях происходит своего рода столкновение пакетов, коллизия (collision), при котором дан ные в обоих пакетах теряются. Одна из главных функций протокола канального уровня - управление доступом к сетевой среде (media access control, MAC), т. е. контроль за передачей данных каждым из компьютеров и сведение к минимуму случаев столкновения пакетов. Механизм управления доступом к среде - одна из важнейших ха рактеристик протокола канального уровня. В Ethernet для управления доступом к среде используется механизм с контролем несущей и обнаружением коллизий (Carrier Sense Multiple Access with Collision Detection, CSMA/CD). В некоторых других протоколах, например, в Token Ring, используется передача маркера (token passing).
Спецификации физического уровня
Протоколы канального уровня, используемые в ЛВС, часто поддерживают более одной сетевой среды, и в стандарт протокола включены одна или несколько спецификаций физического уровня. Канальный и физический уровни тесно связаны, т. к. свойства сетевой среды существенно влияют на то, как протокол управляет доступом к среде. Поэтому можно сказать, что в локальных сетях протоколы канального уровня осуществляют также функции физического уровня. В глобальных сетях используются протоколы канального уровня, в которые информация физического уровня не включается, например, SLIP (Serial Line Internet Protocol) и РРР (Point-to-Point Protocol).
Сетевой уровень
На первый взгляд может показаться, что сетевой (network) уровень дублирует некоторые функции канального уровня. Но это не так: протоколы сетевого уровня «отвечают» за сквозные (end-to-end) связи, тогда как протоколы канального уровня функционируют только в пределах ЛВС. Иными словами, протоколы сетевого уровня полностью обеспечивают передачу пакета от исходной до целевой системы. В зависимости от типа сети, отправитель и получатель могут находиться в одной ЛВС, в различных ЛВС в пределах одного здания или в ЛВС, разделенных тысячами километров. Например, когда Вы связываетесь с сервером в Интернете, на пути к нему пакеты, созданные Вашим компьютером, проходят через десятки сетей. Подстраиваясь под эти сети, протокол канального уровня неоднократно изменится, но протокол сетевого уровня на всем пути останется тем же самым. Краеугольным камнем набора протоколов TCP/IP (Transmission Control Protocol/Internet Protocol) и наиболее часто используемым протоколом сетевого уровня является протокол IP (Internet Protocol). У Novell NetWare есть собственный сетевой протокол IPX (Internetwork Packet Exchange), а в небольших сетях Microsoft Windows обычно используется протокол NetBEUI (NetBIOS Enhanced User Interface). Большинство функций, приписываемых сетевому уровню, определяются возможностями протокола IP. Подобно протоколу канального уровня, протокол сетевого уровня добавляет заголовок к данным, которые он получил от вышестоящего уровня (рис. 1.10). Элемент данных, созданный протоколом сетевого уровня, состоит из данных транспортного уровня и заголовка сетевого уровня и называется дейтаграммой (datagram).
|
Адресация
Заголовок протокола сетевого уровня, как и заголовок протокола канального уровня, содержит поля с адресами исходной и целевой систем. Однако в данном случае адрес целевой системы принадлежит конечному назначению пакета и может отличаться от адреса получателя в заголовке протокола канального уровня. Например, когда Вы вводите в адресной строке браузера адрес Web-узла, в пакете, сгенерированном Вашим компьютером, в качестве адреса целевой системы сетевого уровня указан адрес Web-сервера, тогда как на канальном уровне на целевую систему указывает адрес маршрутизатора в Вашей ЛВС, обеспечивающего выход в Интернет. В IP используется собственная система адресации, которая совершенно не зависит от адресов канального уровня. Каждому компьютеру в сети с протоколом IP вручную или автоматически назначается 32-битовый IP- адрес, идентифицирующий как сам компьютер, так и сеть, в которой он находится. В IPX же для идентификации самого компьютера используется аппаратный адрес, кроме того, специальный адрес используется для идентификации сети, в которой находится компьютер. В NetBEUI компьютеры различаются по NetBIOS-именам, присваиваемым каждой системе во время ее установки.
Фрагментация
Дейтаграммам сетевого уровня на пути к месту назначения приходится проходить через множество сетей, сталкиваясь при этом со специ фическими свойствами и ограничениями различных протоколов канального уровня. Одно из таких ограничений - максимальный размер пакета, разрешенный протоколом. Например, размер кадра Token Ring может достигать 4500 байт, тогда как размер кадров Ethernet не может превышать 1500 байтов. Когда большая дейтаграмма, сформированная в сети Token Ring, передается в сеть Ethernet, протокол сетевого уровня должен разбить ее на несколько фрагментов размером не более 1500 байт. Этот процесс называется фрагментацией (frag mentation). В процессе фрагментации протокол сетевого уровня разбивает дейтаграмму на фрагменты, размер которых соответствует возможностям используемого протокола канального уровня. Каждый фрагмент становится самостоятельным пакетом и продолжает путь к целевой системе сетевого уровня. Исходная дейтаграмма формируется лишь после того, как места назначения достигнут все фрагменты. Иногда на пути к целевой системе фрагменты, на которые разбита дейтаграмма, приходится фрагментировать повторно.
Маршрутизация
Маршрутизацией (routing) называется процесс выбора в интерсети самого эффективного маршрута для передачи дейтаграмм от системы-отправителя к системе-получателю. В сложных интерсетях, например, в Интернете или больших корпоративных сетях, часто от одного компьютера к другому можно добраться несколькими путями. Проектировщики сетей специально создают избыточные связи, чтобы трафик нашел дорогу к месту назначения даже в случае сбоя одно го из маршрутизаторов. С помощью маршрутизаторов соединяют отдельные ЛВС, входящие в интерсеть. Назначение маршрутизатора - принимать входящий трафик от одной сети и передавать его конкретной системе в другой. В интерсетях различают системы двух видов: оконечные (end systems) и промежуточные (intermediate systems). Оконечные системы являются отправителями и получателями пакетов. Маршрутизатор - промежуточная система. В оконечных системах используются все семь уровней модели OSI, тогда как пакеты, поступающие в промежуточные системы, не поднимаются выше сетевого уровня. Там маршрутизатор обрабатывает пакет и отправляет его вниз по стеку для передачи следующей целевой системе (рис. 1.11).
|
Чтобы верно направить пакет к цели, маршрутизаторы хранят в памяти таблицы с информацией о сети. Эта информация может быть внесена администратором вручную или собрана автоматически с других маршрутизаторов с помощью специализированных протоколов. В состав типичного элемента таблицы маршрутизации входят адрес другой сети и адрес маршрутизатора, через который пакеты должны добираться до этой сети. Кроме того, в элементе таблицы маршрутизации содержится метрика маршрута - условная оценка его эффективности. Если к некой системе имеется несколько маршрутов, маршрутизатор выбирает из них самый эффективный и отправляет дейтаграмму на канальный уровень для передачи маршрутизатору, указанному в элементе таблицы с наилучшей метрикой. В больших сетях маршрутизация может быть необычайно сложным процессом, но чаще всего она осуществляется автоматически и незаметно для пользователя.
Идентификация протокола транспортного уровня
Так же, как в заголовке канального уровня указан протокол сетевого уровня, сгенерировавший и передавший данные, в заголовке сетевого уровня содержится информация о протоколе транспортного уровня, от которого эти данные были получены. В соответствии с этой информацией система-получатель передает входящие дейтаграммы соответствующему протоколу транспортного уровня.
Транспортный уровень
Функции, выполняемые протоколами транспортного (transport) уровня, дополняют функции протоколов сетевого уровня. Часто протоколы этих уровней, используемые для передачи данных, образуют взаи мосвязанную пару, что видно на примере TCP/IP: протокол TCP функционирует на транспортном уровне, IP - на сетевом. В большинстве наборов протоколов имеется два или несколько протоколов транспортного уровня, выполняющих разные функции. Альтернативой TCP является протокол UDP (User Datagram Protocol). В набор протоколов IPX также включено несколько протоколов транспортного уровня, в том числе NCP (NetWare Core Protocol) и SPX (Sequenced Packet Exchange). Разница между протоколами транспортного уровня из определенного набора заключается в том, что некоторые из них ориентированы на соединение, а другие - нет. Системы, использующие протокол, ориентированный на соединение (connection-oriented), перед передачей данных обмениваются сообщениями, чтобы установить связь друг с другом. Это гарантирует, что системы включены и готовы к работе. Протокол TCP, например, ориентирован на соединение. Когда Вы с помощью браузера подключаетесь к серверу Интернета, браузер и сервер для установления связи сначала выполняют так называемое трехшаговое рукопожатие (three-way handshake). Лишь после этого браузер передает серверу адрес нужной Web-страницы. Когда передача данных завершена, системы выполняют такое же рукопожатие для прекращения связи. Кроме того, протоколы, ориентированные на соединение, выполняют дополнительные действия, например, отправляют сигнал подтверждения приема пакета, сегментируют данные, управляют потоком, а также обнаруживают и исправляют ошибки. Как правило, протоколы этого типа используются для передачи больших объемов информации, в которых не должно содержаться ни единого ошибочного бита, например, файлов данных или программ. Дополнительные функции протоколов с ориентацией на соединение гарантируют корректную передачу данных. Вот почему эти протоколы часто называют надежными (reliable). Надежность в данном случае является техническим термином и означает, что каждый передаваемый пакет проверяется на наличие ошибок, кроме того, система-отправитель уведомляется о доставке каждого пакета. Недостаток протоколов этого типа состоит в значительном объеме управляющих данных, которыми обмениваются две системы. Во-первых, дополнительные сообщения передаются при установлении и завершении связи. Во-вторых, заголовок, добавляемый к пакету протоколом с ориентацией на соединение, существенно превосходит по размеру заголовок протокола, не ориентированного на соединение. Например, заголовок протокола TCP/IP занимает 20 байтов, а заголовок UDP - 8 байтов. Протокол, не ориентированный на соединение (connectionless), не устанавливает соединение между двумя системами до передачи данных. Отправитель просто передает информацию целевой системе, не беспокоясь о том, готова ли она принять данные и существует ли эта система вообще. Обычно системы прибегают к протоколам, не ориентированным на соединение, например, к UDP, для коротких транзакций, состоящих только из запросов и ответных сигналов. Ответный сигнал от получателя неявно выполняет функцию сигнала подтверждения о передаче.
Примечание Ориентированные и не ориентированные на соединение протоколы есть не только на транспортном уровне. Например, протоколы сетевого уровня обычно не ориентированы на соединение, по скольку обеспечение надежности связи они возлагают на транспортный уровень.
Протоколы транспортного уровня (как и сетевого и канального уровней) обычно содержат информацию с вышестоящих уровней. Например, в заголовки TCP и UDP включаются номера портов, идентифицирующие приложение, породившее пакет, и приложение, которому он предназначен. На сеансовом (session) уровне начинается существенное расхождение между реально применяемыми протоколами и моделью OSI. В отличие от нижестоящих уровней, выделенных протоколов сеансового уровня не существует. Функции этого уровня интегрированы в протоколы, которые выполняют также функции представительского и прикладного уровней. Транспортный, сетевой, канальный и физический уровни занимаются собственно передачей данных по сети. Протоколы сеансового и вышестоящих уровней к процессу связи отношения не имеют. К сеансовому уровню относятся 22 службы, многие из которых задают способы обмена информацией между системами, включенными в сеть. Наиболее важны службы управления диалогом и разделения диалога. Обмен информацией между двумя системами в сети называется диалогом (dialog). Управление диалогом (dialog control) заключается в выборе режима, в котором системы будут обмениваться сообщениями. Таких режимов два: полудуплексный (two-way alternate, TWA) и дуплексный (two-way simultaneous, TWS). В полудуплексном режиме две системы вместе с данными передают также маркеры. Передавать информацию можно только компьютеру, у которого в данный момент находится маркер. Так удается избежать столкновения сообщений в пути. Дуплексная модель сложнее. Маркеров в ней нет; обе системы могут передавать данные в любой момент, даже одновременно. Разделение диалога (dialog separation) состоит во включении в поток данных контрольных точек (checkpoints), позволяющих синхронизировать работу двух систем. Степень сложности разделения диалога зависит от того, в каком режиме он осуществляется. В полудуп лексном режиме системы выполняют малую синхронизацию, заключающуюся в обмене сообщениями о контрольных точках. В дуплексном режиме системы выполняют полную синхронизацию с помощью главного/активного маркера.
Представительский уровень
На представительском (presentation) уровне выполняется единственная функция: трансляция синтаксиса между различными системами. Иногда компьютеры в сети применяют разные синтаксисы. Представительский уровень позволяет им «договориться» об общем синтаксисе для обмена данными. Устанавливая соединение на представительском уровне, системы обмениваются сообщениями с информа цией о том, какие синтаксисы в них имеются, и выбирают тот, который они будут использовать во время сеанса. У обеих систем, участвующих в соединении, есть абстрактный синтаксис (abstract syntax) - их «родная» форма связи. Абстрактные синтаксисы различных компьютерных платформ могут отличаться. В процессе согласования системы выбирают общий синтаксис передачи данных (transfer syntax). Передающая система преобразует свой абстрактный синтаксис в синтаксис передачи данных, а система-получатель по завершению передачи - наоборот. При необходимости система может выбрать синтаксис передачи данных с дополнительными функциями, например, сжатием или шифрованием данных.
Прикладной уровень
Прикладной уровень - это точка входа, через которую программы получают доступ к модели OSI и сетевым ресурсам. Большинство про токолов прикладного уровня предоставляет службы доступа к сети. Например, протоколом SMTP (Simple Mail Transfer Protocol) большинство программ электронной почты пользуется для отправки сообщений. Другие протоколы прикладного уровня, например, FTP (File Transfer Protocol), сами являются программами. В протоколы прикладного уровня часто включают функции сеансового и представительского уровня. В результате типичный стек протоколов содержит четыре отдельных протокола, которые работают на прикладном, транспортном, сетевом и канальном уровнях.