Protokol kontroly zahlcení datagramu - Datagram Congestion Control Protocol
Sada internetového protokolu |
---|
Aplikační vrstva |
Transportní vrstva |
Internetová vrstva |
Propojit vrstvu |
v počítačové sítě, Protokol kontroly zahlcení datagramu (DCCP) je zaměřen na zprávy transportní vrstva protokol. DCCP implementuje spolehlivé nastavení připojení, odtržení, Oznámení o výslovném zahlcení (ECN), kontrola přetížení a vyjednávání funkcí. The IETF publikoval DCCP jako RFC 4340, a navrhovaný standard v březnu 2006. RFC 4336 poskytuje úvod.
DCCP poskytuje způsob, jak získat přístup k mechanismům kontroly přetížení, aniž byste je museli implementovat na aplikační vrstva. Umožňuje sémantiku založenou na toku jako v protokol kontroly přenosu (TCP), ale neposkytuje spolehlivé doručení v objednávce. Sekvenční doručení v rámci více streamů jako v Stream Control Protocol přenosu (SCTP) není v DCCP k dispozici. Připojení DCCP obsahuje potvrzení datový provoz. Poděkování informuje odesílatele, zda jeho balíčky dorazily a zda byly označeny Oznámení o výslovném zahlcení (ECN). Potvrzení jsou přenášena stejně spolehlivě, jak to vyžaduje mechanismus řízení přetížení, případně zcela spolehlivě.
DCCP je užitečný pro aplikace s časovými omezeními při doručování dat. Mezi takové aplikace patří streamování médií, online hry pro více hráčů a Telefonování přes internet. V takových aplikacích se staré zprávy rychle stávají zbytečnými, takže se dává přednost získávání nových zpráv před opětovným odesláním ztracených zpráv. Od roku 2017[Aktualizace] takové aplikace se často buď vyrovnaly s TCP, nebo se používaly Protokol uživatele Datagram (UDP) a implementovali své vlastní mechanismy kontroly přetížení, nebo nemají vůbec žádnou kontrolu přetížení. I když je DCCP užitečný pro tyto aplikace, může také sloužit jako obecný mechanismus kontroly přetížení pro aplikace založené na UDP, a to podle potřeby přidáním mechanismů pro spolehlivé nebo v pořadí doručování přes UDP / DCCP. V této souvislosti DCCP umožňuje použití různých, ale obecně Přátelský k TCP mechanismy kontroly přetížení.
DCCP má možnost pro velmi dlouhá (48bitová) pořadová čísla odpovídající ID paketu, spíše než ID bajtu jako v TCP. Dlouhá délka pořadových čísel má za cíl chránit před „některé slepé útoky, jako je například injekce DCCP-resetů do připojení".[1]
Implementace
Následující operační systémy implementují DCCP:
Knihovna uživatelského prostoru:
- DCCP-TP implementace je optimalizována pro přenositelnost, ale od června 2008 neměla žádné změny.[4]
- GoDCCP účelem této implementace je poskytnout standardizovaný, přenosný rámec vhodný pro NAT pro komunikaci typu peer-to-peer s flexibilní kontrolou přetížení v závislosti na aplikaci.
Struktura paketů
Obecná hlavička DCCP má různé podoby v závislosti na hodnotě X, bit Extended Sequence Numbers. Pokud X je jedna, je pole Pořadové číslo dlouhé 48 bitů a obecná hlavička má 16 bajtů, jak je uvedeno níže.
Ofsety | Oktet | 0 | 1 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Oktet | Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
0 | 0 | Zdrojový port | |||||||||||||||
2 | 16 | Cílový port | |||||||||||||||
4 | 32 | Datový offset | CCVal | CsCov | |||||||||||||
6 | 48 | Kontrolní součet | |||||||||||||||
8 | 64 | Res | Typ | X = 1 | Rezervováno | ||||||||||||
10 | 80 | Pořadové číslo (vysoké bity) | |||||||||||||||
12 | 96 | Pořadové číslo | |||||||||||||||
14 | 112 | Pořadové číslo (nízké bity) |
Pokud X je nula, přenáší se pouze nízkých 24 bitů sekvenčního čísla a obecná hlavička je dlouhá 12 bajtů.
Ofsety | Oktet | 0 | 1 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Oktet | Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
0 | 0 | Zdrojový port | |||||||||||||||
2 | 16 | Cílový port | |||||||||||||||
4 | 32 | Datový offset | CCVal | CsCov | |||||||||||||
6 | 48 | Kontrolní součet | |||||||||||||||
8 | 64 | Res | Typ | X = 0 | Pořadové číslo (vysoké) | ||||||||||||
10 | 80 | Pořadové číslo (nízké bity) |
- Zdrojový port (16 bitů)
- Identifikuje odesílající port
- Cílový port (16 bitů)
- Identifikuje přijímající port
- Datový offset
- (8 bitů): Posun od začátku DCCP hlavičky paketu po začátek jeho aplikační datové oblasti, ve 32bitových slovech.
- CCVal (4 bity)
- Používá se CCID HC-Sender
- Pokrytí kontrolního součtu (CsCov) (4 bity)
- Pokrytí kontrolního součtu určuje části paketu, které jsou pokryty polem Kontrolního součtu.
- Kontrolní součet (16 bitů)
- Internetový kontrolní součet záhlaví DCCP paketu (včetně možností), pseudohlavice síťové vrstvy a v závislosti na pokrytí kontrolního součtu všechna, některá nebo žádná data aplikace
- Rezervováno (Res) (3 bity)
- Odesílatel MUSÍ nastavit toto pole na všechny nuly na generovaných paketech a přijímače MUSÍ ignorovat jeho hodnotu
- Typ (4 bity)
- Pole Typ určuje typ paketu
- Rozšířená pořadová čísla (X) (1 bit)
- Nastavte na jednu, abyste označili použití rozšířené obecné hlavičky s 48bitovými čísly sekvencí a potvrzení
- Pořadové číslo (48 nebo 24 bitů)
- Identifikuje paket jednoznačně v pořadí všech paketů, které zdroj poslal v tomto připojení
Viz také
Reference
- ^ RFC 4340 oddíl 7.6
- ^ „[dccp] implementace FreeBSD“. www.ietf.org. Citováno 18. dubna 2018.
- ^ „Linux získá DCCP [LWN.net]“. lwn.net. Citováno 18. dubna 2018.
- ^ Protokol změn pro wiki dccp-tp, získaný 13. června 2011
externí odkazy
Specifikace protokolu
- RFC 4340 - Protokol pro kontrolu přetížení datagramu
- RFC 5595 - Kódy služeb protokolu Datagram Congestion Control Protocol (DCCP)
- RFC 5596 - Technika simultánního otevření DCCP pro usnadnění procházení NAT / Middlebox
- RFC 5762 - RTP a DCCP
- RFC 5238 - Zabezpečení transportní vrstvy datagramu (DTLS) přes DCCP
- RFC 5634 - Rychlý start pro DCCP
- RFC 6773 - Zapouzdření protokolu UDP protokolu Datagram Congestion Control Protocol pro NAT Traversal
ID kontroly přetížení
- RFC 4341 - Profil pro DCCP Congestion Control ID 2: TCP-like Congestion Control
- RFC 4342 - Profil pro DCCP Congestion Control ID 3: TCP-Friendly Rate Control (TFRC)
- RFC 5622 - Profil pro DCCP Congestion Control ID 4: TCP-Friendly Rate Control for Small Packets (TFRC-SP)
Jiná informace
- RFC 4336 - Prohlášení o problému protokolu Datagram Congestion Control Protocol (DCCP)
- Stránka DCCP od jednoho z autorů DCCP
- Podpora DCCP v Linuxu
- Protokol řízení zahlcení datagramu (DCCP)