휴대인터넷 무선환경에서의 효과적인 Broadcast/Multicast

Download Report

Transcript 휴대인터넷 무선환경에서의 효과적인 Broadcast/Multicast

RTCP & SDP
김영준
[email protected]
RTCP
introduction





RTCP (RTP Control Protocol)
제어 프로토콜
데이터의 전달 상황을 감시
최소한의 제어 기능
매체 식별 기능
3
RTCP performs four functions

데이터 분배의 품질에 대한 피드백을 제공


RTP 소스의 식별을 위해 지속적인 식별자를 수송




CNAME
SSRC는 충돌이 발생, 프로그램이 다시 시작할 경우 변경 가능
수신자는 각 참가자들을 일관성 있게 유지하기 위해 CNAME 필요
참가자 수를 이용해서 제어 패킷 전송 간격을 조정


RTCP Sender Report(SR), Receiver Report(RR)
참가자가 다른 모든 참가자에게 제어 패킷을 전송하므로 각각의
참가자는 전체 참가자의 수를 파악 가능
최소한의 세션 제어 정보를 수송

새로운 참가자의 신분 이름 등 참가자의 간단한 정보 수송
4
RTCP packet format






SR(Sender report)
RR(Receiver report)
SDES(Source description items) – CNAME 포함
BYE – 참가자의 끝을 가리킴
APP – Application 정의
다수의 RTCP 패킷들로 복합 패킷을 만들어서 하나의 하위
프로토콜 패킷으로 전송
5
RTCP packet format

RTCP 프로토콜의 제약



복합 RTCP 패킷에는 보고(SR, RR)가 반드시 포함
복합 RTCP 패킷은 SDES CNAME도 포함
모든 RTCP 패킷들은 적어도 두개의 개별 패킷으로 구성된 복합 패킷
형태로 전송되어야 함
6
RTCP Transmission Interval



RTP는 수천의 참가자를 하나의 세션에 참가 가능
이 때 RTCP는 참가자의 수에 비례하여 비트율 증가
RTCP에 할당되는 대역폭은 세션 대역폭의 5% 고정


세션 멤버 수 관리




이 때, sender는 ¼의 대역폭 할당
SSRC 패킷을 수신하기 전까지 참가자는 유효 X
각 참가자는 5개의 RTCP 보고 간격 동안 보고를 하지 않으면 그
사이트를 비활성화 또는 삭제
비활성화 상태여도 30분까지 그 사이트 유지
SDES 대역폭 할당


SDES의 부가정보 때문에 전체 프로토콜의 성능 저하 유발
20% 미만으로 SDES 패킷 전송
7
Sender and Receiver Reports


RTP 수신자는 SR, RR을 보내서 피드백 제공
RTCP 전송 간격 동안



데이터를 전송할 경우 SR
아닐 경우 RR 전송
SR, RR은 최대 31개의 수신 보고 블록 포함 가능
8
SR: Sender Report RTCP Packet
9


세 개의 섹션으로 구성
프로파일에 따른 네 번째 확장 섹션 추가 가능


Header




Header, Sender Info, Report Block, Profile-Specific extensions
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의 바이트 수
10

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 패킷 수신과 이 수신 보고 블록 송신간의 지연 시간
11

왕복 전송 지연 시간 계산



A: RR이 수신된 시간
LSR: 수신한 시간
DLSR: 수신과 송신과의 지연시간
12
RR: Receiver Report RTCP Packet

SR과 거의 동일


PT = 201
NTP/RTP Timestamp, Sender’s packet/octet count 생략
13
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

수신 품질 피드백은 송신자, 수신자, 모니터들에게 유용
 송신자는 피드백에 따라서 전송율 변경 가능
 수신자는 어떤 문제 발생 시, 전역적인지 지역적인지 판단 가능
 망 관리자는 망의 성능을 평가하기 위해서 모니터 이용
14
SDES: Source Description RTCP Packet


Header와 chunk로 구성
Chunk는 식별된 소스를 설명하는 item들로 구성


Packet Type: 202
Source Count (SC): SSRC/SCRC chunk의 수
15

CNAME (Canonical End-point Identifier, 1)




“user@host”, “host”
다수의 소스를 생성할 경우 소스에 대해 유일한 식별자가 제공X
NAME item을 별도로 전달할 필요X
NAME (User name, 2)



소스를 설명하는 실명, 어떠한 형태로도 기록 가능
세션기간 동안 변함 X, 세션 내에서 유일할 필요 X
우선순위를 정하여 전송되는 횟수를 결정하는데 도움을 줌
16

EMAIL (Electronic mail address, 3)


PHONE (Phone number, 4)



실시간 스트림을 생성하는 응용의 이름과 버전
디버깅 목적에 유용
NOTE (Notice/status, 7)


실제 주소
TOOL (Application or tool name, 6)


국제 접속 코드를 + 기호로 변경한 형태, +1 908 555 1212
LOC (Geographic user location, 5)


전자메일주소, 세션 기간 동안 변함 X
소스의 현 상태를 설명하는 임시적인 메시지 전달 목적
PRIV (Private extensions, 8)

실험적, 또는 응용에 따른 SDES 확장을 정의하는데 이용
17
BYE: Goodbye RTCP Packet

소스가 더 이상 활성화 상태가 아님을 나타냄


Packet Type: 203
Source Count (SC): SSRC/CSRC 식별자 수를 나타냄
18
APP: Application-Defined RTCP Packet

새로운 응용, 기능 등 개발되었을 때 실험을 목적으로 사용




Subtype : 일련의 APP 패킷들을 유일한 이름으로 정의
Packet Type : 204
Name: APP 패킷을 정의하는 이름
Application-dependent data
 가변길이 필드
 Application에 의해 해석되는 필드
 32 비트의 배수로 정의
19
SDP
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
21
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
22

Media and Transport Information








Timing 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
Session start / stop time
Repeat time
Private Session

Encrypting the session description
23
SDP Specification

<type>=<value>
24


Protocol Version (v=0)
Origin





Session Name (s=<session name>)
Session Information (i=<session description>)
URI (u=<uri>)
Email Address and Phone Number



o=<username> <sess-id> <sess-version> <nettype> <addrtype>
<unicast-address>
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
25

Connection Data




Bandwidth (b=<bwtype>:<bandwidth>)
Timing (t=<start-time><stop-time>)


둘 다 0, 영구적으로 전송
Repeat Times


c=<nettype> <addrtype> <base multicast address> [/<ttl>]/
<number of address>
c=IN4 IP4 224.2.1.1/127/3
r=<repeat-interval><active duration><offsets from start-time>
Encryption Keys


k=<method>
k=<method>:<encryption key>
26

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
27
Sample
28