1. RTP (Real-time Transport Protocol)
ㅇ 인터넷 상에서 다수의 종단 간에,
- 비디오나 오디오 패킷의 실시간 전송을 지원하기 위해,
- 표준화된 실시간 통신용 프로토콜
ㅇ 주요 용도
- VoIP, VoD, 인터넷 방송, 인터넷 영상회의 등
2. RTP 특징
ㅇ 데이터의 `실시간 전송` 및 `멀티캐스팅`에 이용
- 특히, RTP는 실시간 통신에 필수적인 시간 정보 및 매체의 동기화 기능 제공
. RTP 헤더 내 순서번호,타임스탬프,동기발신식별자 등 있음
ㅇ 각 응용이 직접 구현
- 각 실시간 응용 프로그램이, 라이브러리 형태로 구현 제공되며,
. 직접 RTP를 호출하여 이용 함 ☞ (아래 3.항 참조)
ㅇ 2개 프로토콜이 함께 사용됨
- 기본적으로, RTP는 RTCP와 함께 사용됨
- RTCP (RTP Control Protocol) : 별도의 제어용 프로토콜
. RTP 패킷 스트림 내에 포함되어 주기적으로 모든 세션 참가자들에게 전송함으로써,
. 네트워크 회선 상에 전송지연,대역폭변화 등 상태 정보를 상위계층에게 알려줌
ㅇ UDP 사용
- 수송(輸送)용 프로토콜로써 UDP 사용
. RTP는, 신뢰성은 없으나, 빠르게 데이터를 전달할 수 있는 UDP 프로토콜 위에서 실행
되며 주로 실시간 서비스를 지원
ㅇ 연이은 2개의 포트번호 사용
- 다른 프로토콜과는 달리 미리 예약된 포트(Well Known Port)를 사용하지 않음
. 즉, UDP 상의 포트 사용에 대해 특정 포트 사용을 강요 않음
.. 단지, 연이은 짝수,홀수 포트 번호 만
.. 매 세션 마다 할당되어 원격지에 그 포트 번호를 알려줌
. RTP 및 RTCP는 2개의 연이은 포트번호를 사용
.. RTP는 짝수 포트 번호,
.. RTCP는 RTP 바로 위의 홀수 포트 번호를 사용
ㅇ 송수신단 중간에 번역기(Translator) 및 혼합기(Mixer)가 있을 수 있음 ☞ RTP 구성요소 참조
- 혼합기 : 포멧을 유지하면서 여러 스트림을 하나의 스트림으로 합치는 것
. 여러 형태의 미디어를 한꺼번에 하나로 합성시키고, 이를 1 이상의 목적지로 전달
. 여기서, 다중 입력들 간의 타이밍 동기화가 중요함 ☞ RTP 패킷(SSRC,CSRC) 참조
- 번역기 : 전송에 적합하도록 다른 포멧으로 바꾸어주는 것
. 트랜스코딩, 미디어 전송률을 낮추어 전송, 유니캐스트를 멀티캐스트로 전환 등
ㅇ 전달(수송,輸送) 가능 페이로드 데이터 포멧이 여러가지임
- 표준화된 포멧을 전달할 수도,
. 오디오용 PCM,GSM,MP3 등, 비디오용 MPEG,H.263,H.261 등 처럼
- 비표준화된 사적인 오디오/비디오 형식도 전달 가능
* RTP Header 내 7 비트 Payload type 필드에서 그 종류를 나타냄 ☞ IANA RTP Parameters
3. RTP 프로토콜 스택 구조
ㅇ 프로토콜 동작이 응용프로그램의 라이브러리 형태로 구현됨
- 비록, 통신계층 상으로 전송계층용 프로토콜이라고 하지만,
. 망계층(IP)이나 전송계층 프로토콜(UDP) 내부에 캡슐화 사용되고,
. 실제로는 하위계층 프로토콜에는 별로 의존하지 않음
- 따라서, 장치내 응용 관점에서 구현되는 전송계층용 프로토콜이라고 하는 것이 타당함
. 프로토콜 동작이 응용프로그램의 라이브러리 형태로 구현됨
- 즉, 양단간 응용 프로그램들 사이에 데이터 전달 서비스를 제공함
4. RTP 주요 기능
※ (주로, UDP에서 지원하지 못하는 다음의 기능들을 제공하게 됨)
ㅇ 시간정보 제공 기능
- 순서번호(Sequence number)의 보장 기능
. 패킷 손실 검출, 패킷의 순서를 재구성 등
- 내부적인 타임스탬프(Timestamp,발송시간) 전송
. 수신측이 데이터를 적절한 시간순서 및 시간 내에 재생할 수 있도록
데이터 스트림에 타임스탬프 정보를 추가함
. 단일 또는 복합 매체(다중화된 정보열)에서 동기 및 지연에 대한 계산을 할 수 있게함
ㅇ 정보매체의 동기화 기능
- 데이타 타입에 대한 정보 제공 (소스동기 : Payload type)
. 비디오 또는 오디오 등에 대하여 어떤 부호화 방식을 채택했는가를 알려줌
- 각 미디어 스트림에 식별번호 부여 (미디어소스동기 : SSRC,CSRC)
. 여러 스트림을 단일 스트림으로 혼합할 때 각각을 식별
ㅇ 각 프레임의 경계 구분
- 응용프로그램(응용계층)이 응용층 데이터 단위(ADU,Application-level Data Unit)를 구분
- RTP 계층이 이 ADU 경계를 유지하며 전달 함
5. RTP 패킷의 일반적 포멧
ㅇ IP 상의 UDP에 실린 RTP 구조
ㅇ RTP 헤더 크기가 기본 12 바이트로 고정됨 ☞ RTP 헤더 포멧 참조
- 헤더 내부에 페이로드 스트림 식별을 위한 확장된 구조와 순서번호,타임스탬프 기능 등을
제공하므로써 실시간 멀티미디어 전송에 도움을 주도록 설계됨
6. RTP 표준
ㅇ RFC 1889(舊), 3550 : RTP - A Transport Protocol for Real-time Application (2003)
- IETF의 Audio/Video Transport Working Group(AVT)에 의해 표준 개발됨
ㅇ 기타관련표준 ☞ ITU-T H.323
ㅇ [참고] SRTP (Secure Real-time Transport Protocol) : RTP의 보안 확장판 (RFC 3711)