(1) 개요
:
RTP는 인터넷상에서 다수가(영상회의 등) 종단간에 실시간으로 비디오나 오디오 패킷을   전송하기 위해  표준화된
  프로토콜을 말한다. (실시간 전송 프로토콜)


(2) 특징
: RTP는 신뢰성은 없으나 빠르게 데이터를 전달할 수 있는 UDP라는 수송 프로토콜 위에서 실행(즉, UDP와 함께
  사용되어짐)되며
주로 실시간 서비스를 제공한다.

○ 시간 특성이 강한 데이터의 전달에 이용
  - RTP는 실시간 응용에 필수적인 시간 정보 및 매체의 동기화 기능 제공
  - UDP, RTP 모두 트랜스포트 계층용 프로토콜이지만, 특히 RTP는 네트워크계층이나  수송계층 프로토콜과 함께
    사용되는 등 
하위 프로토콜에 별로 의존하지 않는다.

○  자원 예약 등을 위해 별도의 프로토콜과 병행
  - RTP는 전송률 제어 등을 위하여 RTCP(RTP Control Protocol)라는 프로토콜이 함께 사용된다.

○ 전달할 데이터 포멧
  - RTP는 오디오용 PCM, GSM 또는 MP3, 비디오용 MPEG 또는 H.263 등과 같은 표준화 된 포멧을 전달할 수도, 
     비표준화된 사적인 오디오/비디오 형식도 전달이 가능

○ 
RTP는 UDP 상의 포트 사용에 대해 특정 포트 사용을 강요하지 않는다.

  - RTP 및 RTCP는 2개의 연결된 포트를 사용하며,  RTP는 짝수 포트 번호,  RTCP는 RTP 바로 위의 홀수 포트 번호를
     사용한다.


(3) 주요 기능
: UDP에서 지원하지 못하는 여러 기능을 제공

 
○ 시간정보 제공 기능
  - 순서번호(Sequence number)의 보장 기능
     · 패킷 손실 검출, 패킷의 순서를 재구성 등
  - 내부적인 타임스탬프(Timestamp,발송시간) 전송
     · 수신측이 데이터를 적절한 시간내에 재생할 수 있도록 데이터에 타임스탬프 정보를 추가함
     · 단일 또는 복합 매체(정보열)에서 동기 및 지연에 대한 계산을 하게함

○  정보매체의 동기화 기능
  - 데이타 타입에 대한 정보 제공 (소스동기)
     · 비디오 또는 오디오 등에 대하여 어떤 부호화 방식을 채택했는가를 알려줌
  - 각 미디어 스트림에 식별번호 부여 (미디어소스동기)
     · 여러 스트림을 단일 스트림으로 혼합할 때 각각을 식별

○ 각 프레임의 경계표시


(4) RTP 패킷의 일반적 포멧

처음의 12 byte는 (96 bit, 파란색 영역으로 표시된 부분) 모든 RTP 패킷에 존재 하지만, CSRC 영역은 믹서에 의해서
    삽입될 때만 존재할 수 있습니다.

- version (V): 2 bits
RTP의 버전을 의미하는 영역.  RFC 1889 스펙에 명시된 버전은 2입니다. 즉, 비트공간에서 (10)으로 설정.

- padding (P): 1 bit
패딩 비트가 세팅되면, 하나이상의 패딩 바이트가 포함. 페이로드 끝부분에 패딩 바이트를 추가.
패딩의 마지막 바이트는 패딩으로 추가한 바이트의 수로 즉, 이 숫자만큼의 바이트를 무시할 수 있다.
패딩은 고정 블록크기의 암호와 알고리즘이나 하위 계층에서의 RTP 패킷 운반에 사용할 수 있다.
32bit 단위로 패킷을 맞추기 위해 사용.

- extension (X): 1bit
확장 비트가 세팅되면, <RFC 1889 Section 5.3.1>에 정의 되어 있는 확장 헤더가 고정 헤더 뒤에 붙는다.

- CSRC count (CC): 4bits
고정헤더 뒤에 추가되는 CSRC identifier의 개수를 의미.

- marker (M): 1bit
마커의 해석은 프로파일에 정의되어있다. 페이로드 타입에 의해 사용법이 결정.
주로, 패킷 스트림에서 프레임 경계와 같은 중요한 이벤트를 표시하는데 사용.

- payload type (PT): 7bits
PT 필드는 RTP payload가 나타내는 어플리케이션을 해석하기 위해서 사용.

- sequence number: 16 bits 
sequence number는 RTP 데이터 패킷이 보내질 때 마다 1 씩 증가하고, 이 정보는 수신 측에서 패킷 손실과 패킷 시퀀스 복원에 사용할 수 있다. 초기 값은 무작위로 설정.

- timestamp: 32 bits
타임 스탬프는 RTP 데이터 옥텟이 샘플링 된 순간을 반영. 샘플링 순간은 단조, 선형으로 증가.
클럭 주파수는 페이로드 데이터 형식에 따른다.
sequence number와 마찬가지로 time stamp의 초기값도 무작위로 설정한다.

- SSRC: 32 bits
SSRC는 동기화 소스를 의미. SSRC는 무작위로 설정되며, 같은 RTP 세션에서 같은 SSRC값을 가지도록 두개 이상의 값을 가지지 않는다. 만약 소스가 전송 주소를 바꾼다면, SSRC도 새로운 값으로 설정한다.

- CCRC list: 0~15 items, 32bits each
CCRC 리스트는 패킷에 포함 payload의 contributing source를 식별.
CC 필드의 정의된 숫자만큼의 CCRC가 주어진다.


(5) 프로토콜 스택 구조

    PCM  H.261  MPEG Audio  MPEG Video ... Motion JPEG 등            Application Layer
    -------------------------------------------------------
                    RTP (데이터 운반)     RTCP (제어용)
                  -------------------------------------                          Transport Layer
                                          UDP
     ------------------------------------------------------
                                           IP                                                      Network Layer
     ------------------------------------------------------


(6)
표준

-
IETF의 Audio/Video Transport Working Group(AVT)에 의해 표준개발
- RFC 3550 : RTP - A Transport Protocol for Real-time Application (2003)
- 기타관련표준 ☞ ITU-T H.323

'T heory > Protocol' 카테고리의 다른 글

TCP 와 UDP 프로토콜  (2) 2012.03.08
[TCP] TIME_WAIT  (0) 2012.03.02
FTP & TFTP 프로토콜  (0) 2011.12.15
[권고안] SIP 표준  (0) 2011.04.29
Unistim Protocol(skycom)  (0) 2011.04.29
by 민트앤라떼 2012. 2. 22. 09:57