글
(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 |
RECENT COMMENT