Протокол UDP. Транспортные протоколы - UDP

05.08.2019 Игры

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

Порт всегда связан с IP-адресом хоста и типом и, таким образом, завершает назначение адреса сеанса связи. Он идентифицируется для каждого адреса и протокола с помощью 16-битного числа, широко известного как номер порта. Конкретные номера портов часто используются для определения конкретных услуг. Из тысяч перечисленных 1024 хорошо известных номера портов защищены в соответствии с соглашением, чтобы определить конкретные типы услуг на хосте. Протоколы, которые в основном используют порты, служат для управления процессами (например, протокол управления передачей (TCP) и User Datagram Protocol (UDP) из комплекта протоколов Internet).

Значение

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

Детали

Протоколы передачи данных - Transmission Control Protocol (TCP) и User Datagram Protocol (UDP) - применяются для того, чтобы указать номер порта назначения и источник в своих заголовках сегментов. Номер порта представляет собой 16-разрядное целое число без знака. Таким образом, он может быть в диапазоне от 0 до 65535.

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

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

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

Как они используются

Приложения, реализующие общие службы, часто используют специально зарезервированный и хорошо известный список портов TCP и UDP для приема запросов на обслуживание от клиентов. Этот процесс известен как прослушивание, и он включает в себя получение запроса с хорошо известного порта и установления диалога между сервером и клиентом «один-к-одному», с использованием одного и того же номера локального порта. Другие клиенты могут продолжать подключаться - это возможно, так как соединение TCP идентифицируется как цепочка, состоящая из локального и удаленного адресов и портов. Стандартные порты TCP и UDP определяются по соглашению под контролем Internet Assigned Numbers Authority (IANA).

Ядро сетевых сервисов (в первую очередь, WorldWideWeb), как правило, использует небольшие номера портов - меньше, чем 1024. Во многих операционных системах требуются специальные привилегии для приложений для привязки к ним, потому что они часто считаются критическими для функционирования IP-сетей. С другой стороны, конечный клиент соединения, как правило, применяет большое их количество, выделенных для краткосрочного использования, поэтому существуют так называемые эфемерные порты.

Структура

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

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

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

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

Самым главным примером, где активно используются порты TCP/UDP, является почтовая система Интернет. Сервер применяется для работы с электронной почтой (отправкой и получением), и в целом нуждается в двух услугах. Первый сервис используется для транспортировки по электронной почте и с других серверов. Это достигается с помощью Как правило, приложение-служба SMTP прослушивает TCP-порт номер 25 с целью обработки входящих запросов. Другая услуга представляет собой POP (полностью - Post Office Protocol) либо IMAP (или Internet Message Access Protocol) который необходимы для клиентских приложений в электронной почте на машинах пользователей, чтобы получать с сервера сообщения электронной почты. Службами POP прослушиваются номера с TCP-порта 110. Вышеуказанные службы обе могут запускаться на одном и том же хост-компьютере. Когда это происходит, номер порта отличает сервис, запрошенный удаленным устройством - ПК пользователя либо каким-либо иным почтовым сервером.

В то время как номер порта прослушивания сервера корректно определен (IANA называет их хорошо известными портами), данный параметр клиента часто выбирается из динамического диапазона. В некоторых случаях клиенты и сервер по отдельности используют определенные TCP-порты, назначенные в IANA. Наглядным примером может служить DHCP, где клиентом во всех случаях используется UDP 68, а сервером - UDP 67.

Применение в URL-адресах

Номера портов иногда хорошо видны в Интернете или других унифицированных указателях информационных ресурсов (URL). По умолчанию HTTP использует а HTTPS - 443. Вместе с тем существуют и другие вариации. Например, URL-адрес http://www.example.com:8080/path/ указывает, что веб-браузер подключается к 8080 вместо сервера HTTP.

Список портов TCP и UDP

Как уже было отмечено, Internet Assigned Numbers Authority (IANA) несет ответственность за глобальную координацию DNS-Root, IP-адресации и других ресурсов Интернет-протокола. Это включает в себя регистрацию часто используемых номеров портов для известных интернет-сервисов.

Номера портов разделены на три диапазона: хорошо известные, зарегистрированные и динамические или частные. Хорошо известные (также известные как системные) - это имеющие номера от 0 до 1023. Требования, предъявляемые к новым назначениям в этом диапазоне, являются более строгими, чем для других регистраций.

Широко известные примеры

Примеры, находящиеся в данном списке, включают в себя:

  • TCP 443 порт: HTTP Secure (HTTPS).
  • 22: Secure Shell (SSH).
  • 25: Простой протокол передачи почты (SMTP).
  • 53: Система доменных имен (DNS).
  • 80: Протокол передачи гипертекста (HTTP).
  • 119: Протокол передачи сетевых новостей (NNTP).
  • 123: Протокол сетевого времени (NTP)..
  • 143: Internet Message Access Protocol (IMAP)
  • 161: Простой протокол управления сетью (SNMP)1.
  • 94: Internet Relay Chat (IRC).

Зарегистрированные порты содержат номера от 1024 до 49151. IANA поддерживает официальный список известных и зарегистрированных диапазонов. Динамические или частные - от 49152 до 65535. Один из вариантов использования этого диапазона предназначен для временных портов.

История создания

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

Термин «номер порта» еще не использовался в то время. Номерной ряд для удаленного хоста был 40-битным числом. Первые 32 бита были похожи на сегодняшний IPv4-адрес, но при этом наиболее значимыми были первые 8 бит. Наименее значительная часть числа (биты с 33 по 40) обозначали другой объект, который назывался AEN. Это и есть прототип современного номера порта.

26 марта 1972 года было впервые предложено создание каталога номеров сокета в RFC 322. призвали описать каждый постоянный номер на предмет его функций и сетевых услуг. Этот каталог был впоследствии опубликован в RFC 433 в декабре 1972 года и включал в себя список хостов, их номера портов и соответствующую функцию, используемую на каждом узле в сети. В мае 1972 года впервые были задокументированы официальные назначения номеров портов, сетевых служб, а также предложена специальная административная функция для ведения этого реестра.

Первый список TCP-портов имел 256 значений AEN, которые были разделены на следующие диапазоны:

  • От 0 до 63: стандартные функции всей сети
  • От 64 до 127: хост-специфичные функции
  • От 128 до 239: зарезервированные для будущего использования
  • От 240 до 255: любая экспериментальная функция.

Служба Telnet получила первое официальное присвоение значения 1. В начале существования ARPANET термином AEN также называли имя сокета, которое использовалось с первоначальным протоколом соединения (MSP) и компонентом программы управления сетью (NCP). При этом NCP был предшественником современных Интернет-протоколов, использующих порты TCP/IP.

UDP (англ. User Datagram Protocol - протокол пользовательских датаграмм) - это транспортный протокол для передачи данных в сетях IP без установления соединения. Он является одним из самых простых протоколов транспортного уровня модели OSI. Его IP-идентификатор - 0x11.

UDP обычно используется в таких приложениях, как потоковое видео и компьютерные игры, где допускается потеря пакетов, а повторный запрос затруднён или не оправдан, либо в приложениях вида запрос-ответ (например, запросы к DNS), где создание соединения занимает больше ресурсов, чем повторная отправка. Фактически функции UDP сводятся к операциям мультиплексирования и демультиплексирования, а также несложной проверке наличия ошибок в данных. Таким образом, при использовании U DP приложение почти напрямую взаимодействует с протоколом сетевого уровня IP.

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

Примером протокола прикладного уровня, использующего службы протокола UDP, является DNS. Когда DNS-приложение генерирует запрос, оно создает DNS-сообщение и передает его протоколу UDP.


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

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

Протокол TCP на принимающем узле отвечает за повторную сборку сегментов сообщений и их передачу соответствующему приложению.

FTP и HTTP – это примеры приложений, в которых для обеспечения доставки данных применяется протокол TCP.

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


Протокол ARP. Применение.

ARP (англ. Address Resolution Protocol - протокол определения адреса) - использующийся в компьютерных сетях протокол низкого уровня, предназначенный для определения адреса канального уровня по известному адресу сетевого уровня. Наибольшее распространение этот протокол получил благодаря повсеместности сетей IP, построенных поверх Ethernet, поскольку практически в 100 % случаев при таком сочетании используется ARP. Описание протокола было опубликовано в ноябре 1982 года в RFC 826. ARP был спроектирован для случая передачи IP-пакетов через сегмент Ethernet. При этом общий принцип, предложенный для ARP, может, и был использован и для сетей других типов.

Существуют следующие типы сообщений ARP: запрос ARP (ARP request) и ответ ARP (ARP reply). Система-отправитель при помощи запроса ARP запрашивает физический адрес системы-получателя. Ответ (физический адрес узла-получателя) приходит в виде ответа ARP.

Перед тем как передать пакет сетевого уровня через сегмент Ethernet, сетевой стек проверяет кэш ARP, чтобы выяснить, не зарегистрирована ли в нём уже нужная информация об узле-получателе. Если такой записи в кэше ARP нет, то выполняется широковещательный запрос ARP. Этот запрос для устройств в сети имеет следующий смысл: «Кто-нибудь знает физический адрес устройства, обладающего следующим IP-адресом?» Когда получатель с этим IP-адресом примет этот пакет, то должен будет ответить: «Да, это мой IP-адрес. Мой физический адрес следующий: …» После этого отправитель обновит свой кэш ARP и будет способен передать информацию получателю.

Записи в кэше ARP могут быть статическими и динамическими. Пример, данный выше, описывает динамическую запись кэша. Можно также создавать статические записи в таблице ARP.

ARP изначально был разработан не только для IP протокола, но в настоящее время в основном используется для сопоставления IP- и MAC-адресов.

Принцип работы

Узел, которому нужно выполнить отображение IP-адреса на локальный адрес, формирует ARP запрос, вкладывает его в кадр протокола канального уровня, указывая в нем известный IP-адрес, и рассылает запрос широковещательно.

Все узлы локальной сети получают ARP запрос и сравнивают указанный там IP-адрес с собственным.

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

User Datagram Protocol (UDP) (протокол пользовательских дейтаграмм) - является протоколом стандарта TCP/IP , определенный в стандарте RFC 768, "User Datagram Protocol (UDP)". UDP используется вместо TCP для быстрой и ненадежной транспортировки данных между TCP/IP хостами.

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

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

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

UDP заголовок

На рисунке показаны поля, присутствующие в UDP заголовке.

  • Порт отправителя - в этом поле указывается номер порта отправителя. Предполагается, что это значение задает порт, на который при необходимости будет посылаться ответ. В противном же случае, значение должно быть равным 0. Если хостом-источником является клиент, то номер порта будет, скорее всего, эфемерным. Если источником является сервер, то его порт будет одним из "хорошо известных".
  • Порт получателя - это поле обязательно и содержит порт получателя. Аналогично порту отправителя, если клиент - хост-получатель, то номер порта эфемерный, иначе (сервер - получатель) это "хорошо известный порт".
  • Длина дейтаграммы - поле, задающее длину всей дейтаграммы (заголовка и данных) в байтах. Минимальная длина равна длине заголовка - 8 байт. Теоретически, максимальный размер поля - 65535 байт для UDP-дейтаграммы (8 байт на заголовок и 65527 на данные). Фактический предел для длины данных при использовании IPv4 - 65507 (помимо 8 байт на UDP-заголовок требуется еще 20 на IP-заголовок).
  • Контрольная сумма - поле контрольной суммы используется для проверки заголовка и данных на ошибки. Если сумма не сгенерирована передатчиком, то поле заполняется нулями.

Рассмотрим структуру заголовка UDP с помощью сетевого анализатора Wireshark:

UDP порты

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

Номер порта - это условное 16-битное число от 1 до 65535, указывающее, какой программе предназначается пакет.

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

Все номера портов UDP, которые меньше чем 1024 - зарезервированы и зарегистрированы в Internet Assigned Numbers Authority (IANA).
Номера портов UDP и TCP не пересекаются.

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

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

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

Служебные порты

UDP не предоставляет никаких гарантий доставки сообщения для протокола верхнего уровня и не сохраняет состояния отправленных сообщений. По этой причине UDP иногда называют Unreliable Datagram Protocol (англ. - Ненадежный протокол датаграмм).

Перед расчетом контрольной суммы UDP-сообщение дополняется в конце нулевыми битами до длины, кратной 16 битам (псевдозаголовок и добавочные нулевые биты не отправляются вместе с сообщением). Поле контрольной суммы в UDP-заголовке во время расчета контрольной суммы отправляемого сообщения принимается нулевым.

Для расчета контрольной суммы псевдозаголовок и UDP-сообщение разбивается на слова (1 слово = 2 байта (октета) = 16 бит). Затем рассчитывается поразрядное дополнение до единицы суммы всех слов с поразрядным дополнением. Результат записывается в соответствующее поле в UDP-заголовке.

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

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

Пример расчёта контрольной суммы

Для примера рассчитаем контрольную сумму нескольких 16-битных слов: 0x398a, 0xf802, 0x14b2, 0xc281 . Находим их сумму с поразрядным дополнением.
0x398a + 0xf802 = 0x1318c → 0x318d
0x318d + 0x14b2 = 0x0463f → 0x463f
0x463f + 0xc281 = 0x108c0 → 0x08c1
Теперь находим поразрядное дополнение до единицы полученного результата:

0x08c1 = 0000 1000 1100 0001 → 1111 0111 0011 1110 = 0xf73e или, иначе - 0xffff − 0x08c1 = 0xf73e . Это и есть искомая контрольная сумма.

При вычислении контрольной суммы опять используется псевдозаголовок, имитирующий реальный IPv6-заголовок:

Биты 0 – 7 8 – 15 16 – 23 24 – 31
0 Адрес источника
32
64
96
128 Адрес получателя
160
192
224
256 Длина UDP
288 Нули Следующий заголовок
320 Порт источника Порт получателя
352 Длина Контрольная сумма
384+
Данные

Адрес источника такой же, как и в IPv6-заголовке. Адрес получателя - финальный получатель; если в IPv6-пакете не содержится заголовка маршрутизации (Routing), то это будет адрес получателя из IPv6-заголовка, в противном случае, на начальном узле, это будет адрес последнего элемента заголовка маршрутизации, а на узле-получателе - адрес получателя из IPv6-заголовка. Значение "Следующий заголовок" равно значению протокола - 17 для UDP. Длина UDP - длина UDP-заголовка и данных.

Надежность и решения проблемы перегрузок

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

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

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

Сетевые механизмы были предназначены для того, чтобы свести к минимуму возможные эффекты от перегрузок при неконтролируемых, высокоскоростных нагрузках. Такие сетевые элементы, как маршрутизаторы, использующие пакетные очереди и техники сброса, часто являются единственным доступным инструментом для замедления избыточного UDP-трафика. DCCP (англ. Datagram Congestion Control Protocol - протокол контроля за перегрузками датаграмм) разработан как частичное решение этой потенциальной проблемы с помощью добавления конечному хосту механизмов для отслеживания перегрузок для высокоскоростных UDP-потоков вроде потоковых медиа.

Приложения

Многочисленные ключевые Интернет-приложения используют UDP, в их числе - DNS (где запросы должны быть быстрыми и состоять только из одного запроса, за которым следует один пакет ответа), Простой Протокол Управления Сетями (SNMP), Протокол Маршрутной Информации (RIP), Протокол Динамической Конфигурации Узла (DHCP).

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

Сравнение UDP и TCP

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

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

UDP - более простой, основанный на сообщениях протокол без установления соединения. Протоколы такого типа не устанавливают выделенного соединения между двумя хостами. Связь достигается путем передачи информации в одном направлении от источника к получателю без проверки готовности или состояния получателя. Однако, основным преимуществом UDP над TCP являются приложения для голосовой связи через интернет-протокол (Voice over IP, VoIP), в котором любое "рукопожатие" помешало бы хорошей голосовой связи. В VoIP считается, что конечные пользователи в реальном времени предоставят любое необходимое подтверждение о получении сообщения.

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

Ссылки на RFC

  • RFC 768 – Протокол Пользовательских Датаграмм
  • RFC 2460 – Интернет протокол, спецификация версии 6 (IPv6)
  • RFC 2675 - IPv6 Jumbograms
  • RFC 4113 – Management Information Base for the UDP
  • RFC 5405 – Unicast UDP Usage Guidelines for Application Designers

См. также

Ссылки

  • Kurose, J. F.; Ross, K. W. (2010). Computer Networking: A Top-Down Approach (5th ed.). Boston, MA: Pearson Education. ISBN 978-0-13-136548-3 .
  • Forouzan, B.A. (2000). TCP/IP: Protocol Suite, 1st ed. New Delhi, India: Tata McGraw-Hill Publishing Company Limited.
  • [email protected]. "UDP Protocol Overview". Ipv6.com. Retrieved 17 August 2011.
  • Clark, M.P. (2003). Data Networks IP and the Internet, 1st ed. West Sussex, England: John Wiley & Sons Ltd.
  • Postel, J. (August 1980). RFC 768 : User Datagram Protocol. Internet Engineering Task Force. Retrieved from http://tools.ietf.org/html/rfc768
  • Deering S. & Hinden R. (December 1998). RFC 2460 : Internet Protocol, Version 6 (IPv6) Specification. Internet Engineering Task Force. Retrieved from http://tools.ietf.org/html/rfc2460
  • "The impact of UDP on Data Applications". Networkperformancedaily.com. Retrieved 17 August 2011.
  • Д. Комер. Межсетевой обмен с помощью TCP/IP. Глава 11. Протокол UDP.