В чем разница между TCP и UDP?
Вероятно, вы видели ссылки на TCP и UDP при настройке переадресации портов на маршрутизаторе или при настройке программного обеспечения брандмауэра. Эти два протокола используются для разных типов данных.
TCP / IP - это набор протоколов, используемых устройствами для связи через Интернет и большинство локальных сетей. Он назван в честь двух своих оригинальных протоколов - протокола управления передачей (TCP) и интернет-протокола (IP). TCP предоставляет приложениям способ доставки (и получения) упорядоченного и проверенного на поток ошибок потока информационных пакетов по сети. Протокол пользовательских дейтаграмм (UDP) используется приложениями для доставки более быстрого потока информации за счет устранения ошибок. При настройке сетевого оборудования или программного обеспечения вам может понадобиться.
Что у них общего
Как TCP, так и UDP являются протоколами, используемыми для отправки битов данных, известных как пакеты, через Интернет. Оба протокола основаны на протоколе IP. Другими словами, отправляете ли вы пакет через TCP или UDP, этот пакет отправляется на IP-адрес. Эти пакеты обрабатываются аналогично, так как они пересылаются с вашего компьютера на промежуточные маршрутизаторы и на место назначения.
TCP и UDP не единственные протоколы, которые работают поверх IP. Тем не менее, они являются наиболее широко используемыми.
Как работает TCP
TCP является наиболее часто используемым протоколом в Интернете..
Когда вы запрашиваете веб-страницу в своем браузере, ваш компьютер отправляет TCP-пакеты на адрес веб-сервера, прося его отправить веб-страницу обратно к вам. Веб-сервер отвечает отправкой потока TCP-пакетов, которые ваш веб-браузер объединяет для формирования веб-страницы. Когда вы нажимаете на ссылку, входите в систему, оставляете комментарий или делаете что-то еще, ваш веб-браузер отправляет TCP-пакеты на сервер, а сервер отправляет TCP-пакеты обратно..
TCP - это надежность. Пакеты, отправляемые с TCP, отслеживаются, поэтому данные не будут потеряны или повреждены при передаче. Вот почему загрузка файлов не повреждается, даже если есть сбои в работе сети. Конечно, если получатель полностью отключен, ваш компьютер сдается, и вы увидите сообщение об ошибке, в котором говорится, что он не может связаться с удаленным хостом..
TCP достигает этого двумя способами. Сначала он упорядочивает пакеты по нумерации. Во-вторых, он проверяет ошибки, заставляя получателя отправить ответ отправителю, сообщив, что он получил сообщение. Если отправитель не получает правильный ответ, он может переслать пакеты, чтобы получатель получил их правильно.
Process Explorer и другие системные утилиты могут показывать тип соединений, которые устанавливает процесс. Здесь мы видим браузер Chrome с открытыми TCP-соединениями с различными веб-серверами..
Как работает UDP
Протокол UDP работает аналогично протоколу TCP, но он отбрасывает все средства проверки ошибок. Вся обратная связь вводит задержку, замедляя процесс.
Когда приложение использует UDP, пакеты просто отправляются получателю. Отправитель не ждет, чтобы убедиться, что получатель получил пакет, он просто продолжает отправлять следующие пакеты. Если получатель пропускает несколько пакетов UDP, они просто теряются - отправитель не отправляет их повторно. Потеря всей этой нагрузки означает, что устройства могут общаться быстрее.
UDP используется, когда скорость желательна и исправление ошибок не требуется. Например, UDP часто используется для прямых трансляций и онлайн-игр..
Например, допустим, вы смотрите потоковое видео в режиме реального времени, которое часто транслируется с использованием UDP вместо TCP. Сервер просто отправляет постоянный поток пакетов UDP на компьютеры, которые смотрят. Если вы потеряете соединение на несколько секунд, видео может на мгновение заморозиться или вздрогнуть, а затем перейти к текущему биту трансляции. Если вы испытываете незначительную потерю пакетов, видео или аудио могут на мгновение искажаться, поскольку видео продолжает воспроизводиться без отсутствующих данных..
Это работает аналогично в онлайн-играх. Если вы пропустите некоторые UDP-пакеты, персонажи игроков могут телепортироваться по карте, когда вы получаете более новые UDP-пакеты. Нет смысла запрашивать старые пакеты, если вы их пропустили, так как игра продолжается без вас. Все, что имеет значение, это то, что происходит сейчас на игровом сервере, а не то, что произошло несколько секунд назад. Угроза исправления ошибок в TCP помогает ускорить игровое соединение и уменьшить задержки.
И что?
Разработчик использует приложение или TCP или UDP, и выбор зависит от того, что ему нужно. Большинству приложений требуется исправление ошибок и надежность TCP, но некоторым приложениям нужна скорость и уменьшенные издержки UDP. Если вы запустите инструмент сетевого анализа, такой как Wireshark, вы увидите, как различные типы пакетов перемещаются туда-сюда..
Если вы не являетесь сетевым администратором или разработчиком программного обеспечения, это не должно сильно на вас повлиять. Если вы настраиваете программное обеспечение маршрутизатора или брандмауэра и не уверены, использует ли приложение TCP или UDP, вы обычно можете выбрать опцию «Оба», чтобы ваш маршрутизатор или брандмауэр применяли одно и то же правило к трафику TCP и UDP..