Функции протоколов tcp и udp. Протоколы передачи данных TCP и UDP. Что есть MAC-адрес

Все обмены сетевыми процессами, происходящие на компьютерах, описывает общепринятая система OSI. Модель OSI включает в себя семь уровней взаимодействия процессов:

  1. Физический. Среда распространения сигнала (кабель или радиосигналы);
  2. Канальный. Указывает на формат данных, где информация преобразуется в кадры и регулируется распространенным протоколом Ethernet;
  3. Сетевой. Определяет способы маршрутизации;
  4. Транспортный. Осуществляет передачу данных посредством протоколов TCP, UDP и т.д.;
  5. Сеансовый. Обеспечивает поддержку во время сеанса связи;
  6. Представительский. Осуществляет подготовку данных для последующей передачи по сети (конверсия, распаковка, дешифровка);
  7. Прикладной. Контролирует взаимодействие различных пользовательских приложений с сетевыми службами.

Для передачи данных между двумя устройствами в различных сетях Интернета используется комплект протоколов TCP/IP. Транспортировку данных в стеке TCP/IP могут осуществлять различные протоколы, в том числе TCP и UDP.

Характеристика TCP

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

Для обеспечения надежного соединения в TCP предусмотрена трехэтапная процедура начала сеанса связи. При этом у сервера и клиента запрашивается значение порта и значение ISN. В пакете TCP обязательно присутствует контрольная сумма, которая определяет правильность передачи информации.

Характеристика UDP

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

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

Принципиальные отличия TCP и UDP

Функции UDP TCP
Процедура установки соединения Не требуется Обязательная трехэтапная процедура начала сеанса связи
Гарантированный обмен трафиком Пакеты могут теряться Подтверждение и повторная передача исключают потерю данных
Сохранение порядка доставки сообщений Неупорядоченные датаграммы Строгая очередность пересылаемых пакетов
Контроль и управление потоком Не контролируется передача пакетов данных Контролирует и управляет потоком данных
Уведомляет о перегрузках Не защищен от перегрузок Уведомляет о перегрузках
Сохраняет границы передаваемых сообщений Всегда сохраняет границы пересылаемых датаграмм Не сохраняет границы пересылаемых сообщений, но гарантирует их целостность
Сегментация и сборка информационных пакетов Нет Поддерживается
Взаимодействия с полуоткрытыми соединениями Повторная синхронизация не происходит Соединение осуществляется посредством повторной синхронизации
Проверка достижимости Нет Да

Протоколы TCP и UDP

TCP- Transmission Control Protocol

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

Протокол TCP требует, чтобы перед отправкой сообщения было открыто соединение. Серверное приложение должно выполнить так называемое пассивное открытие (passive open) , чтобы создать соединение с известным номером порта, и, вместо того чтобы отправлять вызов в сеть, сервер переходит в ожидание поступления входящих запросов. Клиентское приложение должно выполнить активное открытие (active open) , отправив серверному приложению синхронизирующий порядковый номер (SYN), идентифицирующий соединение. Клиентское приложение может использовать динамический номер порта в качестве локального порта.

Сервер должен отправить клиенту подтверждение (ACK) вместе с порядковым номером (SYN) сервера. В свою очередь клиент отвечает АСК, и соединение устанавливается.

После этого может начаться процесс отправки и получения сообщений. При получении сообщения в ответ всегда отправляется сообщение АСК. Если до получения АСК отправителем истекает тайм-аут, сообщение помещается в очередь на повторную передачу.

Поля заголовка TCP перечислены в следующей таблице:

Заголовок TCP
Поле Длина Описание
Порт источника 2 байта Номер порта источника
Порт назначения 2 байта Номер порта назначения
Последовательный номер 4 байта Последовательный номер генерируется источником и используется назначением, чтобы переупорядочить пакеты для создания исходного сообщения и отправить подтверждение источнику.
Номер подтверждения 4 байта Если установлен бит АСК поля "Управление", в данном поле содержится следующий ожидаемый последовательный номер.
Смещение данных 4 бита Информация о начале пакета данных.
Резерв 6 битов Резервируются для будущего использования.
Управление 6 битов Биты управления содержат флаги, указывающие, верны ли поля подтверждения (АСК), указателя срочности (URG), следует ли сбрасывать соединение (RST), послан ли синхронизирующий последовательный номер (SYN) и т. д.
Размер окна 2 байта В этом поле указывается размер приемного буфера. Используя подтверждающие сообщения, получатель может информировать отправителя о максимальном размере данных, которые тот может отправить.
Контрольная сумма 2 байта Контрольная сумма заголовка и данных; по ней определяется, был ли искажен пакет.
Указатель срочности 2 байта В этом поле целевое устройство получает информацию о срочности данных.
Опции переменная Необязательные значения, которые указываются при необходимости.
Дополнение переменная В поле дополнения добавляется столько нулей, чтобы заголовок заканчивался на 32-битной границе.

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

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

UDP - User Datagram Protocol

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

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

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

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

Широковещательная передача (broadcast) означает, что сообщение отправляется всем узлам сети. Групповая рассылка (multicast) - это промежуточный механизм: сообщения отправляются выбранным группам узлов.

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

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

Что означают TCP и UDP

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

Разница между протоколами TCP и UDP

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

TheDifference.ru определил, что отличие TCP от UDP заключается в следующем:

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

8 ответов

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

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

В определенных ситуациях используется UDP , поскольку он позволяет передавать пакетную передачу. Это иногда является фундаментальным в таких случаях, как протокол DHCP , поскольку клиентская машина еще не получила адрес IP (это протокол протокола t26 >), и не будет никакого способа установить TCP поток без адреса IP .

UDP (User Datagram Protocol) - это обычный широко используемый протокол в Интернете. Однако UDP никогда не используется для отправки важных данных, таких как веб-страницы, сведения о базе данных и т.д.; UDP обычно используется для потоковой передачи аудио и видео. Потоковые медиа, такие как аудиофайлы Windows Media (.WMA), Real Player (.RM) и другие, используют UDP, потому что он предлагает скорость! Причина, по которой UDP работает быстрее, чем TCP, заключается в том, что нет контроля потока или исправления ошибок. На данные, отправленные через Интернет, влияют столкновения, и ошибки будут присутствовать. Помните, что UDP касается только скорости. Это основная причина, по которой потоковые медиа не являются качественными.

1) TCP является ориентированным на соединение и надежным, когда UDP является соединением меньше и ненадежным.

2) TCP требует дополнительной обработки на уровне сетевого интерфейса, где, как и в UDP, нет.

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

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

Подумайте о TCP как о запланированном расписании UPS/FedEx по расписанию UPS/FedEx пакетов между двумя местоположениями, в то время как UDP эквивалентен отправке открытки в почтовый ящик.

UPS/FedEx сделает все возможное, чтобы убедиться, что пакет, на который вы отправляете почту, попадает туда и получает его вовремя. С почтовой карточкой вам повезло, если она вообще придет, и она может выйти из строя или поздно (сколько раз вы получили открытку от кого-то ПОСЛЕ того, как они вернулись домой из отпуска?)

TCP как можно ближе к гарантированному протоколу доставки, так как вы можете получить UDP - это просто "лучшее усилие".

Причины UDP используются для DNS и DHCP:

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

DHCP - DHCP является расширением BOOTP. BOOTP - это протокол, который клиентские компьютеры используют для получения информации о конфигурации с сервера, в то время как клиент загружается. Чтобы найти сервер, широковещательная передача отправляется с запросом на серверы BOOTP (или DHCP). Трансляция может быть отправлена ​​только через протокол без установления соединения, такой как UDP. Поэтому BOOTP требовал хотя бы одного UDP-пакета для широковещательной передачи на сервере. Кроме того, поскольку BOOTP работает, пока клиент... загружается, и это период времени, когда клиент может не загружать и запускать весь свой стек TCP/IP, UDP может быть единственным протоколом, который клиент готов обрабатывать при этом время. Наконец, некоторые клиенты DHCP/BOOTP имеют только UDP на борту. Например, некоторые IP-термостаты реализуют только UDP. Причина в том, что они построены с такими крошечными процессорами и небольшим объемом памяти, которые не могут выполнять TCP, но им все равно нужно получить IP-адрес при загрузке.

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

Одним из отличий является сокращение

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

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

Определение

TCP — транспортный протокол передачи данных в сетях TCP/IP, предварительно устанавливающий соединение с сетью.

UDP — транспортный протокол, передающий сообщения-датаграммы без необходимости установки соединения в IP-сети.

Сравнение

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

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

Выводы сайт

  1. TCP гарантирует доставку пакетов данных в неизменных виде, последовательности и без потерь, UDP ничего не гарантирует.
  2. TCP требует заранее установленного соединения, UDP соединения не требует.
  3. UDP обеспечивает более высокую скорость передачи данных.
  4. TCP надежнее и осуществляет контроль над процессом обмена данными.
  5. UDP предпочтительнее для программ, воспроизводящих потоковое видео, видеофонии и телефонии, сетевых игр.