Модель OSI понимание того, где исполняется какой уровень

Не понимаю,какой уровень где(Провода, маршрутизатор, коммутатор, операционная система) исполняется. В моём понимании происходит это так:

  1. Уровень приложения - прикладной софт, под user-ом имеет интерфейс для взаимодействия по сети, больше ничего софту про сеть знать не надо - http например. Контракт есть - поехали. Это в ОС
  2. Уровень представления - помечаем, что данные надо интерпретировать как json например и отдаём их из уровня приложения в формате json. Это всё ещё в ОС под user
  3. Сеансовый уровень это уже ядро, у него есть интерфейс, чтобы дать сигнал уровням ниже об открытии сеанса и получить ответ что сеанс открыт и отдаёт http запрос и json с ним на транспортный уровень
  4. Транспортный уровень тоже в ядре ос имеет интерфейс от уровней ниже и может получить информацию о пропускной способности , задержках и по этой информации нарезать запрос и его тело на блоки в соответствии с какими-то(какими? )протоколами, добавить свои хедеры и тп
  5. Сетевой уровень режет блоки на пакеты, если блоки слишком большие(?почему транспортный не мог сделать нормальные блоки?), но тем не менее дополнительно упаковывает блоки(даже если не нарезал??) в пакеты и добавляет туда информацию о получателе(ip адрес?). То есть у этого уровня есть интерфейс к уровням ниже для того, чтобы понять в какой подсети находится получатель, выяснить его ip шлюза по умолчанию(это же роутер?) и видимо ip получателя в подсети.
  6. Канальный нарезает пакеты в кадры, видимо чтобы добавить ещё больше хедеров(вопрос каких),и кидает кадры на физический уровень и следит, чтобы они верно преобразовались в биты на физ уровне - (операционная ситсема?)
  7. физ уровень - (сетевая карта??) - преобразует биты в электрические сигналы и отправляет по ip подсети, который был указан на сетевом уровне, подсеть принимает, распаковывает и внутри себя ищет по таблице маршрутизации (видимо на роутере??) нужного получателя и сетевая карта получателя получает данные от роутера в виде электрических сигналов и идёт обратный процесс.

Подскажите пожалуйста, в чём я ошибся и доп вопросы помечены в скобках. К сожалению 80% материала в интернете слишком поверхностна и я ничего не понимаю

Аналогичные вопросы на руСО почему-то популярностью не пользуются и походу в принципе её мало кто по честному понимает


Ответы (1 шт):

Автор решения: eri

Уровни считаются в обратном порядке.

  1. Интерфейс между компьютером и человеком - картинка на экране. Отрисовка изображения и текста - выполняется в ос раньше, но сейчас часто приложения сами рендерят шрифты и картинки. Переводит байты в буквы.

  2. Форматы файлов. Json, jpeg, HTML. В приложении через библиотеки.

  3. Сеансовый - протоколы передачи того что на уровень выше. Http, sip, rtp . выполняются приложением.

  4. Транспортный выполняется в ос. TCP соединения. Но транспортный может выполнятся и в приложении например при https транспортный уровень присутствует 2 раза.

  5. Сетевой уровень представлен в компьютерах IP. Позволяет связать незнакомые компьютеры друг с другом и маршрутизировать передачу через роутеры. Выполняется в ос.

  6. Канальный уровень выполняется в драйвере. Там видно только соседей по сети. Представлен мак адресами и протоколом arp к примеру.

  7. Физический исполняется в железе.

Любой уровень кроме крайних может быть на практике запихнут в любой другой. Уровни могут присутствовать несколько раз.

При ВПН канальный уровень запихнут в транспортный. Вот на SSTP впн канальный - в сеансовый.

А файлы можно передавать поверх канального. Минимально можно соорудить 6 сразу поверх 1.

→ Ссылка