[Standard]/RFC

RTP/RTCP

하늘을닮은호수M 2007. 9. 28. 19:33
반응형

실시간 통신 프로토콜 개요


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를 이용하여 전달된다.


(그림 1) RTP 패킷 양식

그림은 RTP 패킷 형태이다. 헤더는 고정 크기를 가지며 멀티미디어 정보에
따라서 헤더 뒤에 특정 정보 및 데이터가 붙게 된다. V는 버전 필드이며 최근
버전은 2.0이다. P는 32비트 단위로 패킷을 구성하기 위해서 사용된다.
P값이 세팅되면 payload 부분이 아닌 패딩 옥테트들이 패킷의 끝에 포함됨을 의미한다.
X비트가 세팅되면 정확하게 한 개의 화장 헤더가 고정 헤더 다음에 온다는 것을
가리킨다. CC는 고정 헤더에서 CRSC identifier의 개수를 가리킨다. CRSC는
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)을 이용한다.
또한 여러 목적지로의 데이터전송은 하위 계층에서 제공해야 한다.




RTCP(RTP Control Protocol)


RTCP는 회의 참여간에 분실된 패킷 수, 지터 간격, 앞의 패킷과의 지연시간 등의
QoS 정보를 교환하여 응용이 적당한 QoS를 평가하여 adaptive encoding을 제공
하도록 한다. 또한 RTCP는 많은 참여자들의 스케일을 위해서 패킷 송신율을 계산
하고 사용자 인터페이스의 참여자 ID를 지칭하는 최소한의 세션 제어 정보를
나른다.

또한 데이터의 원천지 식별자가 충돌이 되거나 다시 만들 경우에 변경되어야
하므로 CNAME(Canonial NAME)이라 부르는 영구 트랜스포트 식별자를 나른다.
RTCP는 제어 패킷을 주기적으로 모든 참여자에게 전송한다. 이를 수행하기 위한
RTCP 메시지들은 다음과 같다.

SR (sender report)
: active sender들은 자신의 송수신에 대한 통계 정보를알리는 데 사용한다.
RR (receiver report)
: active sender가 아닌 참여자들이 자신의 송수신에 대한 통계 정보를 알리는 데 사용한다.
SDES (Source DEScription)
: CNAME을 포함하여 소스 이름을 기술하는 데 사용한다.
BYE (BYE)
: RTP session을 빠져나올 때 사용한다.
APP (APPlication)
: 새로운 응용 또는 새로운 기능을 시험할 때 그 응용에 한정된 기능을 지정하는데 사용한다.



(그림 2) RTCP 복합 패킷 양식

RTCP 패킷은 고정된 헤더 필드와 패킷 타입에 따라서 가변의 길이를 갖는 필드가
붙는다. 효과적인 정보 전송을 위해서 여러 RTCP 패킷들이 한 개의 UDP 패킷
으로 전송될 수 있다.





RTP Profile


관련문서 : RFC 1890, RTP Profile for Audio and Video Conferences with Minimal Control

RFC 1890은 RTP/RTCP에서 다루지 않은 부분을 정의한다. 특히 최소한의 제어를
갖는 다자간 오디오와 비디오 회의에서 RTP/RTCP를 사용하기 위한 프로파일을
정의한다. 본 문서는 오디오와 비디오 회의에서 적합한 RTP 사양 내에서 일반
필드에서 해석되는 부분을 포함한다. 특히, payload type 으로부터 인코딩으로의
mapping 정보를 제공하낟. 표10.1은 지금까지 진행된 표준 인코딩/디코딩에 대한
payload tyoe(PT)를 보여준다.
RTP는 모든 실시간 데이터를 지원하기 보다는 모든 실시간 데이터의 공통적인
사항을 다룬다. 따라서 특정 실시간 데이터에 대해서는 별도로 취급되어야 하며
RTP 데이터 필드에 전송된다. RFC 1890은 어떻게 각 payload가 RTP를 통해서
어떻게 전달되는가는 기술하고 있지 않다. 이들은 별도의 문서를 표준으로 정하고
있는데 현재까지 정의된 문서는 다음과 같다.

RTP payload format for H.263 video streams
RTP payload formt for H.261 video streams
RTP payload format for JPEG-compressed video
RTP payload format for MPEG1/MPEG2 video
RTP payload format for CellB viseo encoding
RTP payload format for H.723 audio


PT

encoding

name audio/video

(A/V)

clock rate (Hz)

channels (audio)

0

PCMU

A


1

1

1016

A

8000

1

2

G721

A

8000

1

3

GSM

A

8000

1

4

unsigned

A

8000

1

5

DVI4

A

8000

1

6

DVI4

A

8000

1

7

LPC

A

16000

1

8

PCMA

A

8000

1

9

G722

A

8000

1

10

L16

A

8000

2

11

L16

A

44100

1

12

unasigned

A

44100


13

unasigned

A



14

MPA

A


see ISO/IEC 11172-3 & 13818-3

15

G728

A

90000

1

16-23

unasigned

A

8000


24

unasigned

V



25

CellB

V



26

JPEG

V

90000


27

unasigned

V

90000


28

nv

V



29

unasigned

V

90000


30

unasigned

V



31

H.261

V



32

MPV

V

90000


33

MP2T

AV

90000


34-71

unasigned

?

90000


72-76

reserved

N/A



77-95

unasigned

?

N/A


96-127

dynamic

?


N/A

<표준 인코딩/디코딩에 대한 payload type (PT)>

반응형

'[Standard] > RFC' 카테고리의 다른 글

RTP Payload Format for H.263  (0) 2007.09.28
RTP(RFC-3550) 최근문서  (0) 2007.09.28
IP over IEEE802.16 Networks(16ng)  (0) 2007.01.29
RTP Payload format for iLBC(rfc3952)  (0) 2005.05.13
RTP Payload Format for H.263  (0) 2005.04.29