Какой уровень сетевой модели osi обеспечивает взаимодействие пользовательских приложений с сетью
Модель OSI (Open Systems Interconnectton — взаимодействие открытых систем) не так проста, как кажется на первый взгляд. Она была первоначально предназначена для обеспечения разработки протоколов, не зависящих от конкретных поставщиков оборудования, и для получения возможности создания наборов протоколов вместо монолитных программ сетевой связи, но в настоящее время модель OSI фактически редко используется для таких целей. Но эта модель все еще имеет одно важное назначение: на данный момент она представляет собой одно из лучших инструментальных средств описания и классификации сложных последовательностей действий, которые происходят в сетях. Поскольку основная часть применяемых в наши дни наборов протоколов(например TCP/IP) была разработана с использованием другой модели, многие протоколы этих наборов не полностью соответствуют модели и это вызывает определенную путаницу. Например, в некоторых книгах утверждается, что протокол маршрутной информации (Routing Information Protocol — RIP) работает на сетевом уровне, в других указано, что он работает на прикладном уровне. Однако в действительности этот протокол не принадлежит полностью только к одному из этик уровней. Он, как и многие другие, включает функции, относящиеся к обоим уровням. Из этого можно сделать вывод, что устранить такую путаницу можно только с помощью модели OSI, которая позволяет изучать сетевые операции и определять, на каком уровне они выполняются.
Основная цель изучения модели OSI состоит в том, чтобы можно было понять, какие функции выполняются тем или иным устройством, просто узнав, к какому уровню относится данное устройство. Например, если известно, что физическая адресация или управление доступом к передающей среде (Media Access Control — MAC) осуществляется на уровне 2, а логическая (IP-адресация) — на уровне 3, то сразу же становится ясно, что коммутатор Ethernet, который отвечает за фильтрацию МAС-адресов (физических адресов), является прежде всего устройством уровня 2.
Содержание
Общее определение термина пакет
Основы модели OSI
Модель OSI представляет собой один из способов многоуровневой организации сетей. В той или иной реализации набора протоколов некоторые из уровней модели могут даже не использоваться, но модель OSI разработана так, чтобы любую сетевую функцию можно было представить на одном из ее семи уровней. Описание уровней, начиная с уровня 7 и заканчивая уровнем 1, приведено в табл.1. Здесь принята именно такая последовательность описания уровней, поскольку она позволяет лучше понять устройство модели.
При передаче данных по сети с одного компьютера на другой осуществляется такой процесс: данные исходят из приложения, передаются вниз по уровням модели, проходят через передающую среду (чаще всего это медный или волоконно-оптический кабель) в виде электрического или оптического сигнала, представляющего отдельные логические нули и единицы, после чего поднимаются по уровням модели на другом конце соединения.
По мире выполнения этих действий на каждом уровне, который имеет соответствующий протокол, к пакету добавляется заголовок, указывающий способ обработки пакета на другом конце соединения с помощью такого же протокола. Этот процесс называется инкапсуляцией данных. Схема этого процесса приведена на рис.3. На этой схеме АН обозначает заголовок прикладного уровня (Application Header), РН — представительского (Presentation Нeаder), SH — сеансового (Session Header), TН — транспортного (Transport Header), NH — сетевого (Network Header), DH — канального (Datelink Header) и РН — физического (Рhysical Header). После прибытия к месту назначения пакет проходит вверх по уровням модели и на каждом уровне удаляются заголовки соответствующих протоколов. Ко времени поступления пакета в приложение в нем остаются только данные, которые принято также называть содержимым пакета (payload).
Уровень 7
Уровень 6 - представительский
BCNHS r%CNE (37НС UHD"Y ЗсТШ! Ufc*?
Такая последовательность знаков, безусловно, не похожа на графическое изображение, и ее получение свидетельствует о наличии проблемы. Тем самым подтверждается сказанное выше, что обычно проще всего обнаружить наличие проблемы на представительском уровне. Кроме того, представительский уровень отвечает за сжатие и шифрование, а также за выполнение многих других действий (таких как эмуляция терминала), которые приводят к изменению формата длины. К числу наиболее широко применяемых форматов представления данных относятся ASCII, JPEG, MPEG и GIF.
Уровень 5 - сеансовый
В отличие от предыдущих, работу протоколов сеансового уровня понять сложнее всего. Эти протоколы отвечают за установление, поддержание и завершение сеансов. Но это определение является слишком общим и расплывчатый. Поскольку в установлении, поддержании и завершении сеансов в той или иной степени фактически участвуют и протоколы других уровней. Проще всего можно представить себе назначение сеансового уровня в том, что он выполняет функции посредника между двумя приложениями. К числу наиболее широко применяемых протоколов сеансового уровня относятся RРC, LDAP и служба сеансов NetBIOS.
Уровень 4 - транспортный
На транспортном уровне выполняется целый ряд функций. Наиболее важными из них являются контроль ошибок, их исправление и управление потоком данных. Транспортный уровень отвечает за надежную работу служб межсетевой передачи данных, функции которой выполняются незаметно для программ более высокого уровня. Проще всего можно понять, как осуществляются функции контроля и исправления ошибок на транспортном уровне, изучив различия между связью с установлением и без установления логического соединения.
Связь с установлением и без установления логического соединения
Управление потоком данных
В своей простейшей форме управление потоком данных представляет собой метод обеспечения того, чтобы чрезмерно интенсивный поток данных не захлестнул оконечную станцию. Например, предположим, что персональный компьютер А обрабатывает данные со скоростью 100 Мбит/с, а компьютер В — со скоростью 10 Мбит/с. Если компьютер А начнет передавать компьютеру В какие-то данные на полной скорости, то 90% этой информации будет потеряно, поскольку компьютер В не способен принимать информацию на скорости 100 Мбит/с. В предотвращении этой ситуации и состоит назначение средств управления потоком данных.
Применяемые в настоящее время методы управления потоком данных подразделяются на три типа, как описано в следующих разделах.
Буферизация
По-видимому, самым простым из этих методов является буферизация, которая в основном применяется в сочетании с другими методами управления потоком данных. Буфер можно рассматривать как резервуар. Предположим, что из одной трубы в этот резервуар втекает четыре литра воды в минуту, а из другой трубы, подключенной к резервуару, вода вытекает, но со скоростью только три литра воды в минуту. Если крышка резервуара открыта, что произойдет с лишней водой, если трубы, через которые поступает и вытекает вода, будут опушены в неглубокий поддон? Правильно - поддон быстро заполнится и вода польется на пол. Тоже самое происходит с данными, поступающими с Компьютера А, который рассматривается в предыдущем примере. Для выхода из подобной ситуации можно применить такое же решение, как и в гидравлике — для приема лишней воды поставить "резервуар", или буфер. Но очевидно, что такое решение подходит к появлении других проблем. Прежде всего, буфер не может иметь бесконечный объем. Он позволяет легко справляться с временным увеличением объема трафика, но если поток данных, превышающий возможности приемного устройства, движется непрерывно, резервное пространство в конечном итоге целиком заполнится и в этот момент снова возникнет та же проблема — биты данных начнут бесследно исчезать.
Уведомление о заторе
Применение окон
К числу наиболее широко применяемых протоколов транспортного уровня относятся TCP, UDP и SPX.
Уровень 3 - сетевой
Протоколы сетевого уровня обеспечивают логическую адресацию и определение маршрута (маршрутизацию). Методы логической адресации зависят от набора протоколов, но основные принципы остаются одинаковыми. Адреса сетевого уровня применяются в основном для указания местонахождения хоста. Эта задача обычно решается путем разделения адреса на две части: поле группы и поле хоста. Вместе эти поля полностью описывают хост, но лишь в контексте группы, к которой он относится. Такое разделение адреса позволяет каждому хосту учитывать только наличие других хостов в его группе и применять для передачи пакетов от одной группы к другой специализированные устройства, называемые маршрутизаторами.
К числу широко применяемых протоколов сетевого уровня относятся IP и IPX.
Уровень 2 - канальный
Канальный уровень предусматривает выполнение таких функций, как устранение коллизий, физическая адресация, распознавание ошибок и фреймирование, как описано в следующих разделах.
Устранение коллизий
Методы устранения коллизий позволяют определить, как должен быть организован доступ к одному каналу передачи данных, если к нему подключено несколько хостов, которые пытаются одновременно использовать его для передачи. При полудуплексной широкополосной передаче без устранения коллизий нельзя обойтись, поскольку в применяемой при этом сетевой среде в любой момент времени только одно устройство может успешно передавать электрический сигнал. А если в этой среде попытки передачи будут предприняты одновременно двумя устройствами, то сигналы от этих устройств смешаются и возникнет так называемая коллизия. Такое явление, вероятно, лучше всего проиллюстрировать на рисунке:
Физическая адресация
Обнаружение ошибок
Ещё одна функция канального уровня, обнаружение ошибок, позволяет определить, не произошло ли искажение пакета во время передачи. Для этого перед отправкой пакета на удаленный компьютер к нему добавляется концевик (так называется поле с контрольной суммой в конце пакета) с последовательностью FCS. Метод контроля с применением FCS предусматривает использование циклического избыточного кода (Cyclic Redundancy Check — CRC) для выработки цифрового значения и размещение этого значения в концевике пакета. После прибытия пакета к получателю извлекается значение поля FCS и снова применяется тот же алгоритм, с помощью которого было вычислено это первоначальное значение. Если пакет подвергся каким-либо изменениям, прежнее и новое значения FCS не совпадают, и пакет отбрасывается как ошибочный.
Примечание Контроль с помощью FCS обеспечивает только обнаружение ошибок, но не их устранение. За устранение ошибок отвечает протокол более высокого уровня, как правило, транспортного.
Фреймирование
Термин фреймирование используется для описания организации элементов в пакете (пакет, передаваемый по сети, оформляется в виде фрейма). Эта задача является очень важной. Чтобы понять, с чем это связано, необходимо рассмотреть, как происходит передача данных физическим устройством. Прежде всего следует учесть, что все данные, передаваемые по кабелям сети, являются просто комбинацией битов 0 и 1. Поэтому при получении устройством цепочки битов, такой как 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 и т.д., оно должно определить, какая часть этой цепочки соответствует МАС-адресу, данным или последовательности FCS. Для этого требуется ключ. Физический формат пакета показан на рис.7.
Кроме того, поскольку существуют разные типы фреймов, в протоколах канального уровня на обоих взаимодействующих компьютерах должны использоваться фреймы одинаковых типов, так как лишь при этом условии получатель сможет определить, что фактически содержит полученный им пакет. Пример искажения, возникающего при нарушении формата фрейма, показан на рис.8.
На этом рисунке значения длины полей принятого и фактически ожидаемого фрейма не совпадают. Данный пример показывает, что если один компьютер отправляет пакет в формате 802.3, а другой ожидает поступления пакета в формате протокола доступа к подсети (SUB-Network Access Protocol — SNAP), между ними невозможно установить взаимодействие, поскольку компьютеры безуспешно пытаются найти компоненты пакета, которые фактически представлены в другом формате.
К числу наиболее распространенных протоколов канального уровня относятся практически все протоколы 802 ( 802.2, 802.3, 802.5 и т.д.), LAPP, LAPD и LLC.
Уровень 1 - физический
На физическом уровне выполняются наиболее важные функции передачи данных по сравнению со всеми другими уровнями. К физическому уровню относятся все соединители, кабели, спецификации частот, требования к расстояниям и задержкам при распространении сигналов, регламентируемые напряжения, короче говоря, все физические параметры.
К числу наиболее распространенных протоколов физического уровня относятся EIA/TIA 568А и 568В, RS232, 10BaseT, 10Base2, 1OBase5, 100BaseT и USB.
Одноранговая связь
Специалисты по сетям называют одноранговой связью процесс взаимодействия протокола каждого уровня на компьютере отправителя с соответствующим уровнем на компьютере получателя. Следует отметить, что одинаковые уровни не взаимодействуют непосредственно друг с другом, но обмен данными по сети организован так, как если бы они действительно напрямую связывались друг с другом. К пакету, передаваемому с одного хоста на другой, по мере прохождения по уровням сетевой модели добавляются все необходимые заголовки, а когда этот пакет после его приема снова проходит по уровням модели, но в противоположном направлении, информация в каждом заголовке пакета обрабатывается только тем уровнем, которому соответствует конкретный заголовок. Все остальное на этом уровне рассматривается как данные. Процесс снятия заголовков показан на рис.9 (для обозначения заголовков применяются такие же сокращения, как и на рис.3).
Необходимо еще раз подчеркнуть, что протоколом каждого уровня обрабатывается только заголовок, который относится точно к такому же уровню протокола на другом компьютере. Остальная часть пакета рассматривается им как данные (хотя фактически не является таковой). Поэтому можно считать, что каждый уровень протокола на одном компьютере взаимодействует с соответствующим ему уровнем на другом компьютере.
Общее описание взаимодействия по сети
Наконец, рассмотрим, как происходит обмен данными по сети между двумя компьютерами на каждом уровне (рис.9).
Следует также отметить, что на сетевом уровне (логические) IP-адреса преобразуются в (физические) МАС-адреса, чтобы с ним мог работать протокол более низкого уровня. На канальном уровне пакет снова фрагментируется, но на этот раз преобразуется во фреймы, которые соответствует максимальной единице передачи данных (Maximum Transmission Unit — MTU) передающей среды. На физическом уровне данные передаются в виде электрических сигналов. Принятые данные снова проходят по уровням модели, но в обратном направлении. При этом выполняются действия, обратные тем, которые были выполнены на компьютере отправителя, и в конечном итоге пакет преобразуется в один фрагмент данных размером 256 кбайт в формате, приемлемом для соответствующего приложения.
Другие сетевые модели
Важное значение с точки зрения организации сетей имеет также модель DoD (Department of Defense — Министерство обороны США), так как в основе протоколов TCP/IP лежит не модель OSI, а именно эта модель. Поскольку модель DoD во многом совпадает с моделью OSI, тот факт, что она является фундаментом протоколов TCP/IP, может привести к некоторой путанице при изучении модели OSI. Верхние уровни модели DoD не совпадают с верхними уровнями модели OSI, поэтому в разных книгах можно встретить различные описания порядка расположения протоколов в модели OSI. Но здесь необходимо прежде всего учитывать, что фактически знание того, где должен быть указанный протокол модели OSI, необходимо в основном для успешной сдачи экзаменов; а на практике важнее всего понимание назначения каждого уровня модели.
Модели DoD и OSI
Модели OSI и DoD позволяют наглядно представить процесс сетевого взаимодействия, а компания Cisco применяет в своей работе иерархическую межсетевую модель, которая представляет собой многоуровневое отображение топологического проекта объединенной сети. Эта модель разработана в целях максимального повышения производительности; в то же время она обеспечивает оптимальную отказоустойчивость. Применение этой модели позволяет упростить конструкцию сети путем распределения функций по уровням сетевого проекта. Очевидным недостатком данной модели в сетях небольших и средних размеров является высокая стоимость проекта, но если задача состоит в создании высокопроизводительной, масштабируемой, резервируемой объединенной сети, то применение такого подхода является одним из наилучших способов реализации в проекте поставленных целей.
Открытая сетевая модель OSI (Open Systems Interconnection model) состоит из семи уровней. Что это за уровни, как устроена модель и какова ее роль при построении сетей — в статье.
Модель OSI является эталонной. Эталонная она потому, что полное название модели выглядит как «Basic Reference Model Open Systems Interconnection model», где Basic Reference Model означает «эталонная модель». Вначале рассмотрим общую информацию, а потом перейдем к частным аспектам.
Принцип устройства сетевой модели
Сетевая модель OSI имеет семь уровней, иерархически расположенных от большего к меньшему. То есть, самым верхним является седьмой (прикладной), а самым нижним — первый (физический). Модель OSI разрабатывалась еще в 1970-х годах, чтобы описать архитектуру и принципы работы сетей передачи данных. Важно помнить, что данные передаются не только по сети интернет, но и в локальных сетях с помощью проводных или беспроводных соединений.
На седьмом уровне информация представляется в виде данных, на первом — в виде бит. Процесс, когда информация отправляется и переходит из данных в биты, называется инкапсуляцией. Обратный процесс, когда информация, полученная в битах на первом уровне, переходит в данные на седьмом, называется декапсуляцией. На каждом из семи уровней информация представляется в виде блоков данных протокола — PDU (Protocol Data Unit).
Рассмотрим на примере: пользователь 1 отправляет картинку, которая обрабатывается на седьмом уровне в виде данных, данные должны пройти все уровни до самого нижнего (первого), где будут представлены как биты. Этот процесс называется инкапсуляцией. Компьютер пользователя 2 принимает биты, которые должны снова стать данными. Этот обратный процесс называется декапсуляция. Что происходит с информацией на каждом из семи уровней, как и где биты переходят в данные мы разберем в этой статье.
Первый, физический уровень (physical layer, L1)
Начнем с самого нижнего уровня. Он отвечает за обмен физическими сигналами между физическими устройствами, «железом». Компьютерное железо не понимает, что такое картинка или что на ней изображено, железу картинка понятна только в виде набора нулей и единиц, то есть бит. В данном случае бит является блоком данных протокола, сокращенно PDU (Protocol Data Unit).
Каждый уровень имеет свои PDU, представляемые в той форме, которая будет понятна на данном уровне и, возможно, на следующем до преобразования. Работа с чистыми данными происходит только на уровнях с пятого по седьмой.
Устройства физического уровня оперируют битами. Они передаются по проводам (например, через оптоволокно) или без проводов (например, через Bluetooth или IRDA, Wi-Fi, GSM, 4G и так далее).
Второй уровень, канальный (data link layer, L2)
Когда два пользователя находятся в одной сети, состоящей только из двух устройств — это идеальный случай. Но что если этих устройств больше?
У канального уровня есть два подуровня — это MAC и LLC. MAC (Media Access Control, контроль доступа к среде) отвечает за присвоение физических MAC-адресов, а LLC (Logical Link Control, контроль логической связи) занимается проверкой и исправлением данных, управляет их передачей.
На втором уровне OSI работают коммутаторы, их задача — передать сформированные кадры от одного устройства к другому, используя в качестве адресов только физические MAC-адреса.
Третий уровень, сетевой (network layer, L3)
На третьем уровне появляется новое понятие — маршрутизация. Для этой задачи были созданы устройства третьего уровня — маршрутизаторы (их еще называют роутерами). Маршрутизаторы получают MAC-адрес от коммутаторов с предыдущего уровня и занимаются построением маршрута от одного устройства к другому с учетом всех потенциальных неполадок в сети.
На сетевом уровне активно используется протокол ARP (Address Resolution Protocol — протокол определения адреса). С помощью него 64-битные MAC-адреса преобразуются в 32-битные IP-адреса и наоборот, тем самым обеспечивается инкапсуляция и декапсуляция данных.
Четвертый уровень, транспортный (transport layer, L4)
Все семь уровней модели OSI можно условно разделить на две группы:
- Media layers (уровни среды),
- Host layers (уровни хоста).
Уровни группы Media Layers (L1, L2, L3) занимаются передачей информации (по кабелю или беспроводной сети), используются сетевыми устройствами, такими как коммутаторы, маршрутизаторы и т.п. Уровни группы Host Layers (L4, L5, L6, L7) используются непосредственно на устройствах, будь то стационарные компьютеры или портативные мобильные устройства.
Четвертый уровень — это посредник между Host Layers и Media Layers, относящийся скорее к первым, чем к последним, его главной задачей является транспортировка пакетов. Естественно, при транспортировке возможны потери, но некоторые типы данных более чувствительны к потерям, чем другие. Например, если в тексте потеряются гласные, то будет сложно понять смысл, а если из видеопотока пропадет пара кадров, то это практически никак не скажется на конечном пользователе. Поэтому, при передаче данных, наиболее чувствительных к потерям на транспортном уровне используется протокол TCP, контролирующий целостность доставленной информации.
Для мультимедийных файлов небольшие потери не так важны, гораздо критичнее будет задержка. Для передачи таких данных, наиболее чувствительных к задержкам, используется протокол UDP, позволяющий организовать связь без установки соединения.
При передаче по протоколу TCP, данные делятся на сегменты. Сегмент — это часть пакета. Когда приходит пакет данных, который превышает пропускную способность сети, пакет делится на сегменты допустимого размера. Сегментация пакетов также требуется в ненадежных сетях, когда существует большая вероятность того, что большой пакет будет потерян или отправлен не тому адресату. При передаче данных по протоколу UDP, пакеты данных делятся уже на датаграммы. Датаграмма (datagram) — это тоже часть пакета, но ее нельзя путать с сегментом.
Главное отличие датаграмм в автономности. Каждая датаграмма содержит все необходимые заголовки, чтобы дойти до конечного адресата, поэтому они не зависят от сети, могут доставляться разными маршрутами и в разном порядке. Датаграмма и сегмент — это два PDU транспортного уровня модели OSI. При потере датаграмм или сегментов получаются «битые» куски данных, которые не получится корректно обработать.
Первые четыре уровня — специализация сетевых инженеров, но с последними тремя они не так часто сталкиваются, потому что пятым, шестым и седьмым занимаются разработчики.
Пятый уровень, сеансовый (session layer, L5)
Пятый уровень оперирует чистыми данными; помимо пятого, чистые данные используются также на шестом и седьмом уровне. Сеансовый уровень отвечает за поддержку сеанса или сессии связи. Пятый уровень оказывает услугу следующему: управляет взаимодействием между приложениями, открывает возможности синхронизации задач, завершения сеанса, обмена информации.
Службы сеансового уровня зачастую применяются в средах приложений, требующих удаленного вызова процедур, т.е. чтобы запрашивать выполнение действий на удаленных компьютерах или независимых системах на одном устройстве (при наличии нескольких ОС).
Примером работы пятого уровня может служить видеозвонок по сети. Во время видеосвязи необходимо, чтобы два потока данных (аудио и видео) шли синхронно. Когда к разговору двоих человек прибавится третий — получится уже конференция. Задача пятого уровня — сделать так, чтобы собеседники могли понять, кто сейчас говорит.
Шестой уровень, представления данных (presentation layer, L6)
О задачах уровня представления вновь говорит его название. Шестой уровень занимается тем, что представляет данные (которые все еще являются PDU) в понятном человеку и машине виде. Например, когда одно устройство умеет отображать текст только в кодировке ASCII, а другое только в UTF-8, перевод текста из одной кодировки в другую происходит на шестом уровне.
Шестой уровень также занимается представлением картинок (в JPEG, GIF и т.д.), а также видео-аудио (в MPEG, QuickTime). Помимо перечисленного, шестой уровень занимается шифрованием данных, когда при передаче их необходимо защитить.
Седьмой уровень, прикладной (application layer)
Седьмой уровень иногда еще называют уровень приложений, но чтобы не запутаться можно использовать оригинальное название — application layer. Прикладной уровень — это то, с чем взаимодействуют пользователи, своего рода графический интерфейс всей модели OSI, с другими он взаимодействует по минимуму.
Все услуги, получаемые седьмым уровнем от других, используются для доставки данных до пользователя. Протоколам седьмого уровня не требуется обеспечивать маршрутизацию или гарантировать доставку данных, когда об этом уже позаботились предыдущие шесть. Задача седьмого уровня — использовать свои протоколы, чтобы пользователь увидел данные в понятном ему виде.
Критика модели OSI
Семиуровневая модель была принята в качестве стандарта ISO/IEC 7498, действующего по сей день, однако, модель имеет свои недостатки. Среди основных недостатков говорят о неподходящем времени, плохой технологии, поздней имплементации, неудачной политике.
Первый недостаток — это неподходящее время. На разработку модели было потрачено неоправданно большое количество времени, но разработчики не уделили достаточное внимание существующим в то время стандартам. В связи с этим модель обвиняют в том, что она не отражает действительность. В таких утверждениях есть доля истины, ведь уже на момент появления OSI другие компании были больше готовы работать с получившей широкое распространение моделью TCP/IP.
Вторым недостатком называют плохую технологию. Как основной довод в пользу того, что OSI — это плохая технология, приводят распространенность стека TCP/IP. Протоколы OSI часто дублируют другу друга, функции распределены по уровням неравнозначно, а одни и те же задачи могут быть решены на разных уровнях.
Разделение на семь уровней было скорее политическим, чем техническим. При построении сетей в реальности редко используют уровни 5 и 6, а часто можно обойтись только первыми четырьмя. Даже изначальное описание архитектуры в распечатанном виде имеет толщину в один метр.
Кроме того, в отличие от TCP/IP, OSI никогда не ассоциировалась с UNIX. Добиться широкого распространения OSI не получилось потому, что она проектировалась как закрытая модель, продвигаемая Европейскими телекоммуникационными компаниями и правительством США. Стек протоколов TCP/IP изначально был открыт для всех, что позволило ему набрать популярность среди сторонников открытого программного кода.
Даже несмотря на то, что основные проблемы архитектуры OSI были политическими, репутация была запятнана и модель не получила распространения. Тем не менее, в сетевых технологиях, при работе с коммутацией даже сегодня обычно используют модель OSI.
Вывод, роль модели OSI при построении сетей
В статье мы рассмотрели принципы построения сетевой модели OSI. На каждом из семи уровней модели выполняется своя задача. В действительности архитектура OSI сложнее, чем мы описали. Существуют и другие уровни, например, сервисный, который встречается в интеллектуальных или сотовых сетях, или восьмой — так называют самого пользователя.
Как мы упоминали выше, оригинальное описание всех принципов построения сетей в рамках этой модели, если его распечатать, будет иметь толщину в один метр. Но компании активно используют OSI как эталон. Мы перечислили только основную структуру словами, понятными начинающим.
Модель OSI служит инструментом при диагностике сетей. Если в сети что-то не работает, то гораздо проще определить уровень, на котором произошла неполадка, чем пытаться перестроить всю сеть заново.
Зная архитектуру сети, гораздо проще ее строить и диагностировать. Как нельзя построить дом, не зная его архитектуры, так невозможно построить сеть, не зная модели OSI. При проектировании важно учитывать все. Важно учесть взаимодействие каждого уровня с другими, насколько обеспечивается безопасность, шифрование данных внутри сети, какой прирост пользователей выдержит сеть без обрушения, будет ли возможно перенести сеть на другую машину и т.д. Каждый из перечисленных критериев укладывается в функции одного из семи уровней.
Сетевая модель OSI (англ. open systems interconnection basic reference model) - концептуальная модель, которая обобщает и стандартизирует представление средств сетевого взаимодействия в телекоммуникационных и компьютерных системах, независимо от их внутреннего устройства и используемых технологий. Модель OSI была разработана в 1984 году Международной организацией стандартизации (ISO). Основной целью ее создания был поиск решения проблемы несовместимости устройств, использующих различные коммуникационные протоколы, путем перехода на единый, общий для всех систем стек протоколов.
OSI состоит из двух основных частей:
- абстрактная модель сетевого взаимодействия (семиуровневая модель)
- набор специализированных протоколов взаимодействия
Концепция семиуровневой модели была описана в работе Чарльза Бахмана. Данная модель подразделяет коммуникационную систему на уровни абстракции (англ. "abstraction layers"). В модели OSI средства взаимодействия делятся на семь уровней: прикладной, представления, сеансовый, транспортный, сетевой, канальный и физический. Каждый уровень:
- имеет дело с совершенно определенным аспектом взаимодействия сетевых устройств
- обслуживает уровень, находящийся непосредственно над ним, и обслуживается уровнем, находящимся под ним
Протоколы связи же решают две задачи: они обеспечивают взаимодействие между сущностями, находящимися на одном и том же уровне абстракции, но на разных хостах и абстрактно описывают функционал, который (N-1)-ый уровень предоставляет (N)-ому, где N - один из 7 уровней модели OSI. В рамках модели, любой протокол может взаимодействовать либо с протоколами своего уровня (горизонтальные взаимодействия), либо с протоколами уровня на единицу выше/ниже своего уровня (вертикальные взаимодействия).
Каждый из семи уровней характеризуется типом данных (PDU, сокращение от англ. protocol data units), которым данный уровень оперирует и функционалом, который он предоставляет слою, находящемуся выше него. Предполагается, что пользовательские приложения обращаются только к самому верхнему (прикладному) уровню, однако на практике это выполняется далеко не всегда.
Прикладной уровень выполняет следующие функции:
- Позволяет приложениям использовать сетевые службы (например удалённый доступ к файлам)
- Идентификация пользователей по их паролям, адресам, электронным подписям
- Предоставление приложениям информации об ошибках
- Определение достаточности имеющихся ресурсов
- Управление данными, которыми обмениваются прикладные процессы и синхронизация взаимодействия прикладных процессов
К числу наиболее распространенных протоколов верхних трех уровней относятся:
Уровень представления занимается представлением данных, передаваемых прикладными процессами в нужной форме. Данные, полученные от приложений с прикладного уровня, на уровне представления преобразуются в формат подходящий для передачи их по сети, а полученные по сети данные преобразуются в формат приложений. Также кроме форматов и представления данных, данный уровень занимается конвертацией структур данных, используемых различными приложениями. Другой функцией, выполняемой на уровне представлений, является шифрование данных, которое применяется в тех случаях, когда необходимо защитить передаваемую информацию от доступа несанкционированными получателями.
- Генерация запросов на установление/завершение сеансов взаимодействия прикладных процессов
- Согласование представления данных между прикладными процессами
- Конвертация форм представления данных
- Шифрование данных
Примеры протоколов данного уровня:
- AFP — Apple Filing Protocol
- ICA — Independent Computing Architecture
- LPP — Lightweight Presentation Protocol
- NCP — NetWare Core Protocol
Сеансовый уровень контролирует структуру проведения сеансов связи между пользователями. Он занимается установкой, поддержанием и прерыванием сеансов, фиксирует, какая из сторон является активной в данный момент, осуществляет синхронизацию обмена информацией между пользователями, что также позволяет устанавливать контрольные точки.
На сеансовом уровне определяется, какой будет передача между двумя прикладными процессами:
- полудуплексной (процессы будут передавать и принимать данные по очереди)
- дуплексной (процессы будут передавать данные, и принимать их одновременно)
Примеры протоколов сеансового уровня:
- ADSP (AppleTalk Data Stream)
- ASP (AppleTalk Session)
- RPC (Remote Procedure Call)
- PAP (Password Authentication Protocol)
Транспортный уровень предназначен для передачи надежной последовательностей данных произвольной длины через коммуникационную сеть от отправителя к получателю. Уровень надежности может варьироваться в зависимости от класса протокола транспортного уровня. Так например UDP гарантирует только целостность данных в рамках одной датаграммы и не исключает возможности потери/дублирования пакета или нарушения порядка получения данных; TCP обеспечивает передачу данных, исключающую потерю данных или нарушение порядка их поступления или дублирования, может перераспределять данные, разбивая большие порции данных на фрагменты и наоборот, склеивая фрагменты в один пакет.
Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов. В функции транспортного уровня входят:
- Управление передачей по сети и обеспечение целостности блоков данных
- Обнаружение ошибок, частичная их ликвидация
- Восстановление передачи после отказов и неисправностей
- Разбиение данных на блоки определенного размера
- Предоставление приоритетов при передаче блоков (нормальная или срочная)
- Подтверждение передачи.
Транспортный уровень использует сегменты или датаграммы в качестве основного типа данных.
- TCP (Transmission Control Protocol)
- UDP (User Datagram Protocol)
- SCTP (Stream Control Transmission Protocol)
Сетевой уровень предоставляет функционал для определения пути передачи пакетов данных между клиентами, подключенными к одной коммуникационной сети. На данном уровне решается проблема маршрутизации (выбора оптимального пути передачи данных), трансляцией логических адресов в физические, отслеживанием неполадок в сети.
Сетевой уровень выполняет функции:
- Обнаружение и исправление ошибок, возникающих при передаче через коммуникационную сеть
- Упорядочение последовательностей пакетов
- Маршрутизация и коммутация
- Сегментирование и объединение пакетов
Наиболее часто на сетевом уровне используются протоколы:
- IP/IPv4/IPv6 (Internet Protocol) сетевой протокол стека TCP/IP
- IPX (Internetwork Packet Exchange, протокол межсетевого обмена)
- AppleTalk
Канальный уровень предназначен для передачи данных между двумя узлами, находящихся в одной локальной сети. Роль PDU исполняют фреймы (англ. frame). Фреймы канального уровня не пересекают границ локальной сети, что позволяет данному уровню сосредоточиться на локальной доставке (фактически межсетевой доставкой занимаются более высокие уровни).
Заголовок фрейма формируется из аппаратных адресов отправителя и получателя, что позволяет однозначно определить устройство, которое отправило данный фрейм и устройство, которому он предназначен. При этом никакая часть адреса не может быть использована, чтобы определить некую логическую/физическую группу к которой принадлежит устройство.
Канальный уровень состоит из двух подуровней: LLC и MAC.
Канальный уровень выполняет функции:
- LLC Multiplexing: Интерфейс между сетевым уровнем и MAC, чтобы несколько различных протоколов сетевого уровня могли сосуществовать.
- LLC Flow control: Механизм ограничении скорости передачи данных при медленном приёмнике
- LLC Error control: Определение (и иногда исправление) ошибок с помощью чексумм
- MAC Adressing mechanism: Адрессация на основе уникальных MAC-адресов
- MAC Channel access control mechanism: Предоставляет протокол множественного доступа
Наиболее часто на канальной уровне используются протоколы:
- PPP (Point-To-Point Protocol, протокол прямого соединения между двумя узлами)
- SLIP (Serial Line Internet Protocol, предшественник PPP, который всё ещё используется в микроконтроллерах)
- Ethernet II framing
Физический уровень описывает способы передачи потока бит через дата линк, соединяющий сетевые устройства. Поток байт может быть сгруппирован в слова и сконвертирован в физический сигнал, который посылается через некоторое устройство.
Здесь специфицируются такие низкоуровневые параметры как частота, амплитуда и модуляция.
Физический уровень выполняет функции:
- Побитовая доставка
- Физическое кодирование (способ представления данных в виде импульсов)
- LLC Error control: Определение (и иногда исправление) ошибок с помощью чексумм
- MAC Adressing mechanism: Адрессация на основе уникальных MAC-адресов
- MAC Channel access control mechanism: Предоставляет протокол множественного доступа
Наиболее часто на физическом уровне используются протоколы:
- Ethernet physical layer (семейство стандартов с оптическими или электрическими свойствами соединений между устройствами)
- USB
Инкапсуляция (англ. encapsulation) -- метод проектирования протоколов в которой логически независимые функции сети не зависят от реализации нижележащих механизмов с помощью включения этих механизмов в более высокоуровневые объекты.
Физический уровень ответственен за физическую передачу данных. IP предоставляет глобальный способ адресации устройств. TCP добавляет возможность выбора приложения (порт).
Во время инкапсуляции каждый уровень собирает свой собственный PDU, добавляя некоторый заголовок с контрольной информацией к PDU с более высокого уровня.
Читайте также: