순간이 영원해 지는 곳

RTP, RTCP, RTSP 정리 본문

통신 & 네트워크

RTP, RTCP, RTSP 정리

nenunena 2011. 1. 26. 17:58

스트리밍 멀티미디어

- 동영상이나 음악 따위를 전부다 다운받은 뒤에 재생 하는 것이 아니라 수신하면서 재생하는 것들

- 인터넷 생중계(아프리카, 다음팟 등)

- 저장된 미디어 스트리밍 서비스 (유튜브, 인터넷 음악듣기 서비스)

- 실시간 멀티미디어 (인터넷전화, 화상회의)



* RTP (Real-Time Transport Protocol)

- 응용층의 프로토콜

- Video/Audio “데이터”를 전송하기 위한 프로토콜

- 헤더에는 코덱정보, 순서번호, 타임스탬프, SSRC(Synchronization Source Identifier)양 단말간 여러 RTP 세션을 구분 - 한 웹브라우져에서 2개 동영상 재생

--> 헤더마다 코덱이 들어가므로 네트워크 상황에 따라 코덱을 바꿀 수 있다. 품질이 떨어지는 코덱

- UDP/IP로 패킷 전송

- 스트리밍 데이터 전송을 담당하기 때문에 Server에서 Client로의 단방향 전송

 


* RTCP (Real-Time Transport Control Protocol)

- 응용층의 프로토콜

- RTP 데이터 전송 상태 감시, 세션 관련 정보 전송을 위한 프로토콜

  - 상태 점검을 위한 것이므로 Server, Client간 양방향 통신으로 이루어진다.

- 주기적으로 송수신자가 리포트 패킷을 서로 주고 받는다.

- 보낸패킷, 손실된 패킷, 패키 수신 간격 변화정도 (interarrival jitter)

재전송 해서 늦게 도착하면 손실과 다름없으므로 재전송은 안함. 그래서 어떤 패킷이 손실됐는지는 보내지 않는다.

- RTP에 대한 Flow Control 을 위해 사용

 

표준에는 RTCP로 수집된 정보에 대해 어떻게 처리하는가에 대한 명시는 없다. 응용 개발자 마음이다.

네트워크 상태가 안 좋아지면, 코덱을 바꾼다거나, 너무 많이 보내서 손실이 발생하는 것이라 판단되면 전송속도를 줄이는 등의 처리가 필요하다.

 


* RTSP (Real-Time Streaming Protocol):

- 응용층의 프로토콜

- 스트리밍 데이터를 제어하기 위한 방법을 제공

- 재생, 일시정지, 빨리감기, 되감기, 재생 위치 변경 같은 명령 전송

- 표준에는 TCP나 UDP중 어느것을 쓸지 정해져 있지 않음. 보통 UDP를 많이 사용

- 데이터 전송 포트과 다른 포트(554)를 사용한다.

media stream 데이터가 in-band

- FTP 가 포트 2개를 써서 파일전송과 명령 전송에 다른 커넥션을 사용하는 것과 같다.

- RTSP를 사용하기 위해서는 미디어 서버와 클라이이언트가 커넥션을 맺어야 하는데

UDP를 쓸때는 어떻게 커넥션을 맺는가?

-> 응용층에서의 커넥션

SETUP 패킷 (커넥션요청) 의 내용에 받을 어떤 파일을 재생할건지(URL), 포트번호와 응용층의 프로토콜을 무엇을 사용할 건지(RTP/UDP같은)를 알려주면 서버에서 session 번호를 알려준다. 그 세션번호를 가지고 클라이언트를 구분한다.

소켓만(IP,Port) 만 가지고 구분할 수 있지 않느냐라고 할 수 있는데, 한 웹브라우져의 한 화면에서 두 개의 동영상을 재생하는 경우, IP와 Port 만으론느 구분할 수 없다. 따라서 별도의 세션번호가 필요하다.




Comments