Теория:Сетевая модель OSI. Как работают сетевые устройства согласно сетевой модели OSI

Сетевая модель OSI (базовая эталонная модель взаимодействия открытых систем, англ. Open Systems Interconnection Basic Reference Model) - абстрактная сетевая модель для коммуникаций и разработки сетевых протоколов.

Модель состоит из 7-ми уровней, расположенных друг над другом. Уровни взаимодействуют друг с другом (по «вертикали») посредством интерфейсов, и могут взаимодействовать с параллельным уровнем другой системы (по «горизонтали») с помощью протоколов. Каждый уровень может взаимодействовать только со своими соседями и выполнять отведённые только ему функции. Несмотря на существование других моделей, большинство сетевых производителей сегодня разрабатывают свои продукты на основе этой структуры.

Уровни OSI

Каждый уровень модели OSI отвечает за часть процесса обработки по подготовке данных к передаче по сети.

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

Уровень Название Описание 1 Описание 2
7. Прикладной Это уровень, с которым работают пользователи конечных продуктов. Их не волнует, как передаются данные, зачем и через какое место… Они сказали "ХОЧУ!" - а мы, программисты, должны им это обеспечить. В качестве примера можно взять на рассмотрение любую сетевую игру: для игрока она работает на этом уровне. Когда пользователь хочет отправить данные, например, электронную почту, на прикладном уровне начинается процесс инкапсуляции. Прикладной уровень отвечает за обеспечение сетевого доступа к приложениям. Информация проходит через верхние три уровня и, попадая вниз, на транспортный уровень, считается данными.
6. Представительский (Введение в XML , SMB) Здесь программист имеет дело с данными, полученными от низших уровней. В основном, это конвертирование и представление данных в удобоваримом для пользователя виде.
5. Сеансовый (TLS , SSL сертификаты для для сайта, почты , NetBios) Этот уровень позволяет пользователям осуществлять "сеансы связи". То есть именно на этом уровне передача пакетов становится для программиста прозрачной, и он может, не задумываясь о реализации, непосредственно передавать данные, как цельный поток. Здесь на сцену вступают протоколы HTTP, FTP , Telnet, SMTP и т.д.
4. Транспортный (Порты TCP , UDP) Осуществляет контроль над передачей данных (сетевых пакетов). То есть, проверяет их целостность при передаче, распределяет нагрузку и т.д. Этот уровень реализует такие протоколы, как TCP, UDP и т.д. Для нас представляет наибольший интерес. На транспортном уровне данные разбиваются на более легко управляемые сегменты, или блоки PDU транспортного уровня, для упорядоченной транспортировки по сети. Блок PDU описывает данные так, как они движутся с одного уровня модели OSI на другой. Кроме того, блок PDU транспортного уровня содержит такую информацию, как номера портов, порядковые номера и номера квитирования, которые используются для надежной транспортировки данных.
3. Сетевой (IP, ICMP протокол диагностики перегрузки сети) Логически контролирует адресацию в сети, маршрутизацию и т.д. Должен быть интересен разработчикам новых протоколов и стандартов. На этом уровне реализованы протоколы IP, IPX, IGMP, ICMP, ARP. В основном, управляется драйверами и операционными системами. Сюда влезать, конечно, стоит, но только когда ты знаешь, что делаешь, и полностью в себе уверен. На сетевом уровне каждый сегмент, поступивший с транспортного уровня, становится пакетом. Пакет содержит логическую адресацию и другие управляющие данные уровня 3.
2. Канальный (WI-FI , Что такое Ethernet) Этот уровень контролирует восприятие электронных сигналов логикой (радиоэлектронными элементами) аппаратных устройств. То есть, взаимодействуя на этом уровне, аппаратные средства превращают поток битов в электрические сигналы и наоборот. Нас он не интересует, потому что мы не разрабатываем аппаратные средства, чипы и т.д. Уровень касается сетевых карт, мостов, свичей, рутеров и т.д. На канальном уровне каждый пакет, поступивший с сетевого уровня, становится фреймом. Кадр содержит физический адрес и данные об исправлении ошибок.
1. Аппаратный (Физический) (лазер, электричество, радио) Контролирует передачи физических сигналов между аппаратными устройствами, входящими в сеть. То есть управляет передачей электронов по проводам. Нас он не интересует, потому что все, что находится на этом уровне, контролируется аппаратными средствами (реализация этого уровня - это задача производителей хабов, мультиплексоров, повторителей и другого оборудования). Мы не физики-радиолюбители, а геймдевелоперы. На физическом уровне фрейм становится битами. По сетевой среде биты передаются по одному.

Мы видим, что, чем выше уровень - тем выше степень абстракции от передачи данных, к работе с самими данными. Это и есть смысл всей модели OSI: поднимаясь все выше и выше по ступенькам ее лестницы, мы все меньше и меньше заботимся о том, как данные передаются, мы все больше и больше становимся заинтересованными в самих данных, нежели в средствах для их передачи. Нас, как программистов, интересуют уровни 3, 4 и 5. Мы должны использовать средства, которые они предоставляют, для того чтобы построить 6 и 7 уровни, с которыми смогут работать конечные пользователи.

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

На сетевом уровне OSI реализованы протоколы IP(Структура межсетевого протокола IPv4 ,IPv6), IPX, IGMP, ICMP, ARP.

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

Создать сложную, структурированную сеть с интеграцией различных базовых сетевых технологий, можно и средствами канального уровня: для этого могут быть использованы некоторые типы мостов и коммутаторов. Естественно в целом трафик в такой сети складывается случайным образом, но с другой стороны он характеризуется и некоторыми закономерностями. Как правило, в такой сети некоторые пользователи, работающие над общей задачей, (например, сотрудники одного отдела) чаще всего обращаются с запросами либо друг к другу, либо к общему серверу, и только иногда им необходим доступ к ресурсам компьютеров другого отдела. Поэтому в зависимости от сетевого трафика компьютеры в сети разделяют на группы, которые называют сегменты сети. Компьютеры объединяются в группу, если большая часть их сообщений предназначена (адресована) компьютерам этой же группы. Разделение сети на сегменты, могут осуществлять мосты и коммутаторы. Они экранируют локальный трафик внутри сегмента, не передавая за его пределы никаких кадров, кроме тех, которые адресованы компьютерам, находящимся в других сегментах. Таким образом, одна сеть распадается на отдельные подсети. Из этих подсетей в дальнейшем могут быть построены составные сети достаточно крупных размеров.

Идея разбиения на подсети - это основа построения составных сетей.

Сеть называется составной (internetwork или internet), если она может быть представлена в виде совокупности нескольких сетей. Сети, входящие в составную сеть, называются подсетями (subnet), составляющими сетями или просто сетями, каждая из которых может работать на основе собственной технологии канального уровня (хотя это и не обязательно).

Но, воплощение этой идеи в жизнь с помощью повторителей, мостов, и коммутаторов имеет очень существенные ограничения и недостатки.

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

    Логические сегменты сети, расположенные между мостами или коммутаторами, слабо изолированы друг от друга. Они не защищены от широковещательных штормов. Если какая-либо станция посылает широковещательное сообщение, то это сообщение передается всем станциям всех логических сегментов сети. Администратор должен вручную ограничивать количество широковещательных пакетов, которое разрешается генерировать некоторому узлу в единицу времени. В принципе некоторым образом удалось ликвидировать проблему широковещательных штормов с использованием механизма виртуальных сетей(Настройка VLAN Debian D-Link), реализованного во многих коммутаторах. Но в этом случае, хотя и возможно достаточно гибко создавать изолированные по трафику группы станций, но при этом они изолированы полностью, то есть узлы одной виртуальной сети не могут взаимодействовать с узлами другой виртуальной сети.

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

    Реализация транспортной подсистемы только средствами физического и канального уровней, к которым относятся мосты и коммутаторы, приводит к недостаточно гибкой, одноуровневой системе адресации: в качестве адреса станции получателя используется MAC -адрес - адрес, который жестко связан с сетевым адаптером.

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

Для облегчения понимания работы всех сетевых устройств, перечисленных в статье Сетевые устройства , касательно уровней сетевой эталонной модели OSI, Я сделал схематичные рисунки с небольшими комментариями.

Для начала вспомним уровни эталонной сетевой модели OSI и инкапсулирование данных.

Посмотрите, как происходит передача данных между двумя соединенными компьютерами. Заодно Я выделю работу сетевой карты на компьютерах, т.к. именно она является сетевым устройством, а компьютер – в принципе нет. (Все картинки кликабельны - для увеличения картинки кликните по ней.)


Приложение на компьютере PC1 отправляет данные другому приложению находящемуся на другом компьютере PC2. Начиная с верхнего уровня (уровень приложений) данные направляются к сетевой карте на канальный уровень. На нём сетевая карта преобразует фреймы в биты и отправляет в физическую среду (например, кабель витую пару). На другой стороне кабеля поступает сигнал, и сетевая карта компьютера PC2 принимает эти сигнала, распознавая их в биты и формируя из них фреймы. Данные (содержащиеся в фреймах) декапсулируются к верхнему уровню, и когда доходят до уровня приложений, соответствующая программа на компьютере PC2 получает их.

Повторитель. Концентратор.

Репитер и концентратор работают на одном и том же уровне, поэтому касательно сетевой модели OSI они изображаются одинаково. Для удобства представлений сетевых устройств будем их отображать между нашими компьютерами.


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

Сетевой мост. Коммутатор.

Сетевой мост и коммутатор тоже работают на одном уровне (канальном) и изображаются они соответственно одинаково.


Оба устройства уже второго уровня, поэтому помимо распознавания сигнала (подобно концентраторам на первом уровне) они декапсулируют его (сигнал) в фреймы. На втором уровне сравнивается контрольная сумма трейлера (прицепа) фрейма. Затем из заголовка фрейма узнаётся MAC-адрес получателя, и проверяется его наличие в коммутируемой таблице. Если адрес присутствует, то фрейм обратно инкапсулируется в биты и отправляется (уже в виде сигнала) на соответствующий порт. Если адрес не найден, происходит процесс поиска этого адреса в подключенных сетях.

Маршрутизатор.


Как Вы видите, маршрутизатор (или роутер) – это устройство третьего уровня. Вот как примерно роутер функционирует: На порт поступает сигнал, и роутер распознаёт его. Распознанный сигнал (биты) формируют фреймы (кадры). Сверяется контрольная сумма в трейлере и MAC-адрес получателя. Если все проверки прошли успешно, фреймы формируют пакет. На третьем уровне маршрутизатор исследует заголовок пакета. В нем присутствует IP адрес пункта назначения (получателя). На основе IP-адреса и собственной таблицы маршрутизации роутер выбирает наилучший путь следования пакеты к получателю. Выбрав путь, роутер инкапсулирует пакет в фреймы, а затем в биты и отправляет их в виде сигналов на соответствующий порт (выбранный в таблице маршрутизации).

Заключение

В заключении Я объединил все устройства в одной картинке.


Теперь у Вас достаточно знаний, чтобы определить какие устройства и как работают. Если у Вас остались вопросы, задавайте их мне и в ближайшее время Вам или Я или другие пользователи непременно помогут.

Модель OSI — это базовая эталонная модель взаимодействия открытых систем. Она представляет собой систему, состоящую из семи уровней, на каждом из которых задействованы определенные сетевые протоколы, обеспечивающие передачу данных на всех ступенях взаимодействия.

Общие сведения

Для того чтобы облегчить понимание и проще ориентироваться в различных направлениях работы с сетевыми протоколами, была создана принятая за эталон модульная система, благодаря чему стало гораздо проще локализовать проблему, зная, на каком из участков сети она располагается.

На каждом из уровней модели OSI ведется работа с определенными наборами протоколов (стеками). Они четко локализуются в рамках каждого уровня, не выходя за его границы, при этом будучи связанными в четкую и удобную для восприятия систему.

Итак, сколько уровней в сетевой модели OSI и какие они?

  1. Физический.
  2. Канальный.
  3. Сетевой.
  4. Транспортный.
  5. Сеансовый.
  6. Представительский.
  7. Прикладной.

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

Взаимодействие уровней происходит при помощи интерфейсов между двумя соседними уровнями и через протоколы в рамках одного уровня.

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

Первый уровень сетевой модели OSI - среда передачи данных. На нем происходит передача данных как таковая. За единицу нагрузки принимается бит. Происходит передача сигнала по кабелю или беспроводным сетям и соответствующее кодирование в информацию, выраженную посредством битов.

Протоколы, которые здесь задействованы: провод (витая пара, оптика, телефонный кабель и другие), среды беспроводной передачи данных (к примеру, Bluetooth или Wi-Fi) и так далее.

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

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

Здесь передача информации происходит в виде блоков данных, которые называются кадрами или фреймами, канальный уровень сетевой модели OSI осуществляет их создание и передачу. Взаимодействует, соответственно, с физическим и сетевым уровнями OSI.

Подразделяется на два подуровня:

  1. LLC — управляет логическим каналом.
  2. 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 для "чайников" мы постарались простым языком объяснить, как передача данных реализуется, а главное — как устроена система взаимодействия сетевого оборудования на различных уровнях.

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

Сетевая модель OSI — это эталонная модель взаимодействия открытых систем, на английском звучит как Open Systems Interconnection Basic Reference Model. Ее назначение в обобщенном представлении средств сетевого взаимодействия.

То есть модель OSI — то обобщенные стандарты для разработчиков программ, благодаря которым любой компьютер одинаково может расшифровать данные, переданные с другого компьютера. Чтобы было понятно, приведу жизненный пример. Известно, что пчелы видят все окружающее их в утрафиалетовом свете. То есть одну и ту же картинку наш глаз и пчелиный воспринимает абсолютно по-разному и то, что видят насекомые, может быть незаметно для зрения человека.

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

Для наглядности процесс работы сети принято разделять на 7 уровней , на каждом из которых работает своя группа протоколов.


Сетевой протокол — это правила и технические процедуры, позволяющие компьютерам, объединенным в сеть, осуществлять соединение и обмен данными.
Группа протоколов, объединенных единой конечной целью, называется стек протоколов.

Для выполнения разных задач имеется несколько протоколов, которые занимаются обслуживанием систем, например, стек TCP/IP. Давайте здесь внимательно посмотрим на то, каким образом информация с одного компьютера отправляется по локальной сети на другой комп.

Задачи компьютера ОТПРАВИТЕЛЯ:

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

Задачи компьютера ПОЛУЧАТЕЛЯ:

  • Принять пакеты данных
  • Удалить из него служебную информацию
  • Скопировать данные в буфер
  • После полного приема всех пакетов сформаровать из них исходный блок данных
  • Отдать его приложению

Для того, чтобы верно произвести все эти операции и нужен единый свод правил, то есть эталонная модель OSI.

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


Разберем их подробнее.

7. Прикладной уровень (Application Layer)

Его задача забрать у сетевого приложения данные и отправить на 6 уровень.

6. Уровень представления (Presentation Layer)

Переводит эти данные на единый универсальный язык. Дело в том, что каждый компьютерный процессор имеет собственный формат обработки данных, но в сеть они должны попасть в 1 универсальном формате — именно этим и занимается уровень представления.

5. Сеансовый уровень (Session Layer)

У него много задач.

  1. Установить сеанс связи с получателем. ПО предупреждает компьютер-получатель о том, что сейчас ему будут отправлены данные.
  2. Здесь же происходит распознавание имен и защита:
    • идентификация — распознавание имен
    • аутентификация — проверка по паролю
    • регистрация — присвоение полномочий
  3. Реализация того, какая из сторон осуществляет передачу информации и как долго это будет происходить.
  4. Расстановка контрольных точек в общем потоке данных для того, чтобы в случае потери какой-то части легко было установить, какая именно часть потеряна и следует отправить повторно.
  5. Сегментация — разбивка большого блока на маленькие пакеты.

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

Обеспечивает приложениям необходимую степень защиты при доставке сообщений. Имеется две группы протоколов:

  • Протоколы, которые ориентированы на соединение — они отслеживают доставку данных и при необходимости запрашивают повторную отправку при неудаче. Это TCP — протокол контроля передачи информации.
  • Не ориентированные на соединение (UDP) — они просто отправляют блоки и дальше не следят за их доставкой.

3. Сетевой уровень (Network Layer)

Обеспечивает сквозную передачу пакета, рассчитывая его маршрут. На этом уровне в пакетах ко всей предыдущей динформации, сформированной другими уровнями, добавляются IP адреса отправителя и получателя. Именно с этого момент пакет данных называется собственно ПАКЕТОМ, у которого есть >>IP адреса (IP протокол — это протокол межсетевого взаимодействия).

2. Канальный уровень (Data Link Layer)

Здесь происходит передача пакета в пределах одного кабеля, то есть одной локальной сети. Он работает только до пограничного маршрутизатора одной локальной сети. К полученному пакету канальный уровень добавляет свой заголовок — MAC адреса отправителя и получателя и в таком виде блок данных уже называется КАДРОМ.

При передачи за пределы одной локальной сети пакету присваивается MAC не хоста (компьютера), а маршрутизатора другой сети. Отсюда как раз появляется вопрос серых и белых IP, о которых шла речб в статье, на которую была выше дана ссылка. Серый — это адрес внутри одной локальной сети, который не используетс яза ее пределами. Белый — уникальный адрес во всем глобальном интернете.

При поступлении пакета на пограничный роутер IP пакета подменяется на IP этого роутера и вся локальная сеть выходит в глобальную, то есть интернет, под одним единственным IP адресом. Если адрес белый, то часть данных с IP адресом не изменяется.

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

Отвечает за преобразование двоичной информации в физический сигнал, который отправляется в физический канал передачи данных. Если это кабель, то сигнал электрический, если оптоволоконная сеть, то в оптический сигнал. Осуществляется это преобразование при помощи сетевого адаптера.

Стеки протоколов

TCP/IP — это стек протоколов, который управляет передачей данных как в локальной сети, так и в глобальной сети Интернет. Данный стек содержит 4 уровня, то есть по эталонной модели OSI каждый из них объединяет в себе несколько уровней.

  1. Прикладной (по OSI — прикладной, представления и сеансовый)
    За данный уровень отвечают протоколы:
    • TELNET — удаленный сеанс связи в виде командной строки
    • FTP — протокол передачи файлов
    • SMTP — протокол пересылки почты
    • POP3 и IMAP — приема почтовых отправлений
    • HTTP — работы с гипертекстовыми документами
  2. Транспортный (по OSI то же самое) — это уже описанные выше TCP и UDP.
  3. Межсетевой (по OSI — сетевой) — это протокол IP
  4. Уровень сетевых интерфейсов (по OSI — канальный и физический)За работу этого уровня отвечают драйверы сетевых адаптеров.

Терминология при обозначении блока данных

  • Поток — те данные, которыми оперируются на прикладном уровне
  • Дейтаграмма — блок данных на выходе с UPD, то есть у которого нет гарантированной доставки.
  • Сегмент — гарантированный для доставки блок на выходе с протокола TCP
  • Пакет — блок данных на выходе с протокола IP. поскольку на данном уровне он еще не гарантирован к доставке, то тоже может называться дейтаграммой.
  • Кадр — блок с присвоенными MAC адресами.

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

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

Модель взаимодействия открытых систем OSI (Open System Interconnection) разработана международной организацией по стандартам ISO (Inernational Standarts Organization).

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

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

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

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

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

Теперь рассмотрим работу каждого уровня модели OSI подробнее:

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

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

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

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

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

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

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

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

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

На просторах сети интернет я нашел картинку, на которой неизвестный автор представил сетевую модель OSI в виде бургера. Считаю, это очень запоминающийся образ. Если вдруг в какой-то ситуации (например, на собеседовании при устройстве на работу) вам понадобиться по памяти перечислить все семь уровней модели OSI в правильном порядке – просто вспомните данную картинку, и это вам поможет. Для удобства я перевел названия уровней с английского на русский язык:На сегодня это всё. В следующей статье я продолжу тему и расскажу про .