Datagram Congestion Control Protocol
-
Обзор протокола DCCP
- DCCP — это протокол транспортного уровня, который обеспечивает надежное соединение, управление перегрузкой и согласование функций.
- Он был опубликован IETF в марте 2006 года и включает RFC 4340 и RFC 4336.
-
Особенности и операции
- DCCP позволяет использовать механизмы управления перегрузкой без необходимости их реализации на прикладном уровне.
- Он поддерживает потоковые семантики, аналогичные TCP, но не обеспечивает надежную доставку в порядке.
- Соединение DCCP содержит как данные, так и подтверждения, которые информируют отправителя о прибытии пакетов и их маркировке ECN.
- Подтверждения передаются с надежностью, соответствующей используемому механизму управления перегрузкой.
- DCCP поддерживает длинные (48 бит) порядковые номера, что помогает предотвратить некоторые атаки.
-
Применение
- DCCP полезен для приложений с жесткими требованиями к времени доставки данных, таких как потоковое мультимедиа, многопользовательские онлайн-игры и интернет-телефония.
- В 2017 году многие приложения использовали либо TCP, либо UDP с собственными механизмами управления перегрузкой, либо вообще не имели механизмов управления перегрузкой.
- DCCP может служить общим механизмом управления перегрузкой для UDP-приложений, добавляя механизмы для надежной или упорядоченной доставки поверх UDP/DCCP.
-
Реализации
- DCCP поддерживается в FreeBSD версии 5.1 и Linux начиная с версии 2.6.14, но в Linux он был отмечен как устаревший с версии 6.4 и планируется к удалению в 2025 году.
- Существует пользовательская библиотека DCCP-TP, которая была оптимизирована для переносимости, но не обновлялась с июня 2008 года.
- GoDCCP — это стандартизированная и портативная реализация для P2P-коммуникаций с гибким управлением перегрузкой, зависящим от приложения.
-
Структура пакета
- Заголовок DCCP имеет разные формы в зависимости от бита X, который указывает на длину порядкового номера.
- Если X равен 1, то порядковый номер составляет 48 бит, и заголовок занимает 16 байт.
- Если X равен 0, то передаются только младшие 24 бита порядкового номера, и заголовок занимает 12 байт.
-
Текущее развитие
- Обсуждается возможность добавления многопутевой функции (MP-DCCP) к DCCP, аналогично MPTCP для TCP.
- Уже были разработаны и протестированы первые реализации MP-DCCP, которые доступны в виде открытого исходного кода.
-
См. также
- Stream Control Transmission Protocol (SCTP)
- Сравнение протоколов транспортного уровня
-
Ссылки
- IETF Datagram Congestion Control Protocol (dccp) Charter
- Протоколы RFC 4340, RFC 5595, RFC 5596, RFC 5762, RFC 5238, RFC 5634, RFC 6773
- Идентификаторы управления перегрузкой RFC 4341, RFC 4342, RFC 5622
- Другие ресурсы и информация RFC 4336, DCCP page from one of DCCP authors, DCCP support in Linux
Полный текст статьи: