← Назад к вопросам

Что такое OSI?

2.0 Middle🔥 161 комментариев
#Python Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

OSI (Open Systems Interconnection Model)

Что это такое?

OSI — это семиуровневая модель, разработанная ISO (International Organization for Standardization) в 1984 году. Она описывает, как различные компьютерные системы обмениваются данными в сети. Модель делит процесс передачи данных на 7 логических слоёв, каждый из которых выполняет специфические функции.

Это фундаментальная концепция для понимания сетевых протоколов и архитектуры коммуникации между компьютерами.

7 Уровней OSI

Уровень 1 — Физический (Physical)

  • Передача сырых битов через физические среды
  • Протоколы: Ethernet, RS-232, оптоволокно
  • Оборудование: кабели, репиторы, хабы

Уровень 2 — Канальный (Data Link)

  • Организация кадров данных (frames)
  • Управление доступом к среде передачи (MAC адреса)
  • Протоколы: Ethernet, PPP, Wi-Fi
  • Оборудование: коммутаторы, мосты

Уровень 3 — Сетевой (Network)

  • Маршрутизация пакетов между сетями
  • IP адреса и логическая адресация
  • Протоколы: IP (IPv4, IPv6), ICMP
  • Оборудование: маршрутизаторы, L3-коммутаторы

Уровень 4 — Транспортный (Transport)

  • Обеспечение надёжной или быстрой доставки данных
  • Управление портами и сессиями
  • Протоколы: TCP (надёжность), UDP (скорость)

Уровень 5 — Сеансовый (Session)

  • Управление сеансами (sessions) между приложениями
  • Синхронизация и восстановление соединения
  • Протоколы: NetBIOS, SSL/TLS (частично)

Уровень 6 — Представления (Presentation)

  • Форматирование, кодирование, шифрование данных
  • Преобразование между форматами
  • Примеры: JPEG, ASCII, MPEG, TLS

Уровень 7 — Приложения (Application)

  • Взаимодействие с пользователями и приложениями
  • Протоколы: HTTP/HTTPS, FTP, SMTP, DNS, SSH

Пример прохождения данных через слои

# На уровне приложения (7) отправляем HTTP запрос
import requests
response = requests.get("https://api.example.com/data")

# На уровне представления (6):
# - HTTPS шифрует данные
# - JSON сериализуется в текст

# На уровне сеанса (5):
# - Устанавливается TLS сессия
# - Управление handshake

# На уровне транспорта (4):
# - TCP разбивает данные на сегменты
# - Добавляет порт назначения и исходный порт

# На уровне сети (3):
# - IP добавляет адреса отправителя и получателя
# - Определяется маршрут пакета

# На уровне канала (2):
# - Ethernet добавляет MAC адреса
# - Создаёт кадр данных

# На физическом уровне (1):
# - Биты передаются по кабелю или воздуху

Практическое применение для Python разработчика

import socket

# Уровень 4 — сокеты (TCP)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(("example.com", 80))  # Уровень 3 — IP адрес и маршрутизация

# Отправляем HTTP запрос (уровень 7)
request = b"GET / HTTP/1.1\r\nHost: example.com\r\n\r\n"
sock.send(request)

# Получаем ответ
response = sock.recv(4096)
print(response.decode())

sock.close()

Почему это важно для Python разработчика?

  • Отладка проблем — понимание слоёв помогает определить, где возникла проблема
  • Оптимизация производительности — знание протоколов позволяет выбрать оптимальный подход
  • Работа с сетью — необходимо для реализации клиент-серверных приложений
  • Безопасность — понимание SSL/TLS и шифрования данных

Модель TCP/IP vs OSI

Хотя OSI — теоретическая модель, практически используется модель TCP/IP (4 уровня). Python разработчики обычно работают с уровнями 4-7 OSI.

Модель OSI остаётся важным инструментом для понимания того, как работают сетевые протоколы и коммуникация в интернете.

Что такое OSI? | PrepBro