Всем привет, и с вами снова Бородач! У нас очередной курс «Для самых маленьких», и поговорим мы про модель OSI. Многие системные администраторы и юные IT инженеры что-то слышали про это, но боялись спросить. Сразу скажу, что любой специалист, программист, инженер или администратор, работающий с сетями и интернетом, должен на зубок знать всё то, о чем я расскажу ниже. Статья подойдет как для специалистов, так и для чайников.
OSI модель, или модель стека протоколов TCP/IP, или модель открытых систем, или модель сетевого взаимодействия – это ядро, на котором управляется и взаимодействует любая современная сеть и подключенные к ней устройства. Поэтому её желательно знать всем тем, кто работает в «сетевой» индустрии. Без данных знаний даже в том же программировании будет достаточно тяжело.
Модели OSI позволяют взаимодействовать устройствам в компьютерной сети по определенным правилам и протоколам. Если раскрыть расшифровку аббревиатуры термина, то получится английская надпись: «Open Systems Interconnection Basic Reference Model», – что дословно можно перевести как: «Эталонная Модель Взаимодействия Открытых Систем». В модели существует 7 уровней, которые используются для передачи информации от одного устройства к другому.
Уровни
Представим себе, что у нас есть два компьютера. Один принадлежит Василию, а второй Диме. Они подключены к одной сети. Василий отправил письмо напрямую к Диме. Теперь встает вопрос – а как теперь это письмо передать по сетевому кабелю? Как мы можем вспомнить компьютер может понимать только одну информацию – нулей (0) и единиц (1).
Также и по кабелю мы не можем передать информацию в обычном буквенном виде. И то если письмо содержит только буквы. Тогда встает вопрос о том, чтобы как-то перевести данное письмо на второе устройство. Именно для этих целей и нужна эталонная модель OSI с 7 уровнями.
При отправке письма информация проходит 7 стадий от верхнего к нижнему уровню, чтобы перевести его в обычные биты. Далее эти биты передаются по кабелю к компьютеру Димы. И уже его устройство делает обратный процесс – перевод битов в понятное для человека письмо.
При этом чаще всего используются протоколы TCP/IP. Когда вы будете читать любую информацию по данной теме, смотреть таблицы, то помните, что сейчас используются именно протоколы модели TCP/IP. Те же протоколы, которые описаны в таблицах, есть, но они уже давно устарели и являются просто ознакомительной информацией.
Давайте взглянем на все уровни OSI 7, и вам станет немного понятнее, о чем я говорю:
- Уровень 7 – Прикладной – application.
- Уровень 6 – Представительский – presentation.
- Уровень 5 – Сеансовый – session.
- Уровень 4 – Транспортный – transport.
- Уровень 3 – Сетевой –
- Уровень 2 – Канальный – data link.
- Уровень 1 – Физический – physical layer.
Нумерация идет сверху вниз от высокого до низшего уровня: от седьмого прикладного уровня до первого – физического.
ПРИМЕЧАНИЕ! Для специалистов я советую выписать и запомнить все уровни в нужном порядке. Также нужно запомнить и английские названия, так как они часто встречаются в книгах и на иностранных порталах, посвященных данной тематике.
Каждый уровень выполняет определенные цели для перевода информации из одного вида в другой. Также вы можете видеть, что информация передается в разном виде. Почти у каждого уровня есть свой PDU (protocol data unit) или единица измерения информационных данных. Например, на физическом (самом низком уровне) – это обычные биты или последовательность нулей и единиц, которые уже можно передавать по кабелю.
Почти каждый сетевой уровень оперирует своими протоколами данных. Можно посмотреть примерную последовательность перехода информации от одного вида PDU в другой:
- С седьмого по пятый уровень – идет операция с данными.
- Далее на транспортном уровне данные переводятся в сегменты или дейтаграммы.
- На сетевом уровне они переводятся в пакеты.
- Далее идет перевод в кадры или фреймы.
- Ну и в самом конце вся информация переводится в обычные биты.
Также, исходя из таблицы, вы можете заметить два названия:
- Media Layers (нижние уровни) – чаще всего уже используются в коммутаторах, маршрутизаторах, хабах – где идет задача передачи информации по кабелю.
- Host Layers (верхние уровни) – используются уже на самих устройствах: телефонах, планшетах, компьютерах, ноутбуках и т.д.
Это примерное разделение всех уровней на две градации. Самые интересные из уровней – это как раз класс «Media Layers», так как ими чаще всего и оперируют сетевые инженеры. И они же за них отвечают головой.
ПРИМЕЧАНИЕ! Вы можете посмотреть в таблицу на протоколы модели OSI, и вам станет примерно понятен уровень взаимодействия данных при передаче и приеме.
Принцип работы
Для удобства представления работы 7-ми уровней модели OSI давайте посмотрим на картинку ниже.
У нас есть два компьютера, которые на определенном уровне могут взаимодействовать только по протоколам. Можно сказать – это определенные вид данных, который понятен компьютерам на выделенном уровне. Например, на физическом уровне модели OSI используются протоколы, а данные передаются битами. На том же канальном уровне модели OSI информация передается кадрами используя свои протоколы.
Но для перевода информации от одного уровня к другому используются специальные службы. Также обратите внимание, что на транспортном уровне данные впервые разбиваются на сегменты. Каждый сегмент имеет «нумерованную» метку. Данная метка нужна, чтобы второе принимающее устройство поняло – в каком порядке склеивать эти сегменты, чтобы получить нужные данные. Далее на других уровнях идет разбиение на пакеты, кадры и в самом конце на биты. Пакеты, кадры также имеют свои очередные метки.
Немножко поподробнее о том, каким образом идет перевод информации с одного уровня на другой. Советую прям вникнуть в эту информацию, так как это нужно для понимания всей сути модели OSI. Если что-то будет непонятно, то прочтите её ещё раз или можете спросить меня какие-то нюансы ниже в комментариях. Чтобы было наглядно понятнее, давайте посмотрим на картинку ниже – тут представлена схема перевода информации к разному виду по всем уровням сетевой модели OSI.
- Первые 3 верхних уровня: прикладной, представительский и сеансовый – оперируют данными почти в чистом виде. Поэтому про них говорить нет смысла. Но я напишу о них пару строк в самом конце статьи.
- Далее на транспортном уровне OSI с помощью служб данные переходят в Сегменты (Дейтаграммы). Посмотрите внимательно как это происходит. Идет разбиение на несколько сегментов. Каждому сегменту приписывается заголовок, которые нужен для того, чтобы знать в каком порядке нужно соединять данные сегменты в будущем. Можно сказать, что сегмент – это фрагмент данных с заголовком.
- На этом этапе из транспортного уровня сегменты переводятся в пакеты. Это происходит достаточно просто – каждому сегменты, приписывается свой заголовок пакета. Наверное, вы уже заметили, что наша информация растет в размерах. Как раз из-за дописания заголовков. В итоге пакеты имеют больший размер чем сегменты.
- Далее информация из пакетов переходит на нижележащий канальный уровень. И так давайте перечислим все то, что у нас тут есть:
- Сегменты – данные с заголовком сегмента.
- Заголовок пакета, который расположен выше сегмента.
- Заголовок кадра, который приписывается пакету.
- Подсчитывается контрольная сумма и приписывается каждой доле информации. Она необходима для того, чтобы принимающая информация поняла, что получила нужную информацию. В общем для проверки. Если контрольная сумма будет неправильной, то принимающий компьютер может запросить повторную отправку данных.
- Ну и в самом конце все кадры будут переведены в биты и отправлены по кабелю.
Весь этот процесс запаковки данных называется инкапсуляцией данных. Когда информация дойдет до принимающего компьютера начнется обратный процесс – декапсуляции данных, которая проходит по той же схеме, только в обратно порядке.
Уровень 1 – Физический
Физический или первый уровень – является самым низшим уровнем, так как передаваемая информация имеет вид нулей и единиц. При этом могут использоваться различные протоколы, от которых зависит вид этих самых нулей и единиц. На данном уровне может определяться топология сетей и передача данных по ним.
Разделяют два вида передачи битовых потоков:
- Дуплексная – когда устройство может одновременно принимать и отправлять данные. Например, во время игры, когда приложению нужно постоянно получать и отправлять информацию. По-другому ещё называется – двунаправленная передача.
- Полудуплексная – когда устройство может только принимать, либо отправлять данные. Можно сравнить с потоком. Ещё называют – однонаправленная передача данных.
На физическом уровне на данный момент используют несколько сред. При кабельном подключении используют витую пару или оптоволокно. Коаксиальный кабель используется, но реже. Есть ещё беспроводная среда, в которой используются радиоволны: 802.11 Wi-Fi, Bluetooth, DSL, GSM и т.д.
Тут нужно определять не только среду, но и тип подключения (портов), а также дальность, на которую можно передать информацию при использовании кабельной или беспроводной среды.
Советую почитать про среды физического уровня отдельно:
Уровень 2 – Канальный
Данный уровень в семиуровневой модели является одним из самых главных, так как тут появляется адресация. Чтобы знать, куда нужно передавать информацию в сети, которая может состоять из сотни устройств – нужно использовать адреса. На канальном уровне используются MAC-адреса.
Также этот уровень умеет связывать два устройства с помощью последовательности команд. С помощью команд можно запросить повторную отправку данных, если они пришли не в том виде, или контрольная сумма не прошла на определенном кадре. Именно на канальном уровне чаще всего работают коммутаторы, так как адресация между устройствами идет именно с помощью таблицы коммутации, в которой содержатся MAC-адреса подключенных устройств.
Советую более подробно прочесть про коммутатор в этой статье.
Уровень 3 – Сетевой уровень
Сетевой уровень работает с протоколами, которые используют IP адресацию. К таким устройствам относят почти все оборудование, но чаще в пример приводят роутеры (маршрутизаторы). Есть, конечно, и коммутаторы, которые работают на данном уровне.
Сетевой уровень решает важную задачу передачи пакетов нужному узлу. Например, отдаленный компьютер может находиться в другой подсети или вообще в другой сети. Тогда для отправки пакетов и определяется оптимальный путь до конечного узла.
Обязательно читаем подробную статью про роутер.
Уровень 4 – Транспортный
Транспортный уровень – позволяет напрямую обмениваться данными между двумя узлами. Например, протокол TCP используется для передачи четкой информации: картинки, тексты, файлы. UDP же чаще всего используются в потоках: видео, аудио, онлайн-игры и т.д.
При этом часто используется сквозное соединение, когда данные отправляются напрямую. Также транспортный уровень первый, который взаимодействует с прямыми данными и сеансовым уровнем.
Например, для связи устройств в канальном уровне используется физическая топология сетей. На сетевом уровне логическая топология. А вот на данном уровне идет прямая связь «узел-узел». Например, если вы заходите на какой-то сайт, то вы напрямую связываетесь с определённым сервером через DNS или IP адрес.
Уровень 5 – Сеансовый
Окончательно переводит сегменты или дейтаграммы в уже понятные компьютеру данные. Также на этом этапе может быть разрыв прямой связи между отправляющим или передающим компьютером.
Уровень 6 – Представительский
Окончательно переводит информацию к определенному виду данных, уже понятному для человека. Один из примеров – это кодировка текста. Когда данные приходят в кодировке ASCII, а их нужно перевести в UTF-8 или в другой вид.
Уровень 7 – Прикладной уровень
Уровень, который представляет данные в презентабельном для человека виде. Именно этот уровень также обменивается информацией напрямую с пользователем. Один из часто встречаемых протоколов на последнем уровне – это протокол HTTPS, которые позволяет представлять и читать данные в браузере.
Спасибо большое, помогли сдать экзамены по сетям)
Ну теперь понятно хоть стало.
Вот зачем столько этапов – не пойму, это же увеличивает отклик между отправкой и приемом. Плюс надо все это обработать
Спасибо за подробное изложение! Далее включаем мозг и обновляемся!