RTP
[ RTP ( Real-Time TransPort Protocol ) ]
-. 인터넷 상 에서 다수의 End-to-End간 Video 혹은 Audio 패킷을 실시간 데이터를 전송하기 위해 표준화된
실시간 통신 프로토콜.
-. RTP는 기본적으로 UDP를 Base로 하여 IP상에서 데이터를 통신하게 됨.
-. UDP를 통해 RTP 데이터를 전송하기위해서는 사용하는 디바이스가 RTP/UDP 프로토콜을 지원하고
RTP/UDP 멀티캐스팅을 지원해야 한다.
-. 일반적인 UDP 베이스 이지만 TCP 도 가능함.
( TCP 기반 표준은 RFC4571 , RFC4572 참조)
-. RTP는 기본적으로 RTCP와 함께 사용 됨.
-. RTP는 다른프로토콜 (80,21,22,554 등) 과 같이 미리 예약된 포트를 사용하지 않는다.
즉, UDP상의 포트사용에 대해 특정 포트 사용을 강요 받지 않음.
단지 연이은 짝수, 홀수 포트 번호만 사용하게되는데
RTP는 짝수 포트번호, RTCP는 RTP바로 다음의 홀수 포트번호를 사용
*RTP 표준 관련 참조사항 ( RFC 3550 3551, 3984, 7798, 3016, 3640 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ RTP 헤더의 구조 ]
-. V (Version - 16비트) : RFC3550 버전으로는 2 이다.
-. P (Padding - 1비트) : RTP 패킷의 페이로드 구성을위해 정수배 단위를 채워넣기 위한 비트라고 봐도 될것같음.
-. X (extension - 1비트) : 가변길이 헤더확장이 있음을 나타냄.
( 반복재생 이나 가변적인 헤더 확장이 있는지 알려주는 비트..? 확실하지 않음 )
-. CC ( CSRC Count - 4비트 ) : 어떤 여러개의 미디어가 합성되는 경우 그 갯수를 나타낸다고 함.
-. M (Marker - 1비트 ) : 이벤트 발생을 알림.
( RTP에 의해 전송되는 XML의 Metadata가 Closed 되면 이 값이 1로 바뀜)
-. PT ( Payload Type - 7비트 ) : 오디오나 비디오의 인코딩 방식이 어떤건지 알려주는 것을 말함.
( RFC3551 - section6 참조 )
-. Sequnece Number - 16비트 : 패킷 손실을 검출하고 순서를 재구성하는 기능을 할수있게 보내는 데이터들.
수신측 에서 RTP 헤더의 이부분을 가지고 패킷 손실을 검출하여 뒤바뀐 순서를
재구성 한다고 함. ( 즉, 패킷 손실 검출 / 패킷 순서 재구성 기능 )
-. Time stamp - 32비트 : RTP 스트림내 각 패킷이 샘플링된 시간 관계를 나타냄.
(이것을 이용해 시간 동기 및 지연에 대한 계산 가능)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RTP 는 통상 RTCP와 함께 사용됨.
* 실제 RTP를 이용해 영상데이터를 전송하지만, 패킷 지연이나 손실, 지터 등에 대한 Qos(Quality of Service)를 보장하지 못하기때문에 RTCP를 이용하여 별도로 위 언급된 부분을 제어함.