Разница между TCP и UDP?

В чем разница между TCP и UDP?

Я знаю, что TCP используется в случае несрочных критических приложений, а UDP используется для игр или приложений, требующих быстрой передачи данных. Я знаю, что TCP используется для HTTP, HTTP, FTP, SMTP и Telnet. Я знаю, что UDP используется для DNS и DHCP.

Но почему? Какие характеристики TCP и UDP делают его полезным для их соответствующих случаев использования?

Ответ 1

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

UDP - протокол без подключения. Связь ориентирована на датаграмму. Целостность гарантируется только на одной дейтаграмме. Дейтаграммы достигают цели и могут выходить из строя или вообще не поступать. Он более эффективен, чем TCP, потому что он использует не ACK. Он обычно используется для обмена в режиме реального времени, когда небольшой процент потери пакетов лучше, чем накладные расходы на соединение TCP.

В определенных ситуациях используется UDP, поскольку он позволяет передавать пакетную передачу. Это иногда является фундаментальным в таких случаях, как протокол DHCP, поскольку клиентская машина еще не получила адрес IP (это протокол протокола t26 > ), и не будет никакого способа установить TCP поток без адреса IP.

Ответ 2

Из статья Skullbox:

TCP (протокол управления передачей) является наиболее часто используемым протоколом в Интернете.  Причина этого в том, что TCP предлагает исправление ошибок. Когда используется протокол TCP, существует "гарантированная доставка". Частично это объясняется методом, называемым "управление потоком". Управление потоком определяет, когда данные необходимо переслать, и останавливает поток данных до тех пор, пока предыдущие пакеты не будут успешно перенесены. Это работает, потому что, если пакет данных отправлен, может произойти столкновение. Когда это происходит, клиент повторно запрашивает пакет с сервера, пока весь пакет не будет завершен и будет идентичен его оригиналу.

UDP (User Datagram Protocol) - это обычный широко используемый протокол в Интернете. Однако UDP никогда не используется для отправки важных данных, таких как веб-страницы, сведения о базе данных и т.д.; UDP обычно используется для потоковой передачи аудио и видео. Потоковые медиа, такие как аудиофайлы Windows Media (.WMA), Real Player (.RM) и другие, используют UDP, потому что он предлагает скорость! Причина, по которой UDP работает быстрее, чем TCP, заключается в том, что нет контроля потока или исправления ошибок. На данные, отправленные через Интернет, влияют столкновения, и ошибки будут присутствовать. Помните, что UDP касается только скорости. Это основная причина, по которой потоковые медиа не являются качественными.

1) TCP является ориентированным на соединение и надежным, когда UDP является соединением меньше и ненадежным.

2) TCP требует дополнительной обработки на уровне сетевого интерфейса, где, как и в UDP, нет.

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

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

Ответ 3

Подумайте о TCP как о запланированном расписании UPS/FedEx по расписанию UPS/FedEx пакетов между двумя местоположениями, в то время как UDP эквивалентен отправке открытки в почтовый ящик.

UPS/FedEx сделает все возможное, чтобы убедиться, что пакет, на который вы отправляете почту, попадает туда и получает его вовремя. С почтовой карточкой вам повезло, если она вообще придет, и она может выйти из строя или поздно (сколько раз вы получили открытку от кого-то ПОСЛЕ того, как они вернулись домой из отпуска?)

TCP как можно ближе к гарантированному протоколу доставки, так как вы можете получить UDP - это просто "лучшее усилие".

Ответ 4

Причины UDP используются для DNS и DHCP:

DNS - TCP требует больше ресурсов с сервера (который прослушивает подключения), чем от клиента. В частности, когда соединение TCP закрыто, сервер должен помнить данные соединения (удерживая их в памяти) в течение двух минут во время состояния, известного как TIME_WAIT_2. Это функция, которая защищает от ошибочно повторяющихся пакетов из предыдущего соединения, которые интерпретируются как часть текущего соединения. Поддержание TIME_WAIT_2 использует память ядра на сервере. Запросы DNS небольшие и часто поступают от разных клиентов. Эта модель использования усугубляет нагрузку на сервер по сравнению с клиентами. Считалось, что использование UDP, не имеющего соединений и не поддерживающего состояние на клиенте или сервере, улучшит эту проблему.

DHCP - DHCP является расширением BOOTP. BOOTP - это протокол, который клиентские компьютеры используют для получения информации о конфигурации с сервера, в то время как клиент загружается. Чтобы найти сервер, широковещательная передача отправляется с запросом на серверы BOOTP (или DHCP). Трансляция может быть отправлена ​​только через протокол без установления соединения, такой как UDP. Поэтому BOOTP требовал хотя бы одного UDP-пакета для широковещательной передачи на сервере. Кроме того, поскольку BOOTP работает, пока клиент... загружается, и это период времени, когда клиент может не загружать и запускать весь свой стек TCP/IP, UDP может быть единственным протоколом, который клиент готов обрабатывать при этом время. Наконец, некоторые клиенты DHCP/BOOTP имеют только UDP на борту. Например, некоторые IP-термостаты реализуют только UDP. Причина в том, что они построены с такими крошечными процессорами и небольшим объемом памяти, которые не могут выполнять TCP, но им все равно нужно получить IP-адрес при загрузке.

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

Ответ 5

Одним из отличий является сокращение

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

Ответ 6

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

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

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

Кроме того, в настоящее время интернет UDP не так приветлив, как TCP из-за средних коробок. Некоторые приложения, такие как skype, падают до TCP, когда предполагается, что соединение UDP заблокировано.

Ответ 8

Короткие и простые различия между протоколами Tcp и Udp:

1) Tcp - Протокол управления передачей и Udp - Протокол дейтаграммы пользователя.

2) Tcp - надежный протокол, где Udp является ненадежным протоколом.

3) Tcp - ориентированный поток, где Udp - протокол, ориентированный на сообщения.

4) Tcp медленнее, чем Udp.