stringtranslate.com

Протокол управления перегрузкой датаграмм

В компьютерных сетях протокол управления перегрузкой датаграмм ( DCCP ) — это протокол транспортного уровня , ориентированный на сообщения . DCCP реализует надежную установку соединения, разрыв, явное уведомление о перегрузке (ECN), управление перегрузкой и согласование функций. IETF опубликовал DCCP как RFC  4340, предлагаемый стандарт , в марте 2006 года. RFC  4336 содержит введение.

Операция

DCCP предоставляет способ получить доступ к механизмам управления перегрузкой без необходимости их реализации на уровне приложения . Он допускает семантику на основе потока, как в протоколе управления передачей (TCP), но не обеспечивает надежную доставку в порядке очереди. Последовательная доставка в нескольких потоках, как в протоколе управления передачей потоков (SCTP), недоступна в DCCP. Соединение DCCP содержит трафик подтверждений , а также трафик данных. Подтверждения информируют отправителя о том, прибыли ли его пакеты и были ли они отмечены явным уведомлением о перегрузке (ECN). Подтверждения передаются настолько надежно, насколько того требует используемый механизм управления перегрузкой, возможно, полностью надежно.

DCCP имеет возможность использовать очень длинные (48-битные) порядковые номера, соответствующие идентификатору пакета, а не байтовому идентификатору, как в TCP. Большая длина порядковых номеров направлена ​​на защиту от «некоторых слепых атак, таких как внедрение DCCP-Resets в соединение». [1]

Приложения

DCCP полезен для приложений с ограничениями по времени доставки данных. К таким приложениям относятся потоковое мультимедиа , многопользовательские онлайн-игры и интернет-телефония . В таких приложениях старые сообщения быстро становятся бесполезными, поэтому получение новых сообщений предпочтительнее повторной отправки потерянных сообщений. По состоянию на 2017 год такие приложения часто либо довольствовались TCP, либо использовали протокол пользовательских датаграмм (UDP) и реализовывали собственные механизмы контроля перегрузки, либо вообще не имели контроля перегрузки. Будучи полезным для этих приложений, DCCP также может служить общим механизмом контроля перегрузки для приложений на основе UDP, добавляя, по мере необходимости, механизмы для надежной или упорядоченной доставки поверх UDP/DCCP. В этом контексте DCCP позволяет использовать различные, но в целом дружественные к TCP механизмы контроля перегрузки.

Реализации

Следующие операционные системы реализуют DCCP:

Библиотека пользовательского пространства:

Структура пакета

Общий заголовок DCCP принимает различные формы в зависимости от значения X, бита расширенных порядковых номеров. Если X равен единице, поле порядкового номера имеет длину 48 бит, а общий заголовок занимает 16 байт, как показано ниже.

Если X равен нулю, передаются только младшие 24 бита порядкового номера, а общий заголовок имеет длину 12 байт.

Исходный порт: 16 бит
Определяет порт отправки.
Порт назначения: 16 бит
Определяет порт приема.
Смещение данных: 8 бит
Смещение от начала заголовка DCCP пакета до начала области его прикладных данных, в 32-битных словах.
CCVal: 4 бита
Используется CCID HC-Sender.
Покрытие контрольной суммы  (CsCov): 4 бита
Покрытие контрольной суммы определяет части пакета, на которые распространяется поле контрольной суммы.
Контрольная сумма: 16 бит
Контрольная сумма заголовка DCCP пакета в Интернете (включая параметры), псевдозаголовок сетевого уровня и, в зависимости от покрытия контрольной суммы, все, некоторые или никакие данные приложения.
Зарезервировано  (Res): 3 бита; Res == 0
Отправители ДОЛЖНЫ устанавливать это поле равным всем нулям в сгенерированных пакетах, а получатели ДОЛЖНЫ игнорировать его значение.
Тип: 4 бита
Поле Тип указывает тип пакета.
Расширенные порядковые номера  (X): 1 бит
Установите значение «1», чтобы указать на использование расширенного универсального заголовка с 48-битными порядковыми номерами и номерами подтверждения.
Порядковый номер: 48 или 24 бита
Уникально идентифицирует пакет в последовательности всех пакетов, отправленных источником по данному соединению.

Текущее развитие

Подобно расширению протокола TCP с помощью многопутевой возможности ( MPTCP ), также для DCCP многопутевая функция обсуждается в IETF [6] соответственно обозначена как MP-DCCP. Первые реализации уже разработаны, протестированы и представлены в совместном подходе между операторами и академическими кругами [7] и доступны как решение с открытым исходным кодом.

Смотрите также

Ссылки

  1. ^ RFC 4340 раздел 7.6
  2. ^ "[dccp] Реализация FreeBSD". www.ietf.org . Получено 18 апреля 2018 г. .
  3. ^ "Linux получает DCCP [LWN.net]". lwn.net . Получено 18 апреля 2018 г. .
  4. ^ "dccp: Распечатать уведомление об устаревании". kernel.org .
  5. ^ "Журнал изменений для dccp-tp wiki, получено 13 июня 2011 г.". Архивировано из оригинала 4 октября 2011 г. Получено 13 июня 2011 г.
  6. ^ Аменд, Маркус; Брунстром, Анна; Касслер, Анес; Ракочевич, Веселин; Джонсон, Стивен (9 ноября 2021 г.). «Расширения DCCP для многопутевой работы с несколькими адресами».
  7. ^ «Многопутевое расширение для DCCP».

Внешние ссылки

Спецификации протокола

Идентификаторы контроля перегрузки

Другая информация