KR100673513B1 - Method for load-balancing in session initiation protocol network and system of enabling the method - Google Patents
Method for load-balancing in session initiation protocol network and system of enabling the method Download PDFInfo
- Publication number
- KR100673513B1 KR100673513B1 KR1020040117949A KR20040117949A KR100673513B1 KR 100673513 B1 KR100673513 B1 KR 100673513B1 KR 1020040117949 A KR1020040117949 A KR 1020040117949A KR 20040117949 A KR20040117949 A KR 20040117949A KR 100673513 B1 KR100673513 B1 KR 100673513B1
- Authority
- KR
- South Korea
- Prior art keywords
- sip
- user agent
- information
- real
- sip message
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1104—Session initiation protocol [SIP]
Abstract
본 발명은 SIP(Session Initiation Protocol) 네트워크에서 로드밸런싱하는 방법 및 시스템에 관한 것으로, 더욱 상세하게는 SIP 네트워크를 통해 전송되는 콜 세션(session)에 대한 로드밸런싱 방법 및 이를 채용한 SIP 로드밸런싱 시스템에 관한 것이다.The present invention relates to a method and system for load balancing in a Session Initiation Protocol (SIP) network, and more particularly, to a load balancing method for a call session transmitted through a SIP network and a SIP load balancing system employing the same. It is about.
본 발명에 따르면 리얼 SIP 서버로부터 수신한 SIP 메시지의 콜아이디 정보 및 설정된 리얼 SIP 서버 정보를 이용하여 로드밸런싱하는 방법, 유저 에이전트의 주소를 이용하여 로드밸런싱 하는 방법 및 유저 에이전트의 식별자를 이용하여 로드밸런싱하는 방법을 제공할 수 있다.According to the present invention, a method of load balancing using call ID information and set real SIP server information of a SIP message received from a real SIP server, a method of load balancing using an address of a user agent, and a load using an identifier of a user agent It can provide a method of balancing.
세션 설정 프로토콜, SIP, SIP 메시지, 로드밸런싱, 콜아이디Session establishment protocol, SIP, SIP message, load balancing, call ID
Description
도 1은 종래 기술의 콜아이디 방식에서 SIP 메시지의 전송 과정을 도시한 도면이다.1 is a diagram illustrating a process of transmitting a SIP message in a call ID method according to the related art.
도 2는 종래 기술의 콜아이디 방식으로 로드밸런싱할 때 발생할 수 있는 문제점의 일예를 도시한 도면이다.2 is a diagram illustrating an example of a problem that may occur when load balancing by a call ID method according to the related art.
도 3은 종래 기술의 콜아이디 방식으로 로드밸런싱할 때 발생할 수 있는 또 다른 문제점의 일예를 도시한 도면이다.3 is a diagram illustrating an example of another problem that may occur when load balancing by a call ID method according to the related art.
도 4는 본 발명의 일실시예에 따라 리얼 SIP 서버로부터 전송되는 SIP 메시지에 포함된 콜아이디를 이용하여 로드밸런싱하는 과정을 도시한 도면이다.4 is a diagram illustrating a process of load balancing using a call ID included in a SIP message transmitted from a real SIP server according to an embodiment of the present invention.
도 5는 본 발명의 일실시예에 따라 발신자 및 수신자의 유저 에이전트 주소를 이용하여 로드밸런싱하는 과정을 도시한 도면이다.5 is a diagram illustrating a process of load balancing using a user agent address of a sender and a receiver according to an embodiment of the present invention.
도 6은 본 발명의 일실시예에 따라 모집단 식별자를 이용하여 로드밸런싱하는 과정의 흐름을 도시한 흐름도이다.6 is a flowchart illustrating a flow of a load balancing process using a population identifier according to an embodiment of the present invention.
도 7은 SIP 메시지의 헤더 구조의 일예를 도시한 도면이다.7 is a diagram illustrating an example of a header structure of a SIP message.
도 8은 본 발명의 일실시예에 따라 모집단 식별자를 도메인 네임의 상위단으 로 설정한 경우의 네트워크 연결과 정보 테이블의 일예를 도시한 도면이다.8 is a diagram illustrating an example of a network connection and an information table when a population identifier is set to a higher level of a domain name according to an embodiment of the present invention.
도 9는 본 발명의 일실시예에 따라 콜아이디를 이용하여 로드밸런싱하는 시스템의 구성을 도시한 블록도이다.9 is a block diagram illustrating a configuration of a system for load balancing using a call ID according to an embodiment of the present invention.
도 10은 본 발명의 일실시예에 따라 유저 에이전트 주소를 이용하여 로드밸런싱하는 시스템의 구성을 도시한 블록도이다.10 is a block diagram illustrating a configuration of a system for load balancing using a user agent address according to an embodiment of the present invention.
도 11은 본 발명의 일실시예에 따라 모집단 식별자를 이용하여 로드밸런싱하는 시스템의 구성을 도시한 블록도이다.11 is a block diagram showing the configuration of a system for load balancing using a population identifier according to an embodiment of the present invention.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
901, 1001, 1101: 유저 에이전트 통신부901, 1001, 1101: user agent communication unit
902, 1002, 1102: 정보 테이블902, 1002, 1102: Information table
903, 1003, 1103: 리얼 SIP 서버 통신부903, 1003, 1103: real SIP server communication unit
905, 1005, 1105: 정보 테이블 관리부905, 1005, 1105: Information Table Manager
904: 검색부 904: search unit
1004: 정보 검색부1004: information retrieval unit
1104: 식별자 검색부1104: identifier search unit
본 발명은 SIP(Session Initiation Protocol) 네트워크에서 로드밸런싱하는 방법 및 시스템에 관한 것으로, 더욱 상세하게는 SIP 네트워크를 통해 전송되는 콜 세션(session)에 대한 로드밸런싱 방법 및 이를 채용한 SIP 로드밸런싱 시스템에 관한 것이다.The present invention relates to a method and system for load balancing in a Session Initiation Protocol (SIP) network, and more particularly, to a load balancing method for a call session transmitted through a SIP network and a SIP load balancing system employing the same. It is about.
오늘날, 인터넷의 급속한 보급과 그에 따른 다양한 서비스에 대한 요구로 인해 IP(Internet Protocol) 망은 성능과 서비스 측면에서 획기적으로 발달하고 있고, 그에 따라 보다 다양한 서비스에 대한 요구가 지속적으로 발생하고 있다. 이러한 요구의 예를 들면, IP 망을 이용한 음성 신호의 전달이 있다. 이러한 IP 망을 통한 음성 신호의 전달은 VoIP(Voice over Internet Protocol)에 의해 지원되며, 이제 데이터의 전송과 함께 IP 망의 큰 역할로 자리 잡고 있을 뿐 아니라 그에 따른 다양한 음성 신호 전달 기능에 대한 요구도 증가되고 있다.Today, due to the rapid spread of the Internet and the demand for various services, the IP (Internet Protocol) network is dramatically developed in terms of performance and services, and accordingly, the demand for more various services is continuously generated. An example of such a requirement is the delivery of voice signals over an IP network. The transmission of voice signals through the IP network is supported by Voice over Internet Protocol (VoIP), which is now becoming a big part of the IP network along with data transmission, and also requires various voice signal transmission functions. It is increasing.
최근 멀티미디어 서비스와 관련하여 업계의 주목을 받고 있는 세션 설정 프로토콜(Session Initiation Protocol)의 기본 기능은 컴퓨터, IP 전화기, PDA, 휴대폰과 같이 음성 통신이 가능한 VoIP(Voice over Internet Protocol) 단말기 사이에 호를 설정하는 것이다. 이러한 SIP 호 설정 기능은 ITU-T의 H.323 프로토콜의 호 설정 기능과 큰 차이는 없다. The basic function of the Session Initiation Protocol, which has recently attracted the attention of the multimedia service, is to call voice over Internet Protocol (VoIP) terminals capable of voice communication such as computers, IP phones, PDAs, and mobile phones. To set. This SIP call setup function is not significantly different from the ITU-T H.323 protocol call setup function.
SIP는 텍스트 기반의 STMP(Simple Mail Transfer Protocol)와 HTTP(Hyper Text Transfer Protocol) 이후에 설계된 것으로서, 에이전트(Client)가 호출을 시작하면 서버가 그 호출에 응답을 하는 에이전트/서버 구조에 그 기반을 두고 있다. SIP는 이러한 기존의 텍스트 기반 인터넷 표준들을 준수하고 있으므로 고장 수리(troubleshooting)와 네트워크 디버깅(debugging) 등이 쉽다는 장점이 있다. 또한, SIP는 ITU-T의 H.323 프로토콜보다 구현이 쉽고 인터넷 표준이므로, 다른 서비 스와 호환이 용이하다는 장점을 지니고 있다. 특히 SIP는 모든 인터넷 단말기, 모든 응용 서비스, 모든 네트워크 장비의 구성 요소(component)로 포함되어 호 설정, 호 관리, 응용 서비스 요청 등의 기능을 수행할 수 있도록 설계되어 있다.SIP was designed after the text-based Simple Mail Transfer Protocol (STMP) and Hyper Text Transfer Protocol (HTTP), and is based on an agent / server structure where the server responds to the call when the client initiates the call. I put it. SIP adheres to these existing text-based Internet standards, making it easy to troubleshoot and network debug. In addition, SIP is easier to implement than the ITU-T's H.323 protocol and has the advantage of being compatible with other services. In particular, SIP is designed to be included as a component of all Internet terminals, all application services, and all network equipment to perform functions such as call setup, call management, and application service requests.
이러한 SIP는 비록 VoIP용 호 설정 프로토콜로서 개발되었지만 그 구현이 쉽고 다른 서비스와의 호환이 용이하기 때문에 차세대 통신망(NGN)에서 핵심 기능을 수행할 것으로 기대되고 있다.Although SIP was developed as a call setup protocol for VoIP, it is expected to perform a core function in the next generation communication network (NGN) because it is easy to implement and compatible with other services.
SIP 로드밸런서(load balancer)라 함은, 상술한 SIP의 처리를 수행하는 장치로서, 상세하게는 SIP 메시지를 수신하여 호를 설정할 리얼 SIP 서버를 할당하고 할당된 서버로 SIP 메시지를 전송하는 기능을 수행하는 장치를 의미한다. 또한 SIP 로드밸런서는 IP에 기반한 네트워크 서비스의 효율성을 높이고, 리얼 SIP 서버의 성능을 확장시키기 위해서 로드밸런싱 기능을 구비하고 있다.The SIP load balancer is a device for performing the above-described SIP processing, and specifically, a function of receiving a SIP message, assigning a real SIP server to set up a call, and transmitting a SIP message to the assigned server. Means a device to perform. In addition, SIP load balancer is equipped with load balancing function to increase the efficiency of IP-based network service and to extend the performance of real SIP server.
SIP 로드밸런서의 동작에 있어서, 하나의 세션에 대한 처리를 소정의 서버에서 지속적으로 유지하는 것이 필요한데 이를 퍼시스턴스(persistence)라고 한다. 종래 기술에 의하면, SIP 서버에서의 로드밸런싱은 SIP 메시지에 포함된 콜아이디(Call-ID)를 이용하여 퍼시스턴스를 유지하였다. 이와 같이 콜아이디를 이용하여 로드밸런싱하는 방법은 특정 리얼 SIP 서버의 과부하를 방지하지 위한 것이었다.In the operation of a SIP load balancer, it is necessary to keep processing for one session on a predetermined server, which is called persistence. According to the related art, load balancing in a SIP server maintains persistence using a Call ID included in a SIP message. The method of load balancing using call ID was to prevent overload of a specific real SIP server.
그러나 종래 기술과 같이 콜아이디를 이용하여 로드밸런싱하는 방법, 소위 "콜아이디 방식"은 리얼 SIP 서버로부터 수신한 메시지에 대한 콜아이디를 기록하지 않으므로, 특히 B2BUA(Back to Back User Agent) 방식에서 오작동을 일으킬 가능성이 많은 문제점이 있다. 이러한 문제점에 대하여는 이하 도 2를 참조하여 상술한 다. However, as in the prior art, the method of load balancing using call ID, so-called "call ID method", does not record the call ID for the message received from the real SIP server, and therefore it malfunctions particularly in the B2BUA (Back to Back User Agent) method. There are many problems that are likely to cause. This problem is described above with reference to FIG. 2.
또한 종래 기술의 콜아이디 방식은 유저 에이전트 정보를 기록하지 않으므로 이미 호가 설정된 유저 에이전트에 대한 호 보류를 처리할 수 없는 문제점이 있다. 이러한 문제점에 대하여는 이하 도 3을 참조하여 상술한다. In addition, since the conventional call ID method does not record user agent information, there is a problem in that call hold for a user agent for which a call has already been set cannot be processed. This problem will be described in detail with reference to FIG. 3.
이하 종래 기술에 따른 SIP 네트워크에서 콜아이디를 이용한 로드밸런싱 방법과 이러한 방식의 문제점을 설명한다. Hereinafter, a load balancing method using a call ID in a SIP network according to the related art and the problems of this method will be described.
도 1은 종래 기술에 따른 콜아이디 방식에서 SIP 메시지의 전송 과정을 도시한 도면이다. 도 1을 참조하면, SIP 메시지의 전송을 위한 네트워크 연결은 유저 에이전트(101), 프록시(proxy) 서버(102), SIP 로드밸런서(103), 리얼 SIP 서버(104)로 구성될 수 있다. 1 is a diagram illustrating a process of transmitting a SIP message in a call ID method according to the prior art. Referring to FIG. 1, a network connection for transmitting a SIP message may include a
유저 에이전트(101)에서 메소드 정보 및 제1 콜아이디가 설정된 제1 SIP 메시지를 프록시 서버(102)를 거쳐 SIP 로드밸런서(103)로 전송한다. 일예로, 제1 SIP 메시지는 도면 부호(110)과 같이 INVITE 메소드 정보 및 제1 콜아이디 정보로서 <1000>을 포함할 수 있다. The
SIP 로드밸런서(103)는 수신한 제1 SIP 메시지의 제1 콜아이디 정보를 식별하고, 소정의 정보 테이블(120)을 참조하여 제1 콜아이디 정보 및 설정된 리얼 SIP 서버 정보를 검색한다. The
상기 정보 테이블에 기록된 제1 콜아이디 정보 및 설정된 리얼 SIP 서버 정보가 검색되면 제1 SIP 메시지를 검색된 리얼 SIP 서버로 포워딩한다. 제1 콜아이디 정보 및 설정된 리얼 SIP 서버 정보가 검색되지 않으면 새로운 리얼 SIP 서버를 할당하고, 할당된 리얼 SIP 서버로 제1 SIP 메시지를 포워딩한다. 이 때 SIP 로드밸런서(103)는 제1 콜아이디 정보 및 새로 할당된 리얼 SIP 서버 정보를 상기 정보 테이블에 기록하고 유지한다. 상기 정보 테이블에 유지되는 콜아이디 정보 및 리얼 SIP 서버 정보는 선입선출 방식(FIFO)으로 기록될 수 있다. When the first call ID information and the set real SIP server information recorded in the information table are found, the first SIP message is forwarded to the found real SIP server. If the first call ID information and the set real SIP server information are not found, a new real SIP server is allocated, and the first SIP message is forwarded to the assigned real SIP server. At this time, the SIP load balancer 103 records and maintains first call ID information and newly allocated real SIP server information in the information table. Call ID information and real SIP server information maintained in the information table may be recorded in a first in, first out (FIFO) manner.
상술한 바와 같이 종래 기술의 SIP 로드밸런서에서는 전송된 SIP 메시지에 포함된 콜아이디 정보를 식별하여 리얼 SIP 서버를 할당하는 방식을 사용하고 있다.As described above, the SIP load balancer of the related art uses a method of allocating a real SIP server by identifying call ID information included in a transmitted SIP message.
도 2는 종래 기술의 콜아이디 방식으로 로드밸런싱할 때 발생할 수 있는 문제점의 일예를 도시한 도면이다. 2 is a diagram illustrating an example of a problem that may occur when load balancing by a call ID method according to the related art.
제1 유저 에이전트(201)는 제2 유저 에이전트(202)로의 제1 SIP 메시지를 SIP 로드밸런서(203)로 전송한다. 이때 제1 SIP 메시지는 도면 부호(210)과 같이 INVITE 메소드 정보 및 제1 콜아이디 정보 <1001>를 포함할 수 있다. The
SIP 로드밸런서(203)는 상기 제1 SIP 메시지를 수신하여 제1 콜아이디 정보를 식별하고, 정보 테이블을 참조하여 제1 콜아이디 정보 및 할당된 리얼 SIP 서버 정보가 있는지를 검색한다. 해당 정보가 검색되지 않는 경우 제1 리얼 SIP 서버(204)를 할당하며, 상기 정보 테이블에 제1 콜아이디 정보 및 제1 리얼 SIP 서버(204)의 식별 정보를 기록한다. 도 2를 참조하면, 정보 테이블(220)에 제1 콜아이디 정보 <1001>와 제1 리얼 SIP 서버(204) 정보 <P1>이 기록되었음을 알 수 있다. The
SIP 로드밸런서(203)는 제1 리얼 SIP 서버(204)로 제1 SIP 메시지를 포워딩한다. 제1 리얼 SIP 서버(204)는 제1 SIP 메시지를 수신한 후, 이에 대응하는 제2 SIP 메시지를 SIP 로드밸런서(203)로 전송한다. 제2 SIP 메시지는 제2 유저 에이전트와의 세션 연결을 위한 INVITE 메소드 정보 및 제2 콜아이디 정보를 포함할 수 있다. 제1 콜아이디 정보와 제2 콜아이디 정보는 프락시(proxy) 방식의 리얼 SIP 서버에서는 서로 일치하지만, B2BUA 방식의 리얼 SIP 서버에서는 서로 다를 수 있다.The
SIP 로드밸런서(203)는 상기 수신한 제2 SIP 메시지를 제2 유저 에이전트(202)로 전송한다. 제2 유저 에이전트(202)는 제2 SIP 메시지를 수신하고, 이에 대한 응답 메시지(일예로 INVITE에 대한 응답으로 200 OK 메소드 포함)를 SIP 로드밸런서(203)로 전송한다. 이때 응답 메시지는 제2 SIP 메시지의 제2 콜아이디 정보를 포함한다.The
SIP 로드밸런서(203)는 수신한 응답 메시지의 제2 콜아이디 정보를 식별하고 정보 테이블을 참조하여 제2 콜아이디 정보 및 리얼 SIP 서버 정보를 검색한다. 제1 콜아이디와 제2 콜아이디가 일치하지 않는 경우에, 제2 콜아이디 정보 및 리얼 SIP 서버 정보가 검색되지 않으면 새로운 리얼 SIP 서버를 할당하고, 상기 응답 메시지를 할당된 리얼 SIP 서버로 포워딩한다. 상기 예에서, 제2 콜아이디 정보 <3001> 및 설정된 리얼 SIP 서버 정보는 상기 정보 테이블에 기록되어 있지 아니하므로, SIP 로드밸런서(203)는 새로운 제2 리얼 SIP 서버(205)를 할당하고, 제2 리얼 SIP 서버(205)로 응답 메시지를 포워딩한다. The
SIP 로드밸런서(203)는 제2 콜아이디 정보 및 제2 리얼 SIP 서버 정보를 테이블에 기록한다. 도면 부호(220)을 참조하면, 제2 콜아이디 정보 <3001> 및 할당 된 제2 리얼 SIP 서버 정보 <P2>가 상기 정보 테이블에 기록됨을 알 수 있다.The
상술한 바와 같이 종래 기술의 콜아이디 방식은 제1 콜아이디와 제2 콜아이디가 일치하지 않는 B2BUA방식에서 제2 유저 에이전트로부터 전송된 응답 메시지를 제1 리얼 SIP 서버가 아닌 제2 리얼 SIP 서버로 전송하게 되고, 이로 인해 제1 유저 에이전트와 제2 유저 에이전트 간 호 설정이 지연되어 SIP 로드밸런서에서 효율적인 로드밸런싱을 수행할 수 없다는 문제점이 있었다.As described above, the call ID scheme of the prior art transmits a response message transmitted from the second user agent to the second real SIP server instead of the first real SIP server in the B2BUA scheme where the first call ID and the second call ID do not match. Due to this, call setup is delayed between the first user agent and the second user agent, which makes it impossible to perform efficient load balancing in the SIP load balancer.
도 3은 종래 기술의 콜아이디 방식으로 로드밸런싱할 때 발생될 수 있는 또 다른 문제점의 일예를 도시한 도면이다. 3 is a diagram illustrating an example of another problem that may occur when load balancing by a call ID method according to the related art.
제1 유저 에이전트(301)와 제2 유저 에이전트(302)는 다음과 과정으로 호 설정될 수 있다. 제1 유저 에이전트(301)는 제2 유저 에이전트(302)로의 제1 SIP 메시지를 SIP 로드밸런서(304)로 전송하고, SIP 로드밸런서(304)는 제1 리얼 SIP 서버를 할당하여 상기 제1 SIP 메시지를 제1 리얼 SIP 서버(305)로 포워딩한다. 제1 SIP 메시지는 도면 부호(310)과 같이 제1 콜아이디 정보 <1001>를 포함할 수 있다.The
제1 리얼 SIP 서버(305)는 제2 SIP 메시지를 SIP 로드밸런서(304)로 전송한다. SIP 로드밸런서(304)는 수신한 제2 SIP 메시지를 제2 유저 에이전트(302)로 전송한다. 제2 SIP 메시지는 도면 부호(320)과 같이 제2 콜아이디 정보 <1002>를 포함할 수 있다.The first
제1 리얼 SIP 서버(305)는 제1 유저 에이전트(301)와 제2 유저 에이전트(302) 간의 호 연결을 수행하고 있으므로, 도면 부호(340)과 같이 각 유저 에이전트의 콜 STATUS 정보로써 제1 유저 에이전트(301, UA1) 및 제2 유저 에이전트(302, UA2)는 <연결>로, 제3 유저 에이전트(303, UA3)는 <대기>로 기록할 수 있다. Since the first
SIP 로드밸런서(304)는 제3 유저 에이전트(303)로부터 제1 유저 에이전트(301)로의 제3 SIP 메시지를 수신할 수 있다. 도면 부호(330)과 같이 제3 SIP 메시지는 INVITE 메소드 정보 및 제3 콜아이디 정보 <3001>을 포함할 수 있다. The
SIP 로드밸런서(304)는 정보 테이블을 참조하여 제3 콜아이디 정보 및 리얼 SIP 서버 식별 정보를 검색하고, 검색되지 않으면 연결 가능한 리얼 SIP 서버를 할당하여 제3 SIP 메시지를 전송한다. The
이 때, SIP 로드밸런서(304)는 제1 유저 에이전트(301)와 제2 유저 에이전트(302) 간 호 연결을 담당하는 제1 리얼 SIP 서버를 새로운 리얼 SIP 서버로 할당할 수도 있으나, 해당 메시지 처리를 위해 제2 리얼 SIP 서버(306)를 할당하여 제2 리얼 SIP 서버(306)로 상기 제3 SIP 메시지를 전송할 수 있다. 이 경우, 제2 리얼 SIP 서버(306)에는 제1 유저 에이전트(301) 및 제2 유저 에이전트(302)의 콜 STATUS에 대한 정보가 없으므로, 도면 부호(350)과 같이 제1 유저 에이전트(301. UA1), 제2 유저 에이전트(302, UA2), 및 제3 유저 에이전트(303, UA3)의 콜 STATUS 정보가 모두 <대기>로 기록될 수 있다. At this time, the
따라서, B2BUA 방식/프락시 방식에 무관하게, SIP 네트워크에서 실질적으로는 제1 유저 에이전트(301)와 제2 유저 에이전트(302) 간의 호가 연결되어 있고 제3 유저 에이전트(303)는 호 설정 대기 중인 상태이지만, 제2 리얼 SIP 서버(306)는 이러한 유저 에이전트들에 대한 콜 STATUS 정보를 전혀 가지고 있지 않으므로, 제3 유저 에이전트(303)와 제2 유저 에이전트(303) 간의 호 설정이 지연되어 효율적인 로드밸런싱이 수행되지 못한다는 문제점이 있다.Therefore, regardless of the B2BUA scheme / proxy scheme, a call between the
이와 같이 종래 기술의 콜아이디를 이용한 로드밸런싱 방법은 도 2 및 도 3을 참조하여 상술한 바와 같이 제1 유저 에이전트와 제2 유저 에이전트 간 및 제1 또는 제2 유저 에이전트와 제3 유저 에이전트 간 호 설정이 지연되어 효율적인 로드밸런싱을 수행할 수 없다는 문제점이 있었다.As described above, the load balancing method using the call ID of the prior art, as described above with reference to FIGS. 2 and 3, calls between the first user agent and the second user agent and between the first or second user agent and the third user agent. There was a problem in that the configuration was delayed and efficient load balancing could not be performed.
따라서 유저 에이전트 간의 호 설정을 신속하게 처리하여 효율적인 로드밸런싱을 수행할 수 있는 방법의 출현이 절실하게 요구되고 있다.Therefore, there is an urgent need for the emergence of a method that can efficiently handle call setup between user agents and perform efficient load balancing.
본 발명은 상술한 바와 같은 종래 기술의 문제점을 해결하기 위해 안출된 것으로서, SIP 로드밸런서에서 리얼 SIP 서버로부터 수신한 SIP 메시지의 콜아이디 정보 및 리얼 SIP 서버 식별 정보를 이용하여 로드밸런싱하는 방법, 유저 에이전트의 주소를 이용하여 로드밸런싱하는 방법 및 유저 에이전트의 식별자를 이용하여 로드밸런싱하는 방법을 제공하는 것을 목적으로 한다.The present invention has been made to solve the problems of the prior art as described above, a method for load balancing using call ID information and real SIP server identification information of a SIP message received from a real SIP server in a SIP load balancer, a user An object of the present invention is to provide a method of load balancing using an agent address and a method of load balancing using an identifier of a user agent.
본 발명은 SIP 로드밸런서에서 리얼 SIP 서버로부터 수신한 SIP 메시지의 콜아이디 정보 및 리얼 SIP 서버 식별 정보를 이용하여 로드밸런싱하고, 유저 에이전트의 주소를 이용하여 로드밸런싱함으로써 유저 에이전트 간의 호 설정이 신속하게 수행될 수 있도록 하는 것을 목적으로 한다. In the present invention, the SIP load balancer load balances the call ID information and the real SIP server identification information of the SIP message received from the real SIP server, and load balances the user agent's address to quickly establish call between user agents. It is intended to be able to be performed.
본 발명은 SIP 로드밸런서에서 모집단 식별자 별로 대응하는 리얼 SIP 서버를 할당하여 SIP 메시지를 처리함으로써 효율적인 로드밸런싱이 가능하도록 하고, 서버들 간의 데이터베이스의 공유를 최적화하는 것을 목적으로 한다. An object of the present invention is to allocate a real SIP server corresponding to a population identifier in a SIP load balancer to process an SIP message, thereby enabling efficient load balancing and optimizing a database sharing among servers.
상기의 목적을 달성하고, 상술한 종래기술의 문제점을 해결하기 위하여, 본 발명의 일실시예에 따른 SIP(Session Initiation Protocol) 네트워크에서 로드밸런싱을 수행하는 방법은, 제1 유저 에이전트로부터 제2 유저 에이전트로의 제1 SIP 메시지를 수신하는 단계 - 상기 제1 SIP 메시지는 메소드 정보 및 제1 콜아이디 정보를 포함함 -; 상기 제1 SIP 메시지의 상기 제1 콜아이디 정보와 상기 제1 SIP 메시지를 처리할 제1 리얼 SIP 서버의 식별 정보를 소정의 정보 테이블에 기록하는 단계; 상기 제1 SIP 메시지를 상기 제1 리얼 SIP 서버로 포워딩하는 단계; 상기 제1 리얼 SIP 서버로부터 상기 제2 유저 에이전트로 전송되는 제2 SIP 메시지 - 상기 제2 SIP 메시지는 메소드 정보 및 제2 콜아이디 정보를 포함함 - 을 수신하고, 상기 제2 SIP 메시지에 포함된 상기 제2 콜아이디 정보 및 상기 제1 리얼 SIP 서버의 식별 정보를 상기 정보 테이블에 기록하는 단계; 상기 제2 유저 에이전트로부터 상기 제2 SIP 메시지에 대한 응답 메시지 - 상기 응답 메시지는 상기 제2 콜아이디 정보를 포함함 - 를 수신하고, 상기 정보 테이블을 참조하여 상기 제2 콜아이디 정보에 대응하는 식별 정보를 검색하는 단계; 및 상기 검색된 식별 정보에 대응하는 상기 제1 리얼 SIP 서버로 상기 응답 메시지를 포워딩하는 단계를 포함하는 것을 특징으로 한다.In order to achieve the above object and to solve the above problems of the prior art, a method for performing load balancing in a Session Initiation Protocol (SIP) network according to an embodiment of the present invention, the second user from the first user agent Receiving a first SIP message to an agent, wherein the first SIP message includes method information and first call ID information; Recording the first call ID information of the first SIP message and identification information of a first real SIP server to process the first SIP message in a predetermined information table; Forwarding the first SIP message to the first real SIP server; Receive a second SIP message transmitted from the first real SIP server to the second user agent, wherein the second SIP message includes method information and second call ID information and is included in the second SIP message; Recording the second call ID information and the identification information of the first real SIP server in the information table; Receive a response message for the second SIP message from the second user agent, wherein the response message includes the second call ID information and refer to the information table for identification corresponding to the second call ID information; Retrieving information; And forwarding the response message to the first real SIP server corresponding to the retrieved identification information.
본 발명의 다른 실시예에 따른 SIP(Session Initiation Protocol) 네트워크에서 로드밸런싱을 수행하는 방법은, 제1 유저 에이전트로부터 제2 유저 에이전트로의 제1 SIP 메시지- 상기 제1 SIP 메시지는 메소드 정보, 제1 유저 에이전트 주 소, 및 제2 유저 에이전트 주소를 포함함 - 를 수신하는 단계; 상기 제1 SIP 메시지의 상기 제1 유저 에이전트 주소, 상기 제2 유저 에이전트 주소, 및 상기 제1 SIP 메시지를 처리할 제1 리얼 SIP 서버의 식별 정보를 소정의 정보 테이블에 기록하는 단계; 상기 제1 SIP 메시지를 상기 제1 리얼 SIP 서버로 포워딩하는 단계; 상기 제1 리얼 SIP 서버로부터 상기 제2 유저 에이전트로 전송되는 제2 SIP 메시지 - 상기 제2 SIP 메시지는 메소드 정보 및 제2 유저 에이전트 주소를 포함함 - 를 수신하는 단계; 제3 유저 에이전트로부터 상기 제1 유저 에이전트 또는 상기 제2 유저 에이전트로의 제3 SIP 메시지- 상기 제3 SIP 메시지는 메소드 정보 및 상기 제1 유저 에이전트 주소 또는 상기 제2 유저 에이전트 주소를 포함함 - 를 수신하고, 상기 정보 테이블을 참조하여 상기 제1 유저 에이전트 주소 또는 제2 유저 에이전트 주소에 대응하는 식별 정보를 검색하는 단계; 및 상기 검색된 식별 정보에 대응하는 상기 제1 리얼 SIP 서버로 상기 제3 SIP 메시지를 포워딩하는 단계를 포함하는 것을 특징으로 한다.In accordance with another embodiment of the present invention, a method for performing load balancing in a Session Initiation Protocol (SIP) network includes: a first SIP message from a first user agent to a second user agent, wherein the first SIP message includes method information; Receiving a first user agent address, and a second user agent address; Recording the first user agent address of the first SIP message, the second user agent address, and identification information of a first real SIP server to process the first SIP message in a predetermined information table; Forwarding the first SIP message to the first real SIP server; Receiving a second SIP message sent from the first real SIP server to the second user agent, wherein the second SIP message includes method information and a second user agent address; A third SIP message from a third user agent to the first user agent or the second user agent, wherein the third SIP message includes method information and the first user agent address or the second user agent address; Receiving and retrieving identification information corresponding to the first user agent address or the second user agent address with reference to the information table; And forwarding the third SIP message to the first real SIP server corresponding to the retrieved identification information.
본 발명의 또 다른 실시예에 따른 SIP(Session Initiation Protocol) 네트워크에서 로드밸런싱을 수행하는 방법은, 제1 유저 에이전트로부터 상기 제1 유저 에이전트의 식별자를 포함하는 제1 SIP 메시지를 수신하는 단계; 상기 제1 유저 에이전트의 식별자에서 소정의 모집단 식별자를 추출하고, 상기 모집단 식별자와 상기 제1 SIP 메시지를 처리할 제1 리얼 SIP 서버의 식별 정보를 소정의 정보 테이블에 기록하는 단계; 제2 유저 에이전트로부터 상기 제2 유저 에이전트의 식별자를 포함하는 제2 SIP 메시지를 수신하는 단계; 상기 정보 테이블을 참조하여 상기 식별자 에 대응하는 모집단 식별자를 검색하고, 상기 모집단 식별자에 대응하는 리얼 SIP 서버의 식별 정보를 검색하는 단계; 및 상기 검색된 식별 정보에 대응하는 리얼 SIP 서버로 상기 제2 SIP 메시지를 포워딩하는 단계를 포함하는 것을 특징으로 한다.According to another embodiment of the present invention, a method for performing load balancing in a Session Initiation Protocol (SIP) network includes: receiving a first SIP message including an identifier of the first user agent from a first user agent; Extracting a predetermined population identifier from the identifier of the first user agent and recording the population identifier and identification information of a first real SIP server to process the first SIP message in a predetermined information table; Receiving a second SIP message comprising an identifier of the second user agent from a second user agent; Retrieving a population identifier corresponding to the identifier by referring to the information table and retrieving identification information of a real SIP server corresponding to the population identifier; And forwarding the second SIP message to the real SIP server corresponding to the retrieved identification information.
이하 첨부된 도면을 참조하여 본 발명에 따른 SIP 네트워크에서의 로드밸런싱 방법 및 장치에 대하여 상세히 설명한다.Hereinafter, a load balancing method and apparatus in a SIP network according to the present invention will be described in detail with reference to the accompanying drawings.
도 4는 본 발명의 일실시예에 따라 리얼 SIP 서버로부터 전송되는 SIP 메시지에 포함된 콜아이디를 이용하여 로드밸런싱하는 과정을 도시한 도면이다. 4 is a diagram illustrating a process of load balancing using a call ID included in a SIP message transmitted from a real SIP server according to an embodiment of the present invention.
제1 유저 에이전트(401)는 제2 유저 에이전트(402)로의 제1 SIP 메시지를 SIP 로드밸런서(403)로 전송한다. 이때 제1 SIP 메시지는 도면 부호(410)과 같이 INVITE 메소드 정보 및 제1 콜아이디 정보 <1001>를 포함할 수 있다. The
SIP 로드밸런서(403)는 제1 SIP 메시지를 수신하여 제1 콜아이디 정보를 식별한다. 소정의 정보 테이블을 참조하여 제1 콜아이디 정보 및 리얼 SIP 서버 식별 정보가 있는지를 검색하고, 검색되지 않으면 제1 리얼 SIP 서버(404)를 할당하고, 정보 테이블에 제1 콜아이디 정보 및 제1 리얼 SIP 서버(404)의 식별 정보를 기록한다. The
도 4를 참조하면, 정보 테이블(420)에 제1 콜아이디 정보 <1001>와 제1 리얼 SIP 서버 식별 정보 <P1>이 기록되었음을 알 수 있다. Referring to FIG. 4, it can be seen that the first call ID information <1001> and the first real SIP server identification information <P1> are recorded in the information table 420.
SIP 로드밸런서(403)는 할당된 제1 리얼 SIP 서버(404)로 제1 SIP 메시지를 포워딩한다. 제1 리얼 SIP 서버(404)는 제1 SIP 메시지를 수신한 후, 이에 대응하 는 제2 SIP 메시지를 SIP 로드밸런서(403)로 전송한다. The
제2 SIP 메시지는 INVITE 메소드 정보 및 제2 콜아이디 정보를 포함할 수 있다. 이 때 B2BUA 방식의 리얼 SIP 서버인 경우, 제2 콜아이디가 제 1 콜아이디가 서로 상이하다. The second SIP message may include INVITE method information and second call ID information. At this time, in the case of a B2BUA type real SIP server, the second call ID is different from the first call ID.
SIP 로드밸런서(403)는 수신한 제2 SIP 메시지에 포함된 제2 콜아이디 정보 및 제1 리얼 SIP 서버의 식별 정보를 상기 정보 테이블에 기록한다. 즉, 유저 에이전트에서 외부로 전송되는(outbound) SIP 메시지에 대한 콜아이디를 기록하는 것뿐 아니라 외부에서 유저 에이전트로 전송되는(inbound) SIP 메시지에 대한 콜아이디도 함께 기록한다. 상기 예에서 SIP 로드밸런서(403)는 제2 콜아이디 정보 <3001> 및 제1 리얼 SIP 서버 식별 정보 <P1>을 정보 테이블에 기록할 수 있다. The
SIP 로드밸런서(403)는 수신한 제2 SIP 메시지를 제2 유저 에이전트(402)로 전송한다. 제2 유저 에이전트(402)는 제2 SIP 메시지를 수신하고, 이에 대한 응답 메시지를 SIP 로드밸런서(403)로 전송한다. 이때 응답 메시지는 제2 SIP 메시지의 제2 콜아이디 정보를 포함하고 있다.The
SIP 로드밸런서(403)는 수신한 응답 메시지의 제2 콜아이디 정보를 식별하고 상기 정보 테이블을 참조하여 제2 콜아이디 정보 및 설정된 리얼 SIP 서버 정보를 검색한다. 상술한 바와 같이 제2 콜아이디 정보 및 제1 리얼 SIP 서버의 식별정보가 상기 정보 테이블에 기록되어 있으므로, 이를 참조하여 검색된 제1 리얼 SIP 서버로 상기 응답 메시지를 포워딩한다. The
상기 예에서 제2 콜아이디 정보 <3001> 및 설정된 리얼 SIP 서버 정보 <P1> 는 상기 정보 테이블에서 검색되므로, SIP 로드밸런서(403)는 제1 리얼 SIP 서버(405)로 응답 메시지를 포워딩하게 된다. In the above example, since the second call ID information <3001> and the set real SIP server information <P1> are retrieved from the information table, the
따라서 본 발명에 따른 SIP 네트워크에서의 SIP 로드밸런싱 방법에 따르면, 제1 리얼 SIP 서버로부터 제2 유저 에이전트로 전송되는 제2 SIP 메시지에 포함된 제2 콜아이디 정보 및 제1 리얼 SIP 서버 식별 정보를 상기 정보 테이블에 기록하고, 제2 유저 에이전트로부터 전송된 응답 메시지에 포함된 제2 콜아이디 정보를 식별하여 상기 정보 테이블에 기록된 제1 리얼 SIP 서버로 응답 메시지를 전송함으로써, 효율적인 로드밸런싱을 수행하는 것이 가능하다.Therefore, according to the SIP load balancing method in the SIP network according to the present invention, the second call ID information and the first real SIP server identification information included in the second SIP message transmitted from the first real SIP server to the second user agent Efficient load balancing is performed by recording the information in the information table, identifying the second call ID information included in the response message transmitted from the second user agent, and transmitting the response message to the first real SIP server recorded in the information table. It is possible to do
도 5는 본 발명에 따라 유저 에이전트 주소를 이용하여 로드밸런싱하는 과정을 도시한 도면이다. 5 is a diagram illustrating a process of load balancing using a user agent address according to the present invention.
제1 유저 에이전트(501)는 제2 유저 에이전트(502)로의 제1 SIP 메시지를 SIP 로드밸런서(504)로 전송한다. 상기 제1 SIP 메시지는 INVITE 메소드 정보, 제1 유저 에이전트 주소, 및 제2 유저 에이전트 주소를 포함할 수 있다. 유저 에이전트의 주소는 SIP Request-URI(Uniform Resource Identifier)를 포함할 수 있으며, 그 밖에 다양한 네트워크 주소로 응용될 수 있음은 물론이다. The
SIP 로드밸런서(504)는 상기 제1 SIP 메시지를 수신하여 설정 가능한 제1 리얼 SIP 서버(505)를 할당하고 제1 SIP 메시지를 제1 리얼 SIP 서버(505)로 포워딩한다. 이때 SIP 로드밸런서(504)는 제1 SIP 메시지에 포함된 제1 유저 에이전트 주소와 제2 유저 에이전트 주소, 및 제1 리얼 SIP 서버 식별 정보를 정보 테이블에 기록한다. 도 5를 참조하면 제1 유저 에이전트 주소 <ua1@a.com>과 제2 유저 에이 전트 주소 <ua2@a.com>, 및 제1 리얼 SIP 서버의 식별 정보 <P1>가 정보 테이블(550)에 기록됨을 알 수 있다.The
제1 리얼 SIP 서버(505)는 상기 제1 SIP 메시지를 수신하고, SIP 로드밸런서(504)로 제2 SIP 메시지를 전송한다. 제2 SIP 메시지는 INVITE 메소드 정보 및 제2 유저 에이전트 주소를 포함한다. 제1 리얼 SIP 서버(505)는 제1 유저 에이전트(501)와 제2 유저 에이전트(502) 간의 호 연결을 수행하므로 도면 부호(520)과 같이 콜 STATUS 정보로써 제1 유저 에이전트(501, UA1) 및 제2 유저 에이전트(502, UA2)는 <연결>로, 제3 유저 에이전트(503, UA3)는 <대기>로 기록할 수 있다. The first
SIP 로드밸런서(504)는 제2 SIP 메시지를 제2 유저 에이전트(502)로 전송하고, 제2 유저 에이전트(502)로부터 응답 메시지를 수신하여 리얼 SIP 서버를 거쳐 제1 유저 에이전트(501)로 전송함으로써 제1 유저 에이전트(501)와 제2 유저 에이전트(502) 간에 호가 설정되도록 한다.The
다음으로, SIP 로드밸런서(504)는 제3 유저 에이전트(503)로부터 제1 유저 에이전트로(502)의 제3 SIP 메시지를 수신한다. 이하에서는 제3 유저 에이전트(503)와 제1 유저 에이전트(501) 간 호 설정을 예로 들어 설명하나 다음과 같은 로드밸런싱 방법은 제3 유저 에이전트(503)와 제2 유저 에이전트(502) 간 호 설정의 경우에도 마찬가지로 적용될 수 있다. Next, the
제3 SIP 메시지는 INVITE 메소드 정보 및 제1 유저 에이전트 주소를 포함할 수 있다. SIP 로드밸런서(504)는 정보 테이블을 참조하여 상기 제3 SIP 메시지에 포함된 제1 유저 에이전트 주소에 대응하는 제1 리얼 SIP 서버 식별 정보를 검색한 다. 상기 예에서 제1 유저 에이전트 주소 <ua1@a.com>에 대응하는 제1 리얼 SIP 서버 식별 정보는 <P1>으로 검색될 수 있다. SIP 로드밸런서(504)는 식별된 제1 리얼 SIP 서버(505)로 제3 SIP 메시지를 포워딩한다. The third SIP message may include the INVITE method information and the first user agent address. The
또한 제3 SIP 메시지가 제2 유저 에이전트(502)로 전송되는 SIP 메시지인 경우, 제3 SIP 메시지는 INVITE 메소드 정보 및 제2 유저 에이전트 주소를 포함할 수 있으며, SIP 로드밸런서(504)는 정보 테이블을 참조하여 제3 SIP 메시지에 포함된 제2 유저 에이전트 주소에 대응하는 제1 리얼 SIP 서버 식별 정보를 검색하여 식별된 제1 리얼 SIP 서버(505)로 제3 SIP 메시지를 포워딩할 수 있다. In addition, when the third SIP message is a SIP message transmitted to the
따라서 본 발명에 의한 로드밸런싱 방법에 의하면 이미 호 설정된 제1 유저 에이전트 또는 제2 유저 에이전트로 전송되는 제3 SIP 메시지를 제1 유저 에이전트와 제2 유저 에이전트간 호 설정을 수행하는 리얼 SIP 서버로 전송할 수 있으므로 호 설정이 신속하게 수행될 수 있다. Therefore, according to the load balancing method according to the present invention, the third SIP message transmitted to the first user agent or the second user agent which is already set up is transmitted to the real SIP server which performs the call setup between the first user agent and the second user agent. Call setup can be performed quickly.
도 6은 본 발명의 일실시예에 따라 모집단 식별자를 이용하여 로드밸런싱을 수행하는 과정의 흐름을 도시한 흐름도이다. 본 발명에 따라 유저 에이전트의 식별자를 이용하여 로드밸런싱을 수행하는 과정은 다음과 같다. 다음의 과정은 SIP 서버에서 구현될 수 있으므로, 이와 같은 경우를 예로 들어 설명한다. 6 is a flowchart illustrating a flow of a process of performing load balancing using a population identifier according to an embodiment of the present invention. According to the present invention, a process of performing load balancing using an identifier of a user agent is as follows. Since the following process can be implemented in the SIP server, this case will be described as an example.
SIP 로드밸런서는 단계(S601)에서 제1 유저 에이전트로부터 제1 유저 에이전트의 식별자를 포함하는 제1 SIP 메시지를 수신한다. 유저 에이전트의 식별자는 유저 에이전트의 네트워크 주소를 포함할 수 있다. The SIP load balancer receives a first SIP message including an identifier of the first user agent from the first user agent in step S601. The identifier of the user agent may include the network address of the user agent.
SIP 로드밸런서는 단계(S602)에서 상기 제1 유저 에이전트의 식별자에서 소 정의 모집단 식별자를 추출한다. 모집단 식별자를 추출함에 있어서, SIP 메시지의 헤더에 포함되는 각 필드 정보를 이용할 수 있다. 각 필드(TO, From, Call-ID, Contact) 또는 각 필드 내의 정보 (도메인 네임, IP 주소, 국번주소, 각종 tag) 정보가 모집단 식별자가 될 수 있다. 또한, 모집단 식별자는 이 필드의 일부 및 논리적인 조합일 수 있다. The SIP load balancer extracts a predetermined population identifier from the identifier of the first user agent in step S602. In extracting the population identifier, each field information included in the header of the SIP message may be used. Population identifiers may be information in each field (TO, From, Call-ID, Contact) or information in each field (domain name, IP address, address number, various tags). In addition, the population identifier may be some and logical combination of this field.
이러한 SIP 메시지의 헤더에 포함되는 정보의 일예가 도 7에 도시되어 있다. 통상의 SIP 메시지 헤더는 아래와 같은 정보가 포함되어 있다.An example of information included in the header of such a SIP message is shown in FIG. A typical SIP message header contains the following information.
INVITE sip:bob@a.com SIP/2.0INVITE sip: bob@a.com SIP / 2.0
Via: SIP/2.0/UDP pc33.aa.com;branch=z9hG4bK776asdfdsVia: SIP / 2.0 / UDP pc33.aa.com; branch = z9hG4bK776asdfds
Max-Forwards: 70Max-Forwards: 70
To: Bob <sip:bob@a.com>To: Bob <sip: bob@a.com>
From: Alice <sip:alice@b.com>;tag=123123From: Alice <sip: alice@b.com>; tag = 123123
Call-ID: asdf899asfD@pc33.aa.comCall-ID: asdf899asfD@pc33.aa.com
CSeq: 314159 INVITECSeq: 314159 INVITE
Contact: <sip:alice@pc33.aa.com>Contact: <sip: alice@pc33.aa.com>
Content-Type: application/sdp Content-Type: application / sdp
Content-Length: 142Content-Length: 142
상기한 SIP 메시지의 헤더에 포함되는 정보에 대한 사항은 당업자에게 잘 알려져 있는 것이므로 상세한 설명은 생략한다.Details of the information included in the header of the SIP message are well known to those skilled in the art, and thus detailed description thereof will be omitted.
SIP 로드밸런서는 단계(S603)에서 제 1 SIP 메시지를 전송할 제1 리얼 SIP 서버를 할당하고, 상기 모집단 식별자와 상기 제1 SIP 메시지를 처리할 제1 리얼 SIP 서버의 식별 정보를 소정의 정보 테이블에 기록한 후 제1 SIP 메시지를 제1 리얼 SIP 서버로 포워딩한다.In step S603, the SIP load balancer allocates a first real SIP server to which the first SIP message is to be transmitted, and assigns the population identifier and identification information of the first real SIP server to process the first SIP message to a predetermined information table. After recording, the first SIP message is forwarded to the first real SIP server.
SIP 로드밸런서는 단계(S604)에서 제2 유저 에이전트로부터 제2 유저 에이전트의 식별자를 포함하는 제2 SIP 메시지를 수신한다. The SIP load balancer receives a second SIP message including an identifier of the second user agent from the second user agent in step S604.
SIP 로드밸런서는 단계(S605)에서 상기 정보 테이블을 참조하여 제2 유저 에이전트의 식별자에 대응하는 모집단 식별자를 검색한다. In step S605, the SIP load balancer searches for a population identifier corresponding to the identifier of the second user agent by referring to the information table.
SIP 로드밸런서는 단계(S606)에서 검색 결과 제2 SIP 메시지에 포함된 식별자에 대응하는 모집단 식별자가 존재하는 경우에는 모집단 식별자에 대응하는 리얼 SIP 서버로 제2 SIP 메시지를 포워딩한다.In step S606, the SIP load balancer forwards the second SIP message to the real SIP server corresponding to the population identifier when the population identifier corresponding to the identifier included in the second SIP message is found.
상기 검색 결과 대응하는 모집단 식별자가 존재하지 아니하는 경우, SIP 로드밸런서는 단계(S607)에서 모집단 식별자를 추출하고, 제2 SIP 메시지를 처리할 제2 리얼 SIP 서버를 할당한다. If there is no corresponding population identifier as a result of the search, the SIP load balancer extracts the population identifier in step S607 and allocates a second real SIP server to process the second SIP message.
SIP 로드밸런서는 단계(S608)에서 제2 SIP 메시지로부터 추출한 모집단 식별자와 제2 메시지를 처리할 제2 리얼 SIP 서버 식별정보를 상기 정보 테이블에 기록한다. In step S608, the SIP load balancer records the population identifier extracted from the second SIP message and the second real SIP server identification information to process the second message in the information table.
이와 같은 본원 발명의 유저 에이전트의 모집단 식별자를 이용한 로드밸런싱 방법은 유저 에이전트들을 모집단 식별자에 따라 소정 개수의 그룹으로 나누고 각 모집단 식별자에 대응하는 리얼 SIP 서버를 할당함으로써, 호 설정 처리가 신속하게 이루어질 수 있으며, 효율적인 로드밸런싱이 수행될 수 있는 효과가 있다. 또 한 그룹별 유저 에이전트의 콜 STATUS를 각 리얼 SIP 서버에서 관리하므로 서버들 간 데이터베이스에 기록되는 콜 STATUS 정보의 공유를 최적화할 수 있다. In such a load balancing method using a population identifier of a user agent of the present invention, call setup processing can be performed quickly by dividing the user agents into a predetermined number of groups according to the population identifier and allocating a real SIP server corresponding to each population identifier. In addition, there is an effect that efficient load balancing can be performed. In addition, since the call status of user agents for each group is managed by each real SIP server, the sharing of call status information recorded in the database between servers can be optimized.
또한 상기 모집단 식별자에 따른 그룹 지정으로 특정 그룹에 대한 서비스를 별도로 지정하여 관리할 수 있다. 예를 들어, 모집단 식별자가 동일한 그룹 내에서만 3자 통화, 메신저 서비스 등을 가능하게 하거나 모집단 식별자가 동일한 그룹별로 과금을 수행할 수도 있다. In addition, by specifying a group according to the population identifier, a service for a specific group may be separately designated and managed. For example, a three-party call, a messenger service, or the like may be enabled only within a group having the same population identifier, or billing may be performed for a group having the same population identifier.
도 8은 본 발명의 일실시예에 따라 모집단 식별자를 유저 에이전트의 도메인 네임의 상위단으로 설정한 경우의 네트워크 연결과 정보 테이블의 일예를 도시한 것이다. 8 illustrates an example of a network connection and an information table in a case where a population identifier is set higher than a domain name of a user agent according to an embodiment of the present invention.
SIP 로드밸런서(805)는 정보 테이블(800)에 유저 에이전트의 네트워크 주소에서 추출한 모집단 식별자(809) 및 대응하는 리얼 SIP 서버의 식별 정보(811)를 기록한다. 또한 실시예에 따라서는 각 유저 에이전트로부터 수신한 SIP 메시지에 포함된 콜아이디 정보(810)를 기록할 수 있다. The
SIP 로드밸런서(805)는 유저 에이전트로부터 유저 에이전트 식별자를 포함하는 SIP 메시지를 수신하면, 도 7에서 상술한 과정으로 SIP 메시지를 유저 에이전트 식별자로부터 추출된 모집단 식별자에 대응하는 리얼 SIP 서버로 포워딩한다. When the
예를 들어, 유저 에이전트로부터 모집단 식별자 <a.com>를 포함하는 SIP 메시지를 수신하는 경우, 정보 테이블(800)을 참조하여 대응하는 리얼 SIP 서버 <P 1>으로 SIP 메시지를 전송할 수 있다. For example, when receiving a SIP message including the population identifier <a.com> from the user agent, the SIP message may be transmitted to the corresponding real SIP server <
또한 도 8에서는 도메인 네임의 상위단을 모집단 식별자로 설정하는 경우에 대하여 설명하였으나 유저 에이전트의 네트워크 주소, SIP 어드레스, IP 어드레스, 국번 중 하나이거나 이들의 일부를 모집단 식별자로 설정하더라도 도 7 및 도 8을 참조하여 설명한 로드밸런싱 방법이 적용 가능함은 당업자에게 용이하게 이해될 수 있을 것이다. In FIG. 8, the case where the upper end of the domain name is set as the population identifier has been described. However, even if one or a part of the network address, the SIP address, the IP address, or the station number of the user agent is set as the population identifier, FIGS. 7 and 8 are described. It will be readily understood by those skilled in the art that the load balancing method described with reference to is applicable.
본 발명에 따른 SIP 네트워크에서 로드밸런싱을 수행하는 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으 며, 그 역도 마찬가지이다.A method for performing load balancing in a SIP network according to the present invention may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. The medium may be a transmission medium such as an optical or metal wire, a waveguide, or the like including a carrier wave for transmitting a signal specifying a program command, a data structure, or the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
도 9는 본 발명의 일실시예에 따라 콜아이디를 이용하여 로드밸런싱을 수행하는 시스템의 구성을 도시한 블록도이다. 9 is a block diagram illustrating a configuration of a system for performing load balancing using a call ID according to an embodiment of the present invention.
유저 에이전트 통신부(901)는 유저 에이전트로부터 메소드 정보 및 콜아이디 정보를 포함하는 SIP 메시지를 수신하고, 리얼 SIP 서버로부터 전송된 SIP 메시지를 소정의 유저 에이전트에게 전송하는 기능을 담당한다. The user
정보 테이블(902)은 소정의 콜아이디 정보와 해당 콜아이디 정보에 대응하는 리얼 SIP 서버의 식별 정보를 유지한다. The information table 902 holds predetermined call ID information and identification information of a real SIP server corresponding to the call ID information.
검색부(904)는 정보 테이블(902)을 참조하여 콜아이디 정보에 대응하는 리얼 SIP 서버의 식별 정보를 검색한다. The
리얼 SIP 서버 통신부(903)는 검색부(904)에서 검색된 식별 정보에 대응하는 리얼 SIP 서버로 SIP 메시지를 포워딩하고, 리얼 SIP 서버로부터 소정의 SIP 메시지를 수신하는 기능을 담당한다.The real SIP
정보 테이블 관리부(905)는 유저 에이전트 통신부(901) 또는 리얼 SIP 서버 통신부(903)에서 수신된 SIP 메시지에서 소정의 콜아이디 정보를 추출하고, 해당 콜아이디 정보와 상기 SIP 메시지를 처리할 리얼 SIP 서버의 식별 정보를 정보 테이블(902)에 기록한다. The
이러한 도 9의 로드밸런싱 시스템의 상세 동작 내용은 전술한 도 4의 설명과 동일하므로 자세한 설명은 생략한다.Since the detailed operation of the load balancing system of FIG. 9 is the same as the description of FIG. 4 described above, a detailed description thereof will be omitted.
도 10은 본 발명의 일실시예에 따라 유저 에이전트 주소를 이용하여 로드밸 런싱하는 시스템의 구성을 도시한 블록도이다.10 is a block diagram illustrating a configuration of a system for load balancing using a user agent address according to an embodiment of the present invention.
유저 에이전트 통신부(1001)는 유저 에이전트로부터 메소드 정보 및 유저 에이전트 주소(발신자 주소 및 수신자 주소)를 포함하는 SIP 메시지를 수신하고, 리얼 SIP 서버로부터 전송된 SIP 메시지를 소정의 유저 에이전트에게 전송하는 기능을 담당한다. The user
정보 테이블(1002)은 유저 에이전트 주소와 SIP 메시지를 처리할 리얼 SIP 서버의 식별 정보를 유지한다. The information table 1002 maintains user agent addresses and identification information of the real SIP server that will process the SIP message.
정보 검색부(1004)는 정보 테이블(1002)을 참조하여 소정의 유저 에이전트 주소에 대응하는 리얼 SIP 서버의 식별 정보를 검색한다. The
리얼 SIP 서버 통신부(1003)는 정보 검색부(1004)에서 검색된 식별 정보에 대응하는 리얼 SIP 서버로 SIP 메시지를 포워딩하고, 리얼 SIP 서버로부터 소정의 SIP 메시지를 수신하는 기능을 담당한다.The real SIP server communication unit 1003 is responsible for forwarding the SIP message to the real SIP server corresponding to the identification information retrieved by the
정보 테이블 관리부(1005)는 SIP 메시지에 포함된 유저 에이전트 주소 및 해당 SIP 메시지를 처리할 리얼 SIP 서버의 식별 정보를 정보 테이블(1002)에 기록하고, 정보 테이블(1002)에 기록된 정보를 관리하는 기능을 수행한다.The
이러한 도 10의 SIP 로드밸런싱 시스템에서, 제3 유저 에이전트로부터 상기 제1 유저 에이전트 주소 또는 상기 제2 유저 에이전트 주소로 전송될 제3 SIP 메시지를 수신한 경우, 정보 검색부(1004)는 정보 테이블(1002)을 참조하여 상기 제3 SIP 메시지에 포함된 상기 제1 유저 에이전트 주소 또는 상기 제2 유저 에이전트 주소에 대응하는 식별 정보를 검색하고, 리얼 SIP 서버 통신부(1003)는 상기 식별 정보에 대응하는 상기 제1 리얼 SIP 서버로 상기 제3 SIP 메시지를 포워딩한다. 이러한 도 10의 SIP 로드밸런싱 시스템의 상세 동작 내용은 전술한 도 5의 설명과 동일하므로 자세한 설명의 생략한다. In the SIP load balancing system of FIG. 10, when a third SIP message to be transmitted to the first user agent address or the second user agent address is received from a third user agent, the
도 11은 본 발명의 일실시예에 따라 모집단 식별자를 이용하여 로드밸런싱을 수행하는 시스템의 구성을 도시한 블록도이다.11 is a block diagram showing the configuration of a system for performing load balancing using a population identifier according to an embodiment of the present invention.
유저 에이전트 통신부(1001)는 유저 에이전트로부터 메소드 정보 및 유저 에이전트의 식별자를 포함하는 SIP 메시지를 수신하고, 리얼 SIP 서버로부터 전송된 SIP 메시지를 소정의 유저 에이전트에게 전송하는 기능을 담당한다. The user
정보 테이블(1102)은 소정의 모집단 식별자와 해당 모집단 식별자에 대응하는 리얼 SIP 서버의 식별 정보를 유지한다.The information table 1102 holds a predetermined population identifier and identification information of a real SIP server corresponding to the population identifier.
정보 테이블 관리부(1105)는 SIP 메시지에 포함된 유저 에이전트의 식별자에서 모집단 식별자를 추출하고, 추출된 모집단 식별자와 리얼 SIP 서버의 식별 정보를 정보 테이블(1102)에 기록한다. The
식별자 검색부(1104)는 상기 정보 테이블을 참조하여 상기 식별자에 대응하는 모집단 식별자를 검색하고, 상기 모집단 식별자에 대응하는 리얼 SIP 서버의 식별 정보를 검색한다. The
식별자 검색부(1104)의 검색 결과 해당 모집단 식별자가 없는 경우, 정보 테이블 관리부(1105)는 상기 식별자에서 모집단 식별자를 추출하고 추출된 모집단 식별자 및 해당 SIP 메시지를 처리할 리얼 SIP 서버의 식별 정보를 정보 테이블(1002)에 기록한다.If there is no corresponding population identifier as a result of the search by the
리얼 SIP 서버 통신부(1103)는 식별자 검색부(1104)에서 검색된 식별 정보에 대응하는 리얼 SIP 서버로 SIP 메시지를 포워딩하고, 리얼 SIP 서버로부터 소정의 SIP 메시지를 수신하는 기능을 담당한다.The real SIP
도 11에 도시된 본 발명에 따른 SIP 로드밸런싱 시스템의 상세 동작 내용은 전술한 도 6 내지 도 8의 설명과 동일하므로, 이하 상세한 설명은 생략한다.Since detailed operation contents of the SIP load balancing system according to the present invention shown in FIG. 11 are the same as those described with reference to FIGS. 6 to 8, detailed descriptions thereof will be omitted.
지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다.While specific embodiments of the present invention have been described so far, various modifications are possible without departing from the scope of the present invention.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허 청구의 범위뿐 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the claims below, but also by the equivalents of the claims.
본 발명에 따르면 리얼 SIP 서버로부터 수신한 SIP 메시지의 콜아이디 정보 및 설정된 리얼 SIP 서버 정보를 이용하여 로드밸런싱하는 방법, 유저 에이전트의 주소를 이용하여 로드밸런싱 하는 방법 및 유저 에이전트의 식별자를 이용하여 로드밸런싱하는 방법을 제공할 수 있다.According to the present invention, a method of load balancing using call ID information and set real SIP server information of a SIP message received from a real SIP server, a method of load balancing using an address of a user agent, and a load using an identifier of a user agent It can provide a method of balancing.
본 발명에 따르면 SIP 로드밸런서에서 리얼 SIP 서버로부터 수신한 SIP 메시지의 콜아이디 정보 및 설정된 리얼 SIP 서버 정보를 이용하여 로드밸런싱하고, 유저 에이전트의 주소를 이용하여 로드밸런싱함으로써 유저 에이전트 간의 호 설정을 신속하게 수행할 수 있고, 효율적인 로드밸런싱을 제공할 수 있다. According to the present invention, the SIP load balancer load balances the call ID information of the SIP message received from the real SIP server and the set real SIP server information, and load balances the address of the user agent to quickly establish call between user agents. It can be performed in a simple manner and can provide efficient load balancing.
본 발명에 따르면 SIP 로드밸런서에서 모집단 식별자 별로 대응하는 리얼 SIP 서버를 할당하여 SIP 메시지를 처리함으로써 리얼 SIP 서버 별로 신속한 호 설정 및 효율적이고 실질적인 로드밸런싱을 제공할 수 있으며, 서버들 간의 데이터베이스의 공유를 최적화할 수 있다. According to the present invention, a SIP load balancer allocates a corresponding real SIP server for each population identifier and processes SIP messages, thereby providing fast call setup and efficient and practical load balancing for each real SIP server, and sharing a database among servers. Can be optimized
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040117949A KR100673513B1 (en) | 2004-12-31 | 2004-12-31 | Method for load-balancing in session initiation protocol network and system of enabling the method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040117949A KR100673513B1 (en) | 2004-12-31 | 2004-12-31 | Method for load-balancing in session initiation protocol network and system of enabling the method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060078347A KR20060078347A (en) | 2006-07-05 |
KR100673513B1 true KR100673513B1 (en) | 2007-01-24 |
Family
ID=37170268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040117949A KR100673513B1 (en) | 2004-12-31 | 2004-12-31 | Method for load-balancing in session initiation protocol network and system of enabling the method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100673513B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010014581A (en) * | 1999-03-31 | 2001-02-26 | 포만 제프리 엘 | Using virtual urls for load balancing |
-
2004
- 2004-12-31 KR KR1020040117949A patent/KR100673513B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010014581A (en) * | 1999-03-31 | 2001-02-26 | 포만 제프리 엘 | Using virtual urls for load balancing |
Also Published As
Publication number | Publication date |
---|---|
KR20060078347A (en) | 2006-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100985612B1 (en) | Automatic orchestration of dynamic multiple party, multiple media communications | |
KR100966959B1 (en) | Retrieval of offline instant messages | |
US7656836B2 (en) | Centralized controller for distributed handling of telecommunications features | |
US8296447B2 (en) | Method for copying session information, call control server for executing the same, and computer product | |
US8437266B2 (en) | Flow through call control | |
CN113162865A (en) | Load balancing method, server and computer storage medium | |
CN101911664A (en) | Service control device, service control system, and method | |
EP2068524A1 (en) | A method and a system for acquiring the transmission path of the sip message | |
CN102651732B (en) | Service trigger method in a kind of IMS network and system | |
US9854003B2 (en) | System and method for initiating telecommunications sessions through an electronic mail address | |
US9167085B2 (en) | System and method for coordinated call-back revocation | |
US9112881B2 (en) | Presence-based caller identification | |
US8964955B2 (en) | Presence-based message waiting indicator and missed calls | |
KR100673513B1 (en) | Method for load-balancing in session initiation protocol network and system of enabling the method | |
CN101772195B (en) | Establishing and joining method of IMS (information management system) trunking conference, distribution system and device | |
CN111711644B (en) | Method, system and equipment for distributing and managing interaction tasks | |
CN101490663B (en) | Supporting response to mid-dialog failure | |
JP4723676B2 (en) | COMMUNICATION METHOD, SERVER, AND PROGRAM FOR SESSION STATUS NOTIFICATION | |
KR100859706B1 (en) | Call management method and system using stateful SIP proxy server | |
US8929209B2 (en) | Quantum and promiscuous user agents | |
CN107852577A (en) | A kind of supplementary service implementation method, terminal device and IMS service device | |
KR100894906B1 (en) | Terminal unit for providing IP multimedia service on the basis of session initiaion protocol, call session control function device, method of transmitting and receiving thereof | |
Acharya et al. | Real-time monitoring of SIP infrastructure using message classification | |
EP4231617A1 (en) | Method for managing and/or signaling at least one voip call and a communication system | |
JP5289345B2 (en) | Address translation device, communication system, message communication method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130110 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140103 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20141231 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20160113 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20170116 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20190115 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20200115 Year of fee payment: 14 |