Nexpert SIP 2 - Overview

From 탱이의 잡동사니
Revision as of 10:57, 20 February 2018 by Pchero (talk | contribs)
Jump to navigation Jump to search

Overview

Nexpert 다시쓰는 SIP 의 이해 내용 정리.

SIP

2000 년대 초반에 H.323 의 단점을 극복하기 위한 아키텍쳐로 만들어진 SIP 는 차세대 VoIP 표준 프로토콜로 각광을 받았다. 엔지니어들과 개발자들의 예상보다는 SIP 가 폭넓게 사용되는데 많은 시간이 들었지만, 현재 가장 많이 사용하는 VoIP 프로토콜은 SIP 이다.

SIP는 모든 VoIP 장비에서 사용되는 프로토콜이므로 SIP 을 공부하면 VoIP 의 거의 모든 기술과 맥락을 이해할 수 있다. 이 장에서는 입문자들도 쉽게 읽을 수 있는 SIP 에 대한 기본적인 내용과 주요 컴포넌트에 대해 다룬다.

SIP 의 정의

SIP는 Session Initiation Protocol 의 약자로 응용 계층의 시그널링을 담당하는 프로토콜이다. SIP 의 이름을 그대로 번역을 하면 "세션 설정 프로토콜"이다. RFC 3261 권고안에 따르면, SIP 하나 또는 그 이상의 참가자와 멀티미디어 세션의 생성, 변경, 종료에 대한 응용 계층의 프로토콜로 정의한다. SIP 에서 정의한 세션은 다음과 같다.

  • Internet multimedia conference(다자간 회의)
  • Internet telephone calls(음성 전화)
  • Internet video sessions(영상 전화)
  • Multimedia distribution(멀티미디어 분배)
  • Subscriptions and Notifications for Events(이벤트 신청 및 통지)
  • Publications of State(상태 정보 배포)

인터넷에서 세션은 폭넓은 의미로 사용되지만, SIP 에서는 전화를 걸고 받기 위한 전화번호와 같은 정보를 송수신 하는 것을 의미한다.

SIP 패킷 구조

SIP 메시지를 송수신하는 패킷의 구조를 알면 SIP 의 특징을 이해할 수 있다. SIP 의 패킷 구조는 다음과 같다.

Sip packet.png

SIP 메시지는 텍스트 기반의 가변 길이로 구성되며 크게 SIP 헤더와 메시지 바디로 나뉜다. 헤더는 편지의 봉투와 같은 내용을 담고 있으며 뒤에 올 메시지 바디의 종류를 표시한다. 주로 메시지 바디에 필요한 구체적인 사항들이 기술되며 옵션 필드가 있다.

SIP 가 사용하는 전송 프로토콜(Transport Layer)은 TCP(Transport Control Protocol) 또는 UDP(User Data Protocol)이다. 위의 그림에서처럼 일반적인 상황에서는 UDP 를 주로 사용하지만, 현재는 Secure IPT 나 특정 상황에서 TCP 를 많이 사용하며, 사용하는 포트는 SIP 5060 과 5061 포트를 이용한다.

SIP 컴포넌트

SIP 프로토콜이 멀티미디어 통신을 위한 호를 생성 및 종료하기 위해서는 다음의 5가지 기능(Functionality)이 필요하다.

  • User Location : 통신에 참가할 단말을 결정.
  • User Availability : 통신에 참여할 착신측의 통화 가능 여부 결정.
  • user Capabilities : 통신간에 사용될 미디어 및 미디어 파라미터 결정.
  • Session Setup : 착신측 및 송신측의 세션 파라미터 설정.
  • Session Management : 세션의 종료 및 전환, 세션 파라미터 변경, 부가 서비스 연동.

이 기능들은 SIP 컴포넌트에서 직접 구현된다.