← Усі запитання
У чому головна відмінність між протоколами TCP і UDP?
СередньоПочатковийDevOps

У чому головна відмінність між протоколами TCP і UDP?

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

TCP і UDP є двома основними протоколами транспортного рівня, які працюють поверх IP. Основна відмінність: протокол TCP орієнтований на з’єднання та надійний, а UDP – без підключення та працює за принципом «запустив і забув».

TCP (RFC 9293)

  • Орієнтований на підключення. Перед надсиланням даних кінцеві точки виконують тристороннє рукостискання (3WHS): SYN → SYN-ACK → ACK, синхронізуючи початкові порядкові номери.
  • Надійний і впорядкований. Кожен байт отримує порядковий номер; одержувач надсилає підтвердження (ACK), втрачені сегменти передаються повторно, а дані знову збираються в початковому порядку. Цілісність перевіряється контрольною сумою. RFC 9293 стверджує, що TCP «забезпечує надійну службу потоку байтів у порядку».
  • Потік байтів, без меж повідомлень. TCP передає неструктурований потік байтів: межі повідомлень не зберігаються (програма повинна створювати власні повідомлення). UDP, навпаки, є орієнтованим на повідомлення — кожна дейтаграма доставляється як окрема повна одиниця або взагалі не доставляється (одна відправка = одна отримана).
  • Контроль потоку та перевантаження. TCP регулює швидкість надсилання, щоб не перевантажувати ні приймача, ні мережу.
  • Компроміс: більше накладних витрат і затримки, а також більший заголовок — 20–60 байт (20 без параметрів, розширюваних за допомогою таких параметрів, як MSS, масштабування вікна, SACK).

UDP (RFC 768)

  • Без підключення. Немає рукостискання; кожна дейтаграма незалежна.
  • Жодних гарантій. У RFC прямо сказано, що «доставка та захист від дублікатів не гарантуються» — UDP не відновлює втрачені, дубльовані або несправні пакети.
  • Виправлений 8-байтовий заголовок лише з чотирма полями: порт джерела, порт призначення, довжина, контрольна сума.
  • Переваги: низька затримка та накладні витрати, а також підтримка широкомовної/групової передачі.

Коли використовувати який

  • TCP: Інтернет (HTTP/HTTPS через TCP), електронна пошта, передача файлів, SSH — будь-де, де цілісність даних має значення.
  • UDP: DNS-пошук, онлайн-ігри, VoIP, потокове відео в реальному часі — де швидкість важливіша, ніж один втрачений пакет.

Поширені подальші моменти

  • UDP сам по собі не впорядковує дані, але програма може накладати власну логіку поверх (QUIC робить це через UDP).
  • HTTP/3 працює на QUIC через UDP, тоді як HTTP/1.1 і HTTP/2 працюють через TCP.
  • Контрольна сума UDP є технічно необов’язковою для IPv4 (нульове значення означає «не обчислено»), але обов’язкова для IPv6.
TCPUDPМережі

Завантаж просто зараз і протестуй безкоштовно для своїх завдань!

Завантажити для Windows
10 15 безкоштовних кредитів • Картка не потрібнаВерсія: Завантаження…

Без встановлення - завантажив і запустив. Без реєстрації - вхід через Google.