opened image

TCP и UDP для новичков: простое объяснение

Представь, что интернет - это огромный город, где миллионы компьютеров и телефонов всё время обмениваются «сообщениями». Чтобы это не превратилось в хаос, данные передаются по правилам - протоколам.

 

Два из самых важных протоколов для нас:

  • TCP

  • UDP

 

Их постоянно спрашивают в настройках роутера, фаервола, игры или сервера: «Выберите протокол: TCP или UDP». Давай разберёмся по‑человечески, что это вообще такое и чем они отличаются.

 

 

Немного базовой картины: кто за что отвечает

 

Представь, что ты отправляешь посылку другу в другой город.

  • IP‑адрес - это адрес дома (улица, дом, квартира).

  • Порт - это как номер комнаты внутри дома или отдел конкретного человека (например, «отдел доставки»).

  • TCP/UDP - это способ, как именно ты отправляешь посылку:

    • с квитанцией, отслеживанием и подписью (надёжный, но дольше);

    • или быстро и дёшево, без гарантий (быстро, но рискованно).

 

IP доставляет «куда» (на нужный компьютер), TCP/UDP - «как» и «какому приложению» (какой программе на этом компьютере).

 

 

TCP: как дорогая посылка с уведомлением и подписью

 

Как это работает по смыслу

 

TCP - это протокол, который следит за надёжностью.

Аналогия:

Ты отправляешь важный документ курьерской службой:

  • курьер звонит получателю;

  • у вас есть номер отслеживания;

  • получатель расписывается при получении;

  • если что-то потерялось — служба будет разбираться и доставит ещё раз.

 

То же самое делает TCP с данными:

  • сначала устанавливается соединение ("привет, ты на связи?");

  • данные отправляются по кусочкам;

  • каждый кусочек подтверждается ("я получил");

  • если кусок не дошёл - он отправляется снова;

  • в конце соединение аккуратно закрывается.

 

Где используется TCP

 

TCP нужен там, где:

  • нельзя потерять ни байта информации;

  • важен строгий порядок данных.

Примеры:

  • сайты и веб‑приложения (HTTP/HTTPS);

  • почта (SMTP, IMAP, POP3);

  • удалённый доступ (SSH, RDP);

  • загрузка файлов (FTP, SFTP и т.д.).

 

Если страница сайта при загрузке «поменяет местами куски» или исчезнет часть HTML - всё развалится. Поэтому TCP следит за порядком и целостностью.

 

Плюсы и минусы TCP простыми словами

 

Плюсы TCP:

  • данные приходят полностью;

  • данные приходят в правильном порядке;

  • если что-то потерялось - автоматически отправляется заново;

  • удобно для «серьёзных» вещей: сайты, файлы, пароли.

Минусы TCP:

  • чуть дольше (есть лишние шаги: установление соединения, подтверждения);

  • больше «служебных» данных - немного тяжелее по сети;

  • для голосового чата или игры лишние задержки могут быть заметны.

 

 

UDP: как открытка без гарантии доставки

 

Как это работает по смыслу

 

UDP - протокол «отправил и забыл».

 

Аналогия:

Ты отправляешь другу открытку:

  • нет отслеживания;

  • нет подписи;

  • если открытка потерялась — никто её не перешлёт ещё раз;

  • иногда приходит, иногда нет.

 

UDP делает примерно это:

  • просто отправляет пакет данных на нужный адрес и порт;

  • не проверяет, дошло ли;

  • не ждёт подтверждений;

  • не восстанавливает порядок пакетов.

 

Где используется UDP

 

UDP берут там, где скорость важнее идеальной точности.

Примеры:

  • онлайн‑игры;

  • голосовой чат (VoIP);

  • видеозвонки и стримы;

  • DNS‑запросы ("какой IP у этого домена?").

 

Если в видеозвонке потеряется один‑два кадра — это почти незаметно. Если задержка будет большой - уже неприятно. Поэтому там чаще выбирают UDP.

 

Плюсы и минусы UDP простыми словами

Плюсы UDP:

  • очень быстрый;

  • мало «служебных» данных;

  • минимальные задержки.

Минусы UDP:

  • нет гарантии, что данные дошли;

  • нет гарантии, что пришли по порядку;

  • если нужно исправлять ошибки - это делает уже само приложение.

 

 

TCP vs UDP: как запомнить разницу

 

Запомни простой образ:

  • TCP - как разговор по телефону с подтверждением.

    • «Алло, слышно?» - «Да, слышно».

    • Если связь прерывается, вы понимаете это оба.

  • UDP - как крик в толпе или сообщение в бутылке.

    • Ты кричишь — кто‑то может услышать, а может и нет.

    • Главное, что ты кричишь быстро, без ожидания ответа.

Ещё проще - в табличке:

СвойствоTCPUDP
Устанавливает соединениеДаНет
Гарантия доставкиЕстьНет
Порядок данныхГарантируетсяНе гарантируется
СкоростьНиже (из‑за контроля)Выше (меньше проверок)
Где используетсяСайты, почта, файлы, SSHИгры, звонки, видео, DNS

 

 

Зачем знать про TCP и UDP

 

Когда ты настраиваешь:

  • роутер,

  • сервер,

  • игру,

  • VPN,

  • фаервол,

ты часто видишь: «Разрешить порт 443/TCP» или «Открыть 1194/UDP».

 

Зная разницу:

  • ты понимаешь, почему для HTTPS всегда TCP;

  • почему многие VPN и игры хотят именно UDP;

  • когда нельзя «просто поменять TCP на UDP» и наоборот.

 

Пример 1. Веб‑сервер

 

Сайт на Nginx/Apache → всегда работает через HTTP/HTTPS (TCP).

Поэтому в правилах фаервола ты открываешь:

  • порт 80 TCP;

  • порт 443 TCP.

 

Пример 2. Игровой сервер

 

Большинство онлайн‑игр используют UDP, чтобы было меньше задержек.

Поэтому в инструкции к игре часто пишут: «Откройте такой‑то порт UDP». Если открыть этот порт только по TCP — игра всё равно не заработает.

 

Пример 3. DNS

DNS‑запросы обычно идут по UDP на порт 53.

Если на фаерволе закрыть UDP 53 - интернет «как будто есть, но сайты не открываются», потому что имена не превращаются в IP‑адреса.

 

 

Немного практики в Linux (очень простая)

 

Если ты уже работаешь с Linux‑сервером, полезно уметь посмотреть, какие порты и протоколы он использует.

 

Посмотреть, что слушает сервер

ss -tunlp

 

Расшифровка:

  • -t - TCP;

  • -u - UDP;

  • -n - показывать номера портов, а не имена сервисов;

  • -l - показывать только «слушающие» порты;

  • -p - показать, какой процесс использует порт.

Ты увидишь строки вида:

  • tcp LISTEN 0 128 0.0.0.0:22 — SSH по TCP, порт 22;

  • udp 0 0 0.0.0.0:1194 — VPN по UDP, порт 1194.

Это помогает понять:

  • что уже запущено;

  • надо ли открывать порты на фаерволе.

 

 

Главные мысли, которые стоит унести с собой

 

  1. TCP и UDP — это способы доставки данных между приложениями.

  2. TCP - надёжный, но более «тяжёлый» и медленный. Отлично подходит для сайтов, файлов и всего важного.

  3. UDP - быстрый и лёгкий, но без гарантий. Идеален для игр, звонков и стримов.

  4. В настройках сети и фаервола важно указать и порт, и протокол — просто «открыть порт» может быть недостаточно.

  5. Начинай думать так: «Насколько мне важна надёжность? Насколько критична задержка?» - и уже от этого выбирай TCP или UDP.

 

Когда ты это понимаешь, многие «магические» настройки в роутерах, VPN и играх перестают быть страшными  за ними появляется логика. Если хочешь, можем следующей статьёй разобрать: как на практике настроить фаервол (ufw/iptables) для разных типов трафика с готовыми командами и комментариями.