Datagram Congestion Control Protocol
DCCP (Datagram Congestion Control Protocol, doslova datagramový protokol s řízením zahlcení) je datagramový protokol transportní vrstvy postavený nad IP protokolem.
Aplikace, které používají protokol DCCP, vyžadují včasné doručení paketů, ale nevyžadují spolehlivé doručení paketů ani správné pořadí přijatých paketů. Jde například o aplikace pracující se streamovanými médii (např. on-line videa, internetová rádia, apod.) nebo internetovou telefonií. Důležitou roli hraje u tohoto protokolu řízení zahlcení, což je mechanismu, který zabraňuje ucpání přenosových cest. Hlavní motivací pro vývoj DCCP je poskytnout přístup ke standardním mechanizmům kontroly zahlcení, bez nutnosti implementovat je v aplikační vrstvě.
Protokol DCCP je určený pro aplikace, které vyžadují sémantiku TCP, ale nepotřebují doručovací a spolehlivostní mechanizmy TCP, nebo vyžadují jiné dynamické vlastnosti než poskytuje TCP. Podobně je DCCP určen i pro aplikace, které nevyžadují rysy SCTP, například sekvenční doručování vícenásobných streamů (multiple stream).
Pokud by aplikace pracující se streamovanými médii použila na transportní vrstvě protokol TCP, tak by při ztrátě paketu docházelo k velkým zpožděním, jelikož při ztrátě jednoho paketu se pozastaví zpracování všech dalších paketů dokud nejsou přeposlána data ze ztraceného paketu (TCP garantuje doručení dat ve správném pořadí).
Dodnes měla většina takovýchto aplikací na výběr používat TCP s jeho problémy popsanými výše, nebo používá UDP s vlastní implementací mechanizmu kontroly zahlcení (nebo bez mechanizmu kontroly zahlcení). Příkladem takového protokolu je protokol RTP/RTCP. Účel DCCP je poskytnout standardní cestu k implementaci mechanizmu kontroly zahlcení pro aplikace, které vyžadují kontrolu zahlcení. Jedna z motivací je umožnit použití ECN na obou stranách spojení pro aplikace, které by jinak používaly UDP. Dále DCCP umožňuje spolehlivé sestavení spojení, přátelské ukončení spojení a dohadování o vlastnostech spojení.
DCCP spojení obsahuje potvrzovaný provoz, stejně jako datový provoz. Potvrzovací pakety informují odesílatele, zda byly jeho datové pakety přijaty, zda byly poškozeny, zda byly zahozeny, zda byly označeny ECN případně jestli aplikace zvládá data přijímat. Potvrzovací pakety jsou odesílány co nejspolehlivěji, tak jak to vyžaduje použitá kontrola zahlcení, včetně možné úplné spolehlivosti doručení potvrzovacích paketů.
DCCP byl publikován ve standardním doporučení RFC 4340 od IETF v březnu 2006.
DCCP v sobě neobsahuje žádné bezpečnostní mechanismy, ale jeho přenos lze zabezpečit na nižší vrstvě pomocí IPSec nebo na aplikační vrstvě pomocí DTLS.
Linux má implementaci DCCP ve svém jádře od verze 2.6.14 a jeho podpora se v každé verzi zlepšuje.
Externí odkazy
- RFC 4340 – Datagram Congestion Control Protocol (DCCP)
- RFC 4341 - Profile for Datagram Congestion Control Protocol (DCCP)Congestion Control ID 2: TCP-like Congestion Control
- RFC 4332 - Profile for Datagram Congestion Control Protocol (DCCP)Congestion Control ID 3: TCP-Friendly Rate Control (TFRC)
- Stránka o DCCP od jednoho z autorů protokolu
- Podpora pro DCCP v Linuxu
- Implementace DCCP optimalizovaná na portabilitu Archivováno 23. 7. 2008 na Wayback Machine.