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

 

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

  • роутер,

  • сервер,

  • игру,

  • фаервол,

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

 

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

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

  • почему многие приложения, игры хотят именно 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 - по UDP, порт 1194.

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

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

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

 

 

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

 

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

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

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

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

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

 

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