제임스딘딘의
Tech & Life

수행 프로젝트 이력/참여자주도형 정보공유 시스템 [2011.12~2012.02]

자료조사(7) - RTP/RTCP 프로토콜 (실시간 통신 프로토콜)

제임스-딘딘 2011. 11. 25. 12:11

RTP/RTCP

 * 관련문서 : RFC 1889, RTP - A Transport Protocol for Real-time Applications

IETF AVT WG에서 작성한 인터넷 표준이다. RFC 1889는 실시간 응용 데이터
전송을 위한 트랜스포트 프로토콜인 RTP와 제어 정보를 전달하는 RTCP로 구성된다.


RTP (Real-time Transport Protocol)
 

RTP는 멀티캐스트 또는 유니캐스트상에서 음성, 화상, 또는 모의 데이터와 같은 실시간 데이터를 전송하는 응용에 적합한 단대 단 트랜스포트 기능을 제공한다.

그러나 RTP는 자원 예약에 대한 내용은 다루지는 않으며, 특히 적시 데이터 전송 (timely delivery), QoS 보장, 뒤바뀐 순서의 전송 방지와 같은 기능을 제공하지 않는다. 따라서 트랜스포트의 의미는 실시간 데이터의 특성에 중점을 두어 제정한 표준이라고 할 수 있다. RTP패킷은 UDP를 이용하여 전달된다.


RTP패킷 양식 그림


(그림 1) RTP 패킷 양식


그림은 RTP 패킷 형태이다. 헤더는 고정 크기를 가지며 멀티미디어 정보에 따라서 헤더 뒤에 특정 정보 및 데이터가 붙게 된다.

V는 버전 필드이며 최근 
버전은 2.0이다. P는 32비트 단위로 패킷을 구성하기 위해서 사용된다.

P값이 세팅되면 payload 부분이 아닌 패딩 옥테트들이 패킷의 끝에 포함됨을 의미한다. 

X비트가 세팅되면 정확하게 한 개의 화장 헤더가 고정 헤더 다음에 온다는 것을 가리킨다.

CC는 고정 헤더에서 CSRC identifier의 개수를 가리킨다.

CSRC는 
RTP mixer가 combined stream으로 만드는 데 기여한 RTP 패킷 스트림의 소스이다. 즉, RTP 패킷들은 망을 통해서 전달되면서 중간 시스템에서는 여러 소스로부터 온 RTP 패킷들을 받고 이들을 적절히 조합시켜서 새로운 형태의 RTP 패킷을 만들고 이를 다음 시스템으로 전달하는데, 이러한 기능을 수행하는 중간 시스템을 RTP mixer라 한다. 

M은 멀티미디어 정보에 대한 프레임 영역을 나타낸다. 즉 패킷 안에서 음성과 화상 정보 등을 구별하는데 사용한다.

PT 필드는 RFC 1890에서 정의된 
프로파일의 RTP payload 양식을 지칭하고 응용에 의해서 해석된다.
프로파일은 
payload type code를 payload format으로 지정되고 고정된 대응을 시킨 것이다. 즉, PT가 0이면 인코딩 방식의 오디오 정보이고 800Hz clock rate를 갖으며 오디오 채널 1개를 갖는 것을 가리킨다. 현재 33개의 payload type이 정의 되어 있다.

sequence number는 RTP 패킷이 송신될 때마다 1씩 증가한다. 수신측은 이 필드를 이용하여 패킷분실을 감지 하고 패킷 순서를 재저장한다.

timestamp 필드는 RTP 
패킷의 첫 번째 옥테트가 샘플링된 시점을 나타낸다. 그 샘플링 시점은 일정하게 증가하는 클럭으로부터 생성된다. 이것은 실시간 데이터의 동기화와 지터 계산에 이용된다.

SSRC 필드는 카메라 또는 마이크 등의 데이터 원천지의 식별자를 가리킨다.

CSRC 필드는 RTP 패킷이 중간 시스템에서 혼합될 경우에 그 소스들을 구별할 수 있는 식별자들을 가리킨다. 그러나 다중화(multiplexing)와 체크섬은 UDP(User Datagram Protocol)을 이용한다. 또한 여러 목적지로의 데이터전송은 하위 계층에서 제공해야 한다.