TCP и UDP — это протоколы подключения, которые используются для определения способа обмена данными через Интернет-соединение. Если вы уже знаете, что означает IP (например, Интернет-протокол), то вы уже в курсе, поскольку TCP и UDP были разработаны на его основе.

Однако было бы неправильно думать, что они практически одинаковы; хотя и TCP, и UDP «говорят» о способах отправки / получения ваших данных в Интернете, на самом деле они сильно различаются и по этой причине используются для разных целей.

Сравнение TCP UDP

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

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

Что такое IP-адрес?

IP, сокращенно от Internet Protocol, является той самой магистралью, на которой построен Интернет в том виде, в каком мы его знаем. Его важность можно легко понять по тому факту, что каждому устройству назначается уникальный IP-адрес для доступа в Интернет.

Раньше адрес состоял только из чисел и десятичных знаков. Чтобы быть более конкретным, IPv4-адрес может быть сформирован из четырех отдельных чисел, каждое из которых может иметь значение от 0 до 254. IPv4 дал нам общий диапазон в 4,3 миллиарда уникальных IP-адресов.

Неизбежно Интернет начал доходить до точки, когда новые уникальные IP-адреса не могли быть сгенерированы, и именно тогда система IPv6 пришла, чтобы спасти положение. В общедоступных IPv6-адресах используются шестнадцатеричные цифры, каждый из которых содержит 128 бит, что означает, что вместо базы 10 (от 0 до 10) они используют базу 16 (от 0 до 10 плюс «a» — «f»).

С помощью системы IPv6 общий диапазон общедоступных IPv6-адресов, которые мы могли бы иметь, составляет 340 ундециллионов (3,4 * 10 ^ 28). Если это невозможно понять, посмотрите, как выглядят адреса IPv4 и IPv6 ниже:

Пример IPv4-адреса: 10.238.126.215
Пример IPv6-адреса: fe80: 0db8: 0412: 2001: 3c5e: 0000: 10a9

Хотя конечной целью IPv6 является замена IPv4, в настоящее время эти два протокола работают вместе.

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

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

После того, как пакет покидает ваше устройство, он направляется к шлюзу, который сканирует IP-адрес назначения вашего пакета в своем домене. Стоит отметить, что шлюз может видеть только определенный набор IP-адресов в Интернете.

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

Также стоит отметить, что тот факт, что ваши данные разделены на небольшие пакеты, означает, что они не обязательно должны прибывать по порядку или даже использовать один и тот же маршрут, если на то пошло. Фактически, пакеты обычно каждый раз пытаются найти самый быстрый маршрут, который они могут.

И последнее, но не менее важное: вы должны знать, что Интернет-протокол не зависит от формата, что делает его идеальным для любых форм данных, будь то видео, изображения, аудио, электронные письма, мгновенные сообщения или даже игры.

Что такое TCP?

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

Вы можете заметить, что иногда он соединяется с IP и называется TCP / IP, но это означает одно и то же (т.е. TCP и TCP / IP — это одно и то же).

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

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

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

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

Короче говоря, TCP:

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

Что такое UDP?

UDP, сокращение от User Datagram Protocol, является альтернативой TCP, поэтому можно с уверенностью предположить, что по сути они несут одну и ту же задачу. Однако в то же время они сильно различаются, поскольку TCP довольно тщательно проверяет пакетные данные, а UDP — немного более небрежно.

Представьте, что два сотрудника обрабатывают письма на станции сортировки почты: TCP — это тот, который тщательно проверяет каждое письмо и приостанавливает обмен данными до тех пор, пока не прибудет каждое письмо, а UDP просто проверяет письма на целостность и пересылает их по назначению, при этом отбрасывая любое письмо, не пришел и не просил повторную отправку.

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

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

Другими словами, UDP:

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

TCP и UDP в использовании VPN

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

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

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

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

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

TCP

UDP

TCP — наиболее широко используемый протокол в Интернете.
Все отправленные данные доходят до получателя, нет гарантии потери пакетов
Пакеты отправляются по порядку
Требуется больше ресурсов, что тоже замедляет работу.

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

TCP против UDP: заключение

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

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

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