TCP против UDP: в чем разница?

 

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

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

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

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

Краткий обзор модели OSI

Физический слой

На самом базовом уровне этот уровень состоит из механических элементов отправки и получения данных. Это определяет, как контакты и провода кодируют 0 и 1 в сигнал, который затем отправляется в местные средства массовой информации в виде световых, электрических и радиосигналов.

Уровень канала передачи данных (DLL)

Уровень канала передачи данных действует как посредник между физическими компонентами устройства и пакетами сетевых данных. Данные на физическом уровне по существу неструктурированы, и задача этого уровня — упаковать их в кадры. При этом постоянный поток отправленных данных группируется в кластеры — процесс, называемый мультиплексированием. Здесь каждому пакету данных присваивается заголовок, обозначающий предполагаемого отправителя и получателя.

Сетевой уровень

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

Транспортный уровень

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

Сеансовый уровень

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

Уровень представления

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

Прикладной уровень

Наконец, эти полученные данные (или данные, которые будут отправлены) необходимо передать пользователю. Хотя OSI является полезной моделью, имейте в виду, что ни один современный протокол не следует ее точным контурам на всех семи уровнях. Например, протоколы TCP и UDP ориентированы только на сетевой и транспортный уровни.

Что такое TCP

Протокол управления транспортировкой был, по сути, первым сетевым протоколом. Изобретенная вскоре после появления Интернета в 1981 году, ее первая форма была сосредоточена на сегментации данных на пакеты. За прошедшие десятилетия он вырос и превратился в стек TCP/IP, который является сегодняшним стандартом. Пакеты в TCP разделены на 4 уровня: канальный уровень, сетевой, транспортный и прикладной.

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

Сначала клиент инициирует соединение, отправляя сообщение SYN (синхронизация) (в форме случайного числа) — при получении сервер подтверждает его с помощью SYN-ACK (который просто добавляет 1 в конце номера клиента).). Наконец, этот SYN-ACK подтверждается клиентом сообщением ACK. Это виртуальное рукопожатие гарантирует, что и отправитель, и получатель готовы к общению и знают, что канал установлен. Если принимающий порт отключен или недоступен, сообщение ACK заменяется пакетом TCP RST (сброс).

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

Важность интеллектуальной собственности

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

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

Хотя TCP/IP стал стандартом безопасной и надежной передачи данных через Интернет, основным преимуществом подхода IP является его гибкость, и TCP — не единственный способ передачи данных из точки А в точку Б.

Что такое UDP

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

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

В результате UDP используется в сервисах, которым требуется обработка практически в реальном времени. Подумайте о потоковом видео и компьютерных играх: им может потребоваться много датаграмм UDP, но их скорость необходима для хорошего взаимодействия с пользователем. А если пакет упадет или пропадет, реальными последствиями, возможно, будет отсутствие пикселя, сохраняющегося в течение кадра. Связывая доменное имя с узнаваемым веб-адресом, запросы службы доменных имен (DNS) также используют UDP. Эти запросы крошечные и состоят из одной пары запрос-ответ, но они должны выполняться быстро, что делает UDP естественным вариантом использования.

Отличия между TCP и UDP по функциям

ОсобенностьUDP (протокол пользовательских дейтаграмм)TCP (протокол управления передачей)
СвязьБез установления соединения: соединение не устанавливается перед отправкой данных.Ориентированный на соединение, перед передачей данных устанавливается трехстороннее рукопожатие.
НадежностьНе гарантирует доставку, заказ или проверку ошибок.Архитектура пакетов обеспечивает доставку в правильном порядке.
СкоростьБыстрый.Медленнее, чем UDP, из-за обширных механизмов проверки ошибок.
Управление потоком данныхНет контроля потока; отправляет данные так быстро, как отправитель может их сгенерировать и сеть может обработать.Управление потоком осуществляется с помощью оконных методов для настройки потока данных.
ПрименениеИспользуется для чувствительных ко времени приложений, где потеря некоторых данных допустима (например, потоковое аудио/видео в реальном времени).Используется там, где надежная доставка данных имеет решающее значение (например, просмотр веб-страниц, электронная почта).
Размер заголовкаМеньший размер заголовка (8 байт).Увеличенный размер заголовка (минимум 20 байт).
Последовательность действийНе упорядочивает пакеты данных.Упорядочивает пакеты данных для обеспечения упорядоченной доставки.

Еще немного пищи для размышления, посвященной вопросам безопасности

Выбирая между протоколами UDP и TCP в своих проектах, имейте в виду, что хотя скорость UDP делает его привлекательной перспективой, он по своей сути более восприимчив к проблемам безопасности, таким как спуфинг и атаки типа «отказ в обслуживании». Механизм установления связи TCP предотвратит возникновение проблем с любыми поддельными IP-адресами, но учтите, что TCP не застрахован. В последние годы DDoS-атаки с усилением взломали этот возвратно-поступательный механизм, заставив сервер ждать окончательного сообщения ACK, которое так и не пришло.

https://www.youtube.com/watch?v=yMSJKBQINAc&pp=ygUvVENQINC_0YDQvtGC0LjQsiBVRFA6INCyINGH0LXQvCDRgNCw0LfQvdC40YbQsD8%3DVideo can’t be loaded because JavaScript is disabled: TCP и UDP | Что это такое и в чем разница? (https://www.youtube.com/watch?v=yMSJKBQINAc&pp=ygUvVENQINC_0YDQvtGC0LjQsiBVRFA6INCyINGH0LXQvCDRgNCw0LfQvdC40YbQsD8%3D)


Source: https://ip-calculator.ru/blog/networking/tcp-vs-udp/

Межтекстовые Отзывы
Посмотреть все комментарии
guest

Как исправить ошибку 0x00000050 в Windows 11

Ошибка 0x00000050, также известная как PAGE_FAULT_IN_NONPAGED_AREA, возникает, когда Windows 11 пытается получить доступ к недопустимой системной памяти. Обычно...

Как исправить проблемы с сетевым подключением в Windows 11

Интернет прошел путь от полезности до необходимости. В наши дни компьютер без Интернета почти так же хорош, как...

Кибератаки, сетевые атаки, угрозы, уязвимости и смягчение последствий

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

5 способов исправить ошибку ERROR_COMPRESSION_DISABLED

Ошибка ERROR_COMPRESSION_DISABLED 769 (0x301) с описанием ошибки «Сжатие отключено для этого тома» появляется при попытке выполнить операции, требующие...

Как исправить ошибку 0x0000003B в Windows 11

Ошибка SYSTEM_SERVICE_EXCEPTION (0x0000003B) появляется в Windows 11, когда системная служба не может выполниться правильно, что обычно приводит к...

Безопасность и надежность: как мобильные прокси обеспечивают безопасное соединение

Мобильные прокси выделяются как эффективное средство обеспечения безопасности и конфиденциальности. В данной статье мы рассмотрим ключевые аспекты, включая...

Как исправить ошибку 0x80070422 в Windows 11

Ошибка 0x80070422 в Windows 11 возникает, когда служба Windows Update не запущена или отключена, не давая системе устанавливать...

Контейнеризация для системных администраторов: Docker vs Podman – полное руководство

Контейнеризация стала неотъемлемой частью современной IT-инфраструктуры, кардинально изменив подходы к развертыванию и управлению приложениями. Для системных администраторов понимание...

Как исправить ошибку 0x803F8001 в Windows 11

Код ошибки Microsoft Store 0x803F8001 обычно появляется при попытке загрузить, обновить или запустить приложения на устройстве Windows 11....

Как исправить ошибку ERROR_NOT_ALLOWED_ON_SYSTEM_FILE

ERROR_NOT_ALLOWED_ON_SYSTEM_FILE имеет значение 313 (0x139) и сопровождается сообщением Операция не разрешена для внутреннего файла файловой системы. Это код...

Может ли беспроводной маршрутизатор принимать сигнал Wi-Fi?

Проводные и беспроводные соединения выходят далеко за рамки обсуждений «по радиоволнам» и «по кабелю». Когда мы обсуждаем любой...

Комплексная защита Linux-серверов: руководство по системному хардинингу и укреплению безопасности

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

Как подключиться к домашней сети из любого места?

Концепция удаленного доступа к чему-либо — один из наиболее удобных способов выполнения задач без физического присутствия. Удаленное управление...

Кто-то изменил пароль моего маршрутизатора: как исправить?

Для многих из нас, кто проводит много времени в Интернете, интернет-безопасность – это, как правило, то, о чем...

Как исправить ошибку синего экрана PAGE_FAULT_IN_NONPAGED_AREA в Windows 10/11

Ошибка PAGE_FAULT_IN_NONPAGED_AREA — это распространенная проблема синего экрана смерти (BSOD) в системах Windows 10 и 11. Обычно она...

Что такое Wi-Fi 7 и чем он отличается?

Будь то Bluetooth, USB или WiFi, каждый технический стандарт со временем претерпевает множество итерационных обновлений. Следующее поколение Wi-Fi...

Почему DNS-сервер может быть недоступен в Windows 10

Сообщение об ошибке «Ваш DNS-сервер может быть недоступен» указывает на то, что может возникнуть проблема с DNS-сервером (системой...

Проблема с подключением к Wi-Fi ноутбука с Windows 11 после обновления

Работаете ли вы дома, учитесь онлайн или смотрите любимые шоу в потоковом режиме, стабильное и быстрое соединение Wi-Fi...

Подробное объяснение стандарта Wi-Fi 7

Вы, должно быть, уже слышали о Wi-Fi 7. С конца 2021 года этот новейший стандарт беспроводной связи стал...

Для чего нужны библиотеки Ntdll.dll, Advapi32.dll, Gdi32.dll?

DLL также называется Dynamic Linked Library, чтобы содержать набор функций, доступных в ОС Windows 10/8/7. Другая программа может...