Skip to content

Session Description Protocol

세션 기술 프로토콜(Session Description Protocol, SDP)은 스트리밍 미디어의 초기화 인수를 기술하기 위한 포맷이다. 이 규격은 IETF의 RFC 4566로 규정되어 있다.

SDP는 세션 공지, 세션 초대, 그리고 그 밖의 멀티미디어 세션 초기화를 위한 폼들을 목적으로 멀티미디어 세션들의 기술을 위해 작성되었다. SDP는 미디어 폼의 콘텐츠 그 자체를 위해서 제공된 것은 아니지만, 양 끝단 간에 미디어 타입과 포맷에 대해 협상할 수 있는 수단을 제공한다. 이로 인해서 SDP는 새롭게 추가되는 미디어 타입과 포맷을 지원할 수 있으며, 앞으로 나올 기술에 대한 호환성을 시스템적으로 지원할 수 있다.

SDP는 Session Announcement Protocol (SAP)의 한 부분으로 시작되었지만, RTP, RTSP, SIP 와 멀티캐스트 세션을 기술하기 위한 단독 포맷 등의 결합을 위한 가능성이 확인되었다.

Categories

Session description

세션 설명 프로토콜은 세션을 텍스트 기반 형식의 필드 그룹으로 설명하며, 한 줄에 하나의 필드입니다.1 각 필드의 형식은 다음과 같습니다.

<nowiki><character>=<value><CR><LF></nowiki>

여기서 대소문자를 구분하는 단일 문자이고 는 해당 문자에 따라 달라지는 형식의 구조화된 텍스트입니다. 값은 일반적으로 UTF-8로 인코딩됩니다.2 등호의 양쪽에 공백을 즉시 사용할 수 없습니다.

Session description 은, 세션 (Session), 타이밍 (Timing) 및 미디어 설명 (Media descriptions) 세 섹션으로 구성됩니다.

각 설명에는 여러 타이밍 및 미디어 설명이 포함될 수 있습니다. 이름은 연관된 구문 구조 내에서만 고유합니다.3

선택적 값은 =*로 지정되며 각 필드는 아래 표시된 순서대로 나타나야 합니다.

Session description

v=  (protocol version number, currently only 0)
o=  (originator and session identifier : username, id, version number, network address)
s=  (session name : mandatory with at least one UTF-8-encoded character)
i=* (session title or short information)
u=* (URI of description)
e=* (zero or more email address with optional name of contacts)
p=* (zero or more phone number with optional name of contacts)
c=* (connection information—not required if included in all media)
b=* (zero or more bandwidth information lines)
One or moreTime descriptions("t=" and "r=" lines; see below)
z=* (time zone adjustments)
k=* (encryption key)
a=* (zero or more session attribute lines)
Zero or moreMedia descriptions(each one starting by an "m=" line; see below)

참고로 중간에 #Time descriptions#Media descriptions 이 포함된 것을 주목해야 한다.

Time descriptions

필수적(mandatory)인 섹션 이다.

     t=  (time the session is active)
     r=* (zero or more repeat times)

Media descriptions

선택적(optional)인 섹션 이다.

     m=  (media name and transport address)
     i=* (media title or information field)
     c=* (connection information — optional if included at session level)
     b=* (zero or more bandwidth information lines)
     k=* (encryption key)
     a=* (zero or more media attribute lines — overriding the Session attribute lines)

Sample

Below is a sample session description from RFC 4566. This session is originated by the user "jdoe", at IPv4 address 10.47.16.5. Its name is "SDP Seminar" and extended session information ("A Seminar on the session description protocol") is included along with a link for additional information and an email address to contact the responsible party, Jane Doe. This session is specified to last for two hours using NTP timestamps, with a connection address (which indicates the address clients must connect to or — when a multicast address is provided, as it is here — subscribe to) specified as IPv4 224.2.17.12 with a TTL of 127. Recipients of this session description are instructed to only receive media. Two media descriptions are provided, both using RTP Audio Video Profile. The first is an audio stream on port 49170 using RTP/AVP payload type 0 (defined by RFC 3551 as PCMU), and the second is a video stream on port 51372 using RTP/AVP payload type 99 (defined as "dynamic"). Finally, an attribute is included which maps RTP/AVP payload type 99 to format h263-1998 with a 90kHz clock rate. RTCP ports for the audio and video streams of 49171 and 51373, respectively, are implied.

     v=0
     o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5
     s=SDP Seminar
     i=A Seminar on the session description protocol
     u=<nowiki>http://www.example.com/seminars/sdp.pdf</nowiki>
     [email protected] (Jane Doe)
     c=IN IP4 224.2.17.12/127
     t=2873397496 2873404696
     a=recvonly
     m=audio 49170 RTP/AVP 0
     m=video 51372 RTP/AVP 99
     a=rtpmap:99 h263-1998/90000

The SDP specification is purely a format for session description. It is intended to be distributed over different transport protocols as necessary, including SAP, SIP, and RTSP. SDP could even be transmitted by email or as an HTTP payload.

Documentation

RFC 4566 - SDP Session Description Protocol
https://tools.ietf.org/html/rfc4566

Troubleshooting

47700 waiting

알 수 없는 원인으로 약 47720초 가량 Waiting 후, 데이터가 취득되는 현상에 대한 검색: (아직 미해결)

...
b=TIAS: 47720
...

See also

관련 용어

  • 콘퍼런스(Conference): 사용하는 소프트웨어에 따른 둘 혹은 그 이상의 통신자들의 집합.
  • 세션(Session) : 멀티미디어 발신자와 수신자 그리고 데이터의 흐름으로 구성된다.
  • 세션 공지(Session Announcement): 세션 공지는 능동적인 방식으로 사용자들에게 세션 기술(記述)을 전달한다. 즉, 세션 기술은 명시적인 사용자의 요구가 있을 때 전달되는 것이 아니다.
  • 세션 광고(Session Advertisement) : 세션 공지와 동일
  • 세션 기술(Session Description) : 멀티미디어 세션을 발견하고 참여하는 데 필요한 정보를 제공하기 위해 정의된 포맷

Favorite site

Guide

References


  1. Lines are terminated by a carriage return and a line feed character, but implementations may relax this by omitting the carriage return. 

  2. The session information and session name values are subject to the encoding specified in any charset attribute of the section. 

  3. An In-Depth Overview of SDP - WebArchive 

  4. Frozenmountain-roleofsignalinginweb.pdf 

  5. Wiki.pchero21_-_SIP_SDP.pdf