RTCP & SDP

28
RTCP & SDP 김 김 김 [email protected]

description

RTCP & SDP. 김 영 준 [email protected]. RTCP. introduction. RTCP (RTP Control Protocol) 제어 프로토콜 데이터의 전달 상황을 감시 최소한의 제어 기능 매체 식별 기능. RTCP performs four functions. 데이터 분배의 품질에 대한 피드백을 제공 RTCP Sender Report(SR), Receiver Report(RR) RTP 소스의 식별을 위해 지속적인 식별자를 수송 CNAME - PowerPoint PPT Presentation

Transcript of RTCP & SDP

Page 1: RTCP & SDP

RTCP & SDP

김 영 준[email protected]

Page 2: RTCP & SDP

RTCP

Page 3: RTCP & SDP

3

introduction

RTCP (RTP Control Protocol) 제어 프로토콜 데이터의 전달 상황을 감시 최소한의 제어 기능 매체 식별 기능

Page 4: RTCP & SDP

4

RTCP performs four functions

데이터 분배의 품질에 대한 피드백을 제공 RTCP Sender Report(SR), Receiver Report(RR)

RTP 소스의 식별을 위해 지속적인 식별자를 수송 CNAME SSRC 는 충돌이 발생 , 프로그램이 다시 시작할 경우 변경

가능 수신자는 각 참가자들을 일관성 있게 유지하기 위해 CNAME

필요 참가자 수를 이용해서 제어 패킷 전송 간격을 조정

참가자가 다른 모든 참가자에게 제어 패킷을 전송하므로 각각의 참가자는 전체 참가자의 수를 파악 가능

최소한의 세션 제어 정보를 수송 새로운 참가자의 신분 이름 등 참가자의 간단한 정보 수송

Page 5: RTCP & SDP

5

RTCP packet format

SR(Sender report) RR(Receiver report) SDES(Source description items) – CNAME 포함 BYE – 참가자의 끝을 가리킴 APP – Application 정의

다수의 RTCP 패킷들로 복합 패킷을 만들어서 하나의 하위 프로토콜 패킷으로 전송

Page 6: RTCP & SDP

6

RTCP packet format

RTCP 프로토콜의 제약 복합 RTCP 패킷에는 보고 (SR, RR) 가 반드시 포함 복합 RTCP 패킷은 SDES CNAME 도 포함 모든 RTCP 패킷들은 적어도 두개의 개별 패킷으로 구성된 복합 패킷

형태로 전송되어야 함

Page 7: RTCP & SDP

7

RTCP Transmission Interval

RTP 는 수천의 참가자를 하나의 세션에 참가 가능 이 때 RTCP 는 참가자의 수에 비례하여 비트율 증가 RTCP 에 할당되는 대역폭은 세션 대역폭의 5% 고정

이 때 , sender 는 ¼ 의 대역폭 할당

세션 멤버 수 관리 SSRC 패킷을 수신하기 전까지 참가자는 유효 X 각 참가자는 5 개의 RTCP 보고 간격 동안 보고를 하지

않으면 그 사이트를 비활성화 또는 삭제 비활성화 상태여도 30 분까지 그 사이트 유지

SDES 대역폭 할당 SDES 의 부가정보 때문에 전체 프로토콜의 성능 저하 유발 20% 미만으로 SDES 패킷 전송

Page 8: RTCP & SDP

8

Sender and Receiver Reports

RTP 수신자는 SR, RR 을 보내서 피드백 제공 RTCP 전송 간격 동안

데이터를 전송할 경우 SR 아닐 경우 RR 전송

SR, RR 은 최대 31 개의 수신 보고 블록 포함 가능

Page 9: RTCP & SDP

9

SR: Sender Report RTCP Packet

Page 10: RTCP & SDP

10

세 개의 섹션으로 구성 프로파일에 따른 네 번째 확장 섹션 추가 가능

Header, Sender Info, Report Block, Profile-Specific extensions Header

Report Count (RC): 수신 보고 블록의 수 Packet Type (PT): 200 의 값 Length: 32 비트 워드의 전체 패킷에서 1 을 뺀 값

Sender Info NTP Timestamp: 64 비트 , round-trip 지연 계산에 이용 RTP Timestamp: RTP 와 동일한 시간 계수 Sender’s packet count

전송 시작부터 SR 패킷이 생성될 때까지의 RTP 데이터 패킷 총 수

Sender’s octet count 전송 시작부터 SR 패킷이 생성될 때까지의 RTP payload 의 바이트

Page 11: RTCP & SDP

11

Report block SSRC_n

해당되는 SSRC 의 식별자 Fraction lost

이전 report 송신 이후 분실된 RTP 데이터 패킷 비율 Cumulative number of packets lost

분실된 총 RTP 데이터 패킷 수 Extended highest sequence number received

수신한 RTP 데이터 패킷의 최고 순번 seq. number Interarrival jitter

패킷 도착 시간 간의 통계적 가변성의 측정값 Last SR Timestamp (LSR)

최근에 받은 RTCP SR 의 time stamp 값 ( 중간 32 비트 ) Delay since last SR (DLSR)

최종 SR 패킷 수신과 이 수신 보고 블록 송신간의 지연 시간

Page 12: RTCP & SDP

12

왕복 전송 지연 시간 계산 A: RR 이 수신된 시간 LSR: 수신한 시간 DLSR: 수신과 송신과의 지연시간

Page 13: RTCP & SDP

13

RR: Receiver Report RTCP Packet

SR 과 거의 동일 PT = 201 NTP/RTP Timestamp, Sender’s packet/octet count 생략

Page 14: RTCP & SDP

14

Sender and Receiver Reports 확장 및 분석

Extending the Sender and Receiver Reports Profile-specific extensions 사용 송신자 또는 수신자에 대해서 주기적으로 보고되어야 할 추가

정보가 있을 경우 확장을 정의 새로운 RTCP packet 을 추가하는 것은 overhead

No RTCP header or SSRC field 사용 간단하고 빠른 parsing 가능

Analyzing Sender and Receiver Reports 수신 품질 피드백은 송신자 , 수신자 , 모니터들에게 유용

송신자는 피드백에 따라서 전송율 변경 가능 수신자는 어떤 문제 발생 시 , 전역적인지 지역적인지 판단 가능 망 관리자는 망의 성능을 평가하기 위해서 모니터 이용

Page 15: RTCP & SDP

15

SDES: Source Description RTCP Packet

Header 와 chunk 로 구성 Chunk 는 식별된 소스를 설명하는 item 들로 구성

Packet Type: 202 Source Count (SC): SSRC/SCRC chunk 의 수

Page 16: RTCP & SDP

16

CNAME (Canonical End-point Identifier, 1) “user@host”, “host” 다수의 소스를 생성할 경우 소스에 대해 유일한 식별자가 제공

X NAME item 을 별도로 전달할 필요 X

NAME (User name, 2) 소스를 설명하는 실명 , 어떠한 형태로도 기록 가능 세션기간 동안 변함 X, 세션 내에서 유일할 필요 X 우선순위를 정하여 전송되는 횟수를 결정하는데 도움을 줌

Page 17: RTCP & SDP

17

EMAIL (Electronic mail address, 3) 전자메일주소 , 세션 기간 동안 변함 X

PHONE (Phone number, 4) 국제 접속 코드를 + 기호로 변경한 형태 , +1 908 555 1212

LOC (Geographic user location, 5) 실제 주소

TOOL (Application or tool name, 6) 실시간 스트림을 생성하는 응용의 이름과 버전 디버깅 목적에 유용

NOTE (Notice/status, 7) 소스의 현 상태를 설명하는 임시적인 메시지 전달 목적

PRIV (Private extensions, 8) 실험적 , 또는 응용에 따른 SDES 확장을 정의하는데 이용

Page 18: RTCP & SDP

18

BYE: Goodbye RTCP Packet

소스가 더 이상 활성화 상태가 아님을 나타냄 Packet Type: 203 Source Count (SC): SSRC/CSRC 식별자 수를 나타냄

Page 19: RTCP & SDP

19

APP: Application-Defined RTCP Packet

새로운 응용 , 기능 등 개발되었을 때 실험을 목적으로 사용 Subtype : 일련의 APP 패킷들을 유일한 이름으로 정의 Packet Type : 204 Name: APP 패킷을 정의하는 이름 Application-dependent data

가변길이 필드 Application 에 의해 해석되는 필드 32 비트의 배수로 정의

Page 20: RTCP & SDP

SDP

Page 21: RTCP & SDP

21

Introduction

SDP 는 세션에 대한 정보를 표현하는 표준을 제공

SDP usage Session Initiation - SIP Streaming media - RTSP Email and the World Wide Web – MIME content type “application/sdp” Multicast Session Announcement - SAP

Page 22: RTCP & SDP

22

SDP session description

SDP session description includes Session name and purpose Time the session is active The media comprising the session Information needed to receive those media

Address, port, format

Additional information Information about the bandwidth to be used by the session Contact information for the person responsible for the session

Page 23: RTCP & SDP

23

Media and Transport Information The type of media (video, audio, etc.) The transport protocol (RTP/UDP/IP, H.320, etc.) The format of media (H.261 video, MPEG video, etc.) The multicast group address for media (multicast) The transport port for media The remote address for media (unicast) The remote transport port for media

Timing Information Session start / stop time Repeat time

Private Session Encrypting the session description

Page 24: RTCP & SDP

24

SDP Specification

<type>=<value>

Page 25: RTCP & SDP

25

Protocol Version (v=0) Origin

o=<username> <sess-id> <sess-version> <nettype> <addrtype> <unicast-address>

Session Name (s=<session name>) Session Information (i=<session description>) URI (u=<uri>) Email Address and Phone Number

e=<email-address> ([email protected]) p=<phone-number> (+1 617 555-6011)

Connection Data c=<nettype> <addrtype> <connection-address> c=<nettype> <addrtype> <connection-address/TTL> c=IN IP4 224.2.36.42/127

Page 26: RTCP & SDP

26

Connection Data c=<nettype> <addrtype> <base multicast address> [/<ttl>]/

<number of address> c=IN4 IP4 224.2.1.1/127/3

Bandwidth (b=<bwtype>:<bandwidth>) Timing (t=<start-time><stop-time>)

둘 다 0, 영구적으로 전송 Repeat Times

r=<repeat-interval><active duration><offsets from start-time>

Encryption Keys k=<method> k=<method>:<encryption key>

Page 27: RTCP & SDP

27

Attributes a=<attribute> a=<attribute>:<value> Session level attribute, Media level attribute

Media Descriptions m=<media><port><proto><fmt> m=<media><port>/<number of ports> <proto><fmt>

c=IN IP4 224.2.1.1/127/2 m=video 49170/2 RTP/AVP 31 224.2.1.1 port 49170 49171 224.2.1.2 port 49172 49173

Page 28: RTCP & SDP

28

Sample