1 / 28

RTCP & SDP

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

airell
Download Presentation

RTCP & SDP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RTCP & SDP 김 영 준 ddanggae@hufs.ac.kr

  2. RTCP

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

  4. RTCP performs four functions • 데이터 분배의 품질에 대한 피드백을 제공 • RTCP Sender Report(SR), Receiver Report(RR) • RTP 소스의 식별을 위해 지속적인 식별자를 수송 • CNAME • SSRC는 충돌이 발생, 프로그램이 다시 시작할 경우 변경 가능 • 수신자는 각 참가자들을 일관성 있게 유지하기 위해 CNAME 필요 • 참가자 수를 이용해서 제어 패킷 전송 간격을 조정 • 참가자가 다른 모든 참가자에게 제어 패킷을 전송하므로 각각의 참가자는 전체 참가자의 수를 파악 가능 • 최소한의 세션 제어 정보를 수송 • 새로운 참가자의 신분 이름 등 참가자의 간단한 정보 수송

  5. RTCP packet format • SR(Sender report) • RR(Receiver report) • SDES(Source description items) – CNAME 포함 • BYE – 참가자의 끝을 가리킴 • APP – Application 정의 • 다수의 RTCP 패킷들로 복합 패킷을 만들어서 하나의 하위 프로토콜 패킷으로 전송

  6. RTCP packet format • RTCP 프로토콜의 제약 • 복합 RTCP 패킷에는 보고(SR, RR)가 반드시 포함 • 복합 RTCP 패킷은 SDES CNAME도 포함 • 모든 RTCP 패킷들은 적어도 두개의 개별 패킷으로 구성된 복합 패킷 형태로 전송되어야 함

  7. RTCP Transmission Interval • RTP는 수천의 참가자를 하나의 세션에 참가 가능 • 이 때 RTCP는 참가자의 수에 비례하여 비트율 증가 • RTCP에 할당되는 대역폭은 세션 대역폭의 5% 고정 • 이 때, sender는 ¼의 대역폭 할당 • 세션 멤버 수 관리 • SSRC 패킷을 수신하기 전까지 참가자는 유효 X • 각 참가자는 5개의 RTCP 보고 간격 동안 보고를 하지 않으면 그 사이트를 비활성화 또는 삭제 • 비활성화 상태여도 30분까지 그 사이트 유지 • SDES 대역폭 할당 • SDES의 부가정보 때문에 전체 프로토콜의 성능 저하 유발 • 20% 미만으로 SDES 패킷 전송

  8. Sender and Receiver Reports • RTP 수신자는 SR, RR을 보내서 피드백 제공 • RTCP 전송 간격 동안 • 데이터를 전송할 경우 SR • 아닐 경우 RR 전송 • SR, RR은 최대 31개의 수신 보고 블록 포함 가능

  9. SR: Sender Report RTCP Packet

  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의 바이트 수

  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 패킷 수신과 이 수신 보고 블록 송신간의 지연 시간

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

  13. RR: Receiver Report RTCP Packet • SR과 거의 동일 • PT = 201 • NTP/RTP Timestamp, Sender’s packet/octet count 생략

  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 • 수신 품질 피드백은 송신자, 수신자, 모니터들에게 유용 • 송신자는 피드백에 따라서 전송율 변경 가능 • 수신자는 어떤 문제 발생 시, 전역적인지 지역적인지 판단 가능 • 망 관리자는 망의 성능을 평가하기 위해서 모니터 이용

  15. SDES: Source Description RTCP Packet • Header와 chunk로 구성 • Chunk는 식별된 소스를 설명하는 item들로 구성 • Packet Type: 202 • Source Count (SC): SSRC/SCRC chunk의 수

  16. CNAME (Canonical End-point Identifier, 1) • “user@host”, “host” • 다수의 소스를 생성할 경우 소스에 대해 유일한 식별자가 제공X • NAME item을 별도로 전달할 필요X • NAME (User name, 2) • 소스를 설명하는 실명, 어떠한 형태로도 기록 가능 • 세션기간 동안 변함 X, 세션 내에서 유일할 필요 X • 우선순위를 정하여 전송되는 횟수를 결정하는데 도움을 줌

  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 확장을 정의하는데 이용

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

  19. APP: Application-Defined RTCP Packet • 새로운 응용, 기능 등 개발되었을 때 실험을 목적으로 사용 • Subtype : 일련의 APP 패킷들을 유일한 이름으로 정의 • Packet Type : 204 • Name: APP 패킷을 정의하는 이름 • Application-dependent data • 가변길이 필드 • Application에 의해 해석되는 필드 • 32 비트의 배수로 정의

  20. 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

  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

  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

  24. SDP Specification • <type>=<value>

  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> (j.doe@example.com) • 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

  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>

  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

  28. Sample

More Related