udp lite что это
UDP Lite
UDP Lite (облегченный UDP) — протокол без установки соединения, весьма похожий на UDP. В отличие от UDP, в котором защищены контрольной суммой (checksum) или все пакеты или ни один из них, UDP Lite допускает возможность частичных контрольных сумм, которые покрывают только часть датаграммы, и таким образом возможна доставка частично поврежденных пакетов. Это было создано для мультимедийных протоколов (как, например, voice over IP), у которых прием пакета с частично поврежденной полезной нагрузкой считается более предпочтительным вариантом, нежели не получить пакет вовсе.
Так как большинство современных канальных уровней защищают передаваемые данные достаточно надежным алгоритмом CRC и отбрасывают поврежденные фреймы, то эффективное использование UDP Lite требует от канального уровня «осведомленности» о передаваемой информации сетевого уровня. В связи с тем, что на данный момент не существует стеков TCP/IP, реализующих подобное междууровневое (или кросс-уровневое) взаимодействие, эффективное использование UDP Lite в настоящий момент требует специально модифицированных драйверов.
Поддержка UDP lite была добавлена в ядро Linux версии 2.6.20.
Дополнительные источники
Полезное
Смотреть что такое «UDP Lite» в других словарях:
UDP-Lite — UDP (User Datagram Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Verbindungslose Übertragung von Daten über das Internet UDP im TCP/IP‑Protokollstapel: Anwendung DNS DHCP … … Deutsch Wikipedia
UDP Lite — is a connectionless protocol, very similar to UDP. Unlike UDP, where either all or none of a packet is protected by a checksum, UDP Lite allows for partial checksums that only cover part of a datagram, and will therefore deliver packets that have … Wikipedia
UDP-Header — UDP (User Datagram Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Verbindungslose Übertragung von Daten über das Internet UDP im TCP/IP‑Protokollstapel: Anwendung DNS DHCP … … Deutsch Wikipedia
UDP — Название: User Datagram Protocol Уровень (по модели OSI): Транспортный Семейство: TCP/IP (иногда называют UDP/IP) Порт/ID: 17 (в IP) Спецификация: RFC 768 / STD 6 Основ … Википедия
Список портов TCP и UDP — Эта статья содержит незавершённый перевод с английского языка. Вы можете помочь проекту, переведя её до конца. В данной статье приведён список портов TCP и UDP, ко … Википедия
User Datagram Protocol — UDP (User Datagram Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Verbindungslose Übertragung von Daten über das Internet UDP im TCP/IP‑Protokollstapel: Anwendung DNS DHCP … … Deutsch Wikipedia
Lightweight User Datagram Protocol — UDP (User Datagram Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Verbindungslose Übertragung von Daten über das Internet UDP im TCP/IP‑Protokollstapel: Anwendung DNS DHCP … … Deutsch Wikipedia
ROHC — Robust Header Compression (ROHC) est une méthode normalisée dans la RFC 3095 pour compresser les entêtes IP, UDP, RTP et TCP des paquets réseau. Ce système de compression diffère des autres systèmes de compression comme ceux décrits dans les RFC… … Wikipédia en Français
RObust Header Compression — ROHC Robust Header Compression (ROHC) est une méthode normalisée dans la RFC 3095 pour compresser les entêtes IP, UDP, RTP et TCP des paquets réseau. Ce système de compression diffère des autres systèmes de compression comme ceux décrits dans les … Wikipédia en Français
Robust Header Compression — (ROHC) est une méthode normalisée dans la RFC 3095 pour compresser les entêtes IP, UDP, RTP et TCP des paquets réseau. Ce système de compression diffère des autres systèmes de compression comme ceux décrits dans les RFC 1144 et RFC 2508 de l IETF … Wikipédia en Français
СОДЕРЖАНИЕ
Протокол
UDP-Lite основан на протоколе пользовательских дейтаграмм (UDP), но в отличие от UDP, где либо весь пакет, либо ни один из пакетов защищен контрольной суммой, UDP-Lite допускает частичные контрольные суммы, которые покрывают только часть дейтаграммы (произвольное количество октеты в начале пакета), и поэтому доставляет пакеты, которые были частично повреждены. Он разработан для мультимедийных протоколов, таких как передача голоса по IP (VoIP) или потоковое видео, в которых получение пакета с поврежденной полезной нагрузкой лучше, чем получение пакета вообще. Для обычного UDP и протокола управления передачей (TCP) одиночный ошибочный бит приведет к «неправильной» контрольной сумме, что означает, что весь пакет должен быть отброшен: таким образом, битовые ошибки «повышаются» до ошибок всего пакета, даже если повреждение данных тривиально. Для вычисления контрольной суммы UDP-Lite использует тот же алгоритм контрольной суммы, что и для UDP (и TCP).
Поскольку большинство современных канальных уровней защищают передаваемые данные с помощью строгого контроля циклическим избыточным кодом (CRC) и отбрасывают поврежденные кадры, эффективное использование UDP Lite требует, чтобы канальный уровень был осведомлен о передаваемых данных сетевого уровня. Поскольку никакие текущие IP-стеки не реализуют такие межуровневые взаимодействия, для эффективного использования UDP-Lite в настоящее время требуются специально модифицированные драйверы устройств.
Поддержка UDP-Lite была добавлена в ядро Linux версии 2.6.20.
Поддержка UDP-Lite была добавлена в ядро FreeBSD из r264212. Набор изменений также был возвращен MFC обратно в стабильный / 10 и стал доступен в FreeBSD 10.1-RELEASE.
API сокетов BSD расширен для поддержки UDP-Lite третьим параметром системного вызова сокета : установите для него значение IPPROTO_UDPLITE, чтобы запросить сокет UDP-Lite:
Также можно легко установить, какая часть пакета будет покрыта контрольной суммой (начиная с начала, включая заголовок):
Если в такой настройке отправляется пакет меньше 12 октетов, контрольная сумма покроет весь пакет.
На принимающей стороне сокет по умолчанию отбрасывает все пакеты, которые не покрыты полностью (эмуляция UDP). Чтобы разрешить меньшее покрытие, можно использовать:
Это позволит получать пакеты, в которых контрольная сумма суммируется минимум 12 октетов пользовательских данных. Любой пакет с меньшим покрытием будет отброшен как плохой. Если пакет имеет длину покрытия не менее 20 октетов (включая заголовок) и его контрольная сумма верна, он будет доставлен в приложение (вся или часть полезной нагрузки все еще может быть повреждена, потому что она не может быть покрыта контрольной суммой или потому что кстати, контрольная сумма была правильной, но последнее очень маловероятно.) Если контрольная сумма неверна, пакет будет отброшен, потому что фактически невозможно узнать, была ли ошибка внутри данных полезной нагрузки или в заголовке UDP-Lite, поэтому пакет действительно может быть предназначен для другой программы.
Служба поддержки
UDP-Lite поддерживается следующими операционными системами:
Udp lite что это
sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE);
ОПИСАНИЕ
UDP-Lite представляет собой расширение UDP (RFC 768), содержащее поддержку контрольных сумм переменной длины. Это даёт преимущества при передаче данных некоторых типов мультимедиа, для которых допустимо использовать слегка повреждённые датаграммы, если бы они не отбрасывались другими нижележащими протоколами.
Охват (coverage) контрольной суммы переменной длины задаётся с помощью параметра через setsockopt(2). Если параметр не установлен, то отличием от UDP будет только другой идентификатор протокола IP (номер по IANA — 136).
Реализация UDP-Lite представляет собой полноценное расширение udp(7) — используется тот же программный интерфейс и поведение; кроме этого имеются два параметра сокета для управления охватом контрольной суммы.
Формат адреса
Параметры сокета
Следующие параметры относятся только к UDP-Lite.
UDPLITE_SEND_CSCOV Этим параметром задаётся охват данных контрольной суммой; в качестве аргумента ожидается значение типа int, которым задаётся охват в диапазоне 0..2^16-1.
Значение 0 означает, что охватывается вся датаграмма. Значения 1-7 некорректны (RFC 3828, 3.1) и округляются до минимального охвата — 8.
При использовании джумбограмм (jumbograms) IPv6 (RFC 2675), охват контрольной суммы в UDP-Litev6 ограничен первыми 2^16-1 октетами (согласно RFC 3828, 3.5). Большие значения безошибочно урезаются до 2^16-1. Текущее значение охвата всегда можно запросить с помощью getsockopt(2).
UDPLITE_RECV_CSCOV Это аналог с приёмной стороны, использует тот же формат аргумента и диапазон значений, что и у UDPLITE_SEND_CSCOV. Данный параметр не требуется для приёма трафика с контрольной суммой частичного охвата. Он предназначен для фильтрации трафика: если включён, то это указывает ядру отбрасывать все пакеты, у которых охват менее заданного значения.
Если значение UDPLITE_RECV_CSCOV превышает реальный охват пакета, то поступающие пакеты просто отбрасываются, но при этом может генерироваться предупреждающее сообщение в системный журнал.
Протокол пользовательских датаграмм
Оглавление
функциональность
UDP использует порты, чтобы разрешить отправку данных в правильную программу на целевом компьютере. Для этого каждая дейтаграмма содержит номер порта службы, которая должна принимать данные. Это расширение межсетевой передачи по Интернет-протоколу на межпроцессную передачу известно как мультиплексирование и демультиплексирование приложений.
характеристики
Кроме того, незащищенная передача также предлагает преимущество небольших колебаний задержки передачи: если пакет теряется во время TCP-соединения, он автоматически запрашивается снова. Это требует времени, и поэтому время передачи может колебаться, что плохо для мультимедийных приложений. С VoIP z. B. Произойдут внезапные выпадения или буферы воспроизведения должны быть увеличены. С другой стороны, в случае услуг связи без установления соединения потерянные пакеты не останавливают всю передачу, а только снижают качество.
IP удаляет пакеты в случае ошибок передачи или перегрузки. Поэтому дейтаграммы могут отсутствовать. UDP не предлагает для этого никаких механизмов обнаружения или исправления, таких как TCP. В случае нескольких возможных маршрутов к месту назначения IP при необходимости может выбрать новые маршруты. Это означает, что в редких случаях возможно, что данные, отправленные позже, превзойдут данные, отправленные ранее. Кроме того, пакет данных, который был отправлен один раз, может приходить получателю несколько раз.
Дейтаграмма UDP
Псевдо заголовки
Для генерации контрольной суммы UDP части этого IP-заголовка передаются в так называемый «псевдозаголовок». Он используется только для генерации контрольной суммы и не передается.
В IPv4 псевдозаголовок имеет размер 12 октетов (96 бит) и состоит из IP-адреса источника (32 бита), IP-адреса назначения (32 бита), 8-битного пустого поля и 8-битного идентификатора протокола. (UDP имеет ID 17 ) и длина дейтаграммы UDP (16 бит):
немного | 0 | 32 | 64 | 72 | 80 | 96 |
Исходный IP-адрес | IP-адрес получателя | 00000000 | ID протокола | Длина дейтаграммы UDP | ||
Псевдо-заголовок IPv4 |
В IPv6 псевдозаголовок имеет размер 40 октетов (320 бит). Он состоит из следующего:
немного | 0 | 128 | 256 | 288 | 312 | 320 |
Исходный IP-адрес | IP-адрес получателя | Длина пакета верхнего уровня | 0 (24 бит) | Следующий заголовок | ||
Псевдо-заголовок IPv6 |
Расчет контрольной суммы
Контрольная сумма отправителя рассчитывается по следующему алгоритму:
UDP-Lite
UDP использует простую модель связи без установления соединения с минимумом протокольных механизмов. UDP предоставляет контрольные суммы для целостности данных и номера портов для адресации различных функций в источнике и получателе дейтаграммы. Он не имеет диалоговых окон для подтверждения связи и, таким образом, подвергает программу пользователя любой ненадежности базовой сети; нет гарантии доставки, заказа или защиты от дублирования. Если средства исправления ошибок необходимы на уровне сетевого интерфейса, приложение может использовать протокол управления передачей (TCP) или протокол передачи управления потоком (SCTP), которые предназначены для этой цели.
СОДЕРЖАНИЕ
Атрибуты
Ряд атрибутов UDP делают его особенно подходящим для определенных приложений.
Порты
Структура дейтаграммы UDP
Смещения | Октет | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Октет | Немного | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 год | 22 | 23 | 24 | 25 | 26 | 27 | 28 год | 29 | 30 | 31 год |
0 | 0 | Исходный порт | Порт назначения | ||||||||||||||||||||||||||||||
4 | 32 | Длина | Контрольная сумма |
Использование полей контрольной суммы и порта источника необязательно в IPv4 (розовый фон в таблице). В IPv6 только поле порта источника является необязательным.
Расчет контрольной суммы
Другими словами, все 16-битные слова суммируются с использованием дополнительной арифметики. Сложите 16-битные значения. При каждом добавлении, если создается перенос (17-й бит), поверните этот 17-й бит переноса и добавьте его к младшему значащему биту промежуточной суммы. Наконец, сумма дополняется до значения поля контрольной суммы UDP.
Если вычисление контрольной суммы приводит к нулевому значению (все 16 битов 0), оно должно быть отправлено как дополнение до единицы (все единицы), поскольку контрольная сумма с нулевым значением указывает, что контрольная сумма не была вычислена. В этом случае никакой специальной обработки на приемнике не требуется, потому что все нули и все единицы равны нулю в арифметике дополнения до единицы.
Разница между IPv4 и IPv6 заключается в псевдозаголовке, используемом для вычисления контрольной суммы, а контрольная сумма не является необязательной в IPv6.
Псевдо-заголовок IPv4
Смещения | Октет | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Октет | Немного | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 год | 22 | 23 | 24 | 25 | 26 | 27 | 28 год | 29 | 30 | 31 год |
0 | 0 | Исходный IPv4-адрес | |||||||||||||||||||||||||||||||
4 | 32 | IPv4-адрес назначения | |||||||||||||||||||||||||||||||
8 | 64 | Нули | Протокол | Длина UDP | |||||||||||||||||||||||||||||
12 | 96 | Исходный порт | Порт назначения | ||||||||||||||||||||||||||||||
16 | 128 | Длина | Контрольная сумма | ||||||||||||||||||||||||||||||
20 | 160+ | Данные |
Вычисление контрольной суммы UDP не является обязательным для IPv4. Если контрольная сумма не используется, ей следует установить нулевое значение.
Псевдо-заголовок IPv6
Когда UDP работает через IPv6, контрольная сумма является обязательной. Метод, используемый для его вычисления, изменен, как описано в RFC 2460 :
Любой транспортный или другой протокол верхнего уровня, который включает адреса из заголовка IP при вычислении контрольной суммы, должен быть модифицирован для использования через IPv6, чтобы включить 128-битные адреса IPv6.
При вычислении контрольной суммы снова используется псевдозаголовок, имитирующий настоящий заголовок IPv6 :
Смещения | Октет | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Октет | Немного | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 год | 22 | 23 | 24 | 25 | 26 | 27 | 28 год | 29 | 30 | 31 год |
0 | 0 | Исходный IPv6-адрес | |||||||||||||||||||||||||||||||
4 | 32 | ||||||||||||||||||||||||||||||||
8 | 64 | ||||||||||||||||||||||||||||||||
12 | 96 | ||||||||||||||||||||||||||||||||
16 | 128 | IPv6-адрес назначения | |||||||||||||||||||||||||||||||
20 | 160 | ||||||||||||||||||||||||||||||||
24 | 192 | ||||||||||||||||||||||||||||||||
28 год | 224 | ||||||||||||||||||||||||||||||||
32 | 256 | Длина UDP | |||||||||||||||||||||||||||||||
36 | 288 | Нули | Следующий заголовок = Протокол | ||||||||||||||||||||||||||||||
40 | 320 | Исходный порт | Порт назначения | ||||||||||||||||||||||||||||||
44 год | 352 | Длина | Контрольная сумма | ||||||||||||||||||||||||||||||
48 | 384+ | Данные |
Надежность и контроль перегрузок
Приложения
Многие ключевые интернет-приложения используют UDP, в том числе: систему доменных имен (DNS), где запросы должны быть быстрыми и состоять только из одного запроса, за которым следует один пакет ответа, простой протокол управления сетью (SNMP), протокол информации о маршрутизации ( RIP) и протокол динамической конфигурации хоста (DHCP).