📦 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 протокол, с другой стороны, может быть полезен в приложениях, где скорость передачи данных важнее надежности, например:
- Игровые приложения, где небольшая задержка важнее, чем надежность доставки данных
- Потоковая передача мультимедийных данных, таких как видео и аудио
- Приложения, которые отправляют короткие сообщения, например, приложения для передачи уведомлений
Заключение
Оба протокола очень важны, у каждого своё предназначение и цель. Чтобы не потерять часть пороля для подключения к серверу нужно проверять наличие всех пакетов, с другой стороны при просмотре прямой трансляции можно пренебречь парой пакетов ради скорости.