Введение

Протокол транспортного уровня, ориентированный на сообщения

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

Операция

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

Приложения

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

Современное развитие

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