Протокол транспортного уровня DCCP: особенности и применение
Datagram Congestion Control Protocol
DCCP: транспортный протокол для компьютерных сетей. Надежная настройка, контроль перегрузок, ECN. Альтернатива TCP без гарантированной доставки данных.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Протокол транспортного уровня, ориентированный на сообщения
Message oriented transport layer protocol
В компьютерных сетях протокол управления перегрузкой дейтаграмм (DCCP) является протоколом транспортного уровня, ориентированным на сообщения. DCCP обеспечивает надежное установление соединения, его разрыв, явное уведомление о перегрузке (ECN), контроль перегрузки и согласование возможностей. IETF опубликовал DCCP как предлагаемый стандарт в марте 2006 года.
In computer networking, the Datagram Congestion Control Protocol (DCCP) is a message oriented transport layer protocol. DCCP implements reliable connection setup, teardown, Explicit Congestion Notification (ECN), congestion control, and feature negotiation. The IETF published DCCP as , a proposed standard, in March 2006. provides an introduction.
Операция
DCCP предоставляет способ доступа к механизмам управления перегрузкой без необходимости их реализации на уровне приложения. Он обеспечивает семантику, основанную на потоках, как в протоколе управления передачей (TCP), но не гарантирует надежную доставку в порядке следования. Последовательная доставка в рамках нескольких потоков, как в протоколе управления потоками (SCTP), в DCCP недоступна. Соединение DCCP содержит как подтверждающий трафик, так и трафик данных. Подтверждения информируют отправителя о получении его пакетов и о том, были ли они помечены явным уведомлением о перегрузке (ECN). Подтверждения передаются настолько надежно, насколько это необходимо используемому механизму управления перегрузкой, и, возможно, полностью надежно. DCCP поддерживает использование очень длинных (48-битных) порядковых номеров, соответствующих идентификатору пакета, а не байтовому идентификатору, как в TCP. Большая длина порядковых номеров предназначена для защиты от "некоторых атак, например, внедрения DCCP Reset в соединение".
DCCP provides a way to gain access to congestion control mechanisms without having to implement them at the application layer. It allows for flow based semantics like in Transmission Control Protocol (TCP), but does not provide reliable in order delivery. Sequenced delivery within multiple streams as in the Stream Control Transmission Protocol (SCTP) is not available in DCCP. A DCCP connection contains acknowledgment traffic as well as data traffic. Acknowledgments inform a sender whether its packets have arrived, and whether they were marked by Explicit Congestion Notification (ECN). Acknowledgements are transmitted as reliably as the congestion control mechanism in use requires, possibly completely reliably. DCCP has the option for very long (48 bit) sequence numbers corresponding to a packet ID, rather than a byte ID as in TCP. The long length of the sequence numbers aims to guard against "some blind attacks, such as the injection of DCCP Resets into the connection".
Приложения
DCCP полезен для приложений с жесткими требованиями к времени доставки данных. К таким приложениям относятся потоковое мультимедиа, многопользовательские онлайн-игры и интернет-телефония. В этих приложениях устаревшие сообщения быстро теряют актуальность, поэтому предпочтительнее получать новые сообщения, чем повторно отправлять потерянные. Ранее такие приложения либо использовали TCP, либо использовали протокол User Datagram Protocol (UDP) и реализовывали собственные механизмы управления перегрузками, либо вообще не использовали управление перегрузками. Помимо полезности для этих приложений, DCCP может служить универсальным механизмом управления перегрузками для приложений на основе UDP, добавляя, при необходимости, механизмы надежной или упорядоченной доставки поверх UDP/DCCP. В этом контексте DCCP позволяет использовать различные, но в целом совместимые с TCP механизмы управления перегрузками.
DCCP is useful for applications with timing constraints on the delivery of data. Such applications include streaming media, multiplayer online games and Internet telephony. In such applications, old messages quickly become useless, so that getting new messages is preferred to resending lost messages. such applications have often either settled for TCP or used User Datagram Protocol (UDP) and implemented their own congestion control mechanisms, or have no congestion control at all. While being useful for these applications, DCCP can also serve as a general congestion control mechanism for UDP based applications, by adding, as needed, mechanisms for reliable or in order delivery on top of UDP/DCCP. In this context, DCCP allows the use of different, but generally TCP friendly congestion control mechanisms.
Современное развитие
Аналогично расширению протокола TCP за счет многопутных возможностей (MPTCP), для протокола DCCP также обсуждается внедрение многопутности в IETF, обозначаемое как MP DCCP. Первые реализации уже разработаны, протестированы и представлены в результате совместной работы операторов и академических учреждений и доступны как решение с открытым исходным кодом.
Similarly to the extension of TCP protocol by multipath capability (MPTCP) also for DCCP the multipath feature is under discussion at IETF correspondingly denoted as MP DCCP. First implementations have already been developed, tested, and presented in a collaborative approach between operators and academia and are available as an open source solution.