專利名稱:負載分散裝置和負載分散系統的制作方法
技術領域:
本發明涉及一種進行會話控制和管理的裝置確定接收到的消息的中繼目標的技術,尤其涉及一種將負載分散到多個會話控制裝置后進行通信處理的技術。
背景技術:
以前,負載分散裝置通過由具有相同功能的多臺Web服務器來分擔對Web服務器的通信量,以應對龐大的通信量為目的而得到了發展。現在,除Web服務器外,還以路由器、郵件服務器、VPN網關等多種設備和協議作為對象,正在拓展并發展。
其中,還包含實現以SIP服務器為對象的負載分散的裝置,考慮SIP(Session Initiation Protocol)(參照非專利文獻1)固有的標準,具備將同一對話的通信量分配給相同服務器的功能。作為將同一對話的通信量分配給相同服務器的功能(持續功能)的典型方式,采取如下方式,即參照包含于SIP頭中的Call-Id值,將該值相同的消息分配給相同服務器。
另外,就與加密通信的對應而言,還存在支持使用了SSL(SecureSocket Layer)的HTTPS(Hypertext Transfer Protocol Security)的加密通信的裝置等。
作為負載分散裝置的實現方法,有如下方法,負載分散裝置將分配對象服務器的地址通知給終端,督促終端再連接于負載分散裝置指定的分配對象服務器上(例如參照專利文獻1)。
專利文獻1特開2002-334012非專利文獻1RFC 3261在現有的負載分散裝置中,在參照IP數據包的負載部分中包含的信息(例如SIP消息等層7的信息、應用層的信息)來確定分配對象的情況下,一旦負載分散裝置結束加密通信,則必需進行解密處理。
發明內容
本發明的第1課題和目的在于,防止由于該解密處理,負載分散裝置的處理負載增大,負載分散的效果變弱,引起傳輸延遲。
在現有利用了重寄(redirect)通知的負載分散裝置中,由于僅考慮到將分配對象通知給終端的步驟,所以有時終端會永久繼續使用暫時通知了的分配對象。
本發明的第二課題和目的在于,防止處理負載長期集中于特定的分配對象,使負載分散的效果變弱。
在現有的利用了重寄的負載分散裝置中,由于連接或處理的請求以從具有應對重寄通知的功能的終端發送為前提,所以不能對應于來自不具有應對重寄通知的功能的服務器等(例如為一般的SIP代理服務器)的請求。
本發明的第三課題和目的在于,應對來自不具有響應重寄通知的功能的服務器的連接或處理請求。
在現有的負載分散裝置中,當由負載分散裝置分配的分配對象與終端在建立繼續的連接過程中,在有從其它終端或服務器至該終端的連接請求的情況下,有時會向與建立了所述繼續連接的分配對象不同的分配對象分配該連接請求。
本發明的第四課題和目的在于,防止為了應對一個終端而消耗多個分配對象的資源。
在現有的負載分散裝置中,在終端或服務器不將連接請求發送給負載分散裝置而直接發送給分配對象的一的情況下,有時負載分散裝置不能檢測該連接請求,結果,負載分散裝置不會像指示的那樣分散負載。
本發明的第五課題和目的在于,防止連接到負載分散裝置未分配的分配對象上。
作為對上述第一課題的解決手段,本發明的負載分散裝置判定接收到的IP數據包的上位層中之前的發送源是否是終端,在之前的發送源是終端的情況下,確定應對該終端的分配對象,并向該終端通知分配對象的地址(重寄)。另外,此時,終端向利用重寄通知的分配對象再發送上述IP數據包。
作為對上述第二課題的解決手段,在本發明中,在應對終端的分配對象中設置有效期限,在越過該有效期限的情況下,拒絕上述終端連接于分配對象。
作為對上述第三課題的解決手段,本發明的負載分散裝置判定接收到的IP數據包的上位層中之前的發送源是否是服務器,在之前的發送源是服務器的情況下,向應對該IP數據的發送對象終端的分配對象發送該IP數據包。
作為對上述第四課題的解決手段,本發明的負載分散裝置在分配對象與終端確立繼續的連接中,在有從其它終端或服務器至該終端的其它連接請求的情況下,向確立上述繼續連接的分配對象發送該其它連接請求。
作為對上述第五課題的解決手段,在本發明中,在終端或服務器向負載分散裝置未分配的分配對象直接發送連接請求的情況下,拒絕該連接請求。
發明效果通過對上述第一課題的解決手段,負載分散裝置不必加密通信的終端、即不必進行解密處理。由此,可減輕負載分散裝置的處理,實現負載分散裝置原來的負載分散,還可防止負載分散裝置中的解密處理引起的傳輸延遲。
通過對上述第二課題的解決手段,終端不會永久地連續使用一個分配對象。由此,可防止處理長期集中于特定的分配對象,可實現負載分散裝置原來的負載分散。
通過對上述第三課題的解決手段,來自沒有應對重寄通知的功能的發送源的連接或處理請求也可分配到各個分配對象。由此,即便是來自不具有應對重寄通知的功能的發送源的連接或處理請求,也可實現負載分散。
通過對上述第四課題的解決手段,終端可有效利用確立繼續連接的分配對象的資源,并且,可防止為了應對一個終端而消耗多個分配對象的資源。
通過對上述第五課題的解決手段,可防止終端或服務器提前連接到負載分散裝置未分配的分配對象。由此,可實現負載分散裝置原來的負載分散。
圖1是表示SIP負載分散裝置的一構成例的圖。
圖2是表示根據本發明實施方式的SIP負載分散系統一構成例的圖。
圖3是表示將終端誘導到響應的SIP服務器的步驟一例的序列圖。
圖4是表示終端向SIP負載分散裝置發送的消息一例的圖。
圖5是表示通知響應的SIP服務器的地址的重寄響應的消息一例的圖。
圖6是表示終端向響應的SIP服務器發送的消息一例的圖。
圖7是表示負載分散管理表格一例的表格圖。
圖8是表示控制由SIP負載分散裝置分配的SIP服務器的利用有效期限的方法一例的序列圖。
圖9是表示防止終端利用未被SIP負載分散裝置許可的SIP服務器的方法一例的序列圖。
圖10是表示擴展位置(location)表格一例的表格圖。
圖11是表示SIP負載分散系統中的、跨區的消息發送接收處理一例的方式說明圖。
圖12是表示SIP負載分散裝置的數據包接收時的處理步驟一例的流程圖。
圖13是表示同一區內的終端間通信一例的方式說明圖。
圖14是表示SIP服務器的一構成例的圖。
圖15是表示SIP服務器中的中繼目標地址解決處理一例的流程圖。
圖16是表示使用應用程序服務器的情況下的SIP負載分散系統的一構成例圖。
符號說明10 CPU12 網絡接口14 存儲裝置16 存儲器20 通信控制部21 SIP堆棧(stack)部22 發送源判定部件23 重寄功能24 無狀態代理(stateless proxy)功能25 負載分散管理部件26 負載分散管理表格27 位置控制部件具體實施方式
實施例1圖1是表示本實施方式的SIP負載分散裝置的一構成例的圖。在本實施例中,以SIP為例,但也可適用于其它應用程序層的協議(其它會話控制協議等)。SIP負載分散裝置1具備CPU(10)、存儲器(16)、存儲裝置(14)、網絡接口(12),存儲將在后詳細說明的控制用程序。當SIP負載分散裝置動作時,在設置于殼體內的存儲器上展開控制程序,由CPU來進行控制程序。存儲裝置可以是安裝于殼體內部的形式,也可以是作為外部存儲裝置設置在其它殼體中的形式,或是由網絡連接的形式。
另外,圖1所示的負載分散裝置也可具備具有裝置管理權限的用戶等操作負載分散裝置用的用戶接口。作為用戶接口,例如最好具備指令輸入用的鍵盤、GUI輸入用的鼠標、顯示畫面等。
用圖1的20-27所示的構成框圖來說明上述控制用程序的具體內容。SIP負載分散裝置包括進行數據包發送接收的網絡接口12、CPU10與HDD(Hard Disc Drive)14、和存儲器16。在存儲器16中,存儲通信控制程序20、SIP堆棧程序21、發送源判定程序22、重寄(redirect)程序23、無狀態代理程序24、負載分散管理程序25、負載分散管理表格26、位置控制程序27。
通信控制程序20進行經網絡接口12接收到的數據包的解析、進行數據包發送時所需的頭信息的整形操作和發送。SIP堆棧程序在接收數據包的內容為SIP消息的情況下,進行消息解析,在發送數據包的內容是SIP消息的情況下,進行SIP頭信息的整形操作與通過通信控制程序20的發送處理。發送源判定程序22進行在接收SIP消息時、前一跳躍(hop)的發送源是否是自身負責的區域內的終端7的判定。負載分散管理程序25在前一跳躍的發送源是自身負責的區域內的終端的情況下,通過負載分散管理程序25從負載分散管理表格26中取得應對該發送源終端的SIP服務器2的地址,將取得的SIP服務器的地址通知給終端7。位置控制程序27在負載分散管理程序25重新對終端7分配應對的SIP服務器、并重新登錄在負載分散管理表格26中時,將終端7與應對的SIP服務器2的對應關系通知給位置DB(Data Base)3后,提示登錄。
無狀態代理程序24在前一跳躍的發送源不是自身負責的區域內的終端的情況下,通過負載分散管理程序25從負載分散管理表格26取得目的地終端7在在線時被分配給哪個SIP服務器2,并將消息作為無狀態代理,中繼給取得的SIP服務器。
這里,所謂無狀態代理是指不進行對話管理也不進行交易管理,而根據目的地解決的結果來單純中繼接收到的消息的代理。因此,在無狀態代理的情況下,例如即便作為進行某個請求消息的中繼,也不包含于與之對應的響應消息的通信路徑中。相反,所謂交易狀態代理是指管理請求與響應的對,必要時進行再發送控制等的代理。另外,將管理從IP電話的發送時的請求到切斷時的響應的對話、并排除與狀態轉變模式不一致的通信量、或將通信標簽適用于收費管理中的交易狀態代理稱為呼叫狀態代理。
負載分散管理表格26存儲并管理終端7與應對的SIP服務器2的對應關系。負載分散管理程序25參照、更新負載分散管理表格26的信息。這里,負載分散管理表格26也可存儲在HDD14內。
在本實施例中,假設圖1的20-27所示的各功能塊全部由軟件處理來實施,但也可使用對應于各個功能塊的處理器或信號處理電路等,用硬件實現圖1的構成。
圖2是表示根據本實施方式的SIP負載分散系統一構成例的圖。SIP負載分散系統由用戶A1和用戶A1擁有的終端7a、用戶A1或用戶A1之外的用戶An擁有的終端7n等、多個終端7所屬的區域A30、和用戶B和用戶B擁有的終端8所屬的區域B35構成。區域B作為一例,示出與區域A不同的區域的存在,也可進一步追加不同的多個區域,構成網絡系統。另外,圖示在區域B內,終端8與容納終端8、并控制終端8的會話的SIP服務器b4由網絡6連接的構成,但區域B內的構成也與區域A內的構成一樣,也可以是由多臺終端與多臺SIP服務器構成的形式。
本實施方式的SIP負載分散系統的一個特征在于具有如下功能,即如區域A內的構成所示,當由多個SIP服務器2a-2n分擔應對與多臺終端7a-7n的通信時,SIP負載分散裝置1對于來自終端7的詢問,通知應對的SIP服務器2的地址。此時,各SIP服務器2a-2n共同利用管理屬于該區域的用戶和終端的信息的位置DB3。另外,終端7a-7n通過網絡5與SIP負載分散裝置1、SIP服務器2a-2n、位置DB3連接。并且,設區域A與區域B也相互通過網絡來連接。圖2中,對位置DB3的訪問也可看作來自終端7或其它區域的裝置,但也可區分網絡,使訪問僅來自SIP負載分散裝置1和SIP服務器2a-2n。此時,進一步確保安全性。
圖3是表示就本實施方式的SIP負載分散系統而言、將來自終端7的消息通過SIP負載分散裝置1分配給SIP服務器2之前的序列一例的圖。
設本實施方式的終端7在進行加密通信時,事先進行由RFC3329規定的安全方式的協商。由此,在圖3-圖6中,在安全性方式的協商完成之前、進行非加密(未加密)通信的前提下,示出序列和消息的實例。但是,只要實現本發明的效果,也可適用其它加密通信方式。
另外,示出在圖4示例的從終端發送到SIP負載分散裝置的消息(F40)中、不包含安全性方式的協商信息(Security-Client頭)的一般REGISTER登錄的請求消息,但在F40的消息中包含安全性方式的協商信息也無妨。
另一方面,使用圖5所示的302響應,即在從SIP負載分散裝置1向終端7通知應對的SIP服務器的地址的響應消息(F41)中,不包含安全性方式的協商響應信息(Security-Server頭)。
這是因為即便在例如F40中包含安全性方式的協商信息,也由于負載分散裝置自身不進行該協商,所以F41的消息中通常不包含安全性方式的協商信息(Security-Server頭)。
但是,F41的消息中也可包含安全性方式的協商信息。此時,雖違反RFC3329的規定,但也可將302響應用作F41。或者,根據RFC3329的規定,將可指定安全性方式的協商響應信息的423響應或429響應用作F41。
另外,在本實施方式中,示出將302響應(F41)用作重寄通知的消息的實例,但若統一與終端間的網絡接口規格,則也可使用300序號的其它響應代碼、或未預約的獨自的響應代碼。
向SIP負載分散裝置1分配虛擬區域的區域名(例如domainA.co.jp),作為代表管轄區域的地址。所謂虛擬區域是指公開SIP負載分散裝置1的地址,代替實際處理各消息的各SIP服務器的地址。終端7將使用開始時的REGISTER消息(F40)發送給該地址(即SIP負載分散裝置)目的地(50)。SIP負載分散裝置1在通過發送源判定程序22將接收到的消息的前一跳躍的發送源判定為終端7的情況下,利用負載分散管理程序25來確定應對終端7的SIP服務器2,通過302響應將確定后的SIP服務器的地址通知給終端7(F41)。作為此時的SIP服務器2的地址通知方法,如圖5所示,利用Contact頭(54)。
接收到302響應(F41)的終端向由302響應的Contact頭通知的地址目的地發送消息(F42)。具體的消息內容如圖6所示,向Request-Line指定由302響應的Contact頭通知的地址(56)。此時,分配給用戶或終端的SIP-URI(52、56)或聯系地址(53、59)的內容與原始的一樣。
圖7是表示本實施方式的SIP負載分散裝置1的負載分散管理表格26一構成例的圖。
如圖7所示,在負載分散管理表格26中,存儲并管理以終端在線時的REGISTER登錄(F40)為契機分配的SIP服務器與終端的對應關系。具體而言,以SIP服務器的分配為契機,向請求消息的From頭追加指定的用戶或終端的SIP-URI的項目(62),并在分配給該SIP-URI的SIP服務器的欄中設立位(60)。
另一方面,負載分散管理程序25在確定應對終端7的SIP服務器時,參照各SIP服務器的應對總數(64),重新分配例如應對數少的SIP服務器。因為可根據應對總數(64)來推測SIP服務器的負載,所以通過參照應對總數(64)來分配SIP服務器,可進行反映SIP服務器的負載的分配,可實現更細致的負載分散。
作為簡便統計應對總數的方法,可在對分配的SIP服務器的欄的登錄中使用數值計數的‘1’,將該數值計數的總和設為應對總數。另外,當確定分配對象的SIP服務器時,也可進行各每個SIP服務器的性能相加的加權。通過進行將每個SIP服務器的性能相加的加權,在各個SIP服務器的規格(例如CPU性能、存儲器容量等)有差異的情況下,可進行反映該規格差異的分配,實現進一步細致的負載分散。
在F40的請求(例如作為安全性協商的信息)示出終端7期望的加密通信的方式時,也可對在與SIP服務器之間利用的加密通信的每種方式進行加權。由于加密的編碼/解碼處理所需的負載在加密通信的每個方式中不同,所以通過對加密通信的每種方式進行加權,可進行反映加密通信的每種方式的負載差的SIP服務器分配,實現進一步細致的負載分散。
在進行加權的情況下,只要將通過加權確定的數值計數登錄到欄中即可。另外,只要確定對每個加密通信方式分配的SIP服務器即可。在因為有無加密或加密通信方式的差異來區分服務或合同形式的情況下,設備投資或管理可簡化。
圖8是表示控制由本實施方式的SIP負載分散裝置分配的SIP服務器的利用有效期限的方法一例的序列圖。
在本實施方式的SIP負載分散裝置中,與將分配給終端7的SIP服務器的地址通知給終端7的同時,將該分配的SIP服務器的利用有效期限也通知給終端7。例如,在302響應的Contact頭中包含expires參數(圖5、54)來通知。作為此時通知的有效期限的值,通知作為系統允許的最長利用時間。該最長利用時間可與系統設置的場所、系統的使用方式等一致來設定。
通過如此設定有效期限,在無論會話實質上結束后但由于故障等原因未發送來自終端的會話結束通知的情況下,可釋放資源。由此,可防止繼續浪費使用SIP服務器的資源。
另一方面,圖8的后半部分示出從負載分散管理表格26中刪除項目時的序列。以終端離線時發送的REGISTER刪除消息(F75)為契機,除SIP服務器2進行位置信息的刪除的通常處理(F76)外,還向SIP負載分散裝置2發送請求刪除負載分散管理表格26的該用戶(或終端)的項目的命令(F77)。在SIP負載分散裝置2內部,接受該命令的負載分散管理程序25刪除負載分散管理表格26的該項目。通過進行這種處理,可由負載分散表格26來管理于在線時對終端分配的SIP服務器在離線時被開放。在終端離線時未發送REGISTER刪除消息(F76)的情況下,當REGISTER的有效期限截止時,SIP服務器2發出項目刪除請求。通過該有效期限截止的處理,終端不會永久連續使用一個分配對象。由此,可防止處理長期集中于特定的分配對象,實現負載分散裝置原來的負載分散。
上述方法是SIP負載分散裝置不進行有效期限的計時器管理的方法,但作為其它方法,也可由SIP負載分散裝置來進行有效期限的計時器管理。此時,必需使可以利用被分配終端的SIP服務器的期間與REGISTER的有效期限一致。此時,還必需考慮延長REGISTER有效期限。首先,將在利用F41的重寄通知中與通知終端7的SIP服務器的有效期限值相同的值作為該REGISTER的有效期限,利用對REGISTER登錄的成功響應(200OK(F45)),通知給終端7。另外,除圖7的構成外,向負載分散管理表格26追加用于管理對終端分配的SIP服務器的利用有效期限的欄(行)。
作為有效期限的設定方式,在唯一確定有效期限的時間(長度)的情況下,可以是記錄開始時刻的絕對時間的形式,也可以是事先計算結束時刻后記錄的形式。此時,通過在記錄時計算結束時刻,在檢查時與當前時刻相比較,可減輕處理負載。并且,在每個連接時有效期限可變的情況下,最好預先記錄結束時刻。由此,即便有效期限可變,也可統一檢查處理的步驟。并且,SIP服務器2側,不僅在REGISTER刪除(F75)時,在REGISTER更新(F70)時,也向SIP負載分散裝置發送負載分散管理表格的更新請求(F72)。此時,構成與圖8的F70-F73的序列一樣的序列。
在該方法中,由于SIP負載分散裝置也進行有效期限的計時器管理,所以當REGISTER的有效期限截止時,不必從SIP服務器2向SIP負載分散裝置1發送項目刪除請求。當由SIP負載分散裝置(負載分散管理程序25與負載分散管理表格26)管理的有效期限載止時,負載分散管理程序25刪除負載分散管理表格26的對應項目。
圖9是表示本實施方式的SIP負載分散系統中、防止終端7利用未被SIP負載分散裝置1許可的SIP服務器2的方法一例的序列圖。
在本實施方式的SIP負載分散系統中,由于不是SIP負載分散裝置1中繼全部通信量的模塊,而是向終端通知應對的SIP服務器2并引導的模塊,所以若終端7隨意利用SIP負載分散裝置1未分配的SIP服務器2,則負載分散的管理不成立,不會很好地分散負載。在本實施方式的SIP負載分散系統中,采取各SIP服務器2的地址原則上不公開,公開SIP負載分散裝置1的地址的運用形式,但若從SIP負載分散裝置1一旦接收重寄通知(F41),則以Contact頭來通知分配的SIP服務器的地址(54),所以該SIP服務器的地址成為終端知道的場所。這里,若暫時結束利用的終端在其它機會不經SIP負載分散裝置1而直接再利用地址判明的SIP服務器,則產生上述問題。
因此,在本實施方式的SIP負載分散系統中,引出下面說明的直接通信防止方法。
當終端7按與圖3所示一樣的步驟向SIP負載分散裝置1發送了請求時(F40),SIP負載分散裝置1確定應對的SIP服務器2,將分配的SIP服務器2的地址通知終端7(F41),但此時,SIP負載分散裝置1在各SIP服務器2a-2n共同利用的位置DB3中登錄分配給終端7(或用戶)的SIP服務器2的地址(F80)。
位置信息通常登錄管理FQDN(Fully Qualified Domain Name)或IP地址等信息,作為賦予用戶或終端的SIP-URI(92)與終端7的聯系地址(94)。只要固定設定這些信息并運用即可,但在SIP系統中,也可以REGISTER登錄為契機,登錄賦予用戶或終端的SIP-URI(所謂用戶名(U-Name))、與分配給該SIP-URI的SIP服務器的聯系地址等信息。在本實施方式的SIP負載分散系統中,如圖10所示的形式來擴展位置DB3管理的位置表格90。向現有的用戶地址單位管理的信息中重新追加分配對象的(應對的)SIP服務器2的地址。
該擴展位置表格90的信息在接收F80的步驟的指令時,成對登錄向SIP負載分散裝置1發送請求的終端(或用戶)的用戶名、與分配的SIP服務器2的地址信息。另一方面,聯系信息等在分配對象的SIP服務器2接收、受理處理來自終端7的REGISTER登錄(F82)的階段被追加登錄(F85)。
在本實施方式的SIP負載分散系統中,如圖8就SIP服務器的利用有效期限的說明所述,例如,假設在將從在線時的REGISTER登錄至離線時的REGISTER刪除的期間設為分配的SIP服務器的利用有效期限的情況下,在分配在在線時應對的SIP服務器之后,若在利用有效期限內,則不經SIP負載分散裝置1,直接與分配的SIP服務器通信。此時,各SIP服務器2直接接收來自終端1的消息,但在接收來自終端1的消息時,例如在接收最初的REGISTER登錄消息時(F80),對于是否是可以自身應對的終端,參照在F85與F86的步驟的擴展位置表格90的信息,確認分配給發送REGISTER登錄消息的終端的SIP服務器是否是自身。這里,在分配給發送REGISTER登錄消息的終端的SIP服務器是自身的情況下,將聯系地址等從REGISTER登錄消息取得的信息追加登錄在擴展位置表格90中(F87),向終端返回響應(F89)。另一方面,在F85與F86的步驟中參照擴展位置表格90的信息時,在沒有分配給發送REGISTER登錄消息的終端的SIP服務器、或分配的SIP服務器不是自身的情況下,不進行F87的聯系地址的登錄等,在F89的步驟,向終端返回錯誤響應(例如403Forbidden等)。通過進行這種步驟,本實施方式的SIP負載分散系統防止SIP負載分散裝置1未分配的SIP服務器與終端之間的直接通信。
順便說一下,擴展位置表格90的各項目與刪除通常的位置信息的定時一樣,當REGISTER的有效期限截止時,或終端發送REGISTER刪除消息時,SIP服務器向位置DB3發送刪除命令并清零。
另外,圖9所示從終端至SIP服務器的REGISTER登錄序列(從F82-F89)以不包含安全性協商的REGISTER登錄的序列為例,但在包含圖3所示的安全性協商的REGISTER登錄順序的情況下,在F44的步驟之后,進行F85-F87的SIP服務器與位置DB3之間的序列。
實施例2圖11是表示本實施方式的SIP負載分散系統中、處理經由其它區域的SIP服務器4向自區域的終端7目的地發送的請求消息的方法一例的圖。
從屬于其它區域(區域B)35的終端向屬于自區域(區域A)的終端7目的地發送的請求消息最初被發送給終端8所屬的SIP服務器b4(F100)。向目的地終端7所屬的區域的SIP服務器中繼SIP服務器b4接收到的請求消息,但此時,在本實施方式的SIP負載分散系統中,由于將管轄區域A的SIP服務器的代表地址(例如domainA.co.jp)分配給SIP負載分散裝置1并運用,所以將SIP服務器b4中繼的請求消息發送給SIP負載分散裝置1(F101)。
在接收從其它區域的SIP服務器b4發送的請求消息的SIP負載分散裝置1中,由于發送源判定程序22將接收到的請求消息之前的發送源判定為不是自區域的終端,所以,這里,負載分散管理程序25參照負載分散管理表格26,調查分配目的地終端的通信(會話)管理的SIP服務器,向該SIP服務器無狀態中繼消息(F102)。這里所述的‘無狀態’是指與對SIP規定的RFC3261定義的無狀態代理的動作一樣的動作。即,SIP負載分散裝置1不管理之后通信中的會話的狀態轉變,包含響應消息,中繼消息,以便之后的交易也可不經由SIP負載分散裝置1。具體而言,為了使如Via頭或Record-Route頭等消息的通信路徑相同,通常,SIP服務器不附加在消息中繼時賦予的頭,中繼接收到的消息。由此,在一次適當的SIP服務器中繼消息之后,由于SIP負載分散裝置1無論關于該會話的通信如何均可完成,所以從該會話的管理處理負載中釋放SIP負載分散裝置1。
從SIP負載分散裝置1中繼請求消息的SIP服務器a2(b2)參照位置信息,調查對應于指定為目的地的用戶地址的聯系地址,向該聯系地址目的地中繼消息(F103)。在本實施方式的SIP服務器中,由于假設在服務器內部登錄管理關于自身應對的終端的位置信息,所以序列中不包含關于位置信息參照的裝置間的通信,但也可參照由位置DB3管理的擴展位置表格90。這里,若在服務器內部管理關于自身應對的終端的位置信息時,得到可削減SIP服務器與位置DB間的通信時間的效果。
另一方面,響應消息根據賦予請求消息的Via頭的信息,按F104、F105、F106的順序返回。這里,與請求消息的路徑不同,響應消息不經由SIP負載分散裝置1,這是因為在請求中繼時,SIP負載分散裝置1進行無狀態的中繼,所以不向Via頭附加SIP負載分散裝置1的地址。另外,之后的終端8與終端7之間的通信由于依照根據各SIP服務器在請求中繼時附加的Record-Route頭信息所生成的Route設置的路徑,所以其路徑變為與響應消息的通信路徑一樣的通信路徑(即SIP負載分散裝置1不通過)。
圖12是表示本實施方式的SIP負載分散裝置1的數據包接收時的處理步驟一例的流程圖。
通過網絡接口12接收數據包的通信控制程序20調查接收數據包是否是SIP消息(步驟110)。這里,當接收數據包是SIP消息時,由SIP堆棧程序21進行消息解析,發送源判定程序22調查消息之前的發送源是否是自區域內的終端(步驟111、步驟112)。在發送源是自區域內的終端的情況下,負載分散管理程序25參照負載分散管理表格26,確定應對與終端的通信的適當SIP服務器(步驟113)。在將確定了的SIP服務器信息設定給位置DB3的對應用戶地址項之后(步驟114),用重寄通知程序23通知給終端(步驟115)。
在步驟111、步驟112的發送源處理中,在消息之前的發送源不是自區域內的終端、例如是圖11所示的其它區域的SIP服務器的情況下,負載分散管理程序25參照負載分散管理表格26(步驟120),調查應對與目的地終端的通信的SIP服務器(步驟121)。這里,在存在對應的SIP服務器的情況下,使用無狀態代理程序24,在該服務器中繼消息(步驟122),在沒有對應的SIP服務器的情況下,判定目的地終端為離線狀態,向發送源返回錯誤響應(例如404Not Found)(步驟123)。
另一方面,在步驟110的接收數據包內容的判定中,在接收數據包不是SIP消息的情況下,通信控制程序20判定是否是圖8的F77所示的要求負載分散管理表格26的項目刪除的命令數據包(步驟125),在是項目刪除命令的情況下,負載分散控制程序25刪除負載分散管理表格26的對應項目(步驟126)。
對步驟111的發送源判定考慮幾個方法。一個方法是參照包含于接收的請求消息的SIP頭部中的From頭的信息52的方法。在‘@’標志之后的區域部的內容與自區域一致的情況下,判定為從自區域內的終端發送的消息。通過進行該判定,可確定負載分散裝置應采取的動作。例如在本實施例的情況下,在消息的發送源是自區域的終端時,負載分散裝置向作為消息發送源的終端通知應對的SIP服務器的地址,另一方面,在消息的發送源是其它區域的終端、裝置的情況下,本發明的負載分散裝置向應對目的地終端的SIP服務器無狀態中繼消息。
同樣,作為參照包含于接收的請求消息的SIP頭部中的From頭的信息52來判定的其它方法,也可將From頭的信息52與同區域的加入者信息相比較。這里,所謂比較的加入者信息是指賦予用戶或終端的SIP-URI、即用戶地址。此時,檢索加入者信息中是否存在與指定給接收到的請求消息的SIP頭部中包含的From頭的SIP-URI一致的用戶地址。檢索的結果,若一致,則判定為從自區域內的終端發送的消息。通過如此判定,在區域指定正確、但用戶ID不正確(例如無作為地設定)的地址的情況下,可在對SIP服務器進行分配前檢測出并拒絕。即,可防止利用具有非法地址的消息來向SIP服務器施加負載。
該加入者信息既可在SIP負載分散裝置1內持有,也可在位置DB中持有并參照,或設置管理加入者信息的獨立DB服務器來參照。
另外,在賦予自區域內的終端的IP地址的范圍可特定的情況下,也可判定接收到的請求消息的IP頭的源地址是否包含于該范圍內。該范圍也可由IP地址的序號范圍來指定,例如從‘133.144.0.1’至‘133.144.0.255’。
這樣,通過利用IP地址的范圍來判定,也可對應于不能發送使用區域地址的請求的終端。另外,通過與對應于IP地址的加入者信息無關地進行分配,可不被加入者的登錄/刪除/服務變更等左右地分配,故減輕分配的處理。
作為另一方法,也可以是如下方法,通過具有相互連接的其它區域的SIP服務器等的地址列表,將其與接收到的請求消息的IP頭的源地址相比較,判定是否是來自其它區域的通信。利用該判定方法,可限定與其它區域相互連接的SIP服務器。并且,通過由負載分散裝置進行該連接限制,可不向SIP服務器施加負擔地進行連接限制。
實施例3圖13是表示在本實施方式的SIP負載分散系統中、同一區域內的終端間進行通信的方法一例的圖。
終端a1(7a)與終端aN(7n)分別按與圖3一樣的步驟,在從SIP負載分散裝置1通知的SIP服務器a1(2a)與SIP服務器aN(2n)之間,確立繼續的連接。說明在這種狀況下,從終端a1發送給終端aN的請求消息的流。
終端a1發送的請求消息首先被發送到在與終端a1之間確立繼續的連接的SIP服務器a1(F130)。SIP服務器a1通過參照消息的目的地,判定目的地是屬于同一區域的終端。這里,在存儲器或本地硬盤上高速緩沖管理自身應對的終端的位置信息的情況下,調查高速緩沖存儲器上的位置信息中是否存在目的地終端的信息。在高速緩沖存儲器上存在目的地終端的信息的情況下,向記錄其中的聯系地址目的地中繼消息。另一方面,在高速緩沖存儲器上不存在目的地終端的信息的情況下,參照由位置DB3管理的擴展位置表格90的信息(F132、F134)。若目的地終端aN(7n)在線,則應對與該終端的通信,進行會話管理的SIP服務器的信息96與該終端的SIP-URI信息92成對登錄。由此,參照對應于該終端的SIP-URI的SIP服務器的信息96,向這里得到的SIP服務器的地址進行消息的中繼(F136)。最后,接收到消息的SIP服務器aN(2n)按與SIP服務器a1(2a)一樣的步驟,進行目的地確認與位置信息的參照,向終端aN(7n)中繼消息。通過如此利用現有連接,可抑制SIP服務器和終端的資源消耗。另外,通過利用現有連接,可省略確立新的加密通信路徑用的密鑰交換或認證步驟,此時,可進一步削減SIP服務器、終端的負載。
SIP服務器在未高速緩沖并管理自身應對的終端的位置信息的情況下,參照最初由位置DB3管理的擴展位置表格90的信息。
順便提及,由于擴展位置表格90中還登錄、管理終端的聯系地址信息94,所以在按F132、F134的步驟參照擴展位置表格時,還判斷目的地終端aN(7n)的聯系地址。由此,SIP服務器a1(2a)也可不經SIP服務器aN(2n),直接向目的地終端aN(7n)中繼消息。
但是,終端aN(7n)與SIP服務器aN(2n)之間的繼續連接是經認證步驟確立的通信路徑,另外,在是加密發送接收的數據包的安全通信的情況下,在該連接上發送接收的數據包作為保障安全的數據包是允許的,但也可以不允許在其它連接上發送的數據包(例如上述從SIP服務器a1-終端aN直接中繼的數據包)。在這種情況下,保障安全的通信如圖13所示,最好由經由SIP服務器aN的通信路徑中繼數據包。這樣,通過不允許未保障安全的其它連接的數據包,可不使保障安全的數據包與這以外的數據包混同地傳輸。
分別用圖14和圖15來說明進行圖13所示的中繼處理的SIP服務器的裝置構成圖與動作流程。
圖14是表示本實施方式的SIP服務器2的一構成例的圖。具備CPU10、存儲器16、存儲裝置14、網絡接口12與圖1所示的SIP負載分散裝置一樣。存儲在存儲裝置中的SIP服務器的控制用程序在動作時,在存儲器上展開,由CPU來進行。存儲裝置可以安裝于殼體內部,也可以作為外部存儲裝置設置在其它殼體中,或是由網絡連接。
另外,也可具備具有裝置管理權限的用戶操作SIP服務器用的用戶接口。作為用戶接口,例如指指令輸入用的鍵盤、GUI輸入用的鼠標、顯示畫面等。
通信控制程序20與SIP堆棧程序21也與圖1所示的程序一樣。另一方面,雖然簡化示出,但140-149是包含SIP代理程序的SIP服務器的主要構成要素。SIP代理程序140包含中繼目標的地址解決程序144。后面用圖15的流程圖來說明該中繼目標地址解決程序的細節。會話管理表格142管理呼叫的狀態轉變。本地位置表格146管理該SIP服務器應對的終端的S IP-URI與聯系地址等位置信息。會話管理表格142與本地位置表格146在圖14中作為存儲器16上的表格描繪,但也可是設置于存儲裝置14上的數據庫表格。另外,也可代替在SIP服務器內保持本地位置表格,而在外部位置DB中保持位置信息,必要時訪問該DB。但是,為了高速進行SIP消息的中繼處理,自身應對的終端的位置信息以本地位置表格146的形式將信息保持在自服務器內,比經常參照外部的位置DB3更有利。
地址解決程序144首先參照接收到的消息的目的地信息,并調查是否是自身管轄區域內的終端目的地的消息(自區域目的地)(步驟150)。這里,在目的地是自區域的終端的情況下,地址解決程序144參照本地位置表格146,調查是否是當前自身應對的終端(步驟153)。在本地位置表格146中有信息的情況下(步驟154),向SIP堆棧程序21判斷的聯系地址目的地中繼消息(步驟157)。另一方面,在本地位置表格146中不存在信息的情況下(步驟154),位置DB控制程序148參照外部的位置DB3的信息(步驟155)。在包含其它SIP服務器應對的情況等目的地終端在線狀態的情況下,在位置DB3上登錄聯系地址。之后,位置DB3檢索的結果,在聯系地址解決了的情況下(步驟156),向該聯系地址目的地中繼消息(步驟157)。另一方面,在位置DB3中也未登錄聯系地址的情況下,或不存在終端的帳戶(account)(SIP-URI)自身的情況下,SIP堆棧程序21向發送源返回錯誤響應(步驟158)。
當地址解決程序144進行目的地區域判定時,當判定為其它區域目的地的消息的情況下(步驟150),DNS客戶機程序149詢問DNS服務器(步驟151)。之后,SIP堆棧程序21在地址解決了的情況下,中繼消息(步驟157),在未解決的情況下,返回錯誤響應(步驟158)。
這里,由于聚焦于地址解決處理的步驟,所以直接連接地址解決與消息中繼或錯誤響應之間,來簡化說明,但在實際的SIP服務器的動作中,認證處理或呼叫狀態管理處理或固有的過濾處理等也可在消息中繼或錯誤響應之前實施。
實施例4圖16是表示使用應用程序服務器的情況下的SIP負載分散系統一構成例的圖。作為呈現服務器或會話服務器等應用程序服務器的設置實例,考慮與SIP負載分散裝置1設置在同一區域內的實例160和設置于其它區域中的實例162。在設置于其它區域中的情況下162,應用程序服務器發出的SIP消息暫時被發送到與應用程序服務器162相同區域內的SIP服務器4。在該消息的目的地為屬于區域A內的終端目的地的情況下,由于經由SIP服務器4發送給SIP負載分散裝置1,所以此時的消息發送接收處理與圖11所示的實施例一樣。另一方面,在設置于與SIP負載分散裝置1相同區域內的應用程序服務器160的情況下,將其視為端點(End Point)終端,與終端2一樣處理,或視為服務器2之外的SIP負載分散裝置1下屬的服務器,與經由其它區域的SIP服務器4接收消息時一樣處理,從而SIP負載分散裝置1的動作不同。
在與終端2一樣處理的情況下,應用程序服務器160中要求與圖3中說明的終端2一樣的動作。這樣,通過與終端一樣處理應用程序服務器,應用程序服務器發出的請求也可作為負載分散的對象來處理。
另一方面,在與其它區域的SIP服務器4一樣處理的情況下,將與SIP負載分散裝置1和SIP負載分散裝置下屬的多臺SIP服務器2彼此連接的服務器的地址作為地址列表來保持,SIP負載分散裝置1的發送源判定程序22在該地址列表中,還加上應用程序服務器160的地址來進行管理控制。這樣,通過與其它區域的SIP服務器一樣處理應用程序服務器,可將不具有對應重寄響應功能的應用程序服務器發出的請求也作為負載分散的對象來處理。
另外,在此前說明的系統構成圖中,SIP負載分散裝置1與多臺SIP服務器2分別作為獨立的裝置來描述,但也可使這些服務器裝置以葉片(blade)服務器等構成相同殼體的裝置的各服務器葉片來動作。并且,也可使應用程序服務器16的服務器模塊也居于葉片服務器內,在相同的葉片服務器裝置中動作。這樣,通過同居于葉片服務器內,進行統一的監視控制。另外,與一臺一臺并列服務器的情況相比,可實現空間節省。
以上,通過使用本實施例的SIP負載分散裝置,在接收到的請求消息之前的發送源是自區域的終端的情況下,根據負載分散管理表格的信息來確定應對的SIP服務器,并使用重寄響應來通知應對的SIP服務器的地址,所以從之后的終端的通信(包含加密通信中),可不經SIP負載分散裝置,并且向適當的SIP服務器分散負載。尤其是在向終端通知應對的SIP服務器的地址之后,由于SIP負載分散裝置不必介入來自終端的通信中,所以進行加密通信時,必需在SIP負載分散裝置結束加密通信,消息數量減少,SIP負載分散裝置不會變為瓶頸。
同樣,在接收到的請求消息之前的發送源不是自區域的終端的情況下,參照負載分散管理表格,調查目的地終端連接的SIP服務器,作為無狀態代理,向該SIP服務器中繼消息,所以在以后的通信中,終端可不經SIP負載分散裝置,向確立繼續連接的SIP服務器分配消息。
產業上的可利用性本發明的通信方法由于在非加密通信中也同樣可以實現SIP服務器的負載分散,所以也可適用于加密通信與非加密通信混合存在的SIP系統中。
權利要求
1.一種負載分散裝置,與本區域內的多個終端、多個服務器、及其它區域的數據包發送源連接,其特征在于具有接收數據包的發送接收部,和判定接收到的數據包的發送源的控制部,在上述判定的結果為判定發送源是上述本區域內的終端的情況下,確定上述多個服務器中進行有關該終端的數據包處理的服務器,并經上述發送接收部將該被確定的服務器的地址通知給該終端,在上述判定的結果為判定發送源是上述其它區域的數據包發送源的情況下,經上述發送接收部,將上述數據包發送給進行與作為上述數據包發送地的本區域內的終端有關的數據包處理的服務器。
2.根據權利要求1所述的負載分散裝置,其特征在于還具有存儲裝置,該存儲裝置存儲本區域內的終端與進行有關該終端的數據包處理的服務器的對應關系的數據庫。
3.根據權利要求2所述的負載分散裝置,其特征在于在上述判定的結果為判定發送源是上述其它區域的數據包發送源的情況下,參照上述對應關系的數據庫,檢索進行與作為上述數據包發送地的本區域內終端有關的數據包處理的服務器,并經上述發送接收部將上述數據包發送給檢索到的上述服務器。
4.根據權利要求2所述的負載分散裝置,其特征在于在上述判定結果判定發送源是上述本區域內的終端的情況下,參照上述對應關系的數據庫,將使用終端數量最少的服務器確定為進行有關上述發送源終端的數據包處理的服務器。
5.根據權利要求2所述的負載分散裝置,其特征在于在確定進行有關上述數據包的發送源的終端的數據包處理的服務器后,當上述存儲裝置將該終端與該服務器的對應關系作為上述終端的項目追加于上述對應關系的數據庫中時,對應于該終端使用的通信方式的加權信息也與上述項目相關聯來存儲。
6.根據權利要求1所述的負載分散裝置,其特征在于上述服務器是會話控制服務器,上述數據包是會話控制消息。
7.根據權利要求6所述的負載分散裝置,其特征在于上述會話控制服務器是SIP服務器,上述會話控制消息是SIP消息。
8.一種負載分散系統,與本區域內的多個終端、其它區域的數據包發送源連接,其特征在于具備多個服務器與負載分散裝置,該負載分散裝置具有接收數據包的發送接收部;判定接收到的數據包的發送源的控制部,在上述判定結果為判定發送源是上述本區域內的終端的情況下,確定上述多個服務器中進行有關該終端的數據包處理的服務器,并經上述發送接收部將該確定的服務器的地址通知給該終端,在上述判定的結果為判定發送源是上述其它區域的數據包發送源的情況下,經上述發送接收部將上述數據包發送給進行與作為上述數據包發送地的本區域內終端有關的數據包處理的服務器。
9.根據權利要求8所述的負載分散系統,其特征在于具備位置數據庫,管理上述本區域內的多個終端的地址與進行有關該終端的數據包處理的服務器的對應關系。
10.根據權利要求9所述的負載分散系統,其特征在于上述負載分散裝置還具有存儲裝置,該存儲裝置存儲本區域內的終端與進行有關該終端的數據包處理的服務器的對應關系的數據庫。
11.根據權利要求10所述的負載分散系統,其特征在于上述負載分散裝置在上述判定的結果為判定發送源是上述其它區域的數據包發送源的情況下,參照上述對應關系的數據庫,檢索進行與作為上述數據包發送地的本區域內終端有關的數據包處理的服務器,并經上述發送接收部將上述數據包發送給檢索到的上述服務器。
12.根據權利要求10所述的負載分散系統,其特征在于上述負載分散裝置在上述判定的結果為判定發送源是上述本區域內的終端的情況下,參照上述對應關系的數據庫,將使用終端數量最少的服務器確定為進行有關上述發送源終端的數據包處理的服務器。
13.根據權利要求10所述的負載分散系統,其特征在于上述負載分散裝置在確定進行與上述數據包的發送源的終端有關的數據包處理的服務器后,上述存儲裝置將該終端與該服務器的對應關系作為上述終端的項目,追加于上述對應關系的數據庫中,對應于該終端利用的通信方式的加權信息也與上述項目相關聯來存儲。
14.根據權利要求10所述的負載分散系統,其特征在于當進行該終端的數據包處理的服務器從上述終端接收注銷通知時,該服務器通知上述位置數據庫刪除該終端的項目,并通知上述負載分散裝置刪除上述對應關系的數據庫中該終端的項目。
15.根據權利要求10所述的負載分散系統,其特征在于上述負載分散裝置在確定進行與上述數據包的發送源的終端有關的數據包處理的服務器后,上述存儲裝置將該終端與該服務器的對應關系作為上述終端的項目,追加于上述對應關系數據庫中,并將該終端與該服務器的對應關系作為上述終端的項目追加于位置數據庫中。
16.根據權利要求9所述的負載分散系統,其特征在于上述服務器在接收數據包時,參照上述位置數據庫,判定該數據包的發送源是否是本服務器擔當數據包處理的發送源,在上述判定的結果為判定不是本服務器擔當數據包數據的發送源的情況下,進行上述數據包的中繼處理。
17.根據權利要求9所述的負載分散系統,其特征在于上述服務器還具有本地位置數據庫,存儲由本服務器擔當數據包處理的終端的地址,當接收了數據包時,判定該數據包的發送地是否是本區域內的終端,在該判定的結果為判定發送地是本區域內的終端的情況下,進而檢索上述本地位置數據庫,判定該數據包的發送地是否是本服務器擔當數據包處理的終端,該判定的結果在判定為發送地是本服務器擔當數據包處理的終端的情況下,將上述數據包發送給該發送地,在該判定的結果為判定發送地不是本服務器擔當數據包處理的終端的情況下,參照上述位置數據庫,檢索進行有關該發送地終端的數據包處理的服務器的地址,并向該檢索到的服務器傳輸上述數據包。
18.根據權利要求8所述的負載分散系統,其特征在于上述服務器是會話控制服務器,上述數據包是會話控制消息。
19.根據權利要求18所述的負載分散系統,其特征在于上述會話控制服務器是SIP服務器,上述會話控制消息是SIP消息。
全文摘要
本發明提供一種負載分散裝置和負載分散系統準備多臺SIP服務器,當進行SIP消息通信的負載分散時,減少負載分散裝置必需處理的消息。在SIP負載分散裝置內,具備負載分散管理部件(25),當接收到的請求消息之前的發送源是自區域的終端的情況下,確定應對的SIP服務器;和重寄功能(23),通知應對能改善請求消息的自區域終端的SIP服務器的地址。另外,具備負載分散管理表格(25),在請求消息之前的發送源是自區域的終端以外的情況下,檢索應對作為目的地終端的自區域終端通信的SIP服務器;和無狀態中繼功能(24),無狀態中繼在解決的SIP服務器目的地接收的請求消息。
文檔編號H04L12/56GK1855884SQ20061000511
公開日2006年11月1日 申請日期2006年1月12日 優先權日2005年4月25日
發明者湯本一磨, 川井惠理, 吉澤政洋 申請人:株式會社日立制作所