У моделей OSI и TCP имеется много общих черт. Обе модели основаны на концепции стека независимых протоколов.

Модель OSI

Стек протоколов TCP/IP

OSI

OSI Protocols (Open Systems Interconnection protocols Протоколы взаимодействия открытых систем) — это семейство стандартов обмена информацией, разработанных совместно ISO и ITU-T. Процесс стандартизации начался в 1977 году, но в итоге получил много критики в осн. из-за избыточной сложности реализации.

iso

img

Cемиуровневая модель OSI часто используется в качестве справочного материала для обучения и документирования.

  • Прикладной уровень (HTTP / HTTPS / FTP / POP3 / SMTP / WS / WSS) - реализован на уровне приложений;
  • Уровень представления (SSL / TLS) - реализован на уровне приложений. Решает проблемы кодирования/декодирования, шифрования/дешифрования информации. Если сервер, к которому вы посылаете запрос, работает на протоколе HTTPS, то в него включён протокол защиты данных — SSL. SSL развивался до версии 3.0. Потом на основе него был создан TLS, который сейчас используется везде и гарантирует безопасность соединения. Принцип работы протокола базируется на ассиметричном шифровании и для создания безопасного канала связи оперирует такими понятиями как публичный ключ, приватный ключ, сеансовый ключ. TLS-рукопожатие происходит после того, как с помощью TCP-рукопожатия было установлено TCP-соединение. Ещё пример: корректная интерпретация при передачи изображений GIF, JPEG.
  • Сеансовый - реализован на уровне приложений. Решает задачу установки и завершения соединения между взаимодействующими приложениями (VPN conn protocols: L2TP, PPTP)
  • Транспортный (TCP / UDP)
  • Сетевой - Решает проблемы маршрутизации траффика; Маршрутизаторы (router) передают пакеты информации, в которых содержится соответствие MAC-адресов и IP сетевого уровня. Информация об известных IP и MAC адресах хранится в таблице в ОС роутера, который распределяет трафик, полученный из глобальной сети между устройствами локальной сети
  • Канальный - Решает проблемы адресации (биты собираются в кадры/фреймы, внутри которых служебная информация об отправителе и получателе); Коммутаторы (switch) передают сформированные кадры между сетевыми устройствами, используя физические MAC-адреса сетевых адаптеров (уникальный 48-битный id устройства)
  • Физический - Решает проблему передачи сигнала по проводникам либо с помощью электромагнитных волн. Все проводные соединения описаны стандартом ETHERNET (бит как единица информации)

img

🎓 BTW

TCP/IP

Стек протоколов созданный на основе NCP (Network Control Protocol). Первая демонстрация в 1976 передачи данных по трем различным сетям: Сан-Франциско / Лондон / Университет в Южной Калифорнии (итог - 150К км без потерь байтов).

Я бы советовал мыслить в категориях TCP/IP, а OSI упоминать только на собесах)

tcp-ip

  1. Физический (нет в стандарте, но есть в вики)

  2. Канальный + подуровень "управления доступа к среде" (Media Access Control, MAC, он нужен в сетях наподобие Ethernet или WiFi, где устройства должны иметь возможность внутри сети передавать информацию и иметь адресацию до того как им будут назначены IP адреса, в противоположность соединениям точка-точка (point to point protocol, PPP), где у тебя один провод или волокно и ты точно знаешь что на другом конце провода одно устройство)

  3. Сетевой, это IP4 и IP6, это и есть Интернет, IP это Internet Protocol. Здесь происходит маршрутизация пакетов. С точки зрения маршрутизатора сетевого уровня у него есть несколько интерфейсов с уникальными IP адресами и таблица маршрутизации. На любой интерфейс может придти IP пакет адресованный кому угодно, следуя таблице маршрутизации маршрутизатор (роутер) либо отправит его на один из своих IP интерфейсов либо удалит его.

  4. Транспортный уровень. Это уровень который обеспечивает надёжное соединение (гарантию доставки информации при этом в правильном порядке, до этого уровня никаких гарантий не было). Фактически этим занимается только протокол TCP. Логически он представляет двусторонний канал связи куда можно писать и читать. Протокол TCP реализован в виде программы (в ядре), которая отправляет и получает IP пакеты, следит за из порядком и успешностью доставки, отправляет повторно если пакет не дошёл. Есть ещё псевдо протокол UDP, который ничего не гарантирует и просто кладёт информацию в IP пакет и отправляет. Он нужен чтобы из юзерспейса приложения могли сами реализовывать свой транспорт, если TCP им не подходит (например для трансляции видео надёжность не важна, а задержки очень важны, TCP не очень подходит)

  5. Прикладной уровень, всё что делает приложение и сервер поверх транспортного. Сюда попадает и HTTP, и шифрование и всё подряд