#матчасть



🏎 Модель OSI. В действии.



В продолжение записей [1] и [2].



Вертикали и горизонтали

🪆 Итак, у нас есть 7 уровней модели OSI. На каждом компьютере присутствуют компоненты всех семи уровней (программные модули и устройства). Друг с другом эти уровни на одном компьютере общаются последовательно и по вертикали: каждый уровень получает данные от верхнего, обрабатывает их и передаёт нижнему. Причем, полученные сверху данные воспринимаются просто как опечатанный ящик с грузом, который текущий уровень после обработки помещает в свой "ящик", опечатывает и передаёт ниже. Матрёшка — это подходящее слово. Этот процесс называется инкапсуляцией и продолжается вплоть до первого уровня, где эта матрёшка с данными уже физически "уедет" на другой компьютер, а там процесс будет запущен в обратную сторону — каждый уровень, получив ящик снизу, будет его вскрывать, обрабатывать содержимое и передавать его выше. Это называется декапсуляция.



↔️ А вот между собой одноранговые уровни на разных компьютерах общаются по горизонтали. Первый уровень — с первым, ... , седьмой — с седьмым. Это логическое взаимодействие. И именно N-й уровень на одной стороне поймёт, что хотел сказать N-й уровень на другой стороне. Именно N-й уровень является получателем информации от N-го уровня с соседнего компьютера. Для остальных уровней эта информация — просто непонятный черный ящик, который нужно доставить. Правила такого горизонтального взаимодействия между одноранговыми уровнями называют сетевым протоколом.



Пример взаимодействия

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

Пусть мы хотим открыть страничку сайта в браузере (часть деталей я буду опускать, чтобы сосредоточиться именно на работе модели OSI).



👨‍💻 Уровень 7. Прикладной

Мы набираем в адресной строке "www.primer.ru". Наш браузер формирует запрос для веб-сервера "Пришли главную страницу своего сайта". Запаковывает этот запрос в Ящик №7 и передаёт его ниже.



Уровни 6 и 5 пропустим, потому что, как говорилось ранее, их работа часто "вшита" в 7 уровень. Так, в данном примере, на 6 уровне (Представления) определены форматы текста и картинок, из которых состоит страница сайта.



🚚 Уровень 4. Транспортный

Запаковывает Ящик №7 в свой Ящик №4, на котором пишет "Для веб-сервера на той стороне. Готов обмениваться данными" (ведь помимо веб-сервера на том же удалённом сервере могут быть и другие сервисы — надо знать, кто из них получатель). Спускает этот ящик ниже.



🗺 Уровень 3. Сетевой

Определяет, где находится целевой сервер, и куда нужно направить данные, чтобы они к нему попали. Запаковывает Ящик №4 в свой Ящик №3, и на нём пишет "Передать по такому-то IP-адресу. Маршрут такой-то". Спускает этот ящик ниже.



🛣 Уровень 2. Канальный уровень

Запаковывает Ящик №3 в свой Ящик №2, готовит его для отправки по каналу связи (тоже наклеивает на него специальную информацию) и передаёт ниже.



⚡️Уровень 1. Физический уровень

С помощью электрических сигналов, лазера или радиоволн "матрёшка из ящиков" передаётся на другой компьютер.



⬆️ После получения посылки на той стороне она "распаковывается" снизу вверх — каждый уровень открывает свой ящик и передаёт содержимое выше, вплоть до прикладного уровня. На 7 уровне "живёт" веб-сервер, который и получает исходный запрос на показ страницы сайта. В ответ он запаковывает нужную страницу в свой Ящик №7 и передаёт его ниже — процесс повторяется.



🤨 На первый взгляд — не очень просто, накрутили что-то эдакое. В следующей публикации разберём, зачем всё так придумали, и подведём итоги.



@digitaltea | про IT доступно