휴대인터넷 무선환경에서의 효과적인 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