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

Оглавление:

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

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

Видео: В чем разница между TCP и UDP?
Видео: Зарядка телефона в автомобиле занимает целую вечность, прекращайте это делать - YouTube 2024, Апрель
Anonim
Вероятно, вы видели ссылки на TCP и UDP при настройке переадресации портов на маршрутизаторе или при настройке программного обеспечения брандмауэра. Эти два протокола используются для разных типов данных.
Вероятно, вы видели ссылки на TCP и UDP при настройке переадресации портов на маршрутизаторе или при настройке программного обеспечения брандмауэра. Эти два протокола используются для разных типов данных.

TCP / IP - это набор протоколов, используемых устройствами для связи через Интернет и большинство локальных сетей. Он назван в честь двух его исходных протоколов - протокола управления передачей (TCP) и протокола Интернета (IP). TCP предоставляет приложениям способ доставки (и получения) упорядоченного и проверенного по ошибке потока информационных пакетов по сети. Протокол пользовательских дейтаграмм (UDP) используется приложениями для доставки более быстрого потока информации, устраняя проверку ошибок. При настройке некоторого сетевого оборудования или программного обеспечения вам может понадобиться знать разницу.

Что у них общего?

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

TCP и UDP - это не единственные протоколы, которые работают поверх IP. Однако они наиболее широко используются.
TCP и UDP - это не единственные протоколы, которые работают поверх IP. Однако они наиболее широко используются.

Как работает TCP

TCP является наиболее часто используемым протоколом в Интернете.

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

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

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

Проводник процессов и другие системные утилиты могут показать тип подключений процесса - здесь мы видим браузер Chrome с открытыми TCP-соединениями на разных веб-серверах.

Image
Image

Как работает UDP

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

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

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

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

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

Image
Image

И что?

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

Рекомендуемые: