Модель OSI: Огляд всіх 7 рівнів¶
Вступ¶
Модель OSI (Open Systems Interconnection) — це концептуальна модель, яка описує як різні мережеві системи комунікують між собою. Створена у 1984 році організацією ISO, вона стала стандартом для розуміння та проектування мережевих архітектур.
Навіщо потрібна модель OSI?¶
Стандартизація¶
┌─────────────────────────────────────────────────────────────────┐
│ Без стандарту: │
│ Виробник A ──?──> Виробник B (несумісні протоколи) │
│ │
│ Зі стандартом OSI: │
│ Виробник A ──OSI──> Виробник B (працюють разом!) │
└─────────────────────────────────────────────────────────────────┘
Troubleshooting¶
Модель допомагає систематично шукати проблеми:
Немає інтернету? Перевіряємо знизу вгору:
L1: Кабель підключений? LED горить?
↓ так
L2: MAC адреса отримана? Свіч бачить порт?
↓ так
L3: IP адреса є? Пінг шлюзу працює?
↓ так
L4: Порт відкритий? Firewall не блокує?
↓ так
L7: Сервіс працює? DNS резолвиться?
Модульність¶
Кожен рівень можна змінювати незалежно:
- Змінив кабель (L1) — протоколи вище не змінились
- Перейшов з HTTP на HTTPS (L7) — нижні рівні ті самі
7 рівнів моделі OSI¶
┌─────────────────────────────────────────────────────────────────┐
│ КОРИСТУВАЧ │
├─────────────────────────────────────────────────────────────────┤
│ 7 │ Application │ Прикладний │ HTTP, FTP, SSH, DNS │
├────┼────────────────┼────────────────┼─────────────────────────┤
│ 6 │ Presentation │ Представлення │ SSL/TLS, JPEG, ASCII │
├────┼────────────────┼────────────────┼─────────────────────────┤
│ 5 │ Session │ Сеансовий │ NetBIOS, RPC, PPTP │
├────┼────────────────┼────────────────┼─────────────────────────┤
│ 4 │ Transport │ Транспортний │ TCP, UDP, SCTP │
├────┼────────────────┼────────────────┼─────────────────────────┤
│ 3 │ Network │ Мережевий │ IP, ICMP, IGMP │
├────┼────────────────┼────────────────┼─────────────────────────┤
│ 2 │ Data Link │ Канальний │ Ethernet, Wi-Fi, PPP │
├────┼────────────────┼────────────────┼─────────────────────────┤
│ 1 │ Physical │ Фізичний │ Кабелі, роз'єми, хаби │
├─────────────────────────────────────────────────────────────────┤
│ ФІЗИЧНЕ СЕРЕДОВИЩЕ │
└─────────────────────────────────────────────────────────────────┘
Коротко про кожен рівень¶
| Рівень | Назва | PDU | Що робить | Обладнання |
|---|---|---|---|---|
| L7 | Application | Дані | Інтерфейс для користувача | — |
| L6 | Presentation | Дані | Кодування, шифрування | — |
| L5 | Session | Дані | Управління сесіями | — |
| L4 | Transport | Сегменти | Надійна доставка | Firewall |
| L3 | Network | Пакети | Маршрутизація | Роутер |
| L2 | Data Link | Фрейми | Локальна доставка | Свіч |
| L1 | Physical | Біти | Фізична передача | Хаб, кабелі |
PDU (Protocol Data Unit) — одиниця даних на кожному рівні
Інкапсуляція даних¶
При відправці дані "загортаються" на кожному рівні:
Дані користувача: [Hello, World!]
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ L7-L5: Application Data │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Hello, World! │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ L4: TCP Segment │
│ ┌──────────┬──────────────────────────────────────────────────┐ │
│ │TCP Header│ Hello, World! │ │
│ │ Src:4523 │ │ │
│ │ Dst:80 │ │ │
│ └──────────┴──────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ L3: IP Packet │
│ ┌──────────┬──────────┬───────────────────────────────────────┐ │
│ │IP Header │TCP Header│ Hello, World! │ │
│ │Src:10.0.1│ │ │ │
│ │Dst:8.8.8 │ │ │ │
│ └──────────┴──────────┴───────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ L2: Ethernet Frame │
│ ┌──────────┬──────────┬──────────┬─────────────────┬──────────┐ │
│ │ETH Header│IP Header │TCP Header│ Hello, World! │ETH Trail │ │
│ │Src MAC │ │ │ │ FCS │ │
│ │Dst MAC │ │ │ │ │ │
│ └──────────┴──────────┴──────────┴─────────────────┴──────────┘ │
│ │ │
│ ▼ │
│ L1: Bits │
│ 01101000 01100101 01101100 01101100 01101111 ... │
└─────────────────────────────────────────────────────────────────┘
При отриманні відбувається декапсуляція — розпаковування у зворотному порядку.
OSI vs TCP/IP¶
На практиці частіше використовується модель TCP/IP (4 рівні):
┌─────────────────────┬─────────────────────────────────────────┐
│ OSI (7) │ TCP/IP (4) │
├─────────────────────┼─────────────────────────────────────────┤
│ 7. Application │ │
│ 6. Presentation │ 4. Application │
│ 5. Session │ (HTTP, FTP, SMTP, DNS) │
├─────────────────────┼─────────────────────────────────────────┤
│ 4. Transport │ 3. Transport (TCP, UDP) │
├─────────────────────┼─────────────────────────────────────────┤
│ 3. Network │ 2. Internet (IP, ICMP) │
├─────────────────────┼─────────────────────────────────────────┤
│ 2. Data Link │ 1. Network Access │
│ 1. Physical │ (Ethernet, Wi-Fi) │
└─────────────────────┴─────────────────────────────────────────┘
Коли що використовувати?¶
- OSI — для навчання та troubleshooting (більш детальна)
- TCP/IP — для практичної роботи (реальні протоколи)
Мнемоніки для запам'ятовування¶
Знизу вгору (L1 → L7)¶
Англійська:
Please Do Not Throw Sausage Pizza Away
Physical - Data Link - Network - Transport - Session - Presentation - Application
Українська:
Поганий Друг Нестор Танцює Сальсу Після Алкоголю
Фізичний - Канальний - Мережевий - Транспортний - Сеансовий - Представлення - Прикладний
Зверху вниз (L7 → L1)¶
All People Seem To Need Data Processing
Application - Presentation - Session - Transport - Network - Data Link - Physical
Діагностика по рівнях¶
Інструменти для кожного рівня¶
| Рівень | Linux команди | Що перевіряємо |
|---|---|---|
| L1 | ethtool eth0, ip link |
Стан інтерфейсу, швидкість |
| L2 | ip neighbor, bridge fdb |
MAC таблиця, VLAN |
| L3 | ping, traceroute, ip route |
IP зв'язність, маршрути |
| L4 | ss -tuln, netstat, nc |
Порти, з'єднання |
| L5-L7 | curl, dig, openssl s_client |
Сервіси, DNS, TLS |
Приклад діагностики "Не працює сайт"¶
# L1: Фізичний рівень
ip link show eth0
# Чи є link up?
# L2: Канальний рівень
ip neighbor show
# Чи є MAC шлюзу?
# L3: Мережевий рівень
ping -c 3 8.8.8.8
# Чи є зв'язок з інтернетом?
# L3: DNS (частина L7, але перевіряємо окремо)
dig example.com
# Чи резолвиться домен?
# L4: Транспортний рівень
nc -zv example.com 443
# Чи відкритий порт?
# L7: Прикладний рівень
curl -I https://example.com
# Чи відповідає сервер?
Приклад: Як працює HTTP запит¶
Коли ви відкриваєте https://example.com у браузері:
L7 (Application): Браузер формує HTTP GET запит
│
▼
L6 (Presentation): Дані шифруються через TLS
│
▼
L5 (Session): Встановлюється TLS сесія
│
▼
L4 (Transport): TCP 3-way handshake, порт 443
│
▼
L3 (Network): IP пакет до 93.184.216.34
│
▼
L2 (Data Link): Ethernet фрейм до MAC роутера
│
▼
L1 (Physical): Електричні сигнали по кабелю
│
▼
[Інтернет через багато хопів]
│
▼
[Сервер example.com — декапсуляція L1→L7]
│
▼
[Відповідь тим самим шляхом назад]
Детальні статті про кожен рівень¶
| Рівень | Стаття | Ключові теми |
|---|---|---|
| L1 | Фізичний рівень | Кабелі, роз'єми, топології |
| L2 | Канальний рівень | MAC, Ethernet, свічі, VLAN |
| L3 | Мережевий рівень | IP, маршрутизація, NAT |
| L4 | Транспортний рівень | TCP, UDP, порти |
| L5 | Сеансовий рівень | Сесії, RPC, синхронізація |
| L6 | Рівень представлення | Кодування, шифрування |
| L7 | Прикладний рівень | HTTP, DNS, SSH |
Типові проблеми та їх рівні¶
| Симптом | Імовірний рівень | Що перевірити |
|---|---|---|
| Немає Link LED | L1 | Кабель, порт свіча |
| Немає IP адреси | L2-L3 | DHCP, VLAN |
| Пінг не працює | L3 | Маршрути, firewall |
| Порт закритий | L4 | Firewall, сервіс |
| Сертифікат помилка | L6 | TLS, час системи |
| 404/500 помилки | L7 | Веб-сервер, додаток |
Підсумок¶
Модель OSI — це фундамент для розуміння мереж. Запам'ятайте:
- 7 рівнів — від фізичного до прикладного
- Інкапсуляція — кожен рівень додає свій заголовок
- Troubleshooting — перевіряйте знизу вгору
- Кожен рівень — своя відповідальність
Див. також¶
- IPv4 адресація — основи IP
- Маршрутизація — як пакети знаходять шлях
- DNS — система доменних імен
Шлях: networking/basics/osi-model.md