'RTCP'에 해당되는 글 2건

[펌글] RTP / RTCP / RTSP :: 2008/06/09 18:48

RTP / RTCP / RTSP
 

1. RTP  ( real-time transport protocol ) 
   . 실시간으로 음성이나 통화를 송수신하기 위한 트랜스포트층 통신규약.
   . RFC 1889에 RTCP(RTP control protocol)와 함께 규정되어 있다.
   . 자원 예약 프로토콜(RSVP)과는 달리 라우터 등의 통신망 기기에 의지하지 않고 단말 간에 실행되는 것이 특징이다.
   .  RTP는 보통 사용자 데이터그램 프로토콜(UDP)의 상위 통신 규약으로 이용된다.  송신 측은 타임 스탬프(time stamp)를 근거로 재생 동기를 취해서 지연이 큰 패킷을 포기할 수 있다. 또, 수신 측에서 전송 지연이나 대역폭 등을 점검, RTC(RTP control portocol)  를 사용해서 LAN/인터넷 환경에서 비디오 회의 시스템의  ITU 권고 H.323에 채용되었으며 미국 마이크로소프트사의 비디오 회의 소프트 NetMeeting  등이 탑재되어 있다.
 
단순한 다중 음성회의(Simple Multicast Audio Conference) :
다수를 대표하는 하나의 주소와 한 쌍의 포트를 가지고 회의를 한다. 하나의 포트는 음성 데이터를 전송하는데 사용되고, 다른 하나의 포트는 RTCP가 사용한다. 이러한 주소와 포트에 관한 정보는 회의 참여자에게 알려진다.  인터넷상에서 통신을 할 때에는 송신자가 보낸 데이터가 도중에 없어지거나 송신자가 보낸 순서와 다르게 데이터가 도착할 수도 있고, 또는 보낸 데이터가 늦게 도착하는 경우도 종종 발생한다. 그래서, RTP를 이용한 데이터 전송 시에는 수신자가 받은 데이터를 제대로 조합시킬 수 있도록 데이터에 대한 시간정보와 순서번호에 대한 정보가 포함된다.

음성과 영상회의(Audio and Video Conference) : 음성과 영상을 동시에 회의에서 사용하고자 한다면, 음성과 영상 데이터는 각각의 RTP 데이터로 전송되어야 한다. RTCP 데이터는 음성과 영상, 각각에 대하여 다른 포트의 쌍과 다수를 대표하는 하나의 주소가 사용되어 전송된다. 그러므로, 회의의 참여자는 자신이 선택한 형태(음성 또는 영상)의 데이터를 선택하여 수신할 수 있다. 만약, 두 가지 형태의 데이터를 수신하고자 하는 참여자에게는 RTCP 패킷에 시간 정보를 포함시켜서 두 데이터를 적절하게 보고 들을 수 있게 하였다.

혼합기와 전환기(Mixers and Translators) : 회의에 참여하는 모든 참여자들이 같은 환경에서 참여한다면 혼합기와 전환기는 필요하지 않다. 하지만, 전세계에서 인터넷을 통해 통신을 하는 참여자들이 모두 같은 환경일 수는 없다. 그러므로, 각 참여자들에게 적절한 형태의 데이터 전송이 이루어지게 하기 위해 사용된다. 예를 들어, 느린 속도로만 가능한 참여자가 고속 처리가 가능한 회의에 참여하고자 할 때, 또는 그 반대의 경우이면 한명의 참여자로 인해 다수의 참여자에게 불이익을 줄 수 없다는 것이 혼합기와 전환기 사용의 목적이다. 즉, 환경이 다른 참여자에게도 적절한 형태로 데이터 전송을 해 주는 것이다.

 < 특징 >
o UDP는 TCP에 비해 신뢰성이 낮은 반면, 더 빠르게 데이터를 전달함.  이러한 UDP의 특성을 이용하여 RTP가 등장함.
o RTP는 그 자체로 QoS 보장이나 신뢰성을 제공하지 못함.
o 시간 정보와 정보 매체의 동기화 기능을 제공함.
o RTP는 다른 3계층, 4계층 프로토콜과도 같이 사용이 가능하며, 하위 프로토콜에 별로 의존하지 않음.
 
2. RTCP ( real-time transport control protocol )
  .  RTCP는 RTP의 QoS를 유지하기 위해 함께 쓰이는 프로토콜이다.
  .  RTP는 데이터 전송에만 관계하지만, RTCP는 데이터 전송을 감시하고, 세션 관련 정보를 전송하는데 관여한다.
  .  RTP 노드들은 네트웍 상태를 분석하고 주기적으로 네트웍 정체 여부를 보고하기 위해 RTCP 패킷을 서로에게 보낸다. RTP와 RTCP는 모두 UDP 상에서 동작하므로, 그 특성상 품질보장이나 신뢰성, 뒤바뀐 순서, 전송 방지 등의 기능을 제공하지는 못하지만,   실시간 응용에서 필요한 시간 정보와 정보 매체의 동기화 기능을 제공하기 때문에, 최근 인터넷상에서 실시간 정보를 사용하는 거의 모든 애플리케이션 (VOD, AOD, 인터넷 방송, 영상 회의 등)들이 RTP 및 RTCP를 이용하고 있다.
 
  < 특징 >
o RTP와 쌍으로 존재함.
o RTP 패킷이 송신자 --> 수신자로 단 방향인 데 반해, RTCP는 양 방향임.
o 패킷 구조는 RTP와 유사함.
o 멀티캐스트 환경인 경우, 전송 성능 및 QoS 감시가 가능함.
o RTCP 패킷은 데이터가 없을 때 세션이 유효함을 수신자에게 알림.
o RTP 세션에 참가하고 있는 참가자의 파악이 가능함.
o 5% 이내로 RTCP 패킷 량 제한됨.
 
 < 기능 >
o 서비스 품질 감시, 체증 제어, 매체간 동기화, 발신지 식별, 세션의 크기 추정 등
o 세션의 유지와 관리에 필요한 중요한 기능을 수행함.
 
 < 패킷의 종류 >
o 송신자 보고 (SR),  수신자 보고 (RR) 패킷
o 송신자 기술 (SDES) 패킷
o 탈퇴 (BYE) 패킷
o 응용 (APP) 패킷
 
3. RTSP ( real-time streaming protocol  )
  .  On Demand 형식으로 리얼타임 미디어 전송을 행하는 애플리케이션 계층의 프로토콜을 말한다.
  .  실시간으로 음성이나 동화를 송수신하기 위한 통신 규약. 미국 Real Networks
     (구 progressive network)사와 넷스케이프 커뮤니케이션즈사가 공동 개발하였으며 상세한 사항은 RFC 2326에 규정되어 있다.
  .  RTSP도 H.323과 마찬가지로, 멀티미디어 콘텐츠 패킷 포맷을 지정하기 위해 RTP를 사용한다.
     그러나 H.323이 적당한 크기의 그룹간에 화상회의를 하기 위해 설계된 데 반해, RTSP는 대규모 그룹들에게 오디오 및 비디오 데이터를 효율적으로 브로드캐스트하기 위한 목적으로 설계되었다.
     RTP (real-time transport protocol)와는 달리 애플리케이션층에서 동작하는 특징이 있다.
     통상의 TCP/IP 스택을 교환할 필요가 없으며, 다만 TCP 대신 RTP도 사용하도록 하고 있는데, 이 경우에는 좀 더 확실히 서비스 품질(QoS)을 개선할 수 있다


-----
이 글은 티스토리의 JY공화국에서 퍼온 글입니다.
http://worlds.tistory.com/100 

이올린에 북마크하기(0) 이올린에 추천하기(0)

2008/06/09 18:48 2008/06/09 18:48
Trackback Address :: http://zemy.net/tc/zemyblue/trackback/90
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret

[펌글]RTP와 RTCP :: 2008/06/09 18:44

RTP 및 RTCP 맨 위로

데이터는 디지털화 및 압축을 통해 패킷 기반 네트워크를 통한 전송에 맞게 최적화 된 후, RTP 내에서 캡슐화 됩니다. RTP는 실시간 전송 프로토콜이며 RTCP는 RTP 세션을 모니터링하는데 사용되는 제어 프로토콜입니다. RFC 1889, 'RTP: A Transport Protocol for Real-time Communications'에 정의된 RTP와 RTCP는 패킷 기반 네트워크를 통한 실시간 통신 요구를 충족하도록 IETF에 의해 특별히 설계되었습니다. RTP와 RTCP에 대한 자세한 내용은http://www.microsoft.com/windows/reskits/webresources/ 웹 리소스 페이지 에서 RFC 1889를 참조하십시오.

SIP와 H.323은 RTP를 사용하여 호출에 참가하는 여러 당사자들 간에 디지털화 된 오디오 및 비디오 데이터를 전송합니다. 각 RTP 패킷은 하나 이상의 미디어 페이로드와 기타 관련 정보(예: 타임스탬프 및 시퀀스 번호)를 포함합니다.

일반적으로 RTP와 RTCP는 UDP와 함께 기본 전송 계층으로 사용되고, IP와 함께 기본 네트워크 계층으로 사용됩니다. RTP는 특정 미디어 스트림의 송신자와 수신자 간에 협상된 동적 UDP 포트를 사용합니다. 그러나 RTP와 RTCP는 기본 전송 및 네트워크 계층과 무관하며, 전송 및 네트워크 프로토콜로서 UDP 및 IP와 함께 사용할 필요가 없습니다.

RTP

RTP는 Windows Messenger 및 전화 걸기와 같은 실시간 응용 프로그램을 위한 종단 간 네트워크 전송 기능을 제공합니다. RTP에는 실시간 세션에 관한 정보가 포함되어 있으므로 응용 프로그램은 지터, 잘못된 패킷 순서 및 삭제된 패킷을 쉽게 조정할 수 있습니다. 대부분의 실시간 세션 관련 정보는 RTP 헤더에 포함됩니다.

그림 11은 RTP 패킷의 구조를 보여 줍니다.

rtcpro14

그림 11   RTP 패킷 구조

버전 RTP의 버전을 식별합니다. Windows XP는 버전 2를 지원합니다.
패딩 1로 설정된 경우 하나 이상의 다른 패딩 옥텟이 페이로드의 끝에 추가되었음을 의미합니다. 패딩된 첫 번째 옥텟은 포함된 추가 옥텟의 개수를 나타냅니다.
확장 확장 비트가 설정된 경우 고정 RTP 헤더에 추가된 확장 헤더가 존재합니다.
CSRC 개수 고정 RTP 헤더 뒤에 오는 CSRC(Contributing Source) 식별자의 수를 나열합니다.
마커 RTP 프로필에 따라 마커 비트의 정의 및 사용이 결정됩니다.
페이로드 유형 RTP 페이로드 유형을 정의합니다.
시퀀스 번호 초기 시퀀스 번호는 임의 값에서 시작하여 전송된 각 RTP 패킷에 대해 1씩 증가합니다. 실시간 응용 프로그램에서 이 값을 사용하여 패킷 손실을 확인하고 올바른 패킷 순서를 복원할 수 있습니다.
타임스탬프 타임스탬프 값은 RTP 패킷에서 첫 번째 옥텟의 샘플링 순간을 나타냅니다. 사용되는 샘플링 빈도는 데이터 유형에 따라 다릅니다. 예를 들어, Windows XP에서 G.711 음성 코덱을 사용할 경우 샘플링 빈도는 8kHz로 설정됩니다.
SSRC(Synchronization Source) 무작위로 선택된 숫자로 시작되는 SSRC 값은 각 RTP 세션에 대해 RTP 스트림의 소스를 식별합니다.
CSRC(Contributing source) CSRC 값은 RTP 세션에 기여한 여러 스트림의 소스를 나타내는데, RTP 세션에서 각 소스의 SSRC 값이 RTP 믹서에 의해 CSRC 값에 추가됩니다.

RTCP

RTCP 패킷에는 RTP 세션 품질과 세션에 참가하는 개인에 대한 정보가 포함되어 있습니다. 송신자와 수신자는 모두 RTCP 패킷을 RTP 세션의 각 참가자에게 정기적으로 전송합니다. 실시간 응용 프로그램은 이 정보를 사용하여 RTP 세션의 품질을 모니터링할 수 있습니다(예를 들어, 지터 및 패킷 손실 모니터링).

표 13에서 보는 바와 같이 RTCP 패킷에는 다섯 가지 유형이 있습니다.

표 13   패킷 유형

SR (Sender Report) RTP 세션의 품질에 대한 정보를 포함합니다.
RR (Receiver Report) RTP 세션의 품질에 대한 정보를 포함합니다.
SDES (Source Description) RTP 세션에 속한 각 참가자의 ID에 대한 정보를 포함합니다.
BYE (Goodbye) RTP 세션에서 하나 이상의 소스가 더 이상 활성화 상태가 아님을 나타냅니다.
APP (Application-defined) 새 응용 프로그램에서 실험적으로 사용됩니다.

RTP 세션의 참가자는 RR 패킷 유형을 보내는데, 활성 송신자인 경우에는 SR 패킷 유형을 보냅니다. 그림 12에서 보는 바와 같이 RR 패킷은 헤더와 보고서 블록을 갖습니다. 보고서 블록은 각 소스에 대해 하나씩 존재합니다.

RTCP RR 패킷 섹션
헤더
보고서 블록 1
보고서 블록…n

그림 12   패킷 구조

그림 13의 SR 패킷 구조는 20바이트의 송신자 정보 섹션을 포함한다는 점을 제외하고 RR 패킷과 형식이 동일합니다.

RTCP SR 패킷 섹션
헤더
송신자 정보
보고서 블록 1
보고서 블록…n

그림 13   패킷 구조

수신자 보고서 및 송신자 보고서 헤더 구조

그림 14에는 RR 및 SR 헤더 구조가 나와 있습니다. 두 헤더간 유일한 차이점은 다른 패킷 유형 값을 갖는다는 것입니다.

rtcpro15

그림 14   RTCP RR 및 SR 헤더 구조

버전 RTP의 버전을 식별합니다. Windows XP는 버전 2를 지원합니다.
패딩 1로 설정된 경우, 하나 이상의 다른 패딩 옥텟이 페이로드의 끝에 추가되었음을 의미합니다. 패딩된 첫 번째 옥텟은 포함된 추가 패딩 옥텟의 개수를 나타냅니다.
수신 보고서 개수(RC) RTCP 패킷에 포함된 수신 블록의 개수를 나타냅니다.
패킷 유형 RTCP 패킷 유형입니다. RR의 값은 201이고 SR의 값은 200입니다.
길이 1을 뺀 32비트 단어에 RTCP 패킷의 길이를 포함합니다.
SSRC RTCP 패킷의 동기화 소스 식별자를 포함합니다.

그림 15는 SR 패킷에 포함된 20바이트의 추가 송신자 정보를 보여 줍니다.

rtcpro16

그림 15   RTCP SR 정보

NTP 타임스탬프 NTP(Network Time Protocol) 타임스탬프나 절대 작업 수행 시간을 포함합니다. 작업 수행 시간을 사용할 수 없는 경우 송신자는 RTP 세션에 참가한 이후 경과된 시간을 NTP 타임스탬프 값에 사용할 수 있습니다. 경과된 시간을 사용할 경우 상위 비트가 0으로 설정됩니다. 작업 수행 시간과 경과된 시간을 모두 사용할 수 없는 경우 전체 NTP 타임스탬프 값이 0으로 설정됩니다.
RTP 타임스탬프 RTP 타임스탬프는 RTP 패킷의 헤더에 포함된 타임스탬프와 동일한 단위로 제공되면서 동일한 임의 오프셋이 지정된다는 점을 제외하고 NTP 타임스탬프와 동일한 시간을 포함합니다.
송신자의 패킷 수 RTP 세션의 시작부터 해당 SR 패킷의 전송 시점까지 송신자가 보낸 총 RTP 패킷 수를 포함합니다. 어떠한 이유로든 송신자의 SSRC 값이 변경될 경우 이 값은 재설정됩니다.
송신자의 옥텟 수 RTP 세션의 시작부터 해당 SR 패킷의 전송 시점까지 송신자가 보낸 총 옥텟 수를 포함합니다. 어떠한 이유로든 송신자의 SSRC 값이 변경될 경우 이 값은 재설정됩니다.

보고서 블록 구조

SR 및 RR 패킷은 0개 이상의 보고서 블록을 포함할 수 있습니다. 수신자가 마지막 보고서를 받은 이후 수신된 RTP 데이터 패킷에 포함되어 있는 각 SSRC에 대해, 보고서 블록이 수신됩니다. 이 보고서 블록은 RTCP 헤더 바로 뒤에 추가됩니다.

그림 16에 보는 바와 같이 SR 및 RR 패킷은 동일한 보고서 블록 구조를 갖습니다.

rtcpro17

그림 16   RTCP 보고서 블록 구조

SSRC_n RTCP 패킷에 포함된 각 보고서 블록의 동기화 소스 식별자를 포함합니다.
손실된 단편 마지막 SR 또는 PR 패킷이 보내진 이후 소스(SSRC_n)에서 손실된 RTP 패킷 단편을 포함합니다.
누적된 손실 패킷 수 세션이 시작된 이후 소스(SSRC_n)에서 손실된 총 패킷 수를 포함합니다. 이 값은 RTP 패킷에서 발견된 시퀀스 번호에서 파생됩니다(삭제된 RTP 패킷은 시퀀스 번호에서 공백으로 표시됨).
수신된 최상위 확장 시퀀스 번호 이 필드는 두 부분으로 구분됩니다. 하위 16비트는 소스(SSRC_n)에서 RTP 패킷으로 수신된 최상위 시퀀스 번호를 포함합니다. 상위 16비트는 시퀀스 번호 주기의 개수를 포함합니다.
도착 간 지터 RTP 패킷의 도착 간 시간에 대한 예상 편차를 포함합니다. 이 값은 RTP 타임스탬프 단위로 측정되며, 두 패킷에 대해 수신자와 송신자가 측정한 패킷 간격 간의 차이로부터 파생됩니다.
Last SR Timestamp (LSR) 소스 SSRC_n의 최신 RTCP SR에서 얻은 64비트 NTP 타임스탬프의 중간 32비트를 포함합니다.
Delay Since Last SR (DLSR) 소스 SSRC_n에서 마지막 SR 패킷을 수신한 시점과 해당 수신 보고서 블록을 보낸 시점 간의 시간 차이를 포함합니다. 여기에서 카운터의 각 틱은 1/65536초를 나타냅니다.

RTP와 RTCP는 패킷 기반 네트워크를 통한 실시간 통신 요구를 충족하도록 특별히 설계되었으나, 서비스 품질 메커니즘을 제공하지는 않습니다. 그 대신 RTP및 RTCP와 관련된 서비스 품질 문제는 기본 네트워크 및 데이터 링크 계층에서 고려됩니다.

-----
이 글은 네이버의 플라잉쭌님의 블로그에서 퍼온 글입니다.
원본 : http://blog.naver.com/uliel7719?redirec ··· 00501850 
이올린에 북마크하기(0) 이올린에 추천하기(0)

2008/06/09 18:44 2008/06/09 18:44
Trackback Address :: http://zemy.net/tc/zemyblue/trackback/89
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret