Мой маршрутизатор имеет два протокола (и вариант «оба»), которые я могу выбрать при настройке переадресации портов: UDP и TCP. В чем разница между этими двумя протоколами и когда вы выбираете один из них при переадресации портов?
46
Вы можете найти хорошее резюме здесь:
В чем разница между протоколами UDP и TCP?
Как TCP, так и UDP работают на модели TCP / IP транспортного уровня, но имеют очень разное использование.
Наиболее важные отличия:
TCP: ориентированный на
соединение UDP: без установления соединения
TCP: порядок получения сообщений гарантирован.
UDP: порядок не гарантирован.
TCP: тяжелый, из-за издержек соединения / заказа
UDP: легкий, очень мало служебных данных
TCP: потоковая передача, данные читаются как «поток», и ничто не определяет, где заканчивается один пакет, а начинается другой. Может быть несколько пакетов на один вызов чтения.
UDP: датаграммы, один пакет на один вызов чтения.
Рамная конструкция
Когда данные отправляются по сети, их необходимо инкапсулировать в так называемые «кадры». Существуют различные методы инкапсуляции в зависимости от используемого протокола и топологии. На следующих изображениях показано, как различаются структуры фреймов TCP и UDP.
Это структура фрейма TCP:
Эта структура фрейма UDP намного проще:
Типичными протоколами, которые используют TCP, являются HTTP, FTP и SMTP. Примерами протоколов, использующих UDP, являются DNS и DHCP.
источник
И объяснение уровня генерального директора:
источник
TCP и UDP - оба протокола, которые работают поверх IP. TCP имеет гарантированную доставку, а UDP - нет. Вы бы выбрали один или другой для переадресации портов в зависимости от того, какую службу вы пытаетесь переадресовать. HTTP, например, TCP. Если вы не знаете, к какому протоколу относится служба, которую вы пытаетесь переадресовать, это почти наверняка TCP.
источник
Чтобы ответить на другую часть вашего вопроса, вы должны переслать то, что использует ваше приложение. Для пересылки HTTP-трафика выберите TCP. Для пересылки трафика TFTP выберите UDP. Программы p2p в основном используют как tcp, так и udp, поэтому перешлите их обоих.
Все зависит от протокола и программы, которую вы используете.
источник
Помимо упомянутых выше различий, TCP также обеспечивает
управление потоком. Используя оконный механизм, получатель ограничивает количество октетов (байтов), которое он хочет получить от отправителя, прежде чем отправитель должен дождаться разрешения на отправку дополнительных данных. Размер окна может быть изменен получателем по мере продолжения разговора. Это позволяет получателю «регулировать» скорость данных, поступающих от отправителя: UDP не позволяет этого, и все, что может сделать получатель, это выбросить данные, которые он не может буферизовать или обработать по прибытии.
некоторые более технические средства, такие как несмежное подтверждение (использует выборочные подтверждения, позволяющие отправителю повторно передавать только пропущенный кадр, а не пропущенный кадр, и последующие, которые получатель уже имеет, но не может подтвердить обычным способом), обработку перегрузки и адаптивная повторная передача (настройка таймера, который решает, как быстро повторно отправить переданный кадр, когда подтверждение не получено). Они не относятся к UDP, но помогают TCP предоставлять дополнительные услуги по UDP без значительного увеличения нагрузки на сеть для того же объема полезной нагрузки.
источник
TCP делает все возможное, чтобы данные были переданы получателю; UDP не имеет.
источник
Не берите в голову все ответы, объясняющие одно против другого. В целях настройки переадресации порта правила довольно просты: вам нужно выбрать TCP, если только документы для протокола / приложения, которое вы используете, скажем, для использования UDP. Обычно те, которые используют UDP, связаны с потоковой передачей или очень простыми вещами, которые предпочитают облегченные протоколы / скорость над надежностью (особенно DNS и NTP). Обратите внимание, что помимо TCP и UDP есть и другие протоколы - ICMP, туннельные протоколы и т. Д.
источник
Чем более известен протокол, тем больше маршрутизаторов на пути вмешиваются в протокол. Отправьте tcp пакеты, и есть большая вероятность, что полученные пакеты сильно искажены. UDP, как правило, не так искажен, а остальные 254 протокола IP-выплат обычно не затрагиваются.
источник
Протокол пользовательских дейтаграмм (UDP)
Он является частью базовых протоколов Internet Protocol Suite. Программы на сетевых компьютерах могут отправлять короткие сообщения, иногда называемые датаграммами. UDP не гарантирует никакой надежности (бывает, что датаграмма может прийти не в порядке, дублироваться или отсутствовать без уведомления). Тот факт, что проверка того, доставлены ли все пакеты, не производится, UDP оказывается более быстрым и более эффективным для приложений, которые не нуждаются в гарантированной доставке. UDP находит свое применение в таких ситуациях:
Чувствительные ко времени приложения. Проблемы из-за задержанных пакетов исключены
Это также полезно для серверов, которые отвечают на небольшие запросы от огромного количества клиентов. UDP поддерживает пакетную трансляцию (передает всем по локальной сети) и многоадресную передачу (передает всем абонентам).
Протокол управления передачей (TCP)
Это часто упоминается как TCP / IP из-за важности этого протокола в Internet Protocol Suite. TCP работает на более высоком уровне, касаясь только двух конечных систем (например, между веб-браузером и веб-сервером). TCP обеспечивает надежную последовательную доставку потока данных из одной программы на одном компьютере в другую программу на другом компьютере. Распространенное использование поддержки перегруппировки электронной почты TCP и передачи файлов и веб-приложений. Среди задач управления TCP контролирует размер сообщений, скорость обмена сообщениями и перегрузку сетевого трафика. Что касается IP, он обрабатывает низкоуровневые передачи с компьютера на компьютер как сообщение, передаваемое через Интернет.
источник
Ну, оба являются сетевыми протоколами, построенными поверх того, что называется Интернет-протоколом или IP. Интернет-протокол является основным протоколом Интернета и, например, позволяет нам просматривать веб-страницы. Вот почему вы часто будете видеть эти протоколы, написанные как TCP / IP или UDP / IP. Они на самом деле являются основными протоколами Интернета.
В обоих случаях ваши данные делятся на куски, называемые пакетами. TCP гарантирует, что эти пакеты попадают к месту назначения и в правильном порядке, без каких-либо ошибок.
UDP, с другой стороны, не гарантирует, что пакет данных будет даже доставлен. Это только гарантирует, что, если это действительно прибудет, это будет без ошибки.
Как правило, другие протоколы будут работать поверх TCP и UDP и называются протоколами приложений, поскольку они работают внутри приложения, а не в операционной системе. Ваш веб-браузер использует протокол HTTP, который будет использовать протокол TCP.
При поиске доменного имени или DNS-запросах часто используется UDP, но также может использоваться TCP. Ряд потоковых сервисов используют UDP под другими протоколами приложений.
Я надеюсь, что это отвечает на ваш вопрос на более простом английском языке.
источник