데이터그램 혼잡 제어 프로토콜
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
데이터그램 혼잡 제어 프로토콜(DCCP)은 응용 계층에서 혼잡 제어 메커니즘에 접근할 수 있도록 하는 전송 계층 프로토콜이다. TCP와 유사하게 흐름 기반의 의미 체계를 지원하지만, 신뢰할 수 있는 순서대로의 전달은 제공하지 않는다. 스트리밍 미디어, 다중 사용자 온라인 게임, 인터넷 전화 등 시간 제약적인 데이터 전송에 유용하며, UDP 기반 애플리케이션의 혼잡 제어 메커니즘으로도 사용될 수 있다. DCCP는 FreeBSD 및 Linux에서 구현되었으며, IETF에서 다중 경로 기능인 MP-DCCP에 대한 논의가 진행 중이다.
더 읽어볼만한 페이지
- 전송 계층 프로토콜 - 사용자 데이터그램 프로토콜
사용자 데이터그램 프로토콜(UDP)은 연결 설정 없이 데이터를 전송하는 비연결형 전송 프로토콜로, 메시지 전달 보장은 상위 계층에 맡기지만 속도가 중요한 애플리케이션에서 널리 사용된다. - 전송 계층 프로토콜 - 전송 제어 프로토콜
전송 제어 프로토콜(TCP)은 인터넷 모델의 전송 계층에서 신뢰성 있는 통신을 제공하며 순서 보장, 오류 검출, 흐름 및 혼잡 제어 기능을 수행하는 프로토콜로, 웹 브라우징 등 다양한 인터넷 응용 프로그램에서 사용되고 TCP/IP 모델의 핵심이다. - 인터넷 프로토콜 - IPTV
IPTV는 인터넷 프로토콜을 사용하여 실시간 방송, VOD 등 다양한 콘텐츠를 제공하는 텔레비전 서비스이며, 고속통신망과의 통합, 양방향 서비스 등의 장점을 가지지만 망 사업자 제한 등의 제한 사항도 존재한다. - 인터넷 프로토콜 - DNSSEC
DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다.
데이터그램 혼잡 제어 프로토콜 | |
---|---|
개요 | |
이름 | 데이터그램 혼잡 제어 프로토콜 |
약칭 | DCCP |
OSI 계층 | 전송 계층 (4) |
RFC | RFC 4340 RFC 4336 |
하드웨어 | 해당 없음 |
2. 작동 방식
DCCP는 응용 계층에서 구현할 필요 없이 혼잡 제어 메커니즘에 접근할 수 있는 방법을 제공한다. 전송 제어 프로토콜(TCP)과 같이 흐름 기반의 의미 체계를 허용하지만, 신뢰할 수 있는 순서대로의 전달은 제공하지 않는다. 스트림 제어 전송 프로토콜(SCTP)과 같은 여러 스트림 내에서의 순차적 전달은 DCCP에서 사용할 수 없다. DCCP 연결은 응답 트래픽뿐만 아니라 데이터 트래픽도 포함한다. 응답은 발신자에게 해당 패킷이 도착했는지와 명시적 혼잡 알림(ECN)으로 표시되었는지를 알려준다. 응답은 사용 중인 혼잡 제어 메커니즘이 요구하는 만큼 신뢰성 있게 전송되며, 완전히 신뢰할 수 있게 전송될 수도 있다.
DCCP는 데이터 전송에 시간 제약이 있는 애플리케이션에 유용하다. 이러한 애플리케이션에는 스트리밍 미디어, 다중 사용자 온라인 게임, 인터넷 전화가 있다. 이러한 애플리케이션에서는 오래된 메시지가 빠르게 쓸모없게 되므로, 손실된 메시지를 다시 보내는 것보다 새 메시지를 받는 것이 선호된다. 2017년 현재 이러한 애플리케이션은 종종 TCP를 선택하거나 사용자 데이터그램 프로토콜(UDP)를 사용하고 자체 혼잡 제어 메커니즘을 구현하거나 아예 혼잡 제어를 사용하지 않는다. DCCP는 UDP 기반 애플리케이션에 대한 일반적인 혼잡 제어 메커니즘으로도 사용될 수 있는데, 필요에 따라 UDP/DCCP 위에 신뢰할 수 있는 또는 순서대로 전달하는 메커니즘을 추가할 수 있기 때문이다. 이러한 맥락에서 DCCP는 다르고 일반적으로 TCP 친화적 속도 제어 혼잡 제어 메커니즘을 사용할 수 있도록 한다.
다음 운영 체제는 DCCP를 구현한다.
DCCP는 TCP와 같이 바이트 ID가 아닌 패킷 ID에 해당하는 매우 긴 (48비트) 시퀀스 번호 옵션을 가지고 있다. 시퀀스 번호의 긴 길이는 "DCCP 재설정의 연결 삽입과 같은 일부 무차별 공격"을 방지하기 위한 것이다.[1]
3. 응용 분야
4. 구현
사용자 공간 라이브러리는 다음과 같다.
2008년 6월 현재, 최소 2개의 DCCP 구현이 활발하게 유지보수 개발되고 있다.
4. 1. 리눅스 커널 구현
리눅스 커널 상의 DCCP 구현은 2.6.14 버전에서 처음 도입되었다.[3] 이 구현에 대한 정보는 [http://www.linuxfoundation.org/en/Net:DCCP Net:DCCP - The Linux Foundation]에서 제공된다. 그러나 유지 관리 부족으로 인해 6.4 버전부터 사용 중단되었으며 2025년에 제거될 예정이다.[4]
5. 패킷 구조
DCCP 일반 헤더는 확장 시퀀스 번호 비트인 X의 값에 따라 다른 형태를 취한다. X가 1이면 시퀀스 번호 필드는 48비트 길이이며 일반 헤더는 16바이트를 차지한다. X가 0이면 시퀀스 번호의 하위 24비트만 전송되며 일반 헤더는 12바이트 길이이다.
16비트 | 16비트 | |||
---|---|---|---|---|
출발지 포트 | 목적지 포트 | |||
8비트 | 4비트 | 4비트 | 16비트 | |
데이터 오프셋 | CCVal | CsCov | 체크섬 | |
3비트 | 4비트 | 1비트 | 8비트 | 16비트 |
Res | 유형 | X | 예약됨 | 시퀀스 번호 (상위 비트) |
32비트 | ||||
시퀀스 번호 |
16비트 | 16비트 | ||
---|---|---|---|
출발지 포트 | 목적지 포트 | ||
8비트 | 4비트 | 4비트 | 16비트 |
데이터 오프셋 | CCVal | CsCov | 체크섬 |
3비트 | 4비트 | 1비트 | 24비트 |
Res | 유형 | X | 시퀀스 번호 |
- 출발지 포트: 16비트. 보내는 포트를 식별한다.
- 목적지 포트: 16비트. 받는 포트를 식별한다.
- 데이터 오프셋: 8비트. 32비트 워드 단위로 패킷의 DCCP 헤더 시작부터 애플리케이션 데이터 영역 시작까지의 오프셋이다.
- CCVal: 4비트. HC-송신자 CCID에 사용된다.
- 체크섬 범위 (CsCov): 4비트. 체크섬 범위는 체크섬 필드가 다루는 패킷의 부분을 결정한다.
- 체크섬: 16비트. 패킷의 DCCP 헤더(옵션 포함), 네트워크 계층 의사 헤더, 그리고 체크섬 범위에 따라 애플리케이션 데이터의 전부, 일부 또는 전부가 아닌 부분에 대한 인터넷 체크섬이다.
- 예약됨 (Res): 3비트. 송신자는 생성된 패킷에서 이 필드를 모두 0으로 설정해야 하며, 수신자는 이 값을 무시해야 한다.
- 유형: 4비트. 유형 필드는 패킷의 유형을 지정한다.
- 확장 시퀀스 번호 (X): 1비트. 48비트 시퀀스 및 승인 번호가 있는 확장 일반 헤더의 사용을 나타내려면 1로 설정한다. X가 1이면 시퀀스 번호가 48비트, X가 0이면 시퀀스 번호가 24비트임을 의미한다.[1]
- 시퀀스 번호: 48 또는 24비트. 소스가 이 연결을 통해 보낸 모든 패킷 시퀀스에서 패킷을 고유하게 식별한다.
6. 다중 경로 DCCP (MP-DCCP)
TCP 프로토콜의 다중 경로 기능(MPTCP) 확장과 유사하게, DCCP에서도 IETF에서 다중 경로 기능이 논의 중이며, MP-DCCP로 명명되었다.[7] 최초의 구현은 이미 개발, 테스트되었으며, 운영자와 학계 간의 협력적 접근 방식으로 제시되었고, 오픈 소스 솔루션으로 이용 가능하다.[7]
7. 프로토콜 규격
DCCP 관련 IETF RFC 문서는 다음과 같다.
RFC 번호 | 제목 |
---|---|
RFC 4340 | 데이터그램 혼잡 제어 프로토콜 |
RFC 5595 | 데이터그램 혼잡 제어 프로토콜(DCCP) 서비스 코드 |
RFC 5596 | DCCP 동시-열기 기술을 이용한 NAT/중간상자 통과 |
RFC 5762 | RTP와 DCCP |
RFC 5238 | DCCP 기반 데이터그램 전송 계층 보안(DTLS) |
RFC 5634 | DCCP 퀵스타트 |
RFC 6773 | NAT 통과를 위한 데이터그램 혼잡 제어 프로토콜 UDP 캡슐화 |
참조
[1]
RFC
RFC 4340 section 7.6
http://tools.ietf.or[...]
[2]
웹사이트
"[dccp] FreeBSD implementation"
https://www.ietf.org[...]
2018-04-18
[3]
웹사이트
"Linux gets DCCP [LWN.net]"
https://lwn.net/Arti[...]
2018-04-18
[4]
웹사이트
dccp: Print deprecation notice
https://git.kernel.o[...]
[5]
웹사이트
Change log for the dccp-tp wiki, retrieved June 13, 2011
https://web.archive.[...]
2011-06-13
[6]
웹사이트
DCCP Extensions for Multipath Operation with Multiple Addresses
https://datatracker.[...]
2021-11-09
[7]
웹사이트
Multipath extension for DCCP
https://multipath-dc[...]
[8]
RFC
RFC 4340 section 7.6
https://datatracker.[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com