'프로토콜'에 해당되는 글 1건

  1. 2008.09.18 | 2. VoIP 기술① : 프로토콜

2. VoIP 기술① : 프로토콜

개발 이야기/VoIP | 2008. 9. 18. 13:20
Posted by 시반
실시간 통신 시스템 위한 VoIP 표준 프로토콜 H.323과 SIP
새로운 부가서비스 제공 유리 SIP’ … 상호 운용 솔루션 출시 눈앞

 
 

지난 호에서는 이전의 음성통신망인 PSTN에 대해 살펴봤다. PSTN은 음성통신 서비스에 특화된 네트워크기 때문에 프로토콜 구조가 간단하며, 효율적으로 구성돼 있다. 그러나 인터넷을 위시한 패킷 네트워크는 파일전송 및 기타 실시간 통신을 목적으로 한 네트워크가 아니기 때문에 VoIP 등의 실시간 통신 시스템에는 여러 가지 특별한 프로토콜 및 기술들이 필요하다. 이번 호에서는 VoIP 시스템의 주요 프로토콜인 H.323과 SIP를 중심으로 VoIP 기술을 상세히 알아본다. <편집자>


현재 VoIP 시스템에서 가장 표준화된 프로토콜은 IETF(Internet Engineering Task Force)에서 발표한 SIP(Session Initiation Protocol)와 ITU-T(International Telecommunication Union-Telecommunication standardization sector)에서 제정한 H.323이다. 대부분의 VoIP 장비 판매업체 및 시스템 관련 산업은 두 가지 프로토콜을 모두 지원한다.
그러나 지난 2005년 7월 IETF에서 SIP와 H.323 프로토콜의 상호연동에 필요한 기술문서인 RFC(Request For Comments) 4123 SIP-H.323 Req.를 제정함에 따라, RFC 4123 초안에 근거해 상호연동이 가능한 제품이 근 시일내에 등장할 전망이다.

1. H.323
1) 개요
H.323은 인터넷을 포함한 패킷 네트워크에서 실시간 음성, 영상 및 데이터 통신을 위한 프로토콜이다. 최초 버전은 지난 1996년 ITU-T에 의해 승인됐으며, 현재 최종 발표된 H.323 버전은 5다. 가장 먼저 발표된 VoIP 지원 프로토콜로서 현재 가장 많이 사용되고 있는 H.323은 기존 네트워크의 하부구조를 변경하지 않고 멀티미디어 서비스를 사용할 수 있을 뿐 아니라 랜과 GSTN, N-ISDN, B-ISDN 등 다른 망과의 상호운용성에 대한 표준을 제공한다.

2) 구성 요소
H.323 시스템의 구성요소로는 단말(Terminal), 게이트웨이(Gateway), 게이트키퍼(Gatekeeper), MCU(Multipoint Control Unit)가 있다.
단말은 H.323 네트워크 내에서 이뤄지는 통신의 종단점이다. PC 및 H.323 단말기 등과 더불어 게이트웨이 MCU도 단말에 속한다. 게이트웨이는 H.323 프로토콜을 운용하는 네트워크와 H.323을 운용하지 않은 네트워크의 상호 정보교환 및 연동을 담당한다. 따라서 동일한 H.323 네트워크 내에서 H.323 단말들끼리의 통신에는 게이트웨이가 필요하지 않다.
게이트 키퍼는 단말, 게이트웨이, MCU 중 등록된 종단점에 대한 콜 컨트롤(call control)과 관련된 서비스를 제공하는 일종의 교환기다. H.323 네트워크 내에서는 선택적 구성요소로서 게이트키퍼가 있을 경우 모든 단말은 콜 제어와 관련해 게이트키퍼를 사용해야 하지만, 없을 경우에는 단말끼리의 통신으로 대체된다.
MCU는 3개 이상의 단말에 대한 다수통신을 가능하게 하는 기능을 수행한다. 다수 통신에 참여하는 모든 단말은 MCU와 연결을 설정해야 한다.

3) 프로토콜 구조
H.323을 구성하는 프로토콜로는 오디오 코덱, 비디오 코덱, H.225 RAS(Registration, Admission, Status) 프로토콜, H.225 콜 시그널링 프로토콜, H.245 콜 제어 프로토콜, RTP(Real-Time Transport Protocol), RTCP(Real-Time Transport Control Protocol) 등으로 구성된다.
4) 통신 과정
H.323을 이용한 1:1 통신은 크게 3가지의 방식으로 나뉜다. 첫 번째는 다이렉트 라우티드콜 시그널링(Direct Routed Call Signaling) 방식이다. 이 방식은 Q.931 및 H.245 메시지들을 게이트키퍼를 경유하지 않고 통신 당사자들만 직접 주고받는다. 두 번째는 게이트키퍼 라우티드 콜 시그널링(Gatekeeper Routed Call Signaling) 방식으로 Q.931, H.245 메시지들이 게이트키퍼를 경유해 주고받는다.
마지막으로는 게이트키퍼 라우티드 콜 시그널링 위드 다이렉트 H.245(Gatekeeper Routed Call Signaling with Direct H.245)는 게이트 키퍼는 콜 시그널링에 관여하고 H.245 메시지들만 통신 당사자들끼리 직접 주고받는 방식으로 가장 널리 사용된다.


1. 단말 1이 등록을 위해 RAS ARQ(Admission ReQuest)를 RAS 채널을 통해 게이트키퍼에 전송한다.
2. 게이트키퍼는 ACF(Admission ConFirmed)를 전송해 단말 1을 등록하며, 단말 1에 다이렉트 콜 시그널링이 가능하다는 것을 인증한다.
3. 단말 1은 H.225 콜 시그널링 셋업(call signaling Setup) 메시지를 단말 2에 보내 연결을 요청한다.
4. 단말 2는 H.225 콜 프로시딩(proceeding) 메시지로 응답한다.
5. 단말 2는 게이트키퍼에 RAS ARQ 메시지를 보내 게이트키퍼에 등록을 요청한다.
6. 게이트키퍼는 RAS ACF 메시지를 통해 등록 허가를 단말 2에 알린다.
7. 단말 2는 단말 1에게 H.225 콜 얼러팅(alerting) 메시지를 전송한다.
8. 마지막으로 단말 2는 H.225 커넥트(connect) 메시지를 전송해 연결 설정이 수락됐음을 알린다.
9. H.245 제어채널이 단말 1과 단말 2에 성립된다. 단말 1은 H.245 TerminalCapabilitySet 메시지를 전송하고 단말 2와 성능(Capability)에 대한 정보를 교환한다.
10. 단말 2는 단말1의 성능 정보가 확인됐음을 Terminal CapabilitySetAck를 통해 알린다.
11. 단말 2는 단말 1에게 TerminalCapabilitySet을 전송해 자신의 성능 정보를 전송한다.
12. 단말 1 역시 동일하게 TerminalCapabilitySetAck를 전송해 단말 2의 성능 정보가 확인됐음을 알린다.
13. 단말 1은 단말 2에 RTCP 채널의 전송주소가 포함돼 있는 openLogicalChannel 메시지를 전송해 미디어 채널을 만든다.
14. 단말 2는 RTP 전송주소가 포함된 H.245 openLogical ChannelAck 메시지를 통해 단말 1에게 단방향의 논리 채널이 성립됐음을 알린다.
15. 단말 2는 RTCP 채널의 전송주소가 포함된 H.245 open LogicalChannel 메시지를 전송해 단말 1에 미디어 채널이 성립됐음을 통지한다.
16. 단말 1은 단말 2로 openLogicalChannelAck 메시지를 보냄으로써 단말 2로부터 단말 1까지의 단방향 논리 채널이 형성됐음을 통보한다. H.245 openLogicalChannelAck 메시지에는 단말 1의 RTP 주소가 포함돼 있으며, 이를 통해 양방향 미디어 실시간 통신이 가능하게 된다.
17. 단말 1은 RTP로 인코딩된 미디어 스트림을 단말 2로 전송한다.
18. 단말 2은 RTP로 인코딩된 미디어 스트림을 단말 1로 전송한다.
19. 단말 1은 RTCP 메시지를 단말 2로 전송한다.
20. 단말 2는 RTCP 메시지를 단말 1로 전송한다.
21. 단말 2가 H.245 EndSessionCommand 메시지를 단말 1로 전송해 연결 종료를 시도한다.
22. 단말 1은 H.245 EndSessionCommand 메시지를 단말 2로 전송함으로써 통신 종료를 준비한다.
23. 단말 2는 H.225 릴리즈 컴플릿(release complete) 메시지를 단말 1에 전송함으로써 콜을 종료한다.
24. 단말 1과 단말 2는 게이트키퍼에 RAS DRQ(Disengage ReQuest) 메시지를 전송해 게이트키퍼와의 접속을 해제한다.
25. 게이트키퍼는 단말 1과 단말 2에 DCF(Disengage ConFirmed) 메시지를 보냄으로써 접속해제를 알린다.
 
2. SIP
1) 개요
SIP(Session Initiation Protocol)는 인터넷을 포함하는 패킷 네트워크 상에서 통신하고자 하는 단말들을 식별하고 위치를 파악하며, 그들 상호간에 멀티미디어 통신 세션을 생성하거나 삭제, 변경하기 위한 절차를 명시한 애플리케이션 계층의 시그널링(signaling) 프로토콜이다. 또한 네트워크 전송 프로토콜과 미디어에 완벽하게 독립적이고 콘텐츠에 상관없이 어떻게 단말기의 연결을 생성하거나 변경 혹은 종료하는지를 정의한다.
SIP의 출현은 인터넷을 이용한 통신 서비스 시장에 큰 파급효과를 가져왔다. 기존의 VoIP 시스템은 대부분 ITU-T가 표준으로 채택한 H.323 프로토콜을 기반으로 구현돼 있다. H.323은 원래 패킷 교환 방식의 랜 망에서 다자간 음성, 화상, 데이터 통신을 가능케 하기 위해 개발된 기술 방식이므로 광대역 네트워크와 대규모 사용자를 지원하는 데 있어서는 기본적으로 한계점을 가지고 있었던 게 사실이다. VoIP 관련 시장 규모가 크게 성장함으로 인해 인터넷 전화 기술이 시장성 있는 기술로 각광을 받으면서 인터넷 상에서 양자간/다자간 통신을 하기 위한 시그널링 프로토콜인 SIP가 기존의 H.323을 대체하는 기술로 주목을 받게 됐다.
SIP는 MGCP(the Media Gateway Control Protocol)의 업그레이드된 프로토콜이다. MGCP는 PSTN의 음성 신호를 IP 데이터 패킷으로 변환시키는 프로토콜이었지만 확장성이 부족하고 음성신호만을 위한 표준이었으며 시그널링이 복잡한 프로토콜이었다. 특히 SIP는 MGCP의 단점을 해결한 프로토콜로 멀티미디어에 특화된 새로운 환경을 제시했다.
SIP는 HTTP와 매우 유사한 메시지 타입을 유지함으로써 개발자들이 자바 같은 대중적인 프로그래밍 언어를 통해 좀더 쉽고 빠르게 애플리케이션을 개발할 수 있게 한다. 또한 통신 사업자들에게도 CID(Caller ID) 서비스, 콜 대기(call waiting) 서비스 등 PSTN의 지능망에서 제공되는 여러 가지 프리미엄 서비스들을 동일하게 제공할 수 있다.
이렇듯 SIP의 유연한 확장성은 SIP를 VoIP 음성서비스의 새로운 표준으로 만드는데 기여했으며, 차세대 VoIP 프로토콜의 지배적인 표준으로서 입지를 굳혀나가고 있다. 또한 3G 협회는 SIP를 차세대 무선통신망의 세션 제어 메커니즘으로 선택했으며, 마이크로소프트는 윈도 운영체제, MSN 메신저 및 기타 애플리케이션의 실시간 통신을 위한 기본 프로토콜로 탑재할 것을 발표했다.

2) 주요 특징
SIP의 주요 특징은 세션을 성립시킬 때 세션의 타입을 정의하지 않고 어떻게 운영해야 될 지만 기술한다는 점이다. 이러한 유연성으로 인해 SIP는 VoIP 음성 서비스뿐만 아니라 온라인 게임, 컨퍼런싱 등의 많은 애플리케이션에 사용될 수 있다. 또한 SIP 메시지는 텍스트 기반으로 구성돼 있으므로, 해석과 디버그가 용이하며 새로운 서비스를 쉽고 간편하게 프로그래밍할 수 있다.
SIP는 MIME(Multipurpose Internet Mail Extensions) 타입 및 DNS(Domain Name System), RTP(Real-Time Transport Protocol), RTSP(Real Time Streaming Protocol) 등 현존하는 프로토콜을 재사용하기 때문에 더욱 최적화된 세션 설정이 가능하다. 또한 SIP를 지원하기 위한 또 다른 서비스를 정의할 필요가 없다.
SIP는 쉽게 확장할 수 있으며, 현존 네트워크 구조를 변경시키지 않고 새로운 애플리케이션 서비스가 가능하다. 이전 버전의 SIP 장비는 새로운 버전의 SIP를 기반으로 한 장비들과 충돌하지 않는다. 새로운 버전의 SIP는 구 SIP의 헤더 및 메소드를 무시하기 때문이다. 또한 전송계층에 독립적이기 때문에 ATM 망에서의 IP계층 위에서도 운용가능하며, 하부계층에 상관없이 UDP, TCP를 통한 전송이 가능하다.

3) 구성 요소
SIP 세션을 성립시키기 위해서는 SIP 유저 에이전트(UA), SIP 프록시 서버, SIP 레지스트라 서버(Registrar servers), 그리고 SIP 리다이렉트 서버가 필요하다. SIP 유저 에이전트는 휴대폰, PC 및 기타 SIP 사용 가능한 단말기를 통칭한다. SIP 세션을 설정하고 운영하며, SIP 연결을 요청한 단말을 클라이언트(UAC), 연결에 응답한 단말을 서버(UAS)로 분류한다.
SIP 레지스트라 서버는 데이터베이스, 도메인(domain)에 있는 모든 UA의 장소정보 및 IP 주소정보를 저장해 SIP 프록시 서버의 질의에 응답한다. SIP 프록시 서버는 SIP UA에서 요청하는 세션을 수락하고, 응답하는 UA의 주소정보를 SIP 레지스트라 서버에 질의하는 역할을 담당한다. 같은 도메인 상에 서버(UAS)가 존재시 세션 요청을 서버(UAS)에게 보내며, 서버(UAS)가 다른 도메인에 있을 경우에는 다른 도메인의 프록시 서버에 세션 요청을 전송한다.
SIP 리다이렉트 서버는 다른 도메인에 존재하는 SIP 세션 요청에 대해서 현존 도메인 내에 존재하는 SIP 프록시 서버가 직접적인 설정을 가능하게 한다.

4) 주소 및 메시지
SIP 주소형식은 기본적으로 이메일과 매우 유사한 sip:user_id@domain_name의 형식을 가지게 되며, 만약 DNS가 존재하지 않으면 domain_name 부분을 IP 주소로 대체할 수 있다. user_id 부분은 부여된 전화번호로 대체가 가능하다. 즉 sip:031xxxxxxx@62.xx.xx.xx;user=phone는 sip:user_id@domain_name와 SIP에서 동일한 주소를 나타낸다.
메시지는 텍스트 기반이며 전술한 바와 같이 HTTP를 재사용한다. 따라서 웹 서핑에서 발생되는 메시지와 동일성을 가진다. 크게 SIP 메시지는 클라이언트에서 요청하는 리퀘스트(Request)와 서버 응답인 리스펀스(Response)로 나눠진다. 메시지 타입은 다음과 같다.
5) 콜 셋업 과정
같은 도메인 내에 UAS가 존재할 경우에는 클라이언트(UAC) A와 서버(UAS) B는 IP 주소 및 수신가능 여부를 SIP 프록시 서버에 자동적으로 전송한다. 클라이언트(UAC) A가 콜을 설정 시 SIP 프록시 서버에 단말 B에 대한 통신 요구를 전송하면, SIP 프록시 서버는 SIP 레지스트라 서버에 주소 정보 요청을 통해 서버(UAS)의 IP 주소를 전송받는다. 그 후 SIP 프록시 서버는 클라이어트(UAC)의 인바이트(invite) 메시지를 서버(UAS)에 재전송하며 SDP에서 정의하는 클라이언트(UAC)가 세션에 사용하는 매체(음성, 영상 등)에 대한 정보가 포함된다.
서버(UAS)는 SIP 프록시 서버에게 콜 셋업이 가능한지와 수신 가능 여부를 회신하며, 마지막으로 SIP 프록시 서버가 클라이언트(UAC)에 정보를 전송함으로써 서버(UAS)와 클라이언트(UAC)간의 SIP 세션이 성립되는 절차를 따른다. 그 후 RTP를 이용한 통신이 P2P(Point-to-Point)로 이뤄지면서 실제적인 VoIP 음성서비스가 시작되게 된다.
만약 클라이언트(UAC)와 서버(UAS)가 동일한 도메인에 존재하지 않으면 절차가 달라진다. 클라이언트(UAS) A가 콜 설정시 SIP 프록서 서버에 단말 B에 대한 통신 요구를 전송하게 되는 것은 앞선 경우와 동일하나, SIP 프록시 서버가 도메인 B에 직접적으로 접속돼 있지 않으므로 같은 도메인 내의 SIP 레지스트라 서버는 도메인 B의 SIP 프록시 서버 주소를 전송한다. 도메인 A에 존재하는 프록시 서버는 도메인 B에 존재하는 프록시 서버에 콜을 넘겨주게 되며, 도메인 B에 존재하는 프록시 서버는 역시 같은 도메인 내에 존재하는 레지스트라 서버에 서버(UAS)의 주소를 질의한다.
도메인 B에 존재하는 레지스트라 서버는 서버(UAS)의 주소정보를 프록시 서버 B에 전송하고 서버(UAS) B는 프록시 서버 B에 응답 메시지를 전송한다. 이후 프록시 서버 B는 프록시 서버 A에 응답하며, 프록시 서버 A는 다시 클라이언트(UAC)에 응답 메시지를 전송하게 됨으로써 콜 셋업이 마무리된다.


3. H.323과 SIP 비교
VoIP 시스템에 적용되는 대표적인 두 가지 프로토콜인 H.323과 SIP는 다음과 같은 장단점을 가진다. 첫째로 H.323에 비해 SIP는 간편하고 간결한 장점으로 인해 새로운 기능 및 부가서비스 제공이 H.323에 비해 용이하다. 둘째로 H.323은 복잡한 프로토콜 구조로 인해 지연시간 증가와 과다한 자원요구 등의 단점을 가지고 있다. 마지막으로 SIP는 H.323보다 간단한 구조로 인해 통신사용자간 충분한 정보를 교환할 수 없다.
<표 2>와 같이 H.323은 좀더 현재의 PSTN망에, SIP는 인터넷 망에 각각 초점을 맞춰 발전했다. SIP가 지배적인 VoIP 시스템의 운용 프로토콜이 될 것으로 예상되지만, 그 과정에서 H.323의 장점을 적극 수용할 것으로 보인다.
이번 호는 VoIP 시스템을 구성하는 대표적인 프로토콜인 SIP와 H.323에 대해 알아봤다. 다음호에서는 VoIP 시스템의 네트워크 구조를 알아봄으로써 VoIP 시스템의 전체적인 구조를 파악해 보자.

'개발 이야기 > VoIP' 카테고리의 다른 글

6. VoIP 향후 전망  (0) 2008.09.18
5. VoIP 시장 동향  (0) 2008.09.18
4. IP-PBX의 기능과 역할  (0) 2008.09.18
3. VoIP 기술② : 네트워크 구조  (0) 2008.09.18
1. PSTN에서 VoIP로  (0) 2008.09.18
 
블로그 이미지

시반

시반(詩伴)이란 함께 시를 짓는 벗이란 뜻을 가지고 있습니다. 함께 나눌수 있는 그런 공간이길 바라며...

카테고리

분류 전체보기 (233)
개발 이야기 (73)
WEB2.0 (57)
DB2 (24)
MySQL (6)
오라클 (26)
기타 (44)
취미 (0)
잡담 (2)