1. SDP (Session Description Protocol)
ㅇ 인터넷 상에서 멀티미디어 세션(VoIP 등) 정보를 알려주기 위해 (Advertising),
- `멀티미디어 세션 또는 호(呼)에 대한 정보`를 기술하는 포멧 관련 프로토콜
* 표준 : RFC 4566 `SDP: Session Description Protocol`
ㅇ SDP를 사용하는 VoIP 프로토콜들 : SIP, MGCP, Megaco/H.248
2. SDP의 동작 모델
ㅇ Offer/Answer 모델로 동작
- SIP 요청 메세지/SIP 응답 메세지 본문에 포함되어 전달
. 例) SIP INVITE 요청 메세지에 SDP Offer가 포함되고,
SIP 200 OK 응답 메세지에 SDP Answer가 포함됨
* 표준 : RFC 3264 `An Offer/Answer Model with the Session Description Protocol (SDP)`
ㅇ 특히, 멀티미디어 세션 파라미터를 협상할 때 중요한 역할을 함
- 코덱 협상과 같은 Capability Exchange를 수행
3. SDP의 세션 정보 표현
ㅇ 세션의 이름(제목)과 사용 목적 (세션 주제 등)
ㅇ 세션의 생성자
ㅇ 세션이 활성화되는 시간 (시작과 종료 시간)
ㅇ 세션에 포함되는 미디어 종류 및 특성 (비디오, 오디오, 비디오/오디오 포멧, 코덱 정보)
ㅇ 세션에 속한 IP 주소, L4 프로토콜 및 포트 주소 등
4. SDP의 포멧/필드 구분
ㅇ 포멧 형태
- 필드 = 파라미터1 파라미터2 파라미터3 ... 파라미터n
. 파라미터 간에는 빈칸을 두고,
. 필드 간에는 CR+LF(줄바꿈)를 둠
ㅇ 세션 일반 정보 관련 필드 : v,a,b,c,e,i,k,o,p,s,z
- `v=` 필드 : `v=0`
. SDP 버젼 정보 (현재 버젼은 0)
- `o=` 필드 : `o=username session-id version network-type address-type address`
. 세션 설정 관련 기본 정보
. 例) o=root 1821 1821 IN IP4 10.10.1.99
.. username : root (사용자이름)
.. 세션 id 및 version : `랜덤 값` 또는 `NTP(Network Time Protocol) 값`을 2번 반복
.. network-type : IN (인터넷을 말함)
.. address-type : IP4 (IPv4을 말함)
.. address : 10.10.1.99 (IPv4 주소를 말함)
- `s=` 필드 : `s=session-name`
. 세션 명칭
- `i=` 필드
- `u=`,`e=`,`p=` 필드
. 세션 정보에 대한 URI(이메일 주소 및 전화번호)
ㅇ 세션 시간 정보 관련 필드 : r,t
- `i=` 필드 : `t=start-time stop-time`
. 세션 시작과 끝을 나타내는 NTP(Network Time Protocol) 값
ㅇ 미디어 관련 정보 관련 필드 : a,b,c,i,m,k
- `m=` 필드 : `m=media port transport format-list`
. 미디어(media) 파라미터 : audio,video,application,data,telephone-event,control등
. 포트(port) 파라미터 : UDP 포트번호들
. 수송(transport) 파라미터 :
.. RTP(Realtime Transport Protocol)/AVP(Audio Video Profile)
. format-list 파리미터 : 여러 코덱 종류들을 열거함 (a 필드에 구체화)
- `a=` 필드
. a=ptime < value >
. a=maxptime < value >
. a=framerate < value >
. a=rtpmap < payload type > < encoding name >/< clock rate >
[/< encoding parameters >]
. a=readonly
. a=sendonly
. a=sendrecv
. a=inactive
. a=tmtp < parameters >