Transcript RTP header
Real-time Streaming Protocols - RTP / RTCP / RTSP Dep. of Information and Communications Engineering at HUFS [email protected] Soohyun Park Page 1 Contents Background Introduction RTP structure RTP’s basic operations / RTP header / The examples of analyzing for RTP packets RTCP / RTCP header RTCP’s message types RTCP’s traffic control RTSP Summary Page 2 Background (1/2) 인터넷 트래픽 양의 증가 – 이용자, host, 라우터, 응용, ISP의 증가 인터넷 트래픽 내용의 변화 – – 기존 텍스트 위주에서 실시간 멀티미디어 트래픽으로 멀티미디어 트래픽 • – 실시간 트래픽 (Rea-time Traffic) • • • • 그래픽, 이미지, 오디오, 동영상, ... Audio/Video Conference 인터넷 폰 인터넷 방송 Streaming A/V 시간 제약성 고려, QoS 또는 QoE 보장 필요 RTP/RTCP UDP IP RTP/RTCP BE (Best-Effort) Internet Page 3 UDP IP Background (2/2) RTP profiles (Payload type) – – – – – – – – – RFC RFC RFC RFC RFC RFC RFC RFC RFC 2032 2190 2250 3984 3016 2435 3551 3640 4175 – – – – – – – – – RTP RTP RTP RTP RTP RTP RTP RTP RTP payload format for H.261 Video streams payload format for H.263 Video streams payload format for MPEG1/MPEG2 video payload format for H.264 Video streams payload format for MPEG-4 Audio/Visual streams payload format for JPEG-compressed video profile for Audio ad Video conferences with minimal control payload format for transport of MPEG-4 Elementary Streams payload format for uncompressed video Page 4 Introduction 실시간 트래픽 전달을 위한 새로운 프로토콜 – – – – RTP(RFC 1889 : 1996년), RTSP(RFC 2326 : 1998년)가 2003년 RFC 3550에 포함됨 ITU-T H.323에 채용됨 N to N conference를 염두에 두고 설계 미국 마이크로소프트사의 비디오 회의 소프트 NetMeeting 등이 탑재 RTP / RTCP의 동작 개념도 Page 5 RTP Architecture Application Layer Framing (ALF) – 간단한 Framework으로 복잡한 TCP를 대신함 – Framework는 기본적 동작과 메시지 포맷 정도만 규정 • • – 실시간 트래픽에 유리 예로, 대부분의 오디오 재생 알고리즘은 데이터의 손실 또는 순서 오류 보다는 과도한 지연에 약하기 때문 Framework+ AddOn = Complete protocol for specific application RTP overhead – IP + UDP + RTP overhead = 20 + 8 + 12 = 40 Bytes Page 6 RTP’s basic operations Time Stamping Real Time Data – – Sender Source가 모든 메시지에 Time Stamp 표시 Receiver는 이를 받아 보고 메시지간 타이밍 정보를 추출 인터넷 규칙적 송신 Receiver 불규칙적 수신 Multicast Operation – – – A/V conference 염두 여러 참여자들이 멀티캐스트 그룹을 이룸 Data traffic 뿐 아니라 control traffic도 그룹내에 멀티캐스트 됨 Page 7 RTP header (1/2) CC (CSRC count) – M (Marker) – Number of CSRCs (contributing sources) following the fixed header 오디오/ 비디오의 frame 시작과 끝 구별 PT (Payload Type) – 모든 패킷이 payload type을 가짐으로써 망 QoS 변화에 따라 payload 형태 적응 가능 • e.g., 다른 encoding rule 적용 Sequence Number – 패킷의 손실 검출, 순서 맞춤 Page 8 RTP header (2/2) Timestamp – – 패킷내 첫번째 데이터 바이트의 샘플링 시점을 상대적(스트림의 시작 비트대비)으로 표시, 시작값은 랜덤 예) PCM 음성을 20ms 단위로 패킷을 만들 경우 • – 미디어스트림의 패킷발생이 일시중지(묵음구간 등)시에도 계속 증가 SSRC (Synchronization Source Identifier) – – 160개 샘플을 포함하므로(125uS*160=20ms) RTP 패킷마다 160씩 증가 미디어스트림의 소스를 식별 미디어스트림이란 하나의 동기소스에서 생성되는 RTP 패킷열 CSRC (Contributing Source Identifier) – – 다수의 미디어스트림이 새로운 미디어를 생성할 경우 생성된 미디어스트림에 새로운 SSRC 를 할당하는 대신 이들의 기여소스 미디어를 CSRD로 식별함 15개 까지 수용 가능 Page 9 The examples of analyzing for RTP packets (1/2) 음성 RTP 패킷 – 일대일 음성 통화로 단 방향만을 캡쳐한 그림 – SSRC가 동일 • – 동일 세션에서 발생한 음성임을 확인 기본 샘플링 단위 시간 160ms 단위 Page 10 The examples of analyzing for RTP packets (2/2) 영상 RTP 패킷 – Timestamp의 time이 모두 동일 • – 영상 전송시 전송 데이터가 다수임 SSRC가 동일 • 동일 세션에서 발생한 영상임을 확인 Page 11 RTCP (Real Time Control Protocol) (1/2) RTP 패킷은 단방향, RTCP 패킷은 양방향 지원 Feedback 또는 response는 RTCP가 지원 – – RTP와 분리된 프로토콜이지만, 밀접한 관계 짝수인 RTP port number 보다 1이 큰 port number 가짐 QoS 관리, Inter-media Synchronization, Identification이 주 기능 – – – 세션 대역폭의 5% 이내로 RTCP 패킷 량 제한됨 멀티캐스트 환경인 경우, 전송 성능 및 QoS 감시가 가능 RTCP 메시지들 역시 멀티캐스트 됨 Page 12 RTCP (Real Time Control Protocol) (2/2) RTCP의 주요 기능 – – – – 핵심기능은 RTP 세션을 통해 전달되는 미디어스트림의 통신품질정보 feedback RTP 근원지에 대한 식별자인 CNAME(Canonical Name)을 통지 매체간 동기화를 위한 NTP 및 RTP 타임스탬프 값을 통보 기타 세션제어 및 응용 확장을 위한 기능 5개 메시지 유형이 존재 – – – – – SR (Sender’s Report) RR (Receiver’s Report) SDES (Source Description) BYE APP (Application Specific) Page 13 RTCP header Version – P (padding) – the number of reception report blocks contained in this packet Type – the same as for RTP header Count – the same as for RTP header the packet type (193 – NACK, 200 – SR report, 201 – RR report, 202 – SDES packet, 203 – BYE packet, 204 – APP packet) Length – the length of the RTCP packet in 32 bit words minus one, including the header and padding Page 14 RTCP’s message types (1/5) Sender Report (SR) – – – 데이터 송신자가 주기적으로 수신자들에게 보내는 패킷 기간 중 보낸 데이터 패킷 수 및 바이트 수 정보를 알림 수신 데이터에 대한 Receiver report를 겸하기도 함 (Receiver blocks) Network Time Protocol Time Stamp Page 15 RTCP’s message types (2/5) Receiver Report (RR) – – – (보낼 데이터가 없는) 수신자들이 송신자에게 주기적으로 보내는 패킷 Sender report를 통해 받은 송신 패킷 정보를, 실제 수신한 패킷 수와 비교하여 패킷 손실율 및 누적 손실 패킷 수를 계산하여 포함시킴 또한, 수신한 최고 sequence number, Interarrival jitter, sender report의 최종 수신 시간 정 보를 포함 LSR (Last Sender Report) DLSR (Delay since LSR) Page 16 RTCP’s message types (3/5) SR / RR 메시지를 통한 RTT 계산 – – LSR과 DLSR을 사용하여 왕복지연시간을 계산할 수 있음 A는 RR 블럭이 수신된 시점의 시각 RTT : 6.125s – 5.250s = 0.875s Page 17 RTCP’s message types (4/5) Source Description (SDES) – – – 소스가 자신의 정보를 주기적으로 알림 (Identification) 소스 이름 (CNANE), 사용자 이름, Email 주소, 전화번호, 주소, 응용 프로그램 명 등 CNAME • • • 여러 RTP 스트림을 하나의 송신자에 연관시키는데 이용 Inter-media synchronization e.g., audio / video synchronization Source Count : chunk의 수를 표기 Page 18 RTCP’s message types (5/5) Bye (BYE) – 소스가 conference를 떠날 때 사용 Application Specific (APP) – Reserved for application-specific features and experiments Page 19 RTCP’s traffic control 참여자 수가 많을 시, RTCP의 traffic implosion 방지 – – 세션 대역폭의 5%에서 – 25%를 송신 측에 배당하고, 나머지 75%를 수신 측에 배당 송신측의 RTCP 패킷 송신 주기 T – 세션 대역폭의 5%를 넘지 않도록 함 Report period를 조정 T= ((송신자의 수) / (0.25*0.05*세션대역폭))*평균 RTCP 패킷 크기 수신측의 RTCP 메시지 송신 T – T= ((수신자의 수) / (0.75*0.05*세션대역폭))*평균 RTCP 패킷 크기 Page 20 RTSP (Real-Time Streaming Protocol) On Demand 형식으로 real-time media streaming을 실행 – 실시간으로 음성이나 동화를 송수신하기 위한 통신 규약으로 정의됨 – – Application layer 프로토콜 Real Networks (구 progressive network)사와 Netscape사가 공동개발 RFC 2326에 규정됨 RTSP도 H.323과 마찬가지로, 멀티미디어 콘텐츠 패킷 포맷을 지정하기 위해 RTP를 사용 – – H.323은 적당한 크기의 그룹간에 화상회의를 하기 위해 설계 RTSP는 대규모 그룹들에게 오디오 및 비디오 데이터를 효율적으로 브로드캐스트하기 위한 목적으로 설계 RTP와는 달리 application layer에서 동작함 TCP 위에서 동작하며, 표준포트는 554번임 Page 21 Summary 인터넷 트래픽 양의 증가 – – – RTP / RTCP를 통한 서비스의 제공 – – – 대용량 데이터의 송수신 증가 Real-time media traffic의 증가 서비스 제공을 위한 프로토콜의 필요성 증대 초기에는 Real-time audio / N-To-N conference 서비스의 제공이 목적 현재는 사용자의 요구증가로 주로 real-time media streaming 서비스 제공에 사용 Application layer에서 RTSP의 사용 RTCP를 통해 RTP를 사용하는 트래픽의 제어 Page 22