네트워크/네트워크

프로토콜 - SIP(Session initaion Protocol)- 세션 개시 프로토콜

본클라쓰 2009. 5. 1. 13:06

 

SIP는 매우 단순한 텍스트 기반의 응용 계층 제어 프로토콜로서, HTTP 프로토콜의 응답/요청 트랜잭션 모델이다. SIP는 SMTP와 HTTP 이후에 설계되었으며, SMTP나 HTTP처럼 텍스트 기반의 인터넷 표준을 따름으로서 고장 수리와 네트워크 디버깅이 쉽다.

 

SIP는 둘 이상의 참가자들이 함께 세션을 만들고 수정하고 종료할 수 있게 한다. 이러한 세션들은 인터넷을 이용한 원격회의, 전화, 면회, 이벤트 통지, 인스턴트 메시지 등에 사용할 수 있으며 회의나 전화통화에 상대방을 쉽게 초대할 수 있게 하기 위해 만들어진 프로토콜이다.

 

SIP는 인터넷 상에서 통신하고자 하는 지능형 단말기들이 서로를 식별하여 그 위치를 찾고, 그 들 상호간에 멀티미이더 통신 세션을 생성하거나 삭제 변경하기 위한 절차를 명시한 응용 계층의 시그널링 프로토콜로 멀티미디어 통신 세션을 생성하거나 삭제 변경하기 위한 절차를 명시한 응용 계층의 시그널링 프로토콜로 어떠한 프로토콜 스팩에 매여 있지 않고, HTTP와 같은 텍스트 기반으로 정의되어 있어 확장이 용이하며 쉽게 사용할 수 있는 프로토콜이다. SIP는 위치 지정 메시지를 통해 이동성을 제공하므로, 전화를 지정한 장소에서 받는 것이 가능한 단순한 프로토콜이다.

 

각 사용자들을 구분하기 위해 이메일 주소와 비슷한 SIP URL을 사용함으로써 IP주소에 종속되지 않고 서비스를 제공받는다. HTTP와 SMTP의 많은 부분을 그대로 사용하여 개발된 텍스트 기반이므로 구현이 용이하며 인터넷에서 사용되는 다른 많은 프로토콜과 결합하여 다양한 서비스들을 만들 수 있는 유연성과 확장성이 있다.

 

ITU-T의 H.323에 대응되는 보다 간편한 프로토콜로 1999년 IETF MMUSIC(Multipart Multimedia Session Control) 워킹 그룹에 의해 RFC2543으로 제안된 이후 별도로 분리된 ITEF SIP 워킹 그룹에서 개정 작업을 진행하여 2002년 7월 RFC3261 표준이 제정되었다.

 

 

 

1. SIP에서 사용되는 용어 정의

  • UA(User Agent): 전화를 걸고 받을 수 있는 SIP프로토콜의 기능을 지원하는 터미널. 전화를 요청하는 쪽을 UAC(User Agent Client)라고 하고, 받는 쪽을 UAS(User Agent Server)라고 한다.
  • Network Server: SIP 네트워크 망을 제어하는 것으로 H.323의 게이트키퍼와 비슷한 역할을 하며 네트워크 서버의 종류는 전체를 포괄적으로 처리해주는 Proxy 서버와 사용자의 이동성을 보장하기 위한 Redirect 서버가 있다.
  • Register: SIP사용자 단말기를 SIP 네트워크의 일부준으로 등록하기 위해 필요한 컴포넌트
  • Location Server: SIP 네트워크에서 주소를 확인한 후 확인한 주소에 맞는 위치를 검색하기 위한 컴포넌트

 

 

2. SIP에서 사용하는 주소 방식

 

SIP에서 주소를 지정하는 방식은 사용자가 사용하는 네트워크 이름과 호스트 이름에 사용자가 로그인하는 아이디를 합쳐 사용하는 방법, IP주소 그 자체를 SIP주소로 사용하는 경우, E-Mail 주소나 기존에 홈페이지에서 사용하는 DNS 이름을 SIP 주소로 사용하는 방법이 있습니다. 이 중 E-Mail을 사용하는 방법이 가장 구체화된 방법입니다.

 

 

 

 

3. SIP의 연결 방법

 

SIP는 전화를 거는 쪽에서 SIP에 맞는 주소 형식을 사용하여 invite 메시지를 통화를 원하는 쪽에게 보내 통화를 요청하게 되며 연결 방법은 다음과 같다.

 

  가) Proxy Server를 통한 연결 방법(Proxy mode operation)

 

- 송신측(UAC)에서 수신측(UAS)을 초대하기 위해 네트워크 서버에 초대 메시지를 발송

- 네트워크 서버에서 수신측(UAS)의 주소를 가지고 위치를 알기 위해 위치 서버에 문의

- 위치 서버는 수신측(UAS)의 위치를 네트워크 서버에 알려줌(DNS 룩업 테이블 참조)

- 네트워크 서버는 위치 서버로부터 받은 위치 정보를 이용해 수신측(UAS)에게 초대 메시지를 발송

- 수신측은 초대 메시지를 받으면 전화벨이 울려 전화가 온 것을 알린다.

 

 

 

  나) Redirect 방식을 통한 연결 방법(Redirect mode)

 

- 송신측에서 수신측을 초대하기 위해 네트워크 서버에 초대 메시지를 발송

- 네트워크 서버에서는 수신측의 주소를 가지고 위치를 알기 위해 위치 서버에 문의

- 위치 서버는 수신측의 위치를 네트워크 서버에 알려줌

- 위치 서버로부터 받은 위치 정보를 보고 송신측에게 수신측의 위치를 알려줌

- 송신측은 수신측 정보를 받고 네트워크 서버에 ACK 확인 응답을 보냄

- 송신측은 이동된 곳의 위치로 초대 메시지를 발송

- 수신측은 200 OK 메시지를 이용하여 응답

 

 

4. SIP 호 설정 방법

 

Proxy 서버를 통해 호 설정을 할 것인지 아니면 직접 상대방에게 호 설정을 시도할 것인지를 결정한 후, 만약 상대방의 주소를 알고 있고 직접 상대방에게 호 설정을 할 수 있으면 직접 호 설정을 하게되고 Proxy를 통해 이루어질 경우에는 DNS 룩업 테이블을 참고하여 상대방의 주소를 알아내고 호 설정을 하게 된다.

 

요청 반응 프로토콜을 이용하여 상대방의 주소를 찾아 호를 설정하는 방법이다. 요청 메시지는 TCP나 UDP를 사용하여 미리 정해진 잘 알려진 포트 번호를 이용하여 전달된다. 클라이언트 사용자 에이전트는 네트워크망을 살펴보는 도중에 위에서 정의된 잘 알려진 포트로 메시지가 수신되면 반응 메시지를 보내 전화나 화상회의에 참가하게 된다. 만약 받은 메시지나 보낸 메시지가 UA나 서버에 의해 문제점이 발생되면 ICMP 메시지에 포트 도달 불가 메시지를 전송하여 문제가 발생했다는 것을 알려준다.

 

 

 

5. SIP 메시지

 

SIP의 모든 메시지는 텍스트 기반이며 메시지를 전달할 때에는 TCP나 UDP를 사용하여 여러 개의 메시지가 하나의 TCP 세그먼트나 UDP 데이터 그램에 의해 보내진다. SIP의 데이터의 크기는 MTU를 알고 있는 네트워크에 대해서는 MTU의 값을 넘지 않는 한도에서 데이터를 보내고, MTU를 알 수 없는 네트워크에 대해서는 1Kbyte 이하의 데이터를 보낼 수 있도록 정의되어 있다.

 

 

 

  가) 메시지 포맷

 

  Methods, Header, Blank line, Message body(clear SDP, encryted SDP) 로 구성되어 있음.

  1. Methods : 메시지의 시작을 나타내며, 종류·요청ID·SIP 버전을 표기
  2. Header: 지나가는 노드의 주소(Path), 송수신자의 주소, 같은 주소에 몇 번이나 연결이 되었나를 나태는 순서 번호와 TTL로 이루어져 있다. 헤더에 포함된 path 값은 네트워크 안에서 정의하기 위해서는 메시지 전달과정에서 메시지 수정이 가능해야 하며, 이것은 메시지에 대한 보안 문제를 발생시킨다.
  3. Blank line: 헤더와 메시지 바디의 경계를 표시
  4. Message body: 내용을 전달하는 곳

 

  나) 메시지의 종류

   

메 시 지 종 류

응 답 값

기 능

INVITE

1xx

Informational

ACK

2xx

Success

BYE

3xx

Redirection

CANCEL

4xx

Client Error

REGISTER

5xx

Server Error

OPTION

6xx

Gloval Error

 

 

  다) 메시지 예

 

INVITE 128.16.64.19/12345 SIP/2.0

 

Path: IN IP4 UDP 144.143.125.123 1 16

Path: IN IP4 UDP 134.123.123.12 1

Path: IN IP4 UDP 123.124.123.12

From:test@inie.site

TO:server@inie.site

Content-type:meta/sdp

 

BLANK LINE

 

v=0

o=user1 3219091 9013248 IN IP4 192.168.0.23

s=Mbone Audio

I=Discussion of Mbone Engineering Issues

e=mbone@somewhere.com

c=IN IP4 123.155.12.1/123

t=0 0

m=audio 2345 RTP/AVP 0