Теория 📔
April 7, 2023

📦 TCP и UDP

В прошлой статье я касался двух важных протоколов транспортного уровня - TCP и UDP. Пришло время поговорить о них побольше.

✅ TCP - целостность

Transmission Control Protocol - это протокол передачи данных, который обеспечивает надежную и упорядоченную доставку данных между устройствами в сети. Он работает на уровне транспортного протокола в стеке протоколов TCP/IP.

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

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

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

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

⏩ UDP - скорость

User Datagram Protocol - это протокол передачи данных, который обеспечивает быструю и несвязанную доставку данных между устройствами в сети. Он также работает на уровне транспортного протокола в стеке протоколов TCP/IP.

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

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

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

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

Примеры

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

  • Почтовые клиенты, которые отправляют и получают электронные письма
  • Банковские приложения, которые обрабатывают финансовые транзакции
  • Веб-серверы, которые обслуживают запросы пользователей на получение веб-страниц

UDP протокол, с другой стороны, может быть полезен в приложениях, где скорость передачи данных важнее надежности, например:

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

Заключение

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