Какие основные протоколы используются на транспортном уровне в чем отличие этих протоколов
Перейти к содержимому

Какие основные протоколы используются на транспортном уровне в чем отличие этих протоколов

  • автор:

Протоколы транспортного уровня (TCP, UDP, SCTP)

SCTP (Stream Control Transmission Protocol — протокол передачи с управлением потока) — протокол транспортного уровня. Выполняет те же функции, что и протоколы TCP и UDP. Но объединяет при этом их преимущества, лишает недостатков и добавляет новые возможности.

Отличия от протоколов TCP и UDP:

SctpTable.png

Основные преимущества (пояснения к таблице):

  • Сохранение границ — в протоколе TCP данные передаются непрерывным потоком байт, читаются так же, поэтому программист должен сам следить за тем, как расставлять границы в этом потоке и разделать куски данных. SCTP позволяет ставить границы и обрабатывать данные пакетами, как в UDP. Но при этом гарантирует порядок доставки пакетов, обеспечивает надёжность и ориентирован на соединения. Упорядоченность пакетов, кстати, можно отключить для повышения скорости.
  • Multihoming (многолинейность, множественная адресация, см. иллюстрацию ниже) — SCTP позволяет устанавливать соединение к одному серверу по разным линиям связи (например, по Wi-Fi и по Ethernet). Таким образом, если одна линия связи отвалится (скорей всего Wi-Fi), то соединение не разорвётся. Это так же позволяет передавать данные сразу по нескольким линиям, что увеличивает скорость передачи. Если в TCP одна линия связи оборвётся, то соединение будет потеряно, придётся устанавливать новое.

Multihoming.png

  • Multithreading (многопоточность) — позволяет передавать несколько потоков в рамках одной ассоциации (ассоциацией в SCTP называется соединение между двумя хостами). Например в TCP данные и служебная информация передаются по одному соединению. Поэтому задержка в получении служебнной информации может быть вызвана текущей передачей данных (например, ACK может не прийти вовремя, поэтому мы пошлём дупликат). Такая проблема называется head-of-line blocking, HOL. Многопоточность позволяет передавать эти данные независимо, что приведёт к лучшему использованию доступных ресурсов.
  • 4-way handshake — протокол TCP подвержен SYN-flood атакам. Злоумышленник шлёт много пакетов в короткое время для запроса TCP соединения (запрос на соединение помечен битом SYN в заголовке, поэтому и SYN-flood). Но при этом не подтверждает установление соединения. Таким образом на сервере образуются полуоткрытые соединения. Они закрываются сами по истечению таймаута. Но цель злоумышленника состоит в том, чтобы создать как можно больше таких соединений, не давая тем самым создавать новые валидные соединения из-за ограничения в их количестве на стороне сервера (сервер не может иметь бесконечное число соединений, а если сделать таймаут на обрыв слишком маленьким, то валидные соединения могут отваливаться раньше времени, что тоже нехорошо, и это всё делает syn-атаки возможными). В SCTP используется не тройное рукопожатие, а четверное (из разряда: «я хочу установить соединение — ты точно хочешь установить соединение? — да, я точно хочу установить соединение — ну тогда ладно»). Таким образом за короткий промежуток времени нельзя создать много новых соединений.

Synfloodsctp.png

  • В SCTP не бывает полузакрытых соединений, как в TCP. Если мы закрываем соединение, то сразу в обе стороны.

К сожалению, несмотря на все преимущеста, протокол SCTP не получил пока широкого распространения. Это связано с инертностью (TCP работает, зачем менять?) и сложностью поддержки на аппаратном уровне (например, вся обёртка сетевых протоколов, те же фаерволы, имеют правила в духе «пропускать только UDP, TCP» пакеты; для примера можно вспомнить, как это используется в NAT).

Источники информации

  • Лекция А. Масальских — Транспортный уровень. Введение. TCP. UDP. SCTP
  • SCTP в Java (примеры кода)
  • RFC 4960 — SCTP

TCP/IP vs. OSI: Какие Различия у Этих Двух Моделей?

Когда мы говорим о коммутаторах уровня 2 и коммутаторах уровня 3, мы фактически имеем в виду уровни общей модели протокола — модели с открытым исходным кодом (OSI). Они обычно используется в описании сетевых коммуникаций. Передача данных между различными сетями невозможна, если отсутствуют общие правила передачи и получения пакетов данных. Эти правила известны как протоколы, среди которых протокол TCP (протокол управления передачей)/IP (интернет протокол) является одним из наиболее широко используемых. Модель TCP/IP широко используется в описании сети и старше модели OSI (open systems interconnection basic reference model — Базовая Эталонная Модель Взаимодействия Открытых Систем). У них обоих много слоев, в чем разница между ними?

Уровни модели OSI

Модель OSI является концептуальной моделью, которая характеризует и стандартизирует то, как различные программные и аппаратные компоненты, участвующие в сетевой коммуникации, должны разделять задачи и взаимодействовать друг с другом. Она имеет семь уровней. На следующем рисунке показаны названия и основные функции каждого уровня.

уровни-модели-OSI

Рис.1 7 уровней модели OSI

Уровни модели TCP/IP

Модель TCP/IP также является многоуровневой эталонной моделью, но это четырехуровневая модель. Она широко известна как TCP/IP, потому что ее основополагающие протоколы TCP и IP, однако, не только эти два протокола используются в этой модели.

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

Прикладной уровень модели TCP/IP предоставляет приложениям возможность доступа к службам других уровней и определяет протоколы, используемые приложениями для обмена данными. Наиболее широко известные протоколы прикладного уровня: HTTP, FTP, SMTP, Telnet, DNS, SNMP и протокол маршрутизации информации (RIP).

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

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

Сетевой (межсетевой) уровень

Сетевой уровень отвечает за адресацию хостов, упаковку и функции маршрутизации. Основными протоколами сетевого уровня являются IP, протокол разрешения адресов (ARP), протокол управляющих сообщений Интернета (ICMP) и протокол управления группами Интернета (IGMP). На этом уровне IP добавляет заголовок к пакетам, который известен как IP-адрес. Сейчас есть IPv4 (32-разрядный) адрес и IPv6 (128-разрядный) адрес.

сетевой-уровень

Рис.2: примеры IPv4 и IPv6 адресов.

Уровень сетевого доступа

Уровень сетевого доступа (или канальный уровень) отвечает за размещение пакетов TCP/IP на сетевом носителе и получение пакетов TCP/IP с сетевого носителя. TCP/IP разработан, чтобы быть независимым от метода доступа к сети, формата кадра и среды. Другими словами, он не зависит от какой-либо конкретной сетевой технологии. Таким образом, TCP/IP можно использовать для подключения различных типов сетей, таких как Ethernet, Token Ring и асинхронный режим передачи (ATM).

Как обрабатываются данные во время передачи?

В многоуровневой системе устройства обмениваются данными в другом формате, известном как блок протокольных данных (PDU). В таблице ниже показаны PDU на разных уровнях.

QQ图片20190225151147

Таблица: блок протокольных данных (PDU), обрабатываемый на разных уровнях.

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

osi-and-tcpip-models

Рисунок 3: потоки данных от верхних уровней к нижним, каждый уровень добавляет верхний/нижний колонтитул к PDU.

Во время передачи каждый слой добавляет верхний или нижний колонтитул или оба к PDU, поступающему с верхнего уровня, который направляет и идентифицирует пакет. Этот процесс называется инкапсуляцией. Верхний (и Нижний колонтитулы) и данные вместе образуют PDU для следующего уровня. Процесс продолжается до достижения самого низкого уровня (физического уровня или уровня доступа к сети), с которого данные передаются на принимающее устройство. В приемном устройстве происходит обратный процесс, де-инкапсуляции данных на каждом уровне. верхние и нижние колонтитулы направляют операции. Затем приложение, наконец, использует данные. Процесс продолжается до тех пор, пока все данные не будут переданы и получены.

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

Модель TCP/IP старше модели OSI. На следующем рисунке показана соответствующая взаимосвязь их уровней.

comparison-of-osi-and-tcpip

Рисунок 4: модель OSI vs модели TCP/IP и набор протоколов TCP/IP.

Сравнивая слои TCP/IP-модели, и модели OSI, прикладной уровень протокола TCP/IP-модели аналогичен комбинации слоев 5, 6, 7 модели OSI, но TCP/IP-модель не имеет отдельного уровня представления и сеансового уровня. Транспортный уровень протокола TCP/IP включает в себя функции транспортного уровня OSI и некоторые функции сеансового уровня модели OSI. Уровень доступа сети модели TCP/IP охватывает канальный и физический уровни модели OSI. Обратите внимание, что сетевой уровень TCP/IP не использует преимущества служб последовательности и подтверждения, которые могут присутствовать на канальном уровне передачи данных модели OSI. Это ответственность транспортного уровня в модели TCP/IP.

Значение TCP/IP и OSI в устранении неполадок

Учитывая значения двух моделей, модель OSI является концептуальной моделью. Она в основном используется для описания, обсуждения и понимания отдельных сетевых функций. Однако, TCP/IP в первую очередь сконструирована для того чтобы разрешить специфический круг проблем, а не действовать как описание поколения для всех сетевых взаимодействий как модель OSI. Модель OSI является общей, независимой от протокола, но большинство протоколов и систем придерживаются ее, в то время как модель TCP/IP основана на стандартных протоколах, которые разработал интернет. Другой момент, который следует отметить в модели OSI заключается в том, что не все уровни используются в более простых приложениях. В то время как уровни 1, 2, 3 являются обязательными для любой передачи данных, приложение может использовать какой-то уникальный интерфейс уровня вместо обычных верхних уровней в модели.

Заключение

Модель TCP/IP и модель OSI являются концептуальными моделями, используемыми для описания всех сетевых коммуникаций, в то время как TCP/IP сама по себе также является важным протоколом, используемым во всех операциях Интернета. Как правило, когда мы говорим об уровне 2, уровне 3 или уровне 7, в котором работает сетевое устройство, мы имеем в виду модель OSI. Модели TCP/IP используется как для моделирования текущей архитектуры Интернета и обеспечивают набор правил, которым следуют все формы передачи по сети.

Отличия TCP- и UDP-протоколов — определяем разницу на примерах

Рассматриваем два самых популярных протокола транспортного уровня — протоколы TCP и UDP — и сравниваем их.

Эта инструкция — часть курса «Как работают сетевые протоколы».

Смотреть весь курс

Изображение записи

Современный мир завязан на системах связи, когда различные устройства «общаются» между собой посредством «правил», или протоколов модели OSI (Open Systems Interconnection model), определяющей методы взаимодействия. В тексте рассмотрим два самых популярных протокола транспортного уровня — TCP и UDP — и сравним их.

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

TCP — протокол транспортного уровня

Первым из рассматриваемых протоколов будет TCP, или Transmission Control Protocol, который используется для транспортировки сообщений между устройствами в сети.

В сети файлы не передаются целиком, а дробятся и передаются в виде относительно небольших сообщений. Далее они передаются другому устройству — получателю, где повторно собираются в файл.

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

У протокола TCP есть несколько особенностей:

  • Система нумерации сегментов. TCP отслеживает передаваемые и принимаемые сегменты, присваивая номера каждому из них. Байтам данных, которые должны быть переданы, присваивается определенный номер байта, в то время как сегментам присваиваются порядковые номера.
  • Управление потоком. Функция ограничивает скорость, с которой отправитель передает данные. Это делается для обеспечения надежности доставки, в том числе чтобы компьютер не генерировал пакетов больше, чем может принять другое устройство. Если говорить простым языком, то получатель постоянно сообщает отправителю о том, какой объем данных может быть получен.
  • Контроль ошибок. Функция реализуется для повышения надежности путем проверки байтов на целостность.
  • Контроль перегрузки сети. Протокол TCP учитывает уровень перегрузки в сети, определяемый объемом данных, отправленных узлом.

Примеры применения сетевого протокола TCP

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

  • SSH, FTP, Telnet: в данных протоколах TCP используется для обмена файлами.
  • SMTP, POP, IMAP: протоколы, где TCP отвечает за передачу сообщений электронной почты.
  • HTTP/HTTPS: протоколы, где TCP отвечает за загрузку страниц из интернета.

Эти примеры работают на уровне приложений стека TCP/IP и передают данные вниз к TCP, на транспортный уровень.

Строение протокола TCP

пакет TCP — структура протокола

В каждый пакет данных TCP добавляет заголовок общим объемом в 20 байт (или октетов), в котором содержатся 10 обязательных полей:

  • Порт источника — порт устройства-отправителя.
  • Порт назначения — порт принимающего устройства.
  • Порядковый номер. Устройство, инициирующее TCP-соединение, должно выбрать случайный начальный порядковый номер, который затем увеличивается в соответствии с количеством переданных байтов.
  • Номер подтверждения. Принимающее устройство увеличивает этот номер с нуля в соответствии с количеством полученных байтов.
  • Сдвиг данных TCP. Данный параметр определяет размер заголовка, чтобы система могла понять, где начинаются данные.
  • Зарезервированные данные — зарезервированное поле, значение которого всегда равно нулю.
  • Флаги управления. TCP использует девять флагов для управления потоком данных в определенных ситуациях — например, при инициировании сброса сессии.
  • Размер окна — самая важная часть заголовка TCP. Это поле используется получателем для указания отправителю объема данных, которые он может принять.
  • Контрольная сумма. Отправитель генерирует контрольную сумму и передает ее в заголовке каждого пакета. Принимающее устройство может использовать контрольную сумму для проверки ошибок в полученном файле.
  • Срочный указатель — это предлагаемая протоколом возможность помечать некоторые байты данных тегом «Срочно» для их пересылки и обработки вне очереди.
  • Поле опции. Может использоваться для расширения протокола или его тестирования.

Ускоряем работу протокола TCP при хорошем соединении или выжимаем максимум

TCP используется при передаче данных в таких протоколах, как HTTP, Telnet, FTP, SMTP. При использовании протокола нужно учесть, что при увеличении потери пакетов время, затрачиваемое на доставку файла, увеличивается.

Чтобы достичь максимальной пропускной способности TCP-соединения, можно выполнить следующие шаги:

Увеличить размер окна. Размер окна, или TCP Window Size, — это количество данных, которое может быть передано в данный момент без подтверждения. Это значение устанавливается в начале соединения между устройствами. Однако это значение можно изменить заранее, введя команду regedit в поиске и перейдя по следующему пути:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters\DefaultSendWindow

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

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters

, можно добавить значение Tcp1323Opts, которое отвечает за изменение размера окна и управление временной меткой.

Изменение значения SackOpts. SACK, или селективное подтверждение, крайне важно для подключений с большим размером окна. Без этой функции проверка полученных данных выполняется только по последнему номеру последовательности полученных данных. Но с включением этой функции появляется возможность подтверждать получение отдельных блоков. Чтобы изменить данный параметр, можно перейти по пути:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

и выбрать параметр SackOpts.

Изменение значения TcpMaxDupAcks. Данный параметр отвечает за количество полученных подтверждений о передаче. Стандартное значение состоит из одного подтверждения и двух дубликатов. Параметр можно изменить, перейдя по пути:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

и выбрав TcpMaxDupAcks. Это позволит вам назначать количество требуемых подтверждений для запуска быстрой повторной передачи, что в результате скажется на скорости передачи данных.

Стоит отметить, что данными манипуляциями выигрываются доли секунд, поэтому сильно прироста скорости вы не увидите.

UDP — протокол транспортного уровня

Если нам очень важна скорость передачи, а вот потеря пакетов не так критична (как, например, в голосовом или видеотрафике), то лучше использовать UDP, или User Datagram Protocol. В отличие от TCP он обеспечивает передачу данных без получения подтверждения от пользователя. Проще говоря, просто отправляет пакеты и не ждет ничего в ответ. Из-за этого достигается высокая скорость в ущерб надежности.

Чаще всего UDP применяется в чувствительных ко времени службах, где потерять пакеты лучше, чем ждать. Звонки в Skype или Google Meet, стриминг видео, онлайн-трансляции используют этот протокол из-за того, что они чувствительны ко времени и рассчитаны на определенный уровень потерь. Вся голосовая связь через интернет работает по протоколу UDP. Также UDP очень часто используется в онлайн-играх. Аналогичная история с DNS-серверами, поскольку они должны быть быстрыми и эффективными.

Примеры использования протокола UDP

Примерами протоколов, использующих UDP-протокол, являются:

  • DNS — протокол, преобразующий домены в IP-адреса, чтобы сделать возможной загрузку интернет-ресурса через браузер.
  • SNMP — протокол, позволяющий системному администратору проводить мониторинг, контролировать производительность сети и изменять конфигурацию подключенных устройств.
  • DHCP — протокол, отвечающий за автоматическое назначение IP-адреса клиенту.

структура протокола UDP

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

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

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

TCP vs UDP

Рассмотрим разницу характеристик протоколов TCP и UDP.

TCP UDP
Состояние соединения Требуется установленное соединение для передачи данных (соединение должно быть закрыто после завершения передачи) Протокол без соединения, без требований к открытию, поддержанию или прерыванию соединения
Гарантия доставки Может гарантировать доставку данных получателю Не гарантирует доставку данных получателю
Повторная передача данных Повторная передача нескольких кадров в случае потери одного из них Отсутствие повторной передачи потерянных пакетов
Проверка ошибок Полная проверка ошибок Базовый механизм проверки ошибок. Использует вышестоящие протоколы для проверки целостности
Метод передачи Данные считываются как поток байтов; сообщения передаются по границам сегментов UDP-пакеты с определенными границами; отправляются по отдельности и проверяются на целостность по прибытии
Сферы применения Используется для передачи сообщений электронной почты, HTML-страниц браузеров Видеоконференции, потоковое вещание, DNS, VoIP, IPTV

Отличия TCP и UDP при использовании в VPN

Также нередко возникает вопрос, касающийся использования данных протоколов при VPN-соединениях. К примеру, в OpenVPN существует возможность выбора между TCP- и UDP-протоколами.

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

Поднимите VPN на сервере Selectel

Более 100 готовых к работе конфигураций.

Итог сравнения протоколов TCP и UDP

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

Также серьезным отличием TCP от UDP является размер заголовков. У TCP он составляет 20-60 байт, а у UDP — всего 8 байт. Это показывает, насколько сложнее устроен протокол TCP, ведь он приоритизирует трафик и проверяет блоки данных на наличие ошибок.

Руководство по стеку протоколов TCP/IP для начинающих

TCP и UDP – в чем разница?

img

Современный мир немыслим без средств связи. Десятки миллионов устройств по всему миру связываются посредством компьютерных сетей. И каждая компьютерная сеть организована по определенным стандартам. Любые устройства взаимодействуют по общепринятой модели OSI, или Базовой Эталонной Модели Взаимодействия Открытых Систем. Данная модель определяет взаимодействие различных сетевых устройств на семи уровнях – Media (к ним относятся физический, канальный и сетевой) и Host – (транспортный, сеансовый, представления и прикладной). В данной статье мы рассмотрим два самых распространенных сетевых протокола транспортного уровня – TCP и UDP, примеры их применения, а также сравним их характеристики.

Видео: TCP и UDP | что это такое и в чем разница?

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

    Вообще, протоколы транспортного уровня широко применяются в современных сетях. Именно они позволяют гарантировать доставку сообщения до адресата, а также сохраняют правильную последовательность передачи данных. При этом протоколы имеют ряд различий, что позволяет использовать их профильно, для решения своих задач каждый. TCP и UDP – такое разное установление соединения Протокол TCP (Transmission Control Protocol) – это сетевой протокол, который «заточен» под соединение. Иными словами, прежде, чем начать обмен данными, данному протоколу требуется установить соединение между двумя хостами. Данный протокол имеет высокую надежность, поскольку позволяет не терять данные при передаче, запрашивает подтверждения о получении от принимающей стороны и в случае необходимости отправляет данные повторно. При этом отправляемые пакеты данных сохраняют порядок отправки, то есть можно сказать, что передача данных упорядочена. Минусом данного протокола является относительно низкая скорость передачи данных, за счет того что выполнение надежной и упорядоченной передачи занимает больше времени, чем в альтернативном протоколе UDP. Протокол UDP (User Datagram Protocol), в свою очередь, более прост. Для передачи данных ему не обязательно устанавливать соединение между отправителем и получателем. Информация передается без предварительной проверки готовности принимающей стороны. Это делает протокол менее надежным – при передаче некоторые фрагменты данных могут теряться. Кроме того, упорядоченность данных не соблюдается – возможен непоследовательный прием данных получателем. Зато скорость передачи данных по данному транспортному протоколу будет более высокой. Предупредительный TCP и внезапный UDP

    Заключение и наглядное сравнение
    • Надежность: в этом случае предпочтительнее будет протокол TCP, за счет подтверждения получения данных, повторной отправки в случае необходимости, а также использованию такого инструмента как тайм-аут. Протокол UDP такого инструментария не имеет, а потому при получении отправленные данные могут приходить не полностью;
    • Упорядоченность: опять будет предпочтительнее TCP, поскольку этот протокол гарантирует передачу пакетов данных именно в том порядке, в котором они были отправлены. В случае с UDP такой порядок не соблюдается;
    • Скорость: здесь уже лидировать будет UDP, так как более тяжеловесному TCP-протоколу будет требоваться больше времени для установки соединения, подтверждения получения, повторной отправки данных и т.д. ;
    • Метод передачи данных: в случае с TCP данные передаются потоково, границы фрагментов данных не имеют обозначения. В случае с UDP данные передаются в виде датаграмм – проверка пакетов на целостность осуществляется принимающей стороной только в случае получения сообщения. Также пакеты данных имеют определенные обозначения границ;

    Сравнивая оба протокола, очевидно, что протокол TCP – это, можно сказать, «снайпер». Прицелился, выстрелил, зафиксировал попадание, ищет следующую цель. UDP – это, скорее, «пулеметчик» — выставил ствол в направлении врага и начал долбить очередями, не слишком заботясь о точности. Как в войсках важны обе эти воинские специальности, так и в интернете важны оба этих протокола. TCP применяется там, где требуется точная и подтверждаемая передача данных – например, отправка фотографий, или переписка между пользователями. UDP, в свою очередь, нужен для общения в голосовом формате, или при передаче потокового видео, например, с веб-камер или IP-камер.

  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *