Модуль 3.1: Основи TCP/IP
Основи мереж | Складність:
[MEDIUM]| Час: 30–35 хв
Передумови
Розділ «Передумови»Перед початком цього модуля:
- Обов’язково: Базове розуміння того, що таке комп’ютерна мережа.
- Бажано: Модуль 1.1: Архітектура ядра
Що ви зможете робити після цього модуля
Розділ «Що ви зможете робити після цього модуля»Після завершення цього модуля ви зможете:
- Відстежити TCP-з’єднання від SYN до FIN та пояснити, що відбувається на кожному кроці
- Розрахувати діапазони підмереж з CIDR-нотації та визначити, чи перебувають дві IP-адреси в одній мережі
- Діагностувати мережеві проблеми, інтерпретуючи вивід ping, traceroute та ss
- Пояснити, як таблиці маршрутизації Linux визначають, куди підуть пакети
Чому цей модуль важливий
Розділ «Чому цей модуль важливий»Кожен под Kubernetes, кожен сервіс, кожен запит через Ingress — усі вони працюють на базі стеку TCP/IP. Коли мережа не працює, вам потрібно розуміти фундамент, на якому вона побудована.
Розуміння TCP/IP допоможе вам:
- Виправляти помилки зв’язку — чому мій под не може достукатися до іншого сервісу?
- Розуміти мережі Kubernetes — як насправді працюють Services, NodePorts та LoadBalancers?
- Вирішувати проблеми з продуктивністю — це затримка (latency), втрата пакетів чи неправильна маршрутизація?
- Налаштовувати мережі — підмережі, CIDR, маршрути (routes).
Коли curl зависає, коли пакети зникають, коли затримка різко зростає — вам потрібні знання TCP/IP.
Чи знали ви?
Розділ «Чи знали ви?»-
TCP був розроблений, щоб вижити в ядерній війні — попередник Інтернету, ARPANET, фінансувався DARPA (Міноборони США). Здатність TCP/IP обходити вузли, що вийшли з ладу, походить саме з цього військового минулого.
-
«Тристороннє рукостискання» (SYN, SYN-ACK, ACK) потребує 1.5 повних цикли передачі (RTT) — саме тому TCP-з’єднання мають вищу затримку, ніж UDP. При затримці в 100мс вам знадобиться 150мс тільки на те, щоб встановити зв’язок.
-
IP-адреси — це просто числа довжиною 32 біти (IPv4) або 128 біт (IPv6). Уся магія маршрутизації відбувається з цими простими цифрами. 32 біти IPv4 дають нам близько 4.3 мільярда адрес, які вже закінчилися, тому ми переходимо на IPv6.
Мережевий стек
Розділ «Мережевий стек»Модель OSI проти моделі TCP/IP
Розділ «Модель OSI проти моделі TCP/IP»┌─────────────────────────────────────────────────────────────────┐│ Модель OSI │ Модель TCP/IP │├─────────────────────────────────────────────────────────────────┤│ 7. Прикладний │ ││ 6. Представлення │ Прикладний ││ 5. Сеансовий │ (HTTP, DNS, SSH) │├─────────────────────────────────────────────────────────────────┤│ 4. Транспортний │ Транспортний ││ (TCP, UDP) │ (TCP, UDP) │├─────────────────────────────────────────────────────────────────┤│ 3. Мережевий │ Міжмережевий (Internet) ││ (IP) │ (IP) │├─────────────────────────────────────────────────────────────────┤│ 2. Канальний │ ││ 1. Фізичний │ Мережевий доступ ││ (Ethernet, WiFi) │ (Ethernet) │└─────────────────────────────────────────────────────────────────┘IP-адресація
Розділ «IP-адресація»Структура IPv4-адреси
Розділ «Структура IPv4-адреси»IP-адреса: 192.168.1.100Двійкова: 11000000.10101000.00000001.01100100
Маска підмережі: 255.255.255.0 (або /24)Двійкова: 11111111.11111111.11111111.00000000
Мережа: 192.168.1.0 (перші 24 біти)Хост: .100 (останні 8 біт)CIDR нотація (популярні маски)
Розділ «CIDR нотація (популярні маски)»| CIDR | Маска | К-сть хостів | Використання |
|---|---|---|---|
| /32 | 255.255.255.255 | 1 | Конкретний хост |
| /24 | 255.255.255.0 | 254 | Мала мережа |
| /16 | 255.255.0.0 | 65,534 | Мережа компанії |
| /8 | 255.0.0.0 | 16 млн | Велика мережа |
TCP проти UDP
Розділ «TCP проти UDP»TCP: Надійний, впорядкований
Розділ «TCP: Надійний, впорядкований» Клієнт Сервер │ │ │────────── SYN (Привіт, давай з'єднаємось) ──▶│ │ │ │◀───────── SYN-ACK (Привіт, давай!) ──────────│ │ │ │────────── ACK (Окей, починаємо дані) ───────▶│ │ │ │ З'ЄДНАННЯ ВСТАНОВЛЕНО │Особливості:
- Гарантує доставку пакетів.
- Зберігає порядок даних.
- Використовується для HTTP, баз даних, SSH.
UDP: Швидкий, простий
Розділ «UDP: Швидкий, простий»Особливості:
- Немає “рукостискання”.
- Немає гарантії доставки.
- Мінімальні затримки.
- Використовується для DNS, стрімінгу відео, ігор.
Маршрутизація (Routing)
Розділ «Маршрутизація (Routing)»Таблиця маршрутизації каже ядру, куди відправляти пакети для різних адрес.
# Подивитися таблицю маршрутизаціїip route- default via … — це ваш “шлюз за замовчуванням” (Gateway). Туди йдуть усі пакети, для яких немає точного правила.
Порти та сокети
Розділ «Порти та сокети»| Порт | Сервіс | Протокол |
|---|---|---|
| 22 | SSH | TCP |
| 53 | DNS | UDP/TCP |
| 80 | HTTP | TCP |
| 443 | HTTPS | TCP |
| 6443 | Kubernetes API | TCP |
# Подивитися відкриті портиss -tulpnТест
Розділ «Тест»-
Що таке CIDR /24?
Відповідь
Це маска підмережі 255.255.255.0. Вона означає, що перші 24 біти адреси належать мережі, а останні 8 біт — конкретному комп'ютеру в ній. Це дає можливість підключити 254 пристрої. -
Яка головна перевага UDP над TCP?
Відповідь
Швидкість. UDP не витрачає час на встановлення з'єднання та підтвердження отримання кожного байта даних. Це критично для дзвінків та онлайн-ігор. -
Яка команда в Linux показує IP-адреси на мережевих інтерфейсах?
Відповідь
`ip addr` (або застаріла `ifconfig`). -
Що таке Default Gateway?
Відповідь
Це "вихід" із вашої мережі в інші мережі (зазвичай в Інтернет). Якщо ваш комп'ютер не знає, де знаходиться отримувач пакета, він відправляє його на Default Gateway.
Практична вправа
Розділ «Практична вправа»Завдання: Дослідити мережеві налаштування своєї системи.
- Подивіться всі свої IP-адреси:
Terminal window ip -br addr - Знайдіть свій шлюз за замовчуванням:
Terminal window ip route | grep default - Перевірте, які порти зараз “слухають” на вашій машині:
Terminal window sudo ss -tlnp - Спробуйте дізнатися шлях пакета до сервера Google:
Terminal window traceroute -m 10 8.8.8.8
Критерії успіху: Ви розумієте свою мережеву адресу та знаєте, як перевірити порти.
Підсумок
Розділ «Підсумок»- TCP/IP — мова, якою спілкується Інтернет та Kubernetes.
- IP-адреса ідентифікує машину, Порт ідентифікує програму на ній.
- TCP — надійність, UDP — швидкість.
- Routing — це дорожня карта для пакетів у мережі.
Далі: Модуль 3.2: DNS в Linux — дізнайтеся, як текстові імена перетворюються на IP-адреси.