🌐 Мережі · Розподілені системи
📅 Березень 2026⏱ ≈ 10 хв читання🟢 Початковий–середній рівень · Останнє оновлення: 28 травня 2026 р.

TCP/IP простими словами

Кожен ваш вебзапит проходить через точно сконструйований стек протоколів. TCP/IP — це не магія, а математика, повторні спроби та сигнали перевантаження. Ось як ваш браузер завантажує сторінку менш ніж за 100 мс через тисячі кілометрів.

1. Мережевий стек

Мережі проєктують пошарово — кожен шар розв'язує одну задачу й довіряє шарам під собою. Модель TCP/IP має чотири практичні шари:

Шар 4 — застосунокHTTP / DNS / WebSocketЩо ви надсилаєте: HTML, JSON, байти відео
Шар 3 — транспортTCP / UDPСегментує дані, забезпечує надійність, номери портів
Шар 2 — інтернетIP (v4 / v6)Пакети, маршрутизація між мережами, IP джерела/призначення
Шар 1 — каналEthernet / WiFi / 4GКадри на фізичному каналі, MAC-адреси

Кожен шар обгортає шар над собою під час надсилання й розгортає його під час отримання. Машина-отримувач виконує процес у зворотному порядку. Проміжні маршрутизатори зазирають лише до шару 2 (IP) — вони ніколи не торкаються ваших HTTP-даних.

2. Інкапсуляція

Коли ви надсилаєте HTTP-запит, ядро будує пакет зсередини назовні:

  1. Шар HTTP створює сирі байти: GET / HTTP/1.1\r\nHost: example.com\r\n\r\n
  2. Шар TCP додає заголовок: порт джерела (напр., 54321), порт призначення (443), номер послідовності, контрольну суму.
  3. Шар IP додає заголовок: IP джерела (ваш IP), IP призначення (93.184.216.34), TTL (64), протокол (6 = TCP).
  4. Шар Ethernet додає заголовок кадру: MAC джерела, MAC призначення (MAC вашого маршрутизатора), EtherType.

Усе це надсилається бітами по проводу. На кожному переході найзовнішніший заголовок споживається, і маршрутизатор ухвалює рішення про пересилання.

3. IP: доставка «за можливістю»

IP є без встановлення з'єднання і працює за можливістю (best-effort) — він намагається доставити пакети, але не дає жодних гарантій щодо порядку, дублювання чи надходження. Маршрутизатори використовують зіставлення за найдовшим префіксом для пересилання пакетів:

Зіставлення за найдовшим префіксом IP призначення: 93.184.216.34 Таблиця маршрутизації: 93.184.216.0/24 → інтерфейс eth2 (збіг: 24 біти) 93.0.0.0/8 → інтерфейс eth1 (збіг: 8 бітів) 0.0.0.0/0 → шлюз за замовчуванням (збіг: 0 бітів) → Надіслати через eth2 (найбільш специфічний)

Поле TTL (Time To Live, час життя) зменшується на кожному переході маршрутизатора. Коли воно досягає 0, пакет відкидається й повертається повідомлення ICMP «time exceeded» — саме так працює traceroute.

IPv4 проти IPv6: IPv4 має 2³² ≈ 4,3 млрд адрес, вичерпаних у 2011 році. IPv6 має 2¹²⁸ ≈ 3,4 × 10³⁸ — достатньо для 1000 адрес на кожну піщинку на Землі. Більшість трафіку нині використовує IPv4 + NAT, а IPv6 повільно впроваджується.

4. TCP: надійний, упорядкований

TCP розташований поверх IP і забезпечує:

UDP — це альтернатива: без з'єднання, без ACK, без упорядкування. Використовується для DNS, відеодзвінків, ігор — застосунків, що віддають перевагу затримці над гарантованою доставкою та самі обробляють повторну передачу.

5. Тристороннє рукостискання

Перш ніж дані потечуть, TCP встановлює з'єднання трьома повідомленнями. Кожна сторона обирає випадковий початковий номер послідовності (ISN), щоб запобігти атакам передбачення послідовності:

Клієнт
SYN (ISN=x) →
← SYN-ACK (ISN=y, ACK=x+1)
ACK (ACK=y+1) →
Сервер

Після третього повідомлення обидві сторони узгодили номери послідовності й можуть надсилати дані. Розрив з'єднання використовує чотиристоронній обмін FIN/ACK (кожна сторона закривається незалежно) або RST для негайного переривання.

HTTPS / TLS: після рукостискання TCP рукостискання TLS (1–2 кругові оберти) узгоджує шифрування. Сучасний TLS 1.3 зводить це до 1 кругового оберту (0-RTT для відновлень). Загальний час з'єднання від DNS-запиту до першого байта: зазвичай 2–3 RTT.

6. Керування потоком і перевантаженням

Ковзне вікно

TCP надсилає кілька сегментів, не чекаючи ACK. Вікно перевантаження (cwnd) обмежує кількість байтів «у польоті». Пропускна здатність ≈ cwnd / RTT.

Наближення пропускної здатності Пропускна здатність ≈ MSS / (RTT × √(loss_rate))

MSS — максимальний розмір сегмента (~1460 байтів для Ethernet)
RTT — час кругового оберту
loss_rate — імовірність втрати пакета

Керування перевантаженням AIMD

TCP використовує адитивне збільшення, мультиплікативне зменшення (AIMD):

Сучасні алгоритми (BBR, CUBIC) безпосередньо моделюють пропускну здатність і час кругового оберту замість реагування на втрати, досягаючи у 2–10× кращої пропускної здатності в мережах з високим добутком пропускної здатності на затримку.

7. NAT: один IP на багатьох

Ваш домашній маршрутизатор має одну публічну IP-адресу, але обслуговує десятки пристроїв. Це робиться через трансляцію мережевих адрес (NAT): IP+порт джерела кожного вихідного пакета замінюється публічним IP маршрутизатора + унікальним портом. Відображення зберігається в таблиці NAT.

Відображення портів NAT (приклад) 192.168.1.5:54321 → 203.0.113.1:40001 (до сервера) 203.0.113.1:40001 → 192.168.1.5:54321 (зворотний трафік)

NAT порушує наскрізний принцип — сервери не можуть ініціювати з'єднання з клієнтами за NAT. Саме тому WebRTC потребує ICE/STUN/TURN, щоб «пробити» NAT для P2P-відеодзвінків.

8. DNS: адресна книга

Ще до того, як TCP стартує, DNS перетворює ім'я хоста на IP:

  1. Браузер перевіряє локальний кеш (обмежений TTL).
  2. ОС перевіряє /etc/hosts.
  3. Звертаються до рекурсивного резолвера (вашого провайдера або 8.8.8.8) → повертає кешовану відповідь або починає ітеративний пошук.
  4. Ітеративно: запитує кореневі сервери → сервери TLD (напр., .com) → авторитетний сервер → повертає IP.
  5. Відповідь кешується на TTL секунд (часто 300–3600 с).

DNS використовує UDP-порт 53 (швидкий пошук) або TCP для великих відповідей >512 байтів (передачі зон, DNSSEC). DoH (DNS over HTTPS) і DoT (DNS over TLS) шифрують DNS-запити, щоб запобігти підгляданню з боку провайдерів.

Хронологія повного завантаження сторінки: DNS (~20 мс) → з'єднання TCP (~30 мс) → TLS (~30 мс) → HTTP-запит → відповідь. Загальний час до першого байта ≈ 80–200 мс для типового сервера. Мережі доставки контенту (CDN) зменшують це, обслуговуючи з точки присутності (PoP) на відстані 5–20 мс.