brunch

You can make anything
by writing

C.S.Lewis

by 라인하트 Dec 10. 2018

4장. VoIP 시그널링의 이해

1. 시그널링의 이해

시그널링 (Signaling, 신호 교환)은 호의 접속과 해제 또는 호의 제어 및 관리에 관련된 정보의 교환하는 과정입니다. 예를 들면, 발신자가 '웅'하는 다이얼톤을 들은 후 '010-1234-5678'라는 전화번호를 다이얼 하면 링백톤을 듣게 됩니다. 수신자는 전화벨 소리를 듣게 되고 수화기를 듭니다. 발신자와 수신자가 서로 "여보세요"라고 하면서 대화가 시작됩니다. 시그널링은 발신자가 전화번호를 누르기 시작해서 상대방인 수신자가 수화기를 들 때까지의 과정입니다.  


인터넷과 IP망에서 사용된느 시그널링은 세 가지 역할을 수행합니다.       


주소 번역 (Address Translation)
IP망에서 10.10.10.1과 같은 32비트의 IP 주소 체계를 사용하지만, 전화망에서는 02-1234-5678과 같은 E.164 주소 체계를 사용합니다. 사람들은 전화번호 체계에는 익숙하지만 IP주소 체계는 알지 못합니다. 따라서, 서로 다른 주소체계인 전화번호와 IP 주소 간의 매핑을 위한 데이터베이스가 필요합니다. 시그널링은 수신자의 전화번호를 누르면 수신자의 IP 주소를 획득하여 연결시켜 줍니다.   

코덱 협상 (Capability Negotiation)
시그널링 과정에서 실제 전달할 음성을 어떤 방식으로 압축해서 보낼지를 결정합니다. G.711, G.729, G.723, G.722 등의 코덱 가운데 적당한 코덱을 선택하는 작업입니다. 기존의 PSTN 전화망은 회선 교환 이므로 한 채널은 64 Kbps가 확보되어 G.711 코덱만을 사용하지만, IP 네트워크는 패킷 교환이므로 네트워크의 대역폭의 상황에 따라 적절한 코덱을 사용합니다.  

정책 결정 (Call Admission Control)
전화번호를 누른다고 무조건 전화를 연결하는 것이 아니라 허가받은 사용자인지 또는 상대방은 전화를 받을 수 있는 권한이 있는지 등에 대한 정책을 결정합니다. 예를 들면, 일반 방문객들이 사용하는 전화기는 사내의 사무실로만 전화할 수 있도록 하거나 해외업무 파트가 아닌 직원들의 전화기는 국제통화를 하지 못하게 설정할 수 있습니다. 



<그림 4-1> 시그널링


IP 망에서 시그널링이 완료된 후에 실제 음성을 전달하기 위한 프로토콜은 RTP (Real-time Transport Protocol)입니다. RTP는 실시간으로 음성을 송수신하기 위한 전송 계층 통신 규약으로 IETF의 RFC 1889로 정의되었나 2003년 RFC 3550으로 변경되었습니다. 또한, RTP의 원활한 소통을 위해 RTCP (Real-time Transport Control Protocol)와 함께 사용할 수 있습니다. RTCP는 송신 측은 타임스탬프를 근거로 재생 간에 동기를 취해 지연이 생기지 않도록 하며 수신 측에서는 전송 지연이나 대역폭을 등을 점검, RTCP를 사용해서 송신 측의 애플리케이션에 통지할 수 있습니다. 



2. VoIP 프로토콜의 역사 : SIP와 H.323 

1990년대 초 인터넷이나 IP 망을 통해 음성이나 영상 전송에 대한 필요성이 대두되었습니다. 1996년 품질보장 (QoS, Quality of Service)이 되지 않는 LAN 환경에서 멀티미디어 통신을 지원하기 위해 H.323 Version 1이 표준화되었습니다. H.323은 급하게 표준화되면서 많은 문제점을 드러냈습니다. 


대규모의 사용자 지원의 어려움

대형 VoIP 네트워크 구성의 한계점

기존의 아날로그 PBX가 지원하던 전화 부가기능의 지원 미흡 

복잡한 프로토콜 구조   


H.323 표준을 제정한 ITU (국제 전기 통신 연합, International Telecommunication Union)는 주로 물리 및 데이터링크 계층에 관련된 표준을 주로 제정하는 기구입니다. H.323 프로토콜의 단점을 보다 보면, ITU가 IP 계층에 대한 이해가 부족한 기관으로 기존 PSTN 네트워크의 아키택쳐를 그대로 모방한 것을 알 수 있습니다. H.323의 시그널링 과정과 메시지는 ISDN Q,931과 거의 유사합니다.   


<그림 4-2> Q.931과 H.323 시그널링 비교


ITU는 H.323 프로토콜의 초기 버전에 문제점들을 보완하기 위해 1998년 H.323 Version 2를 표준화하면서 복잡한 시그널링 과정을 단순화할 수 있는 Fast Connection (Fast start) 프로시저와 부가서비스를 추가하였습니다.  


ITU와 달리 IETF (인터넷 국제 표준화 기구, Internet Engineering Task Force)는 IP 네트워크를 다루는 기구로 H.323의 문제점을 극복하기 위해 SIP를 1999년 급하게 표준화합니다. SIP는 클라이언트/서버 기반 프로토콜로 뛰어난 확장성과 유연성, 그리고 단순한 시그널링을 강조했습니다.  H.323 version 1이 문제가 많았던 만큼이나 SIP도 마찬가지였습니다. 2002년 RFC 3261 SIP: Session Initiation Protocol이 표준화되면서 안정화되었습니다. SIP 3261의 표준화는 H.323 Version 2의 문제점을 극복하고 인터넷 전화 시장을 지배할 것으로 기대를 모았지만, 인터넷 전화 장비 제조 업체들은 기존에 투자한 H.323 장비들이 있었으므로 SIP를 병행 지원하는 것으로 진화하였습니다. 지금도 음성 게이트웨이, IP PBX와 같은 많은 장비들은 SIP와 H.323을 동시에 지원하고 있습니다. 


SIP의 뛰어난 확장성과 유연성은 장점이지만 단점이기도 합니다. 서로 다른 제조사의 장비 연동은 언제나 프로토콜 초창기에는 문제가 있기 마련이지만, SIP는 부가서비스 연동은 고사하고 기본 서비스 연동에도 다양한 문제를 일으켰습니다.  H.323은 엄격히 규격화된 표준 덕분에 개발은 복잡하여도 이기종 장비 간 상호 연동이 비교적 쉽게 되었습니다. SIP는 느슨하고 명확하지 않은 규정 때문에 부가 서비스를 제조사마다 개별적으로 개발하였습니다. 기업들의 요구사항은 PBX이상의 부가 기능을 요구하였지만 표준화는 느렸기 때문입니다. H.323과 SIP 간의 경쟁은 2000년대 후반까지 계속되었으나 각 프로토콜의 장단점을 활용하는 방안으로 귀결되었습니다. H.323은 엄격한 규정 덕에 이기종 장비 간 상호연동이 필요한 부분에 주로 사용되었습니다. SIP는 부가 서비스가 많이 필요한 전화기와 IP PBX 간 연동에 주로 사용하였습니다. 


SIP의 느슨한 규정은 기업이 요구하는 부가서비스의 개발을 용이하게 하였습니다. 제조사마다 방식은 틀리지만 원하는 부가서비스를 빠르게 구현할 수 있었으므로 IP PBX와 IP Phone이 동일 제조사로 묶이는 현상이 발생했습니다. 몇몇 제조사들은 전화기만 만들거나 IP PBX만 만들기도 하였지만, IP PBX와 IP Phone을 동시에 만드는 제조사에 비해 부가 서비스 지원이 느리거나 부족할 수밖에 없습니다. 그래서, 많은 전화 부가 서비스가 필요한 기업용 IP Telephony 시장은 IP PBX와 IP Phone을 같은 제조사 제품으로 선택하였고, 부가 서비스가 필요 없는 가정용 인터넷 전화 시장은 IP Phone과 IP Telephony 제조사는 다르지만 저비용 제품들을 선택하게 되었습니다.  결국 RFC 3261에서 시작한 SIP 지만 제조사별로 상이한 SIP가 됩니다. 


현재는 SIP가 시장에서 광범위하게 사용되다 보니 자연스럽게 트렁크 영역에서도 엔지니어의 관성에 따라 H.323을 선택하지 않는 이상 SIP를 사용합니다. SIP는 이미 VoIP 시장을 지배하는 프로토콜입니다. 그러나 SIP 프로토콜의 구조적 문제로 인해 IP Telephony 서비스를 구현할 때 전화기, IP PBX, Voice Gateway는 동일 제조사의 제품을 사용합니다. SIP가 표준이므로 개별적으로 구입하는 곳은 일반 가정에 서비스하는 통신사업자나 별정 사업자뿐입니다.   



3. VoIP 프로토콜의 역사 : MGCP와 Megaco

MGCP (Media Gateway Control Protocol)와 Megaco (MEdia GAteway COntol)는 Master/ Slave 구조로 Peer to Peer 방식의 H.323이나 SIP와는 근본적으로 다른 시그널링 프로토콜입니다. 프로토콜들의 차이점을 간단하게 짚어보겠습니다. 


 Master / Slave 구조
Master / Slave 구조는 Slave인 게이트웨이 및 단말은 단순 기능만을 수행하고, 호 제어 및 호 라우팅과 같은 지적인 기능은 중앙의 Master가 수행합니다. 중앙의 호제어 장비를 MGC (Media Gateway Controller) 혹은 CA (Call Agent)라고 부릅니다. Voice Gateway는 음성을 패킷으로 패킷을 음성으로 변환하는 DSP (Digital Signal Processor) 칩과 PSTN과 IP 망의 연동 인터페이스만을 가지는 더미(dummy)가 됩니다. 음성 게이트웨이나 단말은 단독으로 호 라우팅을 수행할 수 없습니다. 대표적인 프로토콜은 MGCP, Megaco / H.248입니다. 


Peer to peer 구조
Peet to Peet 구조는 게이트웨이 및 단말이 호 제어 및 호 라우팅과 같은 지능적인 기능을 수행합니다. 대표적인 프로토콜은 H.323과 SIP이며, 중앙에서 호 제어 및 호 라우팅을 수행할 수 있는 SIP Proxy Server 나 H.323 Gatekeeper는 필수 장비가 아닌 옵션 장비입니다. 일반적으로는 관리적인 이유로 필수장비처럼 사용합니다.  


Master/Slave 방식의 MGCP는 1999년 10년 RFC 2705 MGCP (Media Gateway Control Protocol version 1.0)으로 발표되었으며, 2003년 RFC 3435가 나오면서 본격적으로 사용되기 시작했습니다. 이름에서 보듯이 PSTN 연동을 위한 Voice Gateway를 중앙집중식으로 효과적으로 관리하기 위해 개발된 프로토콜로 H.323과 SIP은 망이 거대해질수록 관리가 복잡해지고 과금이나 호 정책의 설정 등의 어려움을 극복하기 위해 만들어졌습니다.  


MGCP도 SIP와 마찬가지로 IETF에 제정하였으므로 프로토콜 구조가 SIP와 매우 흡사합니다.  Voice Gateway가 많은 대기업 및 다국적 기업이나 통신사업자에서 선호하는 프로토콜입니다.  MGCP 아키택쳐의 장점은 RFC 3015 MEGACO (MEdia GEteway COntrol Protocol)로 이어지면서 ITU와 IETF가 함께 표준화합니다. IETF는 MEGACO라 명명하였고, ITU는 H.248로 명명하였지만 같은 프로토콜입니다. MGCP가 음성 중심으로 설계되었지만, MEGACO/ H.248는 음성, 영상 및 데이터까지 포함하여 설계되었습니다.  


현재는 일반 기업에서는 H.323과 SIP를 주로 사용하고, 다수의 음성 게이트웨이를 보유한 통신 사업자가 관리의 편의성을 위해 MGCP를 사용하기도 합니다. 



4. H.323이 복잡한 이유    

업계에서 가장 많이 사용하는 VoIP 프로토콜은 SIP입니다. SIP가 선택된 이유는 H.323이 복잡하고 개발이 어렵기 때문입니다. H.323은 Protocol Suites라고 불리듯이 여러 프로토콜의 조합으로 이루어져 있습니다. 호 제어 및 시그널링을 위한 H.225 Call Control, 단말 등록 및 호 정책을 설정을 위한 H.225 RAS(Registration, Admission, Status), 그리고 부가 서비스 및 Capability Negotiation (코덱 협상)을 위한 H.245, 보안 통신을 위한 H.235로 구성되어 있습니다. H.323 통신을 위해서는 H.225 채널과 H.245 채널을 각각 협상하는 복잡한 프로토콜입니다. 


또한, H.323은 ASN 코드를 이용하므로 설계나 디버깅도 어렵습니다. 아래는 H.323 Setup 메시지의 예입니다.  H.225 Setup 메시지는 SIP이나 MGCP 메시지 비교할 때 암호문이라고 할 수 있습니다.     


Router# debug h225 asn1
H.225 ASN1 Messages debugging is on 
Router# 
value H323-UserInformation ::=  

h323-uu-pdu  
  {
     h323-message-body setup :
        {
         protocolIdentifier { 0 0 8 2250 0 1 },
         sourceAddress
          {
           h323-ID : "ptel213"
         },
         sourceInfo
          {
           terminal
            {
            },
           mc FALSE,
           undefinedNode FALSE 
        },
         destinationAddress
          {
           h323-ID : "ptel23@zone2.com"
         },
         activeMC FALSE,
         conferenceID '5FC8490FB4B9D111BFAF0060B000E945'H,
         conferenceGoal create : NULL,
         callType pointToPoint : NULL,
         sourceCallSignalAddress ipAddress :
            {
             ip '3200000C'H,
             port 1720
           }
       }
   }
 }



5. VoIP 프로토콜 정리 

지금까지 살펴본 H.323, SIP, MGCP를 간단하게 비교합니다.  


<그림 4-3> VoIP 프로토콜 비교


기업용 IP PBX는 Line Side는 SIP를 Trunk Side는 SIP, H.323, MGCP를 사용합니다. 통신 사업자가 사용하는 대용량 소프트스위치는 이외에도 Megaco/H.248, Sigtran 도 지원합니다. 과거에는 VoIP 프로토콜을 무엇으로 선택하느냐에 따라 망구조가 많이 달라지곤 했지만, 현재는 SIP로 모두 통일되었습니다. 특히, Secure IP Telephony를 강조하기 시작하면서 Turnk Side도 SIP으로 통일되었습니다.  




'엔지니어를 위한 인터넷 전화와 SIP의 이해'를 책으로 만들다


https://brunch.co.kr/@linecard/188


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari