Конспект лекции 5. Организация взаимодействия устройств в сети. Модель OSI.
Модель OSI (Open System Interconnected) - концептуальная модель организации сети, которая описывает уровни сети и их функции, для взаимодействия устройств в сети.
На практике модель OSI не используется, однако она служит стандартом для организации других моделей. Её неиспользование на практике не означает, что ей не пользуются вовсе. Эта модель замечательно подходит для описания всех процессов, происходящих в компьютерных сетях.
Модель OSI является открытой системой, т.е. она основана на открытых(общедоступных) спецификациях(стандартах).
В общем случае, модель подразумевает разделение на уровни. Уровни в модели OSI расположены иерархически, один за другим. Уровень определяет задачи более общего вопроса.
Уровни модели OSI предоставляют вышестоящим уровням так называемый сервис. Сервис – это набор услуг, предоставляемых уровнем. Услуга в данном случае описывает какую-либо функцию, предназначенную для вышестоящего уровня.
Каждый уровень оперирует своим набором данных называемой единицей данных или PDU (Protocol Data Unit).
Пример модели OSI
Представим себе модель OSI как последовательный конвейер, на вход которого подаётся некоторая порция данных. Задача конвейера – подготовить данные для отправки, а также принять подготовленные данные. Так как в сети необходимо наличие по крайней мере двух компьютеров, то и конвейеров, построенных по шаблону OSI будет два. Один будет подготавливать данные к отправке, другой – принимать их (Нужно учесть, что каждый участник в сети может как принимать, так и отправлять данные). Подготовка данных заключается в прохождении семи ступеней, т.е. этот конвейер состоит из семи этапов. Каждый из этапов выполняет свои функции и по результату их выполнения (или невыполнения) добавляет некоторую служебную информацию, которую потом «прочитает» получатель.
Рассмотрим устройство уровней.
Уровни модели OSI
1 уровень - Физический
Физичейский уровень отвечает за среду передачи данных и описывает процесс передачи данных в физической среде.
На этом уровне описывается, например, какую частоту сигнала выбрать, какую кодировку данных назначить, какой кабель или беспроводную среду установить в сети.
Как нетрудно догадаться, единцей данных на этом уровне является бит.
Для того, чтобы узнать, как работают устройства на физическом уровне, необходимо разбираться в физике, электронике, электротехнике и радиотехнике.
Этот уровень не образует никакой служебной информации для вышестоящих уровней. Он просто передаёт электрический сигнал.
Этот уровень использует различные устройства, такие как: модем, усилитель, терминатор, концентратор и т.п. Про то, какие устройства используются при построении и как они устроены, мы поговорим в следующих лекциях.
2 уровень - канальный
Канальный уровень отвечает за передачу данных между компьютерами. Этот уровень образует сеть компьютеров (т.е. инфокоммуникационных устройств). Компьютеры получают доступ к другим устройствам в такой сети с помощью уникального идентификатора - номера. То есть для отправки данных необходимо знать номер компьютера получателя.
Номера компьютера называются MAC-адресами. Они определяются на этапе производства сетевого устройства, т.е. выдаются на заводе. Про MAC-аддресацию мы поговорим в следующих лекциях.
Этот уровень добавляет служебную информацию к данным. В основном это адрес компьютера отправителя и адрес компьютера получателя.
В основном, устройство, которое реализует функции канального уровня является коммутатор. В отличие от концентратора, коммутатор передаёт данные конкретному устройству. Это реализуется за счёт того, что коммутатор имеет процессор и память, необходимые для хранения сопоставления всех номеров компьютеров, находящихся в сети с их физическими портами (физическими портами, к которому подключается кабель от компьютера).
PDU канального уровня - кадр (frame).
3 уровень - сетевой
Если канальный уровень отвечает за связь компьютеров в сети, то сетевой отвечает засвязь между сетями (например теми, которые были построены на канальном уровне). Да... сеть, состоящая из сетей, тоже является сетью. В таком случае сеть, входящая в состав основной сети называется подсетью.
На этом уровне для передачи данных от одного компьютера к другому уже недостаточно знать только номер компьютера. Поэтому используют составной номер - адрес, состоящий из номера сети и номера компьютера в этой сети.
Сетевой уровень решает задачу маршрутизации.
Маршрутизация - это процесс определения маршрута для передачи данных.
В общем, устройство, которое отвечает за маршрутизацию в сети, называется маршрутизатором.
PDU сетевого уровня - пакет (packet).
4 уровень - транспортный
Транспортный уровень решает задачу предоставления данных приложению.
Все протоколы, начиная с транспортного уровня и выше, реализуются программными средствами конечных узлов сети — компонентами их сетевых операционных систем. В качестве примера транспортных протоколов можно привести протоколы TCP и UDP стека TCP/IP:
TCP (Transmission Control Protocol) - протокол транспортного уровня, обеспечивающий гарантированную передачу данных. Используется, например, при передаче файлов, т.к. для их безошибочного отображения необходимо сохранить в целостности каждый бит.
UDP (User Datagram Protocol) - протокол транспортного уровня, который передает данные без проверки на целостность. Используется тогда, когда вопрос скорости передачи данных более важен, а вопросы целостности данных некритичны. Используется, например, для организации видеоконференций или он-лайн игр.
На транспортном уровне появляется понятие порта.
Порт - это программный интерфейс, который необходим для передачи данных между программами (соответственно теми программами, которые запущены на компьютере). Чаще всего представляется в виде числа. Про понятие протокол мы поговорим в следующих лекциях.
Как вы уже смогли догадаться (исходя из того, что уровень реализуется программно), этот уровень не использует отдельно выделенных устройств. А программа, которая занимается вопросами регулирования портов, называется брандмауэр.
PDU транспортного уровня - дейтаграмма (datagram) или, по другому, сегмент.
5 уровень - сеансовый
Сеансовый уровень отвечает за поддержание сеанса связи между программами, позволяя им взаимодействовать продолжительное время.
Дело в том, что постоянно поддерживать связь между приложениями - это очень дорого, относительно вычислительных мощностей компьютеров. В случаях, когда в сети находится несколько компьютеров - то потеря производительности малозаметна. Но когда в сети находятся сотни, тысячи компьютеров, необходимо рационально подходить к вопросам распределения вычислительных ресурсов сервера.
В задачи пятого уровня входит периодическая проверка соединения, восстановление соединения в случае его разрушения, либо рестарт, если восстановление не возможно.
Так же, сеансовый уровень решает вопросы безопасного обмена данными. Именно на этом уровне реализуется шифрование сетевого трафика от злоумышленников.
PDU сеансового уровня - данные (data).
Уровень 6 - представительский
Представительский уровень занимается выбором кодировки для передаваемых данных. Например, если передаётся картинка JPEG-формата, то передаваемые данные необходимо декодировать в формат JPEG. Соответственно, компьютер получатель должен знать, как представлять JPEG. Если на компьютере получателя отсутствует данный декодировщик, то он не сможет отобразить картинку.
Протоколы, которые находятся на этом уровне, чаще всего представляют свод правил и стандартов передаваемой информации. В случаях, когда вводится стандартизация информации, вероятность неправильного отображения информации снижается к минимуму.
PDU представительского уровня - данные (data).
Уровень 7 - прикладной
Прикладной уровень (ещё этот уровень могут называть уровнем приложений) решает вопросы доступа пользователя к ресурсам сети. Такие интерфейсы реализуется с помощью различных протоколов, которые используются в программах.
Для взаимодействия браузера и веб-сервера чаще всего используется протокол HTTP и его разновидности.
Вопреки ожиданиям, приложением прикладного уровня не является браузер. Это объясняется тем, что приложения прикладного уровня должны быть сетевыми - загружаться из сети или выполнять своё назначение только с доступом к сети. Браузер - это прикладное ПО. Если вы попробуете запустить браузер без доступа к сети, то он 100% откроется. Зато YouTube или VK являются сетевыми приложениями. Их работа невозможна без доступа к сети (сетью не обязательно является Интернет).
Протоколы прикладного уровня работают и обрабатываются непосредственно приложением клиента. В таком случае, ничего не мешает вам написать свой протокол, который будет добавлять особую служебную информацию вашего приложения. Поэтому, протоколов прикладного уровня бессчётное количество.
PDU прикладного уровня - данные (data).
Общие сведения о модели OSI
Для межуровневого взаимодействия от ниже стоящего уровня к высшему используется сервис.
Сервис - это услуги или функции, которые каждый уровень предоставляет вышестоящему.
Между смежными уровнями (одинаковыми уровнями между двумя устройствами) используется логическая связь, называемая интерфейсом.
Интерфейс - это совокупность методов и средств, необходимых для взаимодействия. Интерфейс схож с понятием протокола.
Протокол - это набор правил и соглашений, необходимых для того, чтобы определённый уровень одного устройства смог разшифровать то, что отправил ему информацию для того уровня другого компьютера.