yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareML SpaceВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Облако для мобильных и веб‑приложенийАналитика данных в облакеEvolution Bare MetalEvolution SSH KeysEvolution ImageСайт в облакеEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskХранение данных в облакеEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkАналитика данных в облакеEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSEvolution TagsEvolution Task HistoryCloud MonitoringCloud LoggingАренда GPUAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLРазработка и тестирование в облакеAdvanced Image Management ServiceAdvanced Auto ScalingDirect ConnectCDNCross-platform connectionAdvanced Enterprise RouterAdvanced Cloud Backup and RecoveryAdvanced Data Warehouse ServiceAdvanced Elastic Volume ServiceAdvanced Cloud Container EngineAdvanced FunctionGraphAdvanced Container Guard ServiceAdvanced Software Repository for ContainerAdvanced Document Database Service with MongoDBAdvanced Relational Database Service for MySQLAdvanced Relational Database Service for SQL ServerCloud AdvisorAdvanced Server Migration ServiceAdvanced Data Replication ServiceAdvanced API GatewayAdvanced CodeArtsAdvanced Distributed Message Service for KafkaAdvanced Distributed Message Service for RabbitMQAdvanced DataArts InsightAdvanced CloudTableAdvanced MapReduce ServiceAdvanced Cloud Trace ServiceAdvanced Application Performance ManagementAdvanced Identity and Access ManagementAdvanced Enterprise Project Management ServiceVMware: виртуальный ЦОД с GPUVMware: виртуальный ЦОДУдаленные рабочие столы (VDI)VMware: сервер Bare MetalИнфраструктура для 1С в облакеУдаленные рабочие столыМиграция IT‑инфраструктуры в облако3D-моделирование и рендерингVMware: резервное копирование виртуальных машинVMware: резервный ЦОДVMware: резервное копирование в облакоVMware: миграция виртуальных машин
Поиск
Связаться с нами

TCP и UDP: что это за протоколы и чем они отличаются

TCP и UDP — транспортные протоколы для передачи данных между устройствами и приложениями. Один из них надежный, второй — быстрый. Давайте разберемся, как работает каждый из них и в каких сценариях может применяться.

Обзоры
Иллюстрация для статьи на тему «TCP и UDP: что это за протоколы и чем они отличаются»
Продукты из этой статьи:
Иконка-Evolution DNS
Evolution DNS

Описание протоколов TCP и UDP

Протоколы TCP и UDP лежат в основе большинства сетевых взаимодействий — они обеспечивают передачу данных между устройствами в локальных и глобальных сетях. Оба работают совместно с IP-протоколом, но решают разные задачи и подходят для разных типов приложений. Рассказываем, за что они отвечают и по какому принципу функционируют. 

Что такое TCP

TCP (Transmission Control Protocol) — это сетевой протокол стека TCP/IP, который работает на транспортном (L4) уровне модели OSI. Отвечает за передачу информации с контролем доставки, целостности и правильного порядка пакетов.

TCP гарантирует надежную передачу информации с помощью следующих механизмов:

  • Порядковые номера — идентификаторы для каждого байта данных, благодаря которым удается отслеживать порядок доставки и обнаруживать потерю фрагментов. 

  • Подтверждение — ACK-сегменты, поступающие от получателя, позволяют убедиться, что информация дошла.

  • Таймеры — повторная отправка данных через определенное время, если от получателя не пришло подтверждение. 

  • Буферизация — хранение данных до того момента, пока получатель не подтвердит доставку. 

TCP часто используется для критичных сервисов, где важны гарантированная доставка и порядок данных. Например, интернет-страниц, банковских приложений, корпоративных систем и некоторых облачных решений.

Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов — физическим лицам, 20 000 бонусов — юридическим

Что такое UDP

UDP (User Datagram Protocol) — сетевой транспортный протокол, который не инициирует постоянное соединение между отправителем и получателем. За счет этого он потенциально позволяет снизить задержку и накладные расходы по сравнению с TCP, так как не требует установления соединения и подтверждений.

UDP выполняет базовые функции доставки по принципу «отправил и забыл». Он работает без предварительной проверки канала связи, не требует подтверждения от получателя по сравнению с TCP при прочих равных, не посылает пакеты повторно. Это позволяет протоколу передавать данные с минимальными задержками. 

Архитектура и работа протоколов

TCP работает с виртуальным (логическим) соединением на транспортном уровне, UDP — без. Рассказываем, как выглядит процесс передачи данных с каждым протоколом.

Как работает TCP

Перед передачей данных TCP устанавливает соединение через механизм three-way handshake — «трехэтапное рукопожатие» между клиентом и сервером. Процесс подтверждает, что обе стороны согласовали условия и готовы к обмену. 

Как происходит TCP-рукопожатие:

  • SYN (Synchronize). Клиент отправляет серверу сегмент с порядковым номером и флагом SYN.

  • SYN-ACK. Сервер в ответ передает сегмент с двумя флагами — SYN и ACK. С помощью ACK он подтверждает, что получил сегмент от клиента. SYN содержит порядковый номер сервера. 

  • ACK (Acknowledge). Клиент посылает свой сегмент с флагом ACK и таким образом подтверждает, что получил ответ от сервера. 

Процесс рукопожатия Процесс рукопожатия

Если этапы рукопожатия пройдены, соединение считается установленным. Дальше начинается обмен данными в дуплексном режиме, то есть информацию может передавать как клиент, так и сервер. 

Прежде чем передавать данные, TCP осуществляет сегментацию — разбивает поток на сегменты с порядковыми номерами, которые отправляются получателю. Получатель подтверждает доставку сегментов и отправляет идентификатор следующего ожидаемого сегмента. 

Сегмент TCP выглядит так:

Пакеты TCP Пакеты TCP

В TCP реализовано два механизма подтверждения. Первый — кумулятивный. С помощью ACK клиент доказывает, что получил предыдущие байты данных. Второй — выборочный. В этом случае используется SACK (Selective Acknowledgement) — опциональный механизм TCP (RFC 2018), который требует явного согласования на этапе трехэтапного рукопожатия путем передачи флага SACK-Permitted в SYN-сегменте. 

Как функционирует UDP

В отличие от TCP, UDP начинает передавать информацию без рукопожатий. Приложение формирует данные, которые нужно отправить по сети. Затем они упаковываются в UDP-датаграммы, которые включают такие компоненты, как порты отправителя и получателя, длину пакета, контрольную сумму. Пакет выглядит так: 

Процесс передачи пакетов:

  1. Датаграммы передаются на сетевой уровень. При этом протокол не устанавливает соединение и не запрашивает подтверждение у получателя.

  2. Далее протокол IP доставляет датаграммы адресату, используя разные маршруты. Из-за этого пакеты могут прийти в неверном порядке или потеряться в пути.

  3. Если датаграммы все же доходят получателю, операционная система передает их приложению, которое слушает указанный порт.

  4. Приложение начинает обработку данных, поскольку UDP не подтверждает доставку. Контроль надежности, порядка и повторной передачи при использовании UDP реализуется на уровне приложения или дополнительных протоколов поверх UDP. 

  5. Если пакеты не дошли, UDP не будет снова их отправлять. 

Важно отметить, что UDP контрольная сумма является опциональной при использовании IPv4, но обязательна в IPv6.

Принцип работы протоколаПринцип работы протокола

Различия между TCP и UDP

Протоколы можно сравнить с почтальонами. TCP будет медленным, внимательным и обязательным. UDP — скоростным, но беспечным. Давайте на этом примере и разберем отличия. 

Надежность и контроль доставки данных

UDP как беспечный почтальон не гарантирует, что данные дойдут до получателя и не запрашивает подтверждение доставки. Его задача — отправить пакеты, не упорядочивая их. Если они будут доставлены, то не факт, что в правильном порядке. Выбирая UDP для своих задач, нужно понимать, что этот протокол — не про надежность, а про скорость. 

TCP, как внимательный почтальон, контролирует доставку и правильный порядок пакетов. Каким образом он это делает:

  • Устанавливает виртуальный канал перед началом обмена данными. 

  • Запрашивает подтверждение о доставке пакетов. 

  • Собирает данные в нужной последовательности, даже если они в пути перепутались. 

  • Использует контрольные суммы для проверки целостности пакетов в большинстве типовых случаев. При этом чексумма (checksum) TCP вычисляется для КАЖДОГО сегмента без исключений. Это поле всегда присутствует в TCP заголовке (16 бит) и используется для проверки целостности данных. Если контрольная сумма некорректна, сегмент отбрасывается получателем.

Если через определенное время TCP не получает подтверждение о доставке данных, то отправляет пакеты повторно. Для расчета времени ожидания в конкретных случаях протокол использует адаптивные алгоритмы. 

Скорость и сетевые задержки

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

Медленный почтальон TCP проигрывает в скорости из-за установки соединения, сборки пакетов, проверки ошибок и повторных передач. Реализация механизмов надежности приводит к задержкам. 

Контроль ошибок и упорядоченность

Беспечный UDP работает по принципу «отправил и забыл» — ошибки в последовательности пакетов он не обнаруживает. 

Надежный TCP упорядочивает данные с помощью последовательной нумерации. Каждому пакету присваивается определенный номер, затем рассчитываться контрольная сумма. После отправки пакетов она рассчитывается снова и сверяется с первоначальной. Если есть расхождения, значит, пакет был поврежден. В таком случае применяется буферизация — отправка неупорядоченных данных в буфер до тех пор, пока они не «выстроятся» в правильном порядке. 

Если данные прибывают в неверном порядке, TCP отправляет разрозненные пакеты в буфер. Информация передается приложению только после того, как будет полностью упорядочена. 

Контроль потока данных

Беспечный почтальон UDP поток не контролирует. Обязательный TCP делает это, чтобы получателя не затопило данными. Протокол использует механизм Flow Control, регулирующий скорость передачи сегментов. Получатель указывает в своих ACK-ответах, сколько данных он готов принять в зависимости от свободного пространства в своем буфере. 

В TCP также реализован подход Congestion Control для контроля перегрузки сетевой инфраструктуры, регулирующий Congestion Window (cwnd). Возможные механизмы:

  • Slow Start — экспоненциальное увеличение congestion window от минимального значения (1 MSS). 

  • Congestion Avoidance — линейное увеличение congestion window после того, как будет достигнуто пороговое значение (ssthresh). 

  • Fast Retransmit и Fast Recovery — быстрая повторная передача сегментов и восстановление congestion window без полного сброса. 

  • Таймауты — сброс congestion window при неполадках с сетью.

Современные операционные системы используют различные алгоритмы TCP congestion control (Tahoe, Reno, NewReno, CUBIC, BBR и др.), от которых зависит поведение TCP при перегрузке сети. Популярные алгоритмы контроля:

Алгоритм
Принцип
Tahoe
Медленный старт и предотвращение перегрузки, сброс окна перегрузки в 1 MSS при потере пакета (timeout)
Reno
Использует Fast Retransmit и Fast Recovery, что позволяет избежать возврата к 1 MSS
NewReno
Улучшает Reno способностью работать с несколькими потерями в одном окне перегрузки
CUBIC
Работает в сетях с высокой пропускной способностью
BBR
Не использует потери пакетов как индикатор перегрузки, а основывается на прямом измерении пропускной способности

Применение TCP и UDP в сетях

TCP используется там, где важно, чтобы данные точно дошли в целости и правильной последовательности. Например, в финансовых транзакциях, электронной почте, веб-серфинге. 

UDP применяется там, где данные нужно отправлять без задержек. Протокол подойдет для приложений, которые работают в реальном времени и «переживут» потерю части пакетов. 

Примеры применения протокола:

Протокол
Примеры приложений
Задачи
Особенности работы
TCP
Веб-браузеры (HTTP/HTTPS)
Загрузка веб-страниц, взаимодействие с серверами
Стопроцентная доставка, контроль целостности, повторная отправка утерянных пакетов
Электронная почта
Отправка и получение писем, синхронизация почтовых ящиков
Гарантированная доставка, верный порядок сообщений
FTP/SFTP
Передача файлов, резервное копирование
Контроль целостности файлов, подтверждение получения каждого блока
Банковские системы, ERP, CRM
Обработка финансовых и персональных данных
Защита данных, контроль целостности
UDP
Видео-площадки
Передача аудио/видео
Быстрая загрузка, потеря отдельных пакетов допустима
Видеоконференции (Zoom, Teams)
Голосовая и видеосвязь
Быстрая передача, низкая нагрузка на сеть
Онлайн-игры (CS:GO, Fortnite)
Обмен игровыми событиями между клиентами и сервером
Максимальная скорость передачи, небольшие потери данных допустимы
DNS-запросы
Быстрые запросы к серверам доменных имен
Минимальные задержки, экономия ресурсов, не требуется контроль порядка
Системы мониторинга, вещательные сервисы
Передача сигналов, телеметрия, потоковая трансляция
Высокая скорость и простота, небольшие ошибки не критичны

Практические рекомендации по выбору протокола

Используйте TCP, если:

  • Важна надежность передачи. TCP поможет доставить данные без ошибок. Протокол гарантирует верный порядок пакетов, делает повторную отправку в случае потерь. 

  • Нужен строгий порядок данных. TCP собирает пакеты в той последовательности, в которой они были отправлены. Это важно для задач, где нарушение порядка может привести к неправильному результату.

  • Требуется стабильность и предсказуемость. TCP создает соединение, контролирует нагрузку на сети и адаптируется к условиям канала передачи данных. Это делает обмен информацией понятным и контролируемым.

  • Допустимы небольшие задержки доставки ради надежности. TCP добавляет накладные расходы из-за подтверждения, проверки, управления перегрузкой. Задержки доставки перекрываются безопасной и гарантированной передачей.

Отдайте предпочтение UDP, если:

  • В приоритете скорость и минимальные задержки. UDP не тратит время на установление соединения, подтверждение доставки и контроль порядка пакетов. Это позволяет быстро передавать информацию.

  • Потеря части данных некритична. UDP может терять пакеты и не будет отправлять их повторно, зато информация передается в считанные секунды. Это важно для приложений и сервисов, которые функционируют в реальном времени.  

  • Приложение способно само управлять логикой обработки пакетов. Некоторые системы реализуют собственные механизмы контроля ошибок и «подстраховывают» UDP. В таких случаях надежный TCP редко используется, поскольку может замедлять обмен.

Сегодня многие сетевые технологии реализуют гибридный подход. Например, протокол QUIC — отдельный транспортный протокол поверх UDP, который реализует надежную доставку, шифрование (на базе TLS 1.3) и собственные механизмы контроля перегрузки, поэтому по свойствам он близок к TCP+TLS, но архитектурно отличается.

Evolution DNS
Evolution DNS
Эффективно управляйте публичными и приватными доменными зонами на облачной платформе Cloud.ru Evolution.
Узнать больше

Выводы

Протоколы TCP и UDP — инструменты для передачи данных по сети, которые отличаются друг от друга подходом к работе. TCP гарантирует надежность, целостность и верный порядок пакетов, подтверждает доставку и повторно отправляет информацию при потере. Это делает его оптимальным выбором в задачах, где важны безопасность, точность данных и устойчивость связи. UDP всего этого гарантировать не может, зато минимизирует накладные расходы на проверку и контроль, обеспечивает быструю доставку. Это полезно там, где важны скорость и минимальные задержки, допустима потеря части пакетов.

Например, UDP активно используется в DNS-запросах. Cloud.ru предоставляет облачный Evolution DNS — сервис для управления публичными и приватными доменными зонами с поддержкой стандартных DNS-записей (A, AAAA, CNAME, MX и др.) через удобный веб-интерфейс и API.

Продукты из этой статьи:
Иконка-Evolution DNS
Evolution DNS
25 декабря 2025

Вам может понравиться