TCP против UDP: понимание различий

Если вы когда-либо сталкивались с техническим беспорядком во время использования VPN, вы могли видеть такие термины, как OpenVPN через TCP или OpenVPN через UDP. Возможно, вы знаете, что OpenVPN является наиболее безопасным протоколом VPN. Но как насчет TCP и UDP? Что это за термины и что они означают?

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

TCP и UDP: что общего?

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

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

Как TCP, так и UDP работают поверх IP (интернет-протокола). Вот почему вы можете услышать такие термины, как TCP / IP или UDP / IP. Однако, поскольку TCP / IP и UDP / IP используются очень часто, их называют просто TCP и UDP..

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

Давайте разберемся с каждым из этих протоколов отдельно.

Все о ПТС

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

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

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

По сути, TCP не односторонняя связь. Эти пакеты отправляются вашим браузером туда и обратно на сервер и с сервера в браузер.

Разница в том, что браузер отправляет пакеты запроса, а сервер отвечает, отправляя пакеты данных, которые сшиты правильным образом, чтобы сформировать полнофункциональную веб-страницу.

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

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

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

Все о УДП

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

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

При использовании UDP отправитель отправляет пакеты получателю. Отправителю все равно, получил их получатель или нет. Он продолжит отправку пакетов данных. В качестве получателя, если вы пропустили пару пакетов UDP между ними, вы не сможете запросить их снова.

Вы получили все пакеты? Там нет никакого способа узнать. И вы не можете вернуть любые пропущенные пакеты. Это звучит ужасно, но в этом общении есть что-то хорошее – быстрее чем TCP.

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

UDP используется для игр

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

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

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

TCP и UDP: в чем различия?

Этот график суммирует различия, но мы вдаваемся в детали для каждого раздела ниже.

  TCP UDP
соединение Ориентированный на соединение Connectionless
Последовательность действий TCP нумерует каждый пакет, чтобы получатель мог расположить их в последовательности UDP отправляет пакеты без нумерации
скорость Помедленнее Быстрее
надежность Высоко Низкий
Размер заголовка Пакеты тяжелы из-за накладных расходов Легкие пакеты с минимальными заголовками
Обнаружение / исправление ошибок Проверка ошибок и исправление ошибок Проверка ошибок, но не восстановление. Поврежденные пакеты просто отбрасываются и больше не запрашиваются
Подтверждение Подтверждение отправлено получателем Подтверждение не отправлено
Способ передачи Ручей Индивидуальные пакеты
Контроль заторов да нет
Приложения Передача файлов, электронная почта, просмотр веб-страниц Видеоконференции, игры, трансляции

Давайте углубимся в детали.

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

1. Соединение

TCP ориентирован на соединение, а UDP – без соединения. Это означает что перед отправкой пакетов TCP устанавливается соединение между сервером и клиентом. Этот процесс настройки соединения называется TCP handshaking. Поток пакетов затем отправляется через это соединение.

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

2. Последовательность

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

3. Скорость

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

4. Надежность

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

5. Размер заголовка

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

6. Обнаружение / исправление ошибок

TCP имеет методы обнаружения и исправления ошибок. Когда пакет обнаружен поврежденным, TCP не отправляет подтверждение для него. Это побуждает отправителя повторно отправить пакет. Таким образом, полное сообщение доставляется без ошибок.

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

7. Подтверждение

Когда TCP-пакеты получены получателем, он отправляет подтверждение отправителю. Если отправитель не получает подтверждение, он будет считать, что пакеты не были доставлены или были доставлены поврежденными. Затем он продолжит повторную отправку пакетов..

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

8. Способ передачи

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

9. Контроль заторов

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

10. Приложения

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

TCP-порты против UDP-портов

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

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

Ваш IP-адрес имеет несколько портов. Может быть 65 535 портов TCP и 65 535 портов UDP. Когда ваш браузер отправляет или получает данные в Интернете, эти данные отправляются с онлайн-серверов на ваш IP-адрес и определенный порт.

Если данные отправляются по протоколу TCP, он использует один из ваших портов TCP, а если он передается по протоколу UDP, он подключается через один из ваших портов UDP..

OpenVPN: TCP или UDP?

Когда вы используете OpenVPN, с каким протоколом вы должны его использовать? TCP или UDP?

OpenVPN является одним из многих протоколов, которые вы можете использовать с VPN. Эта статья объясняет это и другие популярные протоколы.

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

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

Это приложение, которое решает разницу. Если вы хотите использовать VPN для игр или потокового вещания, вы можете подключиться с OpenVPN с UDP. И если вы хотите загружать файлы, подключаться к сети P2P или выполнять обычный просмотр, вы можете подключиться с помощью OpenVPN с TCP.

Не знаете, какой протокол использовать? Мы дадим вам краткое резюме здесь.