세션 기술 프로토콜

Session Description Protocol

Session Description Protocol(SDP)은 방송 및 [1]초대 목적으로 멀티미디어 통신 세션을 기술하는 형식입니다.Voice over IP(VoIP)나 화상회의등스트리밍 미디어 애플리케이션을 서포트하는 것이 주된 용도입니다.SDP는 미디어 스트림 자체를 전달하지 않지만 네트워크 메트릭, 미디어 유형 및 기타 관련 속성을 네고시에이트하기 위해 엔드포인트 간에 사용됩니다.속성 및 파라미터 세트를 세션프로파일이라고 부릅니다.

SDP는 새로운 미디어 유형 및 형식을 지원하도록 확장 가능합니다.SDP는 원래 Session Announcement Protocol(SAP)[2]의 컴포넌트였지만 Real-time Transport Protocol(RTP), Real-time Streaming Protocol(RTSP), Session Initiation Protocol(SIP) 및 멀티캐스트세션을 기술하는 독립형 프로토콜과 함께 다른 용도로 사용되었습니다.

IETF는 1998년 [3]4월에 제안된 표준으로 원래의 규격을 발표했다.개정 사양은 2006년(RFC 4566)[1]과 2021년(RFC 8866)[4]에 발표되었습니다.

세션 설명

Session Description Protocol은 세션을 텍스트 기반 형식의 필드 그룹으로 한 줄에 [note 1]한 필드씩 설명합니다.각 필드의 형식은 다음과 같습니다.

<캐릭터>=<값><CR><LF>

어디에<character>대소문자를 구분하는 단일 문자입니다.<value> 는 문자에 따라 다른 형식의 구조화된 텍스트입니다.값은 보통 UTF-8[note 2]인코딩됩니다.등호 [1]: Section 5 양쪽에는 바로 공백이 허용되지 않습니다.

세션 설명은 세션, 타이밍 및 미디어 설명의 3가지 섹션으로 구성됩니다.각 설명에는 여러 타이밍 및 미디어 설명이 포함될 수 있습니다.이름은 연관된 구문 [5]구조 내에서만 고유합니다.

필드는 표시된 순서대로 표시되어야 합니다.옵션 필드에는 다음 아스타리스크가 표시됩니다.

  • 세션 설명
v=(최소 버전 번호, 현재 0만 해당) o=(관리자 및 세션 식별자: 사용자 이름, ID, 버전 번호, 네트워크 주소) s=(예: UTF-8 인코딩된 문자 하나 이상 필수) i=*(예상 제목 또는 짧은 정보) u=*(선택 사항 이름의 URI) e=*(0개 이상)연락처) p=*(옵션 연락처 이름을 가진 0개 이상의 전화번호) c=*(접속 정보: 모든 미디어에 포함된 경우 필요하지 않음) b=*(대역폭 정보 행) 1개 이상시간 설명("t=" "r=" 행. 아래 참조) z=*(시간대 조정) k=*(암호화 키) a=*(zero 또는 그 이상)ssion 속성 라인) 0개 이상의 미디어 설명(각각 "m=" 라인으로 시작합니다. 아래 참조)
  • 시간 설명(필수)
t = (세션이 활성화된 시간) r=* (0회 이상의 반복 시간)
  • 미디어 설명(옵션)
m=(미디어 이름 및 전송 주소) i=*(미디어 제목 또는 정보 필드) c=*(연결 정보 — 세션 수준에 포함된 경우 옵션) b=*(대역폭 정보 행 0개 이상) k=*(암호화 키) a=*(미디어 속성 행 0개 이상 — 세션 속성 행 재정의)

다음으로 RFC 4566의 세션 설명 예를 나타냅니다.이 세션은, IPv4 주소 10.47.16.5 의 유저 「jdoe」에 의해서 발신됩니다.이름은 "SDP Semina"이며, 세션 확장 정보("세션 설명 프로토콜에 대한 세미나")가 추가 정보 링크 및 담당자인 Jane Doe에게 연락하기 위한 이메일 주소와 함께 포함되어 있습니다.이 세션은 NTP 타임스탬프를 사용하여2시간 동안 지속되도록 지정됩니다.접속 주소(멀티캐스트주소가 지정되어 있는 경우는, 클라이언트가 접속할 필요가 있는 주소, 또는 여기에 있는 경우는 서브 스크라이브 하는 주소)는, TTL 127 의 IPv4 224.2.17.12 로 지정되어 있습니다.이 세션 설명의 수신자에게는 미디어를 수신하도록 지시됩니다.RTP Audio Video Profile을 사용하여2개의 미디어에 대해 설명합니다.첫 번째는 RTP/AVP payload type 0(RFC 3551에 의해 PCMU로 정의됨)을 사용하는 포트 49170 위의 오디오스트림이고 두 번째는 RTP/AVP payload type 99('dynamic'으로 정의됨)를 사용하는 포트 51372 위의 비디오스트림입니다마지막으로 RTP/AVP 페이로드 타입 99를 90kHz 클럭환율로 포맷h263-1998에 매핑하는 속성이 포함됩니다.각각 49171과 51373의 오디오스트림과 비디오스트림의 RTCP 포트가 암시되어 있습니다.

SDP 사양은 순전히 세션 설명 형식입니다.SDP는 SAP, SIPRTSP포함하여 필요에 따라 서로 다른 전송 프로토콜을 통해 배포됩니다. SDP는 이메일 또는 HTTP 페이로드로 전송될 수도 있습니다.

특성

SDP는 속성을 사용하여 코어 프로토콜을 확장합니다.속성은 세션 또는 미디어 섹션에 표시될 수 있으며 세션 수준 또는 미디어 수준으로 범위가 지정됩니다.IANA에 [6]등록함으로써 새로운 속성이 표준으로 추가되는 경우가 있습니다.

속성은 속성 또는 값입니다.

  • 속성: a=module은 미디어 또는 세션의 부울 속성을 전달합니다.
  • 값: a=value:value는 명명된 매개 변수를 제공합니다.

이들 Atribute 중 2개는 특별히 정의되어 있습니다.

  • a=charset:module은 세션 또는 미디어 섹션에서 표준 프로토콜 키에 대한 권장 기본값(UTF-8)과 다른 문자 인코딩(IANA[7] 레지스트리에 등록된 문자)을 지정하는 데 사용됩니다.이러한 값에는 사용자에게 표시되는 텍스트가 포함되어 있습니다.
  • a=sdplang:code는 텍스트 언어를 지정하는 데 사용됩니다.여러 언어로 된 대체 텍스트를 세션에서 전송할 수 있으며 사용자 기본 [clarification needed]설정에 따라 사용자 에이전트에 의해 자동으로 선택됩니다.

어느 경우든 사용자에게 표시되는 텍스트 필드는 불투명한 문자열로 해석되지만 현재 미디어 섹션의 필드 charsetsdplang에서 마지막으로 나타난 값 또는 세션 섹션의 필드 charset 및 sdplang에서 나타나는 값으로 사용자 또는 애플리케이션에 렌더링된다.

파라미터 v, s o는 필수이며 비워둘 수 없으며 UTF-8로 인코딩해야 합니다.이들은 식별자로 사용되며 사용자에게 표시되도록 되어 있지 않습니다.

이 예에서는 세션레벨 속성(예: a=recvonly [note 3]형식의 속성) 또는 미디어 레벨 속성(예: 비디오의 경우 a=rtpmap:99 h263-1998/90000 형식의 값) 중 몇 가지 다른 속성도 있습니다.

시간 형식 및 반복

절대 시간은 Network Time Protocol(NTP) 형식(1900년 이후의 초수)으로 표시됩니다.중지 시간이 0인 경우 세션은 무제한입니다.시작 시간도 0일 경우 세션은 영속적인 으로 간주됩니다.무제한 및 영속 세션은 권장되지 않지만 금지되지는 않습니다.간격은 NTP 시간으로 나타내거나 입력된 시간으로 나타낼 수 있습니다.값과 시간 단위(: d, 시간: h, : m 및 초: s) 시퀀스입니다.

따라서 2010년 8월 1일 오전 10시부터 1주일 후 같은 시각에 1시간 동안 회의를 반복하면 다음과 같이 나타낼 수 있습니다.

t=1280656800 1281265200 r=604800 3600 0

또는 입력된 시간 사용:

t=1280656800 1281265200 r=7d 1h 0

반복 시간이 지정되면 각 반복의 시작 시간을 조정하여 여름 시간 변화를 보상해야 할 수 있습니다. 그러면 시작 시간과 중지 시간 사이의 기간 동안 특정 시간대에서 동일한 로컬 시간이 발생할 수 있습니다.

이 타임존을 지정하여 일광조정이 필요한 시기와 장소를 알기 위해 타임존 데이터베이스를 지원할 필요가 없는 대신 반복시간은 모두 같은 타임존 내에서 정의되는 것으로 간주되며 SDP는 일광오프셋(초단위 또는 타입타임으로 표시됨)이 필요한 경우 NTP 절대시간 표시를 지원합니다.ed는 각 일광 조정 시 또는 이후에 떨어지는 반복 출발 시간 또는 종료 시간에 적용된다.이 모든 간격띄우기는 시작 시간에 상대적이며 누적되지 않습니다.NTP는 이를 필드 z에서 지원합니다.이것은 첫 번째 항목이 일광조정이 이루어지는 NTP 절대시간인 일련의 쌍을 나타내고 두 번째 항목은 필드 r로 계산된 절대시간에 대해 적용할 오프셋을 나타냅니다.

예를 들어, 일광조정이 2010년 10월 31일 오전 3시(즉, 2010년 8월 1일 일요일 오전 10시 UTC 시작 시각으로부터 60일 - 7시간 후)에 1시간을 감산하는 경우, 이는 2010년 8월 1일부터 2010년 11월 28일 오전 10시(정지 시각) 사이에 발생하는 스케줄된 기간에 적용되는 유일한 일광조정이 됩니다.매주 같은 현지 시간으로 반복되는1시간 세션(88일 후 발생)의 경우 다음과 같이 지정할 수 있습니다.

t=1280656800 1290938400 r=7d 1h 0 z=1288494000-1h

매주 일요일마다 1시간씩, 즉 2010년 8월 1일 일요일 오전 3시부터 2011년 6월 26일 일요일 오전 4시까지를 1년 동안 반복한 경우(마지막 반복의 정지 시간, 즉 360일 + 1시간 후 또는 31107600초 후), 따라서 2011년 3월 27일 일요일 여름 시간으로의 전환이 추가된다(ag 2).첫 번째 시작 시간으로부터 209일 후에 두 번째 일광 천이가 발생하도록 로컬 시간으로 설정합니다).

t=1280656800 1290938400 r=7d 1h 0 z=1288494000 -1h 126655200 0

반복 세션에 대한 SDP 공지는 몇 년을 초과하는 매우 긴 기간을 포함해서는 안 되기 때문에 z= 매개변수에 포함할 일광 조정 횟수는 작게 유지해야 합니다.

세션은 1주일에 걸쳐 불규칙하게 반복될 수 있지만 r 파라미터에 더 많은 튜플을 추가하여 해당 기간의 모든 주에 동일한 방법으로 스케줄 됩니다.예를 들어, 토요일(하루 중 같은 시간)에도 같은 이벤트를 스케줄링하려면 다음을 사용합니다.

t=1280656800 1290938400 r=7d 1h 0 6d z=128849000 -1h 1269655200 0

SDP 프로토콜은 시간 간격이 불규칙하기 때문에 이러한 단순한 반복 시간으로 매월 및 연간 반복 세션을 지원하지 않습니다. 대신 매월 또는 매년 추가 t/r 튜플이 제공될 수 있습니다.

메모들

  1. ^ 행은 캐리지 리턴 및 라인 피드 문자로 끝납니다만, 실장에서는 캐리지 리턴을 생략하는 것으로, 이 문제를 완화할 수 있습니다.
  2. ^ 세션 정보세션 이름 값은 섹션의 임의의 charset 속성으로 지정된 인코딩에 따릅니다.
  3. ^ 이 세션레벨 Atribute는 미디어 레벨Atribute에 의해 값이 덮어쓰기되지 않는 한 기재된 미디어에도 적용됩니다.

레퍼런스

  1. ^ a b c Handley, Mark; Van Jacobson; Colin Perkins (July 2006). SDP: Session Description Protocol. IETF. doi:10.17487/RFC4566. RFC 4566.
  2. ^ Salkintzis, Apostolis K. (2004). Mobile Internet: Enabling Technologies & Services. CRC Press. p. 11: 24–25. ISBN 0849316316. Retrieved 2019-07-11.
  3. ^ Handley, Mark; Van Jacobson (April 1998). SDP: Session Description Protocol. IETF. doi:10.17487/RFC2327. RFC 2327.
  4. ^ Begen, Ali; Mark Handley; P. Kyvizat; Colin Perkins (January 2021). SDP: Session Description Protocol. IETF. doi:10.17487/RFC8866. RFC 8866.
  5. ^ Wayback Machine에서 아카이브된SDP 2011-07-13의 상세 개요
  6. ^ "Registry of the SDP Parameters". Internet Assigned Numbers Authority. Retrieved 2021-01-15.
  7. ^ "Registry of the Character Sets Encodings, on the Internet Assigned Numbers Authority site".

외부 링크