it-swarm-ru.tech

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

Мой маршрутизатор имеет два протокола (и вариант "оба"), которые я могу выбрать при настройке переадресации портов: UDP и TCP. В чем разница между этими двумя протоколами и когда вы выбираете один из них при переадресации портов?

47
Guy

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

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

52
user640

Вы можете найти хорошее резюме здесь:

В чем разница между UDP и TCP интернет-протоколы?

Оба TCP и UDP работают на модели TCP/IP транспортного уровня, но имеют очень разное использование.

Наиболее важные отличия:

  • Надежность :
    TCP: ориентированный на соединение
    UDP: без соединения
  • Заказанный :
    TCP: порядок получения сообщения гарантирован
    UDP: заказ не гарантирован
  • Вес протокола :
    TCP: тяжелый вес из-за накладных расходов на соединение/заказ
    UDP: легкий, очень мало накладных расходов
  • Пакеты :
    TCP: потоковая передача, данные читаются как "поток", и ничто не определяет, где заканчивается один пакет, а начинается другой. Может быть несколько пакетов на один вызов чтения.
    UDP: датаграммы, один пакет на один вызов чтения.

Структура кадра

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

Это структура кадра TCP):

TCP frame

Такая структура фрейма UDP намного проще:

UDP frame

Типичными протоколами, которые используют TCP, являются HTTP, FTP и SMTP. Примерами протоколов, использующих UDP, являются DNS и DHCP.

74
splattne

И объяснение уровня генерального директора:

UDP - это когда вы бросаете свою бумагу в общем направлении корзины.

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

45
pgs

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

7
Brian

Чтобы ответить на другую часть вашего вопроса, вы должны переслать то, что использует ваше приложение. Для пересылки HTTP-трафика выберите TCP. Для пересылки трафика TFTP выберите UDP. Программы p2p в основном используют как tcp, так и udp, поэтому перешлите их обоих.

Все зависит от протокола и программы, которую вы используете.

3
hayalci

Как и упомянутые выше различия TCP также предоставляет

управление потоком. Используя оконный механизм, получатель ограничивает количество октетов (байтов), которое он хочет получить от отправителя, прежде чем отправитель должен дождаться разрешения на отправку дополнительных данных. Размер окна может быть изменен получателем по мере продолжения разговора. Это позволяет получателю "регулировать" скорость данных, поступающих от отправителя: UDP не позволяет этого, и все, что может сделать получатель, это выбросить данные, которые он не может буферизовать или обработать по прибытии.

некоторые более технические средства, такие как несмежное подтверждение (использует выборочные подтверждения, позволяющие отправителю повторно передавать только пропущенный кадр, а не пропущенный кадр, и последующие, которые получатель уже имеет, но не может подтвердить обычным способом), обработку перегрузки и адаптивная повторная передача (настройка таймера, который решает, как быстро повторно отправить переданный кадр, когда подтверждение не получено). Они не относятся к UDP, но помогают TCP) предоставлять дополнительные услуги по UDP без значительного увеличения нагрузки на сеть при том же объеме полезной нагрузки.

2
mas

TCP делает все возможное, чтобы данные были переданы получателю; UDP не имеет.

2
J. Polfer

Не берите в голову все ответы, объясняющие одно против другого. В целях настройки переадресации порта правила довольно просты: вам нужно выбрать TCP, если только документы для протокола/приложения, которое вы используете, скажем, для использования UDP. Обычно те, которые используют UDP, связаны с потоковой передачей или очень простыми вещами, которые предпочитают облегченные протоколы/скорость над надежностью (особенно DNS и NTP). Обратите внимание, что есть и другие протоколы, кроме TCP и UDP тоже - ICMP, туннельные протоколы и т.д.).

1
Lee B

Чем более известен протокол, тем больше маршрутизаторов на пути вмешиваются в протокол. Отправьте tcp пакеты, и есть большая вероятность, что полученные пакеты сильно искажены. UDP, как правило, не так искажен, а остальные 254 протокола IP-выплат обычно не тронуты.

1
user60557

Протокол пользовательских дейтаграмм (UDP)

Он является частью базовых протоколов Internet Protocol Suite. Программы на сетевых компьютерах могут отправлять короткие сообщения, иногда называемые датаграммами. UDP не гарантирует никакой надежности (бывает, что датаграмма может прийти не в порядке, дублироваться или отсутствовать без уведомления). Тот факт, что проверка того, доставлены ли все пакеты, не производится, UDP оказывается более быстрым и более эффективным для приложений, которые не нуждаются в гарантированной доставке. UDP находит свое применение в таких ситуациях:

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

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

Протокол управления передачей (TCP)

Это часто упоминается как TCP/IP из-за важности этого протокола в Internet Protocol Suite. TCP работает на более высоком уровне, касаясь только двух конечных систем (например, между веб-браузером и веб-сервером). TCP обеспечивает надежную последовательную доставку потока данных из одной программы на одном компьютере в другую программу на другом компьютере. Распространенное использование TCP перегруппировка поддержки электронной почты и передачи файлов и веб-приложений. Среди задач управления TCP контролируется размер сообщения, скорость обмена сообщениями и перегрузка сетевого трафика. Что касается IP, он обрабатывает низкоуровневые передачи с компьютера на компьютер как сообщение, передаваемое через Интернет.

0
surendran

Ну, оба являются сетевыми протоколами, построенными поверх того, что называется Интернет-протоколом или IP. Интернет-протокол является основным протоколом Интернета и, например, позволяет нам просматривать веб-страницы. Вот почему вы часто будете видеть эти протоколы, написанные как TCP/IP или UDP/IP. Они на самом деле являются основными протоколами Интернета.

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

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

Как правило, другие протоколы будут работать поверх TCP и UDP) и называются протоколами приложений, поскольку они работают внутри приложения, а не в операционной системе. Ваш веб-браузер использует протокол HTTP, который будет использовать TCP протокол.

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

Я надеюсь, что это отвечает на ваш вопрос на более простом английском языке.

0
Matt