VoiP 란?

 

시간과 공간의 제약을 받지 않는 전화 통화방식
기존의 전화방식은 항상 고정된 장소에서 이미 지정된 전화 번호를 가지고 상호 통화를 하는 방식이었다. 그러나 VoIP 기술이 도입되면서 등장한 IP 텔레포니(Telephony) 방식은 사용자가 시간이나 공간에 상관없이 어디서나 자신의 번호를 가지고 통화가 가능하다. 즉, IP주소와 사용자의 정보가 DB화 되어 이를 통하여 상호 연결되므로 가능하게 된 것이다.

 

다양한 부가 서비스(어플리케이션) 개발

음성망과 데이터통신망을 연결함으로써 또한 데이터통신망을 통해 음성을 전달함으로써 새로운 많은 서비스를 개발할 수 있다. 각 망에 고유하게 존재하는 서비스들을 이용하거나 두 망의 특징을 이용해 새로운 서비스를 개발해낼 수 있다. 음성메일이나 콜센타 애플리케이션, 스크린팝, IVR(Interactive Voice Response;대화식 음성 응답) 시스템이 예라 할 수 있다.

 

 

VoIP 시스템

 

<VoIP System Architecture>

 

시스템을 구축하기 위해서는 기본적으로 다음과 같은 구성요소(기능)를 갖추어야 한다.

 

Media Gateway

각 네트워크(PSTN, IP)에서 데이터가 전달되기 위해서는 각 네트워크에서 전달될 수 있는 데이터로 우선 변경한 후에 가능하다. Media Gateway는 멀티미디어 데이터간의 교환작업을 수행하고, 변경한 데이터를 해당 네트워크에 전달하는 기능을 수행한다. 음성, 디지털 데이터간의 교환작업은 여러 가지 음성압축방법(G.711 PCM, G.726 ADPCM, G.728 LD-CELP 등)을 사용하여 이를 수행할 수 있고, IP망에서의 멀티미디어 데이터 전송은 RTP(Real-time Transport Protocol)/RTCP(RTP Control Protocol)와 같은 프로토콜을 통해서 할 수 있다. Media Gateway의 제어는 MGCP(Media Gateway Control Protocol)/ MEGACO(Media Gateway Control)을 통해서 할 수 있다.

 

아래 그림은 미디어 게이트웨이의 동작과정을 보여준다.

 

 

Signaling Gateway

PSTN에서 콜 시그널링은 매우 중요한 기술이다.

기존 PSTN에서 사용되는 콜 시그널링은 CAS(Channel Associated Signaling)CCS(Common Chnnel Signal)로 나뉘는데, CCS에는 ISDN이나 SS7(Signaling System 7)등이, CAS는 MFC-22(E1), 윈크스타트(WinkStart : T1) 등이 해당된다. 그리고 IP네트워크에서는 H.323, SIP, MGCP, MEGACO 등과 같은 프로토콜을 사용하여 콜 시그널링을 수행한다. 시그널링 게이트웨이는 이러한 PSTN와 IP 네트워크에서의 시그널들을 서로 사용할 수 있도록 변환하는 기능을 수행한다.


SS7은 전화망에서 효율적인 트래픽 처리와 진보된 서비스를 제공하기 위해 교환기간 또는 교환기와 부가서비스 장비간의 필요한 정보를 전달하기 위한 프로토콜이다. 현재의 전화망은 보다 다양하고 유용한 서비스를 고객에게 제공하기 위하여 SS7을 기초로 한 지능망(Intelligent Network), 공통선망으로 진화되고 있다.


VoIP에 있어서 IP 네트워크의 일반 사용자가 PSTN의 서비스를 이용하기 위해서는 SS7을 다시 IP로 변환하여야 하는데 이는 대단히 중요한 VoIP 프로토콜 기술 중의 하나이다. 아직까지 표준이 제시된 상태는 아니고 각 업체마다 독자적인 방식으로 프로토콜을 적용하고 있다.


아래는 SS7의 프로토콜구조와 지능망 서비스에 대한 것을 보여준다.

 

<Intelligence Network>

 

<Intelligence Network>

 

Addressing/Naming & Routing
PSTN에서는 E.164 주소체계를 사용하고, 일반 IP 네트워크에서는 IPv4, IPv6 등의 주소 쳬계를 사용한다. 네트워크 요소를 고유하게 구별할 수 방법이 요구된다. 콜 설정을 하기 위해서 시그널이 해당 목적지로 도달하도록 하는 라우팅 기술도 필요하다. H.323에서는 Gatekeeper에서 이를 수행하고, IETF에서는 ENUM, TRIP과 같은 프로토콜을 제시하고 있다.

 

QoS(Quality of Service) 보장

IP Telephony에서 중요하게 다루어야 하는 기술중의 하나가 QoS 를 보장하는 방법이다. 아직까지 인터넷 텔레포니가 기존 전화를 대체하지 못하는 중요한 이유중의 하나가 통화 품질이 좋지 않다는 것이다. PSTN의 경우 설정된 콜 연결이 자원을 할당 받은 후에 이루어지지만, IP 기반의 인터넷의 경우는 Best Effort 데이터 전송 방식을 제공하기 때문에 서비스의 고품질을 보장하지 못하는 것이다.


QoS 보장은 일반적으로 다음 두 가지로 구분될 수 있다. 첫째는 응용의 QoS 요구에 따라 인터넷 망에서 양단간의 경로에 자원을 예약하는 방법이 있다. 둘째는 IP 데이터그램의 우선순위를 이용하는 것이다. 일반 인터넷 망에서 이러한 작업은 힘들지만 ATM과 같은 경우은 대역폭 관리 정책에 따라 망 트래픽을 분류하고 분배할 수 있다.


RSVP(ReSource reserVation Protocol)는 IETF 시그널링 프로토콜의 하나로 Flow는 End-to-End(양단간)까지 시그널링에 의해 정적 대역폭을 할당받는다. 기본적으로 Queue 공간을 예약하는 방법을 사용한다.


아래 그림은 RSVP의 동작과정을 보여준다.

 

<RSVP Operation>

 

다음은 IP datagram의 TOS 필드를 이용한 우선순위 방법이다. 아래 그림은 IP 네트워크에서 사용되는 Layer 2, Layer 3 의 메시지 형식이다.

 

 

<TOS field>

 

그림에서 볼 수 있듯이 Layer 3의 데이터그램 메시지는 TOS(Type Of Service)라는 필드를 가지고 있다. 서비스 타입을 정의하는 역할을 수행하는 필드이지만 실제 인터넷 망에서는 이 필드를 사용하지 않고, 만약 특정 관리 네트워크(예, ATM)에서 트래픽 관리 정책에 이 필드를 사용한다면 QoS를 보장할 수 있다. 하지만 트래픽이 특정 도메인이나 carrier boundary 안에서만 존재해야 하며, 방법 또한 복잡하고 비용이 비싸다는 단점이 있다.

 

QoS를 보장하기 위해 한가지 더 고려해야 할 점이 Fragmentation 이다.

IP 네트워크에서 사용되는 일반적인 응용들의 패킷은 음성 패킷보다 상대적으로 큰 바이트수를 가진다. (FTP의 경우 1000 바이트이상이지만, 음성의 경우 20 바이트이다.) 즉, Burst한 LAN 트래픽 발생시 음성 패킷의 지연을 초래하게 된다. Congestion 예상 지역에 Fragmentation을 적용하여 지연을 줄여 QoS를 보장할 수 있다.

 

 

VoIP 시스템 구현

VoIP 관련 표준화 기구는 ITU, IETF, ETSI가 있다.


ITU(Internet Telecommunication Union)의 SG(Study Group) 16에서는 멀티미디어 단말과 보안에 관하여 연구하고 있으며, H.323 프로토콜을 이용한 VoIP 시스템 구현 방법을 제시하고 있다.


IETF(Internet Engineering Task Force)에서는 웹 서비스와 PSTN/ISDN의 상호 연동에 관해서 연구하고, VoIP 관련 WG(Working Group)으로는 SIP(Session Initiation Protcol;SIP-시그널링 프로토콜), MMUSIC, IPTEL(IPTelephony), PINT(PSTN-Internet service), IMPP(Instant Messaging and Presence Protocol), SIGTRAN(Telephony signaling transport), ENUM(Telephone Number Resolution)등이 있다. 그리고 IETF는 SIP을 이용한 VoIP 시스템 구현에 힘쓰고 있다.


ETSI(European Te lecomm. Standards Institute)는 TIPHON(Telephony and IP Harmonization Over Networks)과 SPS5(UNI/NNI signaling aspects)를 제시하고 있다.

 

H.323

H.323은 하나의 단순한 프로토콜이 아니다. H.323은 ITU의 여러 프로토콜을 이용하여 VoIP 시스템을 구성하는 방법에 대해 기술한 것이다. 실제 시그널링 변환, 미디어 전송, 콜 설정 등의 작업은 ITU의 여러 프로토콜에 의해서 이루어진다. 콜 설정에 대한 작업을 수행하기 위해서는 H.225.0, capability/media 제어를 위해서는 H.245, 음성, 화상 미디어 전송을 위해서는 RTP/RTCP을 사용하고, 데이터 전송에는 T.12X를 사용한다.


각각의 미디어에 대해서도 세분화된 프로토콜을 사용하는데, Audio의 경우는 ITU에서 이미 제시한 G.711, G.729등과 같은 G.7xx 프로토콜 등과 또 다른 표준(예, GSM)과 기타 코더를 사용하며, 비디오 스트림에 대해서는 H.261, H.263과 같은 G.26x 프로토콜을 사용한다. 그리고 일반 데이터의 경우는 T.12x 프로토콜을 사용하며, Fax의 경우는 T.38 프로토콜을 사용한다.


아래 그림은 H.323 시스템을 간단히 보여준다.

<H.323 Network Architecture>

 

다음 그램은 H.323 의 프로토콜 스택을 나타낸 것이다.

<H.323 Protocol Stack>

 

H.323 시스템은 크게 Terminal, Gatekeeper, Gateway, MCU로 구분해 볼 수 있다.

 

Terminal

실제 사용자에 의해서 사용되는 장치로서 일반 전화, 팩스, 멀티미디어 장비(마이크로폰, 스피커, 카메라 등)를 갖춘 PC가 이에 해당한다.


Gatekeeper
Gatekeeper는 최소한 E.164와 IP 주소간의 주소 변환, 리다이렉션 작업과 콜에 대한 인증 작업을 수행한다. 그리고 추가적으로 콜 시그널링, Element와 bandwidth 관리, 콜 Management/Reporting/Logging 작업을 수행한다. H.323의 필수 구성요소는 아니지만 일반 사용자 터미널은 반드시 Gatekeeper와 상호동작하여 콜 설정을 해야 한다.


Gateway
Gateway는 서로 다른 네트워크(IP network, PSTN, ISDN, ATM 등)간의 상호 동작할 수 있도록 해주는데, 논리적인 두 endpoint 간의 Encoding, protocol, call control을 서로 맵핑(mapping)시켜주는 일을 한다.


MCU(Multipoint Control Unit)
MCU는 멀티포인트(즉, 멀티파티)를 제어하는 개체이다. 한 Conference에 속한 각 터미널들의 미디어 전송 방식(unicast, multicast, hybrid), H.245를 이용한 conference 관리(join, invite, conference mode 제어), 일반 conference 모드 설정(공통의 미디어 스트림 설정, 오디오 변환)등의 작업을 수행한다.


RAS(Terminal to Gatekeeper Signaling)
RAS는 terminal과 gatekeeper 사이에서 다음과 같은 기능을 수행한다.
Discovery/Registration(gatekeeper를 찾고, physical, alias 주소간의 맵핑을 수행한다), Admission(특정 call이 필요한 bandwidth를 할당 받도록 요청한다), Bandw idth Changes(bandwidth가 더 필요할 때 이를 더 요청할 수 있도록 한다), Status(콜 상태를 report 한다), Disengage(연결 종료(disconnect)를 report 하고 bandwidth를 release 한다) 등의 작업을 수행한다.

 

<H.323 Call Model>

 

<H.323 Protocol & Call Setup>

 

 

SIP(Session Initiation Protocol)

SIP는 종단간(end-to-end)의 멀티미디어 세션을 생성, 수정, 해제하는 응용 계층의 제어(시그널링) 프로토콜로, 여기서 멀티미디어 세션은 multimedia conference, internet telephone call, multimedia application 등이 될 수 있다. 한가지 중요하게 알아두어야 할 것은 SIP은 H.323과 같이 여러 프로토콜들의 조합으로 VoIP 서비스를 한꺼번에 수행하는 프로토콜이 아니라 단순하게 세션 설정만을 다루는 프로토콜이라는 점이다. 이는 SIP이 간단하면서도 여러 다른 프로토콜들과 함께 사용될 수 있는 확장성을 가지고 있다는 것을 말해준다.

 

- 구성요소/기능

 

SIP 요소

SIP을 이루는 구성요소는 크게 user agent 와 network server 로 나뉜다.

User agent 는 다시 user agent client(UAC: calling user agent)와 user agent server(UAS: called user agent) 로 나뉘는데, 전자는 세션에 참여 시키고자 하는 상대방에게 request를 보내는 역할을 하고, 후자는 SIP request에 대한 적절한 response를 반환하는 역할을 한다. Network server는 proxy server와 redirect server 로 나뉘는데, 전자는 caller와 callee 사이의 SIP Message들을 forwarding하고, 후자는 caller의 INVITE request (세션설정(참여)를 요청하는 SIP 메시지)를 받고 callee에 대한 정보를 다시 caller에게 전달하는 역할을 한다. 이외에도 사용자의 위치(location) 정보를 저장하고 있는 location server가 있다.

 

주소지정 방식/라우팅
SIP에서는 각 사용자마다 고유한 SIP URI(주소)를 부여한다. 형식은 간단히 sip:user@host으로 표현할 수 있다. “sip:”은 이 주소가 sip 프로토콜에서 사용하는 주소임을 알려주고, user는 사용자의 이름, host 는 해당 터미널의 주소를 표현할 수 있는데 여기에는 PC, 네트워크 서버 등의 IP주소나 도메인명, 전화번호, 팩스번호 등을 사용할 수 있다. SIP은 IP 프로토콜이기 때문에 PSTN의 전화, 팩스와 같은 장치를 구별하거나 라우팅하는 방법이 필요한다. IETF는 이를 위해 ENUM(Telephone Number Resolution)과 TRIP(Telephony Routing over IP)을 제안하고 있다.


ENUM은 IETF ENUM WG에서 연구가 진행중이고, E.164 전화 번호를 인터넷 DNS에서 구별지을 수 있도록 변환하는 역할을 수행한다. 예를 들어 전화번호 1-212-691-8215를 DNS entry 5.1.2.8.1.9.6.2.1.2.1.e164.foo와 같은 방식으로 변환할 수 있다.


TRIP은 IPTEL WG(IP Telephony Working Group)에서 연구가 진행중이고, BGP(Border Gateway Protocol)기반의 전화번호를 통한 라우팅을 가능하게 하는 역할을 수행한다.


메시지 1 – Request
SIP의 메시지 전달과정이나 형식은 HTTP의 메시지 형식을 응용하였다.
SIP이 확장되어 오면서 몇 가지 request 메소드들이 추가되었지만, 기본적인 메소드는 다음 6가지이다.
INVITE : call 설정 요청을 한다.
ACK : INVITE 요청에 대해서 서버로부터 final response를 받았을 때 이에 대한 Acknowledge(ACK)를 한다.
BYE : call을 Release한다.
CANCEL : pending request(아래에서 기술될 SIP 네트워크 구성요소 중 proxy server는 해당 INVITE 요청을 가능한 여러 목적지로 request 를 fork하여 forwarding한다. 이때 이러한 request 들을 pending request 라 한다.)를 Cancel 한다. BYE와 구별되어야 하는 점은 CANCEL은 단순히 request 를 cancel하는 것이고 BYE는 세션 자체를 종료하는 것이다.
OPTIONS : capability에 대한 정보를 요구한다.
REGISTER : SIP location server에 사용자 자신의 위치(location) 정보를 알려준다.
이외에도 INFO, COMET, PRACK, SUBSCRIBE, NOTIFY등의 메시지가 있다.


메시지 2 – Response
Response 는 HTTP에서와 같이 클래스에 특정 의미를 지니고 있는 다음 6가지 class를 가지고 있다. 그리고 각 클래스는 Provisional과 Final의 두 가지 상태로 구분될 수 있는데, Provisional Response는 세션 설정을 하는 동안 필요한 정보를 전달하기 위한 response 이고 Final Response는 세션 설정의 제일 마지막에 성공/실패 등을 알려주기 위한 response이다.

 

<SIP Response>

 

메시지 전송 프로토콜
SIP 자체가 응용계층 프로토콜이기 때문에 메시지를 전송하기 위해 TCP와 UDP, 그리고 SCTP(Stream Control Transmission Protocol)을 사용할 수 있다. 그렇지만 일반적으로 SIP 메시지들은 대부분 UDP를 사용하여 전달하고 SIP의 REGISTER 메소드와 같이 전송할 데이터의 양이 많은 경우에는 TCP를 사용할 수도 있다.

 

SDP(Session Description Protocol) 사용
SDP는 세션을 기술하는 프로토콜이다. SDP는 기본적으로 세션 이름과 목적, 세션이 active되어 있는 시간, 세션에 사용될 미디어정보, 미디어를 전송하기 위해 필요한 정보(주소, 포트, 포맷등)을 포함하고, 추가적으로 conference에 의해 사용될 bandwidth에 대한 정보를 포함한다. 앞서 언급했듯이 SIP은 단순한 세션 설정 프로토콜일 뿐, 세션 자체에 대한 어떠한 동작도 하지 않는다. SIP은 세션 설정 후에 양쪽 endpoint에서 실제 데이터를 주고받는 방법을 명시하기 위해 SDP를 사용한다.


아래 그림은 SDP의 예를 보여준다.

 

 

위 SDP 예에서는 audio와 video에 대한 세션 정보를 기술하고 있다. 예에서는 음성, 비디오 압축 기술에 PCUM, G723, H.263등의 프로토콜을 사용하고 미디어 데이터 전송에는 RTP를 사용하고 있음을 볼 수 있다. 이외에도 양단간의 터미널의 종류와 기능에 따라 다른 여러 가지 압축 기술과 미디어 전송프로토콜들(RTSP, RTP, RTCP)을 사용할 수 있다.

 

- 동작

 

Registration
Registration은 사용자가 자신의 위치(location) 정보를 location server에게 알려주는 작업이다. REGISTER 메소드에 자신의 정보를 포함시켜 location 서버로 보냄으로써 이를 수행할 수 있다.

 

아래 그림은 사무실에 있는 전화, PC 집에 있는 PC를 Location Server에 등록하는 과정이다. 각 장치들은 Location server의 DB에 저장되고 proxy, redirect 시에 DB에 저장된 사용자의 정보를 이용함으로써 올바른 세션 설정을 할 수 있다.

 

<Registration Operation>

 

Proxy

SIP 네트워크 서버에서는 UAC로부터 INVITE 메시지(세션 연결 요청)를 받고 call processing 정책에 따라 이를 proxy할 것인지 redirect할 것인지를 결정한다. Proxy server로써의 역할을 수행할 경우는 해당 request 를 가능한 사용자의 장치들(UAS)에게 forwarding하고 UAS로부터의 응답을 대신 UAC로 전달해주는,즉 대리자,의 역할을 수행한다. 아래 그림은 proxy 동작과정을 보여준다.

 

<Proxy Operation>

 

Redirect
Redirect server로써의 역할을 수행할 경우, callee(요청받은 사용자)에 대한 적절한 정보(예, 주소)를 caller(요청한 사용자, UAC)에게 전달해주어 caller가 다시 INVITE 요청(세션 요청)을 수행하도록 하게 한다.

 

<Proxy Operation>

 

- SIP을 이용한 VoIP 시스템 구현

 

SIP은 단지 시그널링 프로토콜이기 때문에 VoIP 나타내 보면 아래 그림과 같이 나타낼 수 있다.

 

 

 

 

세션 설정을 위해서는 SIP 프로토콜을 사용하고 세션 설정이 이루어진 후에는 RTP/RTCP 등과 같은 미디어 전송프로토콜을 사용하여 통신을 할 수 있다.

 

- SIP 확장

 

SIP은 시그널링 프로토콜이면서 또한 확장성을 갖추고 있어서 기본적인 세션설정서비스 이외에도 다른 서비스들을 위해 확장되어 사용되고 있다. IETF의 IMPP WG에서는 Presence & Instant Messaging 시스템을 구축하는데 SIP을 확장하여 사용하고, IETF의 PINT에서도 SIP을 시그널링 프로토콜로서 사용하는 방법을 제시하고 있다. 더욱이 근래에는 Mobile 네트워크 환경에서 terminal, service mobility를 지원하기 위해 SIP을 사용하는 방법들이 제시되고 있다.

 

 

H.323과 SIP

네가지 관점에서 H.323과 SIP을 비교해보자.

 

첫째, 복잡성(Complexity)
H.323은 여러 프로토콜들간의 상호 동작을 통해 만들어졌기 때문에 많은 헤더를 가지고 있으며 디버깅과 개발이 어렵다. 반면 SIP은 단순한 시그널링 프로토콜로써 단지 몇 가지 헤더만을 포함하는 텍스트 기반의 메시지를 주고 받기 때문에 디버깅이 쉽다.


둘째, 프로토콜 확장성(Extensibility)
H.323에서 프로토콜을 확장하기 위해서는 nonstandardParam에 원하는 정보를 추가함으로써 가능하다. 하지만 기존에 존재하는 parameter에 대해서는 수정할 수 없고, 서로 다른 제조회사에서 이러한 확장이 모두 적용된다는 보장을 할 수 없다. 반면 SIP은 텍스트 기반의 메시지 방식이기 때문에 쉽게 그 의미를 파악할 수 있고, 또한 새로운 헤더, 메소드, parameter, 메시지 body의 추가, 변경할 수 있는 방식을 제공하기 때문에 Extensibility가 뛰어나다.

 

셋째, 시스템 확장성(Scalability)
H.323은 초기 설계 기반이 LAN에 국한되었으므로,zone 개념, 아직까지 zone을 통과하는 데이터에 대해서는 명확한 정의가 이루어지지 않고 있다. 또한 하나의 call이 설정되어 있는 동안 서버가 call의 상태를 계속 유지 시켜주어야 하기 때문에 사용자가 많아질수록 서버의 부담이 증가한다. 그리고 multipart call control을 담당하는 MC(Multipoint Controller) 또한 사용자가 많아질수록 처리 부담이 커지게 된다. 반면, SIP은 기반 자체가 IP 이며, stateless proxy(콜의 상태정보를 유지하지 않는 proxy 서버)를 사용할 수 있기 때문에 사용자가 많아져도 서버의 부담이 급격하게 증가하지 않고, multipart call control을 위해 어떠한 중앙 제어가 필요 없다.

 

넷째, 서비스
H.323은 여러 프로토콜의 연동을 통해서 이루어지기 때문에, 각 프로토콜의 기능을 이용할 수 있다. 즉, 자체적으로 여러가지 많은 서비스를 가지고 있다. 그러나 SIP의 경우는 단순한 시그널링 프로토콜에 불과하기 때문에 세션을 제어할 수 있는 능력이 없고 다른 프토로콜들(예, SDP)을 사용해야 한다.

 

결론
지금까지 VoIP의 개념과 시스템, 두 가지 중요한 시그널링 프로토콜(SIP,H.323)에 대해서 알아보았다. VoIP는 비용절감 뿐만 아니라 더욱 중요하게 부가서비스 창출이라는 장점을 지니고 있기 때문에 급속한 발전이 기대된다.


+ Recent posts