транспортные протоколы 4-го уровня стека TCP/IP TCP работает в режиме с установлением соединения, а UDP — без установления соединения TCP обеспечивает надежную доставку данных, тогда как UDP такой гарантии не дает TCP сохраняет порядок доставки и выполняет контроль ошибок UDP отличается большей скоростью и меньшими накладными расходами TCP применяют для web, электронной почты и обмена файлами; UDP — для стриминга, игр и DNS конкретный протокол выбирают с учетом требований к надежности и скорости
В чём разница между TCP и UDP?
транспортные протоколы 4-го уровня стека TCP/IP TCP работает в режиме с установлением соединения, а UDP — без установления соединения TCP обеспечивает надежную доставку данных, тогда как UDP такой гарантии не дает TCP…
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В чём разница между TCP и UDP?
- транспортные протоколы 4-го уровня стека TCP/IP
- TCP работает в режиме с установлением соединения, а UDP — без установления соединения
- TCP обеспечивает надежную доставку данных, тогда как UDP такой гарантии не дает
- TCP сохраняет порядок доставки и выполняет контроль ошибок
- UDP отличается большей скоростью и меньшими накладными расходами
- TCP применяют для web, электронной почты и обмена файлами; UDP — для стриминга, игр и DNS
- конкретный протокол выбирают с учетом требований к надежности и скорости
Развернутый ответ
Краткий ответ
TCP (Transmission Control Protocol) и UDP (User Datagram Protocol) — два базовых протокола транспортного уровня модели TCP/IP, предназначенных для обмена данными между хостами сети. Их ключевое различие заключается в принципе работы: TCP — надежный протокол с установлением соединения, а UDP — ненадежный протокол, работающий без соединения.
Перед началом передачи TCP устанавливает соединение с помощью трёхстороннего рукопожатия, отслеживает доставку, восстанавливает порядок пакетов и управляет потоком. Благодаря этому получатель получает данные полностью и в правильной последовательности. UDP, напротив, сразу отправляет датаграммы, не подтверждая их получение и не обеспечивая заданный порядок доставки.
Основные особенности
- Надёжность и контроль ошибок: TCP использует подтверждения (ACK), повторно передает потерянные сегменты и контролирует целостность данных за счет сквозного контроля ошибок и сквозного порядка. В UDP подобные механизмы отсутствуют, поэтому датаграммы могут потеряться или прибыть в неправильной последовательности.
- Установка соединения: Для TCP необходима сессия, создаваемая посредством трехстороннего рукопожатия (SYN, SYN-ACK, ACK). Это приводит к дополнительным накладным расходам и увеличивает задержку. UDP не выполняет такую процедуру и начинает отправку данных напрямую.
- Применение: TCP выбирают для задач, в которых критична гарантированная передача и целостность данных, например для HTTP/HTTPS, FTP и SMTP. UDP чаще используют в real-time приложениях — VoIP, стриминге и онлайн-играх, где важнее минимальная задержка, а потеря отдельных пакетов допустима.
Практический пример
В рабочих проектах оба протокола нередко применяются параллельно: загрузку страниц и транзакции выполняют через TCP, используя его надежность и управление потоком, а голос и видео передают через UDP, чтобы сократить задержку, даже если часть данных будет потеряна без критичных последствий. Например, в React Native приложениях для потокового видео часто применяют WebRTC, который базируется на UDP и обеспечивает низкую задержку.