Datagram Congestion Control Protocol
Datagram Congestion Control Protocol(データグラム輻輳制御プロトコル、データグラム コンジェスチョン コントロール プロトコル、DCCP)は、メッセージ指向のトランスポートプロトコルである。DCCPは信頼性のあるコネクションの確立、切断、ECN(明示的輻輳通知)、輻輳制御、特徴的なネゴシエーションを実装している。2006年3月にIETFによって RFC 4340(proposed standard)として発行された。Linuxでは、Linuxカーネル 2.6.14でDCCPの最初のリリースが実装され、それ以降のリリースでも開発が続いている。
DCCPは、アプリケーション層ではなくトランスポート層で輻輳制御機構を提供する。DCCPは、TCPのようなフローベースの考え方を可能にするが、信頼性や正しい順序を保証しない。また、SCTPのような複数のストリームで順序指定の配送を提供しない。
輻輳回避だけでなく信頼性のある順序指定の配送を提供するがためにデータが使い物にならなくなるような、タイミングの制約があるようなアプリケーションにとってDCCPは有益である。このようなアプリケーションでは、TCPで妥協するか、UDPを使って、独自の輻輳制御機構を実装するしかなかった(あるいは輻輳制御をまったくしなかった)。
DCCP接続はデータのトラフィックとは別にACK(acknowledgement)トラフィックを含む。ACKは送信者に対して、送信者のパケットが受信者に届いたか、パケットはECNがマークされていたかを通知する。ACKは輻輳制御機構が要求する程度の信頼性(完全な信頼性たり得る)で転送される。
DCCPはオプションとして、パケットIDに対応する(TCPのようにバイトIDに対応するのではなく)とても長い(48 bit)のシーケンス番号を持つ。この長いシーケンス番号は、「コネクションへのDCCP-Resetsの挿入などの、いくつかのBlind Attack」からの防御を意図している[1]。
実装
編集2008年6月現在、最低でも2つのDCCP実装が活発に保守開発されている。
Linuxカーネル上のDCCP実装は、カーネル2.6.14で初めてコミットされた。 この実装についての情報はNet:DCCP - The Linux Foundationで提供されている。
dccp-tpは、ポータブルなDCCP実装として設計されている。
関連項目
編集出典
編集外部リンク
編集- RFC 4340 - Datagram Congestion Control Protocol
- RFC 4341 - Profile for Datagram Congestion Control Protocol (DCCP)Congestion Control ID 2: TCP-like Congestion Control
- RFC 4342 - Profile for Datagram Congestion Control Protocol (DCCP)Congestion Control ID 3: TCP-Friendly Rate Control (TFRC)
- DCCP page from one of DCCP authors
- DCCP support in Linux