Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

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

Реализации [ править ]

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

  • FreeBSD , версия 5.1 [2] в виде патча
  • Linux, начиная с версии 2.6.14 [3]

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

  • Реализация DCCP-TP оптимизирована для переносимости, но не претерпела изменений с июня 2008 г. [4]
  • GoDCCP цель этой реализации - предоставить стандартизированную портативную среду с поддержкой NAT для одноранговой связи с гибким контролем перегрузки, в зависимости от приложения.

Структура пакета [ править ]

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

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

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

См. Также [ править ]

  • Протокол передачи управления потоком (SCTP)
  • Транспортный уровень § Сравнение протоколов транспортного уровня

Ссылки [ править ]

  1. ^ RFC 4340 раздел 7.6
  2. ^ "[dccp] Реализация FreeBSD" . www.ietf.org . Проверено 18 апреля 2018 года .
  3. ^ "Linux получает DCCP [LWN.net]" . lwn.net . Проверено 18 апреля 2018 года .
  4. ^ Журнал изменений для вики dccp-tp, получен 13 июня 2011 г.

Внешние ссылки [ править ]

  • Устав протокола управления перегрузкой дейтаграмм IETF (dccp)

Спецификации протокола [ править ]

  • RFC 4340 - протокол управления перегрузкой дейтаграмм
  • RFC 5595 - служебные коды протокола управления перегрузкой дейтаграмм (DCCP)
  • RFC 5596 - метод одновременного открытия DCCP для облегчения обхода NAT / промежуточного ящика
  • RFC 5762 - RTP и DCCP
  • RFC 5238 - безопасность на транспортном уровне дейтаграмм (DTLS) через DCCP
  • RFC 5634 - Быстрый старт для DCCP
  • RFC 6773 - UDP-инкапсуляция протокола управления перегрузкой дейтаграмм для прохождения NAT

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

  • RFC 4341 - Профиль для DCCP Congestion Control ID 2: TCP-подобный контроль перегрузки
  • RFC 4342 - Профиль для DCCP Congestion Control ID 3: TCP-Friendly Rate Control (TFRC)
  • RFC 5622 - Профиль для DCCP Congestion Control ID 4: TCP-Friendly Rate Control for Small Packets (TFRC-SP)

Другая информация [ править ]

  • RFC 4336 - Постановка проблемы для протокола управления перегрузкой дейтаграмм (DCCP)
  • Страница DCCP от одного из авторов DCCP
  • Поддержка DCCP в Linux
  • Протокол управления перегрузкой дейтаграмм (DCCP)