JP5834864B2 - サーバ装置、sipサーバ装置、コンピュータプログラム及びメッセージ振り分け方法 - Google Patents

サーバ装置、sipサーバ装置、コンピュータプログラム及びメッセージ振り分け方法 Download PDF

Info

Publication number
JP5834864B2
JP5834864B2 JP2011271064A JP2011271064A JP5834864B2 JP 5834864 B2 JP5834864 B2 JP 5834864B2 JP 2011271064 A JP2011271064 A JP 2011271064A JP 2011271064 A JP2011271064 A JP 2011271064A JP 5834864 B2 JP5834864 B2 JP 5834864B2
Authority
JP
Japan
Prior art keywords
sip
server
message
client
distribution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011271064A
Other languages
English (en)
Other versions
JP2013123152A (ja
Inventor
嘉人 守重
嘉人 守重
弘泰 板東
弘泰 板東
崇 三橋
崇 三橋
裕司 田嶋
裕司 田嶋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011271064A priority Critical patent/JP5834864B2/ja
Priority to US13/661,528 priority patent/US20130151586A1/en
Publication of JP2013123152A publication Critical patent/JP2013123152A/ja
Application granted granted Critical
Publication of JP5834864B2 publication Critical patent/JP5834864B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1045Proxies, e.g. for session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本明細書で論じられる実施態様は、SIP(Session Initiation Protocol:セッション開始プロトコル)メッセージを複数のSIPサーバ装置に振り分ける負荷分散に関する。
SIPメッセージを振り分けるSIPメッセージ振分装置が知られている。SIPメッセージ振分装置は、SIPメッセージからこのSIPメッセージが属するセッションに関する情報であるセッション情報を抽出する。そして、SIPメッセージ振分装置は、抽出されたセッション情報を用いて、ハッシュ演算を行ってハッシュ値を算出する。続いて、SIPメッセージ振分装置は、算出されたハッシュ値に応じてSIPメッセージの振り分け先を決定する。
特開2010−3273号公報
複数のSIPサーバ装置へSIPメッセージを振り分けるプロキシサーバは、同じセッションのSIPメッセージを同じSIPサーバ装置へ振り分けることが要求される。開示の装置及び方法は、SIPメッセージを複数のSIPサーバに振り分ける負荷分散において、同じセッションのSIPメッセージを同じSIPサーバ装置へ振り分けることを目的とする。
装置の一観点によれば、SIPクライアントから受信されるSIPメッセージのヘッダに付加されたSIPサーバの識別子を取得する処理と、SIPクライアントによるセッションを制御する複数のSIPサーバのうち、取得された識別子に対応するSIPサーバに、受信されたSIPメッセージを振り分ける処理と、を実行する制御部を備えることを特徴とするサーバ装置が与えられる。
装置の他の一観点によれば、SIPクライアントによるセッションを制御するSIPサーバ装置が与えられる。SIPサーバ装置は、SIPクライアントへ送信するSIPメッセージのヘッダのうち、SIPクライアントから送信されるSIPメッセージのヘッダに載せ替えられるヘッダに、SIPサーバ装置の識別子を付加する処理を実行する制御部を備える。
コンピュータプログラムの一観点によれば、サーバ装置が備える制御部に、SIPクライアントから受信されるSIPメッセージのヘッダに付加されたSIPサーバの識別子を取得する処理と、SIPクライアントによるセッションを制御する複数のSIPサーバのうち、取得された識別子に対応するSIPサーバに、受信されたSIPメッセージを振り分ける処理を実行させることを特徴とするコンピュータプログラムが与えられる。
方法の一観点によれば、サーバ装置が備える制御部に、SIPクライアントから受信されるSIPメッセージのヘッダに付加されたSIPサーバの識別子を取得する処理と、SIPクライアントによるセッションを制御する複数のSIPサーバのうち、取得された識別子に対応するSIPサーバに、受信されたSIPメッセージを振り分ける処理と、を実行させることを特徴とするメッセージ振り分け方法が与えられる。
本件開示のサーバ装置、SIPサーバ装置又はメッセージ振り分け方法によれば、SIPメッセージを複数のSIPサーバに振り分ける負荷分散において、同じセッションのSIPメッセージが同じSIPサーバ装置へ振り分けられる。
通信システムの全体構成例を示す図である。 振り分けサーバ装置のハードウエア構成の一例を示す図である。 振り分けサーバ装置の一例の機能ブロック図である。 ハッシュ演算処理の一例の説明図である。 振り分け管理テーブルの一例を示す図である。 SIPサーバ装置のハードウエア構成の一例を示す図である。 SIPサーバ装置の一例の機能ブロック図である。 テーブル管理処理の一例の説明図である。 INVITEメッセージ受信時の処理の一例の説明図である。 ACKメッセージ受信時の処理の一例の説明図である。 サーバ台数変更時に生じる処理の第1例の説明図である。 (A)〜(C)は、図11における処理において作成される振り分け管理テーブルの説明図である。 サーバ台数変更時に生じる処理の第2例の説明図である。 図13における処理において作成される振り分け管理テーブルの説明図である。 サーバ台数変更時に生じる処理の第3例の説明図である。 後続メッセージの振り分け処理の一例の説明図である。 後続メッセージ受信時に生じる処理の一例の説明図である。
<1.システム構成例>
以下、添付する図面を参照して好ましい実施例について説明する。図1は、通信システムの全体構成例を示す図である。通信システム1は、IPネットワーク2及び3と、SIPクライアント装置4−0〜4−3及び5と、振り分けサーバ装置6と、SIPサーバ装置7−0〜7−3及び8を有する。SIPクライアント装置4−0〜4−3及び5は、SIPを用いて、IPネットワーク3を介して通信を行う。SIPクライアント装置4−0〜4−3は、IPネットワーク2及び振り分けサーバ装置6を介してSIPサーバ装置7−0〜7−3に接続される。以下の説明においてSIPクライアント装置4−0〜4−3及びSIPサーバ装置7−0〜7−3を、それぞれ総称して「SIPクライアント装置4」及び「SIPサーバ装置7」と表記することがある。また、SIPクライアント装置、振り分けサーバ装置及びSIPサーバ装置を、それぞれ「SIPクライアント」、「振り分けサーバ」及び「SIPサーバ」と表記することがある。
振り分けサーバ6は、SIPクライアント4によるSIPのセッション情報や呼状態を管理しないステートレスプロキシサーバとして動作する。振り分けサーバ6は、SIPクライアント4からSIPメッセージを受信するプロトコルを終端し、SIPメッセージを複数のSIPサーバ7間に振り分ける。また、振り分けサーバ6は、SIPサーバ7からSIPメッセージを受信するプロトコルを終端し、SIPメッセージをSIPクライアント4へ転送する。SIPサーバ7及び8は、それぞれSIPクライアント4及び5によるセッションのセッション情報の管理やSIPトランザクションの制御を行い、受信したSIPリクエストに対する応答信号生成を行う。ある実施例において、振り分けサーバ6とSIPサーバ7は、同一の筐体内に設けられてもよい。
<2.振り分けサーバ装置>
<2.1.ハードウエア構成例>
続いて、振り分けサーバ6の構成について説明する。図2は、振り分けサーバ6のハードウエア構成の一例を示す図である。振り分けサーバ6は、プロセッサ10と、補助記憶装置11と、メモリ12と、記録媒体読取装置13と、ネットワークインタフェース回路14を備える。なお、添付する図面においてネットワークインタフェースを「NIF」と表記することがある。図2に示すハードウエア構成は、あくまで振り分けサーバ6を実現するハードウエア構成の例示の1つである。本明細書において以下に記載される処理を実行するものであれば、他のどのようなハードウエア構成が採用されてもよい。
プロセッサ10は、振り分けサーバ6の動作制御や、以下に説明するSIPメッセージの振り分け処理を行う。補助記憶装置11には、プロセッサ10にこれらの処理を実行させるためのコンピュータプログラムが格納される。補助記憶装置11は、コンピュータプログラムを記憶するための不揮発性記憶装置を備える。不揮発性記憶装置は、例えば、読み出し専用メモリ(ROM: Read Only Memory)や、フラッシュメモリ、ハードディスクであってよい。メモリ12には、プロセッサ10がコンピュータプログラムを実行する際に使用される各データ及び一時データが格納される。メモリ12は、ランダムアクセスメモリ(RAM: Random Access Memory)を含んでいてよい。
記録媒体読取装置13は、コンピュータに読み取り可能な可搬型記録媒体に記憶されたデータを読み取る。記録媒体読取装置13は、例えばCD(Compact Disc)−ROMドライブ装置やDVD(Digital Versatile Disk)−ROMドライブ装置、フレキシブルディスクドライブ装置、CD−R(Compact Disc Recordable)ドライブ装置であってよい。記録媒体読取装置13は、DVD−R(Digital Versatile Disk Recordable)ドライブ装置、MO(Magneto-Optical disk)ドライブ装置、フラッシュメモリ装置へのアクセス装置であってもよい。ある実施例では、以下に説明するSIPメッセージの振り分け処理をプロセッサ10に実行させるコンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体に格納されて頒布される。コンピュータプログラムは、記録媒体読取装置13により可搬型記録媒体から読み取られ、補助記憶装置11にインストールされる。ネットワークインタフェース回路14は、振り分けサーバ6とSIPクライアント4との間、及び振り分けサーバ6とSIPサーバ7との間でSIP信号を送受信するための通信インタフェース回路である。
<2.2.機能構成>
続いて、上記ハードウエア構成によって実現される振り分けサーバ6の機能について説明する。図3は、振り分けサーバ6の一例の機能ブロック図である。なお、図3は、以下の説明に関係する機能を中心として示している。振り分けサーバ6は、図示の構成要素以外の他の構成要素を含んでいてよい。
振り分けサーバ6は、SIPメッセージ受信部20、SIPメッセージ送信部21、ヘッダ取得部22、ハッシュ演算部23、サーバ特定部24及びテーブル管理部25を備える。SIPメッセージ受信部20及びSIPメッセージ送信部21による下記動作は、図2に示すネットワークインタフェース回路14が行う。ヘッダ取得部22、ハッシュ演算部23、サーバ特定部24及びテーブル管理部25の下記動作は、プロセッサ10が行う。振り分け管理テーブル26はメモリ12に格納される。他の実施例では振り分け管理テーブル26は書き込み可能な補助記憶装置11に格納されてもよい。
SIPメッセージ受信部20は、SIPクライアント4又はSIPサーバ7からSIPメッセージを受信する。SIPメッセージ受信部20は、受信したSIPメッセージの妥当性チェックを行い、振り分けサーバ6内部での処理に適したフォーマットにSIPメッセージを変換するためのデコード処理を行う。SIPメッセージ送信部21は、SIPクライアント4から受信したSIPメッセージを、サーバ特定部24により特定されたSIPサーバ7に送信する。また、SIPサーバ7から受信したSIPメッセージをSIPクライアント4へ送信する。
ヘッダ取得部22は、SIPメッセージ受信部20から受け取った情報に基づいて、受信したSIPメッセージの信号種別や、SIPセッション情報としてSIPメッセージのToヘッダ、Fromヘッダ、及びCall−IDヘッダに記述された情報を取得する。Toヘッダには、リクエストメッセージの着信者の識別子が記述される着信者指定ヘッダフィールドである。Fromヘッダには、リクエストメッセージの生成元の識別子が記述される生成元指定ヘッダフィールドである。また、Call−IDヘッダには、連続するセッションで発生するSIPリクエスト及びレスポンスの識別子が記述される。以下の説明において、SIPメッセージのCall−IDヘッダに指定される識別子を、単に「Call−ID」と表記することがある。
ハッシュ演算部23は、ヘッダ取得部22が取得したCall−IDを用いてハッシュ演算を行う。図4は、ハッシュ演算処理の一例の説明図である。なお、以下、図4を参照して説明する一連の動作は複数の手順を含む方法と解釈してよい。この場合に「オペレーション」を「ステップ」と読み替えてもよい。図8〜図11、図13、図15〜図17の場合も同様である。
いま、Call−IDは文字数Nの文字列であり、配列変数callに第(i+1)番目の文字の文字コードが格納される場合を想定する。変数iは配列変数callの各文字call[i]を指定するインデックス変数である。αを、所定の係数とする。例えばαの値は「31」であってよい。定数TBLは、SIPメッセージを振り分けるSIPサーバ7の台数とする。
オペレーションAAにおいてハッシュ演算部23は、変数i及びXの値をそれぞれ「0」に初期化する。オペレーションABにおいてハッシュ演算部23は、変数Xに、α×X+call[i]の値を代入する。オペレーションACにおいてハッシュ演算部23は、変数iの値を1つ増加する。
オペレーションADにおいてハッシュ演算部23は、変数iの値が文字数Nより小さいか否かを判定する。変数iの値が文字数Nより小さい場合には(オペレーションAD:Y)処理はオペレーションABに戻る。変数iの値が文字数Nより小さくない場合には(オペレーションAD:N)処理はオペレーションADへ進む。オペレーションAEにおいてハッシュ演算部23は、法TBLで変数Xの値を除した剰余(X mod TBL)をハッシュ値Hとして計算する。
説明の簡単化のために、以下の説明では、Call−IDが文字列でなく整数値である例により実施例の説明を行う。例えば、Call−IDは、「6」、「7」、「8」、「9」などの整数値によってセッションを識別する。
テーブル管理部25は、振分け管理テーブル26の作成や削除、振分け管理テーブル26へのエントリの登録、削除、検索処理を行う。振分け管理テーブル26は、振り分けサーバ6がSIPメッセージを振り分けるSIPサーバ7のサーバ台数が変化した場合に、サーバ台数変化前から続くセッションのSIPメッセージを振り分けるSIPサーバ7を一時的に記憶するためのテーブルである。
図5は、振り分け管理テーブル26の一例を示す図である。振り分け管理テーブル26は、情報要素「セッション情報」及び「サーバ識別子」を含む。情報要素「セッション情報」は、SIPメッセージのセッションのCall−IDを示し、情報要素「サーバ識別子」は、振り分けサーバ6がSIPメッセージを振り分けるSIPサーバ7の識別子を示す。例えば、図5に示す例では、Call−ID=「8」のSIPメッセージは、識別子「02」のSIPサーバ7に振り分けられることを示し、Call−ID=「7」のSIPメッセージは、識別子「01」のSIPサーバ7に振り分けられることを示す。
テーブル管理部25は、SIPサーバ7のサーバ台数が変化した場合に、振り分け管理テーブル26を作成する。テーブル管理部25は、振り分け管理テーブル26の生成後の所定長T1の期間中にのみ、振り分け管理テーブル26へのエントリを行う。以下の説明において、テーブル管理部25が振り分け管理テーブル26へのエントリを行う期間を「エントリ期間T1」と表記する。
エントリ期間T1において振り分けサーバ6がSIPクライアント4からセッション確立リクエストであるINVITEメッセージを受信した場合、テーブル管理部25は、このメッセージのCall−IDのエントリを振り分け管理テーブル26に登録する。エントリの登録の際にテーブル管理部25は、サーバ台数の変化前のSIPサーバ7のサーバ台数に基づき計算されたハッシュ値により、情報要素「サーバ識別子」のSIPサーバ7の識別子を定める。また、テーブル管理部25は、サーバ台数の変化前のSIPサーバ7のサーバ台数に基づき計算されたハッシュ値により定まるSIPサーバ7の識別子を、INVITEメッセージを振り分けるSIPサーバ7の識別子として取得する。
エントリ期間T1は、例えば、INVITEメッセージに対するレスポンスがない場合にSIPクライアント4がINVITEメッセージを再送する最大再送間隔よりも長い期間であってよい。このようにエントリ期間T1を定めることにより、エントリ期間T1の直前に送信されたINVITEメッセージの再送が発生しても、再送されるINVITEメッセージのエントリを登録することができる。例えば、INVITEメッセージの最大再送間隔が32秒である場合にエントリ期間T1は40秒であってよい。
テーブル管理部25は、エントリ期間T1が経過後の所定長T2の期間が経過した後に、振り分け管理テーブル26を削除する。以下の説明において、エントリ期間T1が経過後の振り分け管理テーブル26が削除されるまでの期間を「保持期間T2」と表記する。テーブル管理部25は、振り分けサーバ6が、保持期間T2経過前にSIPクライアント4からACKメッセージを受信した場合に、このメッセージのCall−IDのエントリを振り分け管理テーブル26から検索する。
ACKメッセージは、INVITEメッセージの最終応答の確認応答メッセージである。振り分け管理テーブル26内にエントリが存在する場合には、テーブル管理部25は、ACKメッセージのCall−IDのエントリを削除する。エントリ期間T1経過後〜保持期間T2経過前に振り分け管理テーブル26のエントリが空になった場合には、テーブル管理部25は振り分け管理テーブル26を削除する。
振り分け管理テーブル26が存在する間に振り分けサーバ6がSIPクライアント4から、INVITEメッセージを受信した場合に、テーブル管理部25は、このメッセージのCall−IDのエントリを振り分け管理テーブル26から検索する。エントリが振り分け管理テーブル26内に存在する場合には、テーブル管理部25は、エントリの情報要素「サーバ識別子」の値を、INVITEメッセージを振り分けるSIPサーバ7の識別子として取得する。
保持期間T2は、INVITEメッセージの最大再送間隔よりも長い期間であってよい。このように保持期間T2を定めることにより、エントリ期間T1の満了直前に送信された最初のINVITEメッセージの再送が発生しても、前回の送信先のSIPサーバ7の識別子が、INVITEメッセージの再送まで保持される。例えば、INVITEメッセージの最大再送間隔が32秒である場合に、保持期間T2は40秒であってよい。テーブル管理部25は、振分け管理テーブルへのエントリ期間T1や保持期間T2を管理するためのタイマ制御を行う。
サーバ特定部24は、エントリ期間T1に受信したINVITEメッセージを振り分けるSIPサーバ7を、テーブル管理部25が取得したSIPサーバ7の識別子により特定する。保持期間T2に受信したINVITEメッセージのCall−IDのエントリが振り分け管理テーブル26にある場合、サーバ特定部24は、テーブル管理部25が取得したSIPサーバ7の識別子によりINVITEメッセージの振り分け先を特定する。
サーバ特定部24は、保持期間T2経過後に受信したINVITEメッセージを振り分けるSIPサーバ7を、サーバ台数変更後のSIPサーバ7の台数に基づいてハッシュ演算部23が算出したハッシュ値Hにより特定する。保持期間T2に受信したINVITEメッセージのCall−IDのエントリが振り分け管理テーブル26にない場合や、保持期間T2に振り分け管理テーブル26が削除された後も同様である。
サーバ特定部24は、振り分けサーバ6が、INVITEメッセージに対する最初のレスポンスよりも後に生じるメッセージをSIPクライアント4から受信した場合に、このメッセージのヘッダから、SIPサーバ7の識別情報を取得する。以下の説明において、INVITEメッセージに対する最初のレスポンスよりも後に生じるメッセージを「後続メッセージ」と表記する。INVITEメッセージに対する最初のレスポンスは、例えば180Rigngingメッセージや、181CallIsBeingForwardメッセージや、182Queuedメッセージや、183SesionProgressメッセージであってよい。
サーバ特定部24は、後続メッセージのヘッダから取得したSIPサーバ7の識別情報に基づいて、この後続メッセージを振り分けるSIPサーバ7を特定する。サーバ特定部24がSIPサーバ7の識別情報を取得するヘッダについては、下記「3.SIPサーバ装置」の「3.2.機能構成」において説明する。
サーバ特定部24は、特定されたSIPサーバ7に対応するIPアドレスやポート情報を決定し、SIPメッセージ送信部21を介してSIPメッセージを、特定したSIPサーバ7に送信する。
<3.SIPサーバ装置>
<3.1.ハードウエア構成例>
続いて、SIPサーバ7の構成について説明する。図6は、SIPサーバ7のハードウエア構成の一例を示す図である。SIPサーバ7は、プロセッサ30と、補助記憶装置31と、メモリ32と、記録媒体読取装置33と、ネットワークインタフェース回路34を備える。なお、図6に示すハードウエア構成は、あくまでSIPサーバ7を実現するハードウエア構成の例示の1つである。本明細書において以下に記載される処理を実行するものであれば、他のどのようなハードウエア構成が採用されてもよい。
プロセッサ30は、SIPサーバ7の動作制御や、SIPセッション情報管理、SIPトランザクション制御、SIPリクエストに対する応答メッセージの作成、及び以下に説明するSIPメッセージのヘッダ変更処理を行う。補助記憶装置31には、プロセッサ30にこれらの処理を実行させるためのコンピュータプログラムが格納される。補助記憶装置31は、コンピュータプログラムを記憶するための不揮発性記憶装置を備える。不揮発性記憶装置は、例えば、読み出し専用メモリや、フラッシュメモリ、ハードディスクであってよい。メモリ32には、プロセッサ30がコンピュータプログラムを実行する際に使用される各データ及び一時データが格納される。メモリ32は、ランダムアクセスメモリを含んでいてよい。
記録媒体読取装置33は、コンピュータに読み取り可能な可搬型記録媒体に記憶されたデータを読み取る。記録媒体読取装置33は、例えばCD−ROMドライブ装置やDVD−ROMドライブ装置、フレキシブルディスクドライブ装置、CD−Rドライブ装置や、DVD−Rドライブ装置、MOドライブ装置、フラッシュメモリ装置へのアクセス装置であってよい。ある実施例では、以下に説明する以下に説明するSIPメッセージのヘッダ変更処理をプロセッサ30に実行させるコンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体に格納されて頒布される。コンピュータプログラムは、記録媒体読取装置33により可搬型記録媒体から読み取られ、補助記憶装置31にインストールされる。ネットワークインタフェース回路34は、SIPサーバ7と振り分けサーバ6との間、またSIPサーバ7とIPネットネットワーク3との間でSIP信号を送受信するための通信インタフェース回路である。
<3.2.機能構成>
続いて、上記ハードウエア構成によって実現されるSIPサーバ7の機能について説明する。図7は、SIPサーバ7の一例の機能ブロック図である。なお、図7は、以下の説明に関係する機能を中心として示している。SIPサーバ7は、図示の構成要素以外の他の構成要素を含んでいてよい。
SIPサーバ7は、SIPメッセージ受信部40、SIPメッセージ送信部41、呼処理制御42、及びヘッダ処理部44を備える。SIPメッセージ受信部40及びSIPメッセージ送信部41による下記動作は、図6に示すネットワークインタフェース回路34が行う。呼処理制御42及びヘッダ処理部44の下記動作は、プロセッサ30が行う。セッション情報43はメモリ32に格納される。他の実施例ではセッション情報43は書き込み可能な補助記憶装置31に格納されてもよい。
SIPメッセージ受信部40は、振り分けサーバ6又はIPネットネットワーク3からSIPメッセージを受信する。SIPメッセージ受信部40は、受信したSIPメッセージの妥当性チェックを行い、SIPサーバ7内部での処理に適したフォーマットにSIPメッセージを変換するためのデコード処理を行う。SIPメッセージ送信部41は、呼処理制御4からの指示に応じて、振り分けサーバ6から受信したSIPメッセージを、IPネットネットワーク3へ送信する。また、SIPメッセージ送信部41は、呼処理制御4からの指示に応じて、IPネットネットワーク3から受信したSIPメッセージを、振り分けサーバ6を介してSIPクライアント4へ送信する。
呼処理制御42は、SIPクライアント4によるSIPのセッションのセッション情報の管理やSIPトランザクションの制御を行い、受信したSIPリクエストに対する応答信号生成を行う。
ヘッダ処理部44は、SIPクライアント4へ転送されるSIPメッセージをSIPサーバ7が振り分けサーバ6へ送信する場合に、このSIPメッセージのヘッダフィールドのタグにSIPサーバ7の識別情報を付加する。SIPサーバ7の識別情報が付加されるヘッダは、SIPメッセージを受信したSIPクライアント4が、このSIPメッセージが送信されるセッション内のSIPクライアント4からの送信メッセージへ載せ替えるヘッダである。
例えば、SIPクライアント4へ転送されるSIPリクエストをSIPサーバ7が振り分けサーバ6へ送信する場合に、ヘッダ処理部44は、SIPメッセージのFromヘッダフィールドのタグに、SIPサーバ7の識別情報を付加してよい。SIPクライアント4は、SIPリクエストに続くSIPメッセージを送信する際に、SIPリクエストのFromヘッダフィールドのタグを、送信メッセージのFromヘッダフィールドへ載せ替える。
また、例えば、SIPクライアント4へ転送されるSIPレスポンスをSIPサーバ7が振り分けサーバ6へ送信する場合に、ヘッダ処理部44は、SIPメッセージのToヘッダフィールドのタグに、SIPサーバ7の識別情報を付加してよい。SIPクライアント4は、SIPレスポンスに続くSIPメッセージを送信する際に、SIPレスポンスのToヘッダフィールドのタグを、送信メッセージのToヘッダフィールドへ載せ替える。
また、PUBLISH(Initial)レスポンスの受信クライアントがSTP-ETagヘッダ情報を、PUBLISH(Modify)リクエストのSTP-IF-Matchヘッダに載せ替えるのと同様に、SIPクライアント4が載せ替えるヘッダを含むようにSIPメッセージのヘッダを拡張してもよい。
SIPサーバ7から送信されたSIPメッセージが他のSIPサーバ8を介してSIPクライアント5に受信されると、同じセッションで相手方のSIPクライアント5からSIPクライアント4へ送信されるSIPメッセージは同じSIPサーバ7を経由する。したがって、上述のようにSIPサーバ7の識別情報の付加を、INVITEメッセージへの最初のレスポンスから行うことにより、後続メッセージのヘッダに、最初のINVITEメッセージが振り分けられたSIPサーバ7の識別情報を含めることができる。
振り分けサーバ6のサーバ特定部24は、SIPサーバ7のヘッダ処理部44がSIPサーバ7の識別情報を付加したSIPメッセージから後続メッセージに載せ替えられたSIPサーバ7の識別情報を取得する。サーバ特定部24は、取得した識別情報に基づいて、後続メッセージを振り分けるSIPサーバ7を特定する。このようにして振り分けサーバ6は、最初のINVITEメッセージが振り分けられたSIPサーバ7へ、後続メッセージを振り分けることができる。
<4.セッション確立リクエストの振り分け処理>
続いて、振り分けサーバ6によるINVITEメッセージの振り分け処理について説明する。
<4.1.テーブル管理処理>
図8は、テーブル管理部25による振分け管理テーブル26の管理処理の一例の説明図である。オペレーションBAにおいてテーブル管理部25は、SIPサーバ7のサーバ台数が変化したか否かを判断する。サーバ台数が変化した場合には(オペレーションBA:Y)処理はオペレーションBBへ進む。サーバ台数が変化しない場合には(オペレーションBA:N)処理はオペレーションBAへ戻る。
オペレーションBBにおいてテーブル管理部25は、変更前の台数をメモリ12に記憶する。オペレーションBCにおいてテーブル管理部25は、振り分け管理テーブル26を作成する。オペレーションBDにおいてテーブル管理部25は、エントリ期間T1の経過を監視する第1監視タイマを起動する。
オペレーションBEにおいてテーブル管理部25は、エントリ期間T1が経過したか否かを判断する。エントリ期間T1が経過した場合には(オペレーションBE:Y)テーブル管理部25は、振り分け管理テーブル26へのエントリを停止し、処理をオペレーションBFへ進める。エントリ期間T1が経過しない場合には(オペレーションBE:N)処理はオペレーションBEへ戻る。オペレーションBFにおいてテーブル管理部25は、保持期間T2の経過を監視する第1監視タイマを起動する。
オペレーションBGにおいてテーブル管理部25は、保持期間T2が経過したか否かを判断する。保持期間T2が経過した場合には(オペレーションBG:Y)処理はオペレーションBIへ進む。エントリ期間T2が経過しない場合には(オペレーションBG:N)処理はオペレーションBHへ進む。
オペレーションBHにおいてテーブル管理部25は、振り分け管理テーブル26にエントリが存在しているか否かを判断する。振り分け管理テーブル26にエントリが存在している場合には(オペレーションBH:Y)処理はオペレーションBGへ戻る。振り分け管理テーブル26にエントリが存在しない場合には(オペレーションBH:N)処理はオペレーションBIへ進む。オペレーションBIにおいてテーブル管理部25は、振り分け管理テーブル26を削除する。
<4.2.INVITEメッセージ受信時の処理>
次に、INVITEメッセージを受信した際の振り分けサーバ6の処理について説明する。図9は、INVITEメッセージ受信時の処理の一例の説明図である。オペレーションCAにおいてテーブル管理部25は、振り分け管理テーブル26が存在するか否かを判断する。振り分け管理テーブル26が存在する場合には(オペレーションCA:Y)処理はオペレーションCBへ進む。振り分け管理テーブル26が存在しない場合には(オペレーションCA:N)処理はオペレーションCIへ進む。
オペレーションCBにおいてテーブル管理部25は、INVITEメッセージのCall−IDのエントリが、振り分け管理テーブル26に存在しているか否かを判断する。振り分け管理テーブル26にエントリが存在している場合には(オペレーションCB:Y)処理はオペレーションCCへ進む。振り分け管理テーブル26にエントリが存在しない場合には(オペレーションCB:N)処理はオペレーションCDへ進む。
オペレーションCCにおいてテーブル管理部25は、振り分け管理テーブル26内にあるINVITEメッセージのCall−IDのエントリから、INVITEメッセージの送信先のSIPサーバ7の識別子を取得する。サーバ特定部24は、取得された識別子のSIPサーバ7へINVITEメッセージを送信する。その後に処理はオペレーションCAに戻る。
オペレーションCDにおいてテーブル管理部25は、エントリ期間T1が経過したか否かを判断する。エントリ期間T1が経過していない場合には(オペレーションCD:Y)処理はオペレーションCEへ進む。エントリ期間T1が経過していない場合には(オペレーションCD:N)処理はオペレーションCIへ進む。
オペレーションCEにおいてハッシュ演算部23は、サーバ台数の変化前のSIPサーバ7のサーバ台数と受信したINVITEメッセージのCall−IDに基づいてハッシュ値を計算する。オペレーションCFにおいてサーバ特定部24は、オペレーションCEで計算されたハッシュ値に基づいて定まるSIPサーバ7の識別子により、INVITEメッセージを振り分けるSIPサーバ7を特定する。
オペレーションCGにおいてサーバ特定部24は、特定されたSIPサーバ7にINVITEメッセージを送信する。オペレーションCHにおいてテーブル管理部25は、INVITEメッセージのCall−IDと、オペレーションCEで計算されたハッシュ値に基づいて定まるSIPサーバ7の識別子のエントリを、振り分け管理テーブル26に登録する。その後に処理は終了する。なお、オペレーションCHは、オペレーションCF及びCGのいずれかの処理よりも先に実行されてもよい。
オペレーションCIにおいてハッシュ演算部23は、サーバ台数の変化後のSIPサーバ7のサーバ台数と受信したINVITEメッセージのCall−IDに基づいてハッシュ値を計算する。オペレーションCJにおいてサーバ特定部24は、オペレーションCIで計算されたハッシュ値に基づいて定まるSIPサーバ7の識別子により、INVITEメッセージを振り分けるSIPサーバ7を特定する。オペレーションCKにおいてサーバ特定部24は、特定されたSIPサーバ7にINVITEメッセージを送信する。その後に処理は終了する。
<4.3.ACKメッセージ受信時の処理>
次に、ACKメッセージを受信した際の振り分けサーバ6の処理について説明する。図10は、ACKメッセージ受信時の処理の一例の説明図である。オペレーションDAにおいてテーブル管理部25は、振り分け管理テーブル26が存在するか否かを判断する。振り分け管理テーブル26が存在する場合には(オペレーションDA:Y)処理はオペレーションDBへ進む。振り分け管理テーブル26が存在しない場合には(オペレーションDA:N)処理はオペレーションDDへ進む。
オペレーションDBにおいてテーブル管理部25は、ACKメッセージのCall−IDのエントリが、振り分け管理テーブル26に存在しているか否かを判断する。振り分け管理テーブル26にエントリが存在している場合には(オペレーションDB:Y)処理はオペレーションDCへ進む。振り分け管理テーブル26にエントリが存在しない場合には(オペレーションDB:N)処理はオペレーションDDへ進む。
オペレーションDCにおいてテーブル管理部25は、ACKメッセージのCall−IDのエントリを振り分け管理テーブル26から削除する。その後に処理はオペレーションDDへ進む。オペレーションDDにおいてサーバ特定部24は、下記「5.2.振り分けサーバ装置」に後述する後続メッセージの振り分け処理によって、ACKメッセージの振り分け処理を行う。
<4.4.1.サーバ台数変更時に生じる処理の第1例>
続いて、図11〜15を参照してサーバ台数変更時におけるINVITEメッセージの振り分け処理について説明する。いずれの例でも、SIPサーバ7の台数が3台から4台へ変化した場合を想定する。また、説明の簡単化のため、SIPメッセージを振り分けるSIPサーバ7を識別するハッシュ値Hは、「H=Call−ID mod サーバ台数」により定める。また、SIPサーバ7−0〜7−3の識別子は、それぞれ「00」、「01」、「02」及び「03」であり、それぞれハッシュ値「0」、「1」、「2」及び「3」に対応する。
図11は、サーバ台数変更時に生じる処理の第1例の説明図である。オペレーションEAにおいてSIPクライアント4−0は、Call−IDの値が「8」である最初のINVITEメッセージを振り分けサーバ6へ送信する。この時点で、SIPサーバ7の台数が3であるため、ハッシュ値は(H=8 mod 3=2)となる。オペレーションEBにおいて振り分けサーバ6は、オペレーションEAで算出したハッシュ値2に対応するSIPサーバ7−2へINVITEメッセージを送信する。
オペレーションECにおいて、振り分けサーバ6がSIPメッセージを振り分けるSIPサーバ7の台数が3台から4台に変化する。サーバ台数の変化を検出した振り分けサーバ6は、オペレーションEDにおいて振り分け管理テーブル26を作成する。この時点における振り分け管理テーブル26の内容を図12の(A)に示す。この時点では、振り分け管理テーブル26にはまだエントリが存在しない。また、振り分けサーバ6は、第1監視タイマを起動する。
オペレーションEEにおいてSIPクライアント4−0は、最初のINVITEメッセージに対する再送のINVITEメッセージを振り分けサーバ6へ送信する。再送のINVITEメッセージのCall−IDの値は、最初のINVITEメッセージのCall−IDの値「8」と同じである。振り分けサーバ6は、受信した再送のINVITEメッセージのCall−ID「8」のエントリが振り分け管理テーブル26に登録されているか否かを判断する。
この時点では、Call−ID「8」のエントリが振り分け管理テーブル26に登録されておらず、且つエントリ期間T1内であるので、振り分けサーバ6は、Call−ID「8」のエントリを振り分け管理テーブル26に登録する。その際、振り分けサーバ6は、サーバ台数の変化前のSIPサーバ7のサーバ台数に基づき計算されたハッシュ値により、情報要素「サーバ識別子」のSIPサーバ7の識別子を定める。登録されるSIPサーバ7の識別子は、最初のINVITEメッセージを振り分けたSIPサーバ7−2の識別子「02」と同じになる。この時点における振り分け管理テーブル26の内容を図12の(B)に示す。振り分け管理テーブル26には、セッション情報「8」及びサーバ識別子「02」のエントリが登録される。オペレーションEFにおいて振り分けサーバ6は、登録した識別子「02」のSIPサーバ7−2へ再送のINVITEメッセージを送信する。このため、再送のINVITEメッセージは、最初のINVITEメッセージを振り分けたSIPサーバ7−2に振り分けられる。
その後、オペレーションEGにおいてエントリ期間T1が満了し、振り分けサーバ6は、第2監視タイマを起動する。エントリ期間T1満了後は、振り分けサーバ6は、振り分け管理テーブル26への新たなエントリの登録は行わない。オペレーションEHにおいてSIPクライアント4−0は、最初のINVITEメッセージに対する再送のINVITEメッセージを振り分けサーバ6へ送信する。再送のINVITEメッセージのCall−IDの値は、最初のINVITEメッセージのCall−IDの値「8」と同じである。振り分けサーバ6は、再送のINVITEメッセージのCall−ID「8」のエントリが振り分け管理テーブル26に登録されているか否かを判断する。
この時点では、Call−ID「8」のエントリが振り分け管理テーブル26に登録されているため、振り分けサーバ6は再送のINVITEメッセージを振り分けるSIPサーバ7−2の識別子「02」を取得する。オペレーションEIにおいて振り分けサーバ6は、取得した識別子「02」のSIPサーバ7−2へ再送のINVITEメッセージを送信する。このため、再送のINVITEメッセージは、最初のINVITEメッセージを振り分けたSIPサーバ7−2に振り分けられる。
オペレーションEJにおいてSIPクライアント4−0は、最初のINVITEメッセージと同じセッション情報を持つACKメッセージを振り分けサーバ6へ送信する。ACKメッセージのCall−IDの値は、最初のINVITEメッセージと同様に「8」である。振り分けサーバ6は、受信したACKメッセージのCall−ID「8」のエントリが振り分け管理テーブル26に登録されているか否かを判断する。この時点では、Call−ID「8」のエントリが振り分け管理テーブル26にあるため、振り分けサーバ6はCall−ID「8」のエントリを削除する。この時点における振り分け管理テーブル26の内容を図12の(C)に示す。この時点では、振り分け管理テーブル26は空になる。
オペレーションEKにおいて振り分けサーバ6は、後続メッセージであるACKメッセージを、上記「3.SIPサーバ装置」の「3.2.機能構成」において説明した後続メッセージの振り分け処理によってSIPサーバ7−2に振り分ける。オペレーションELにおいて振り分けサーバ6は、振り分け管理テーブル26が空になったことを検出したために、振り分け管理テーブル26を削除する。オペレーションEMにおいて保持期間T2が満了する。以降は、振り分け管理テーブル26が存在しないため、振り分けサーバ6は、受信したINVITEメッセージを振り分けるSIPサーバ7を、変更後のサーバ台数「4」によるハッシュ値によって決定する。
<4.4.2.サーバ台数変更時に生じる処理の第2例>
図13は、サーバ台数変更時に生じる処理の第2例の説明図である。このケースでは、サーバ台数変更後のエントリ期間T1の間に最初のINVITEメッセージが生じる。
オペレーションFAにおいて振り分けサーバ6がSIPメッセージを振り分けるSIPサーバ7の台数が3台から4台に変化する。サーバ台数の変化を検出した振り分けサーバ6は、オペレーションFBにおいて振り分け管理テーブル26を作成する。振り分けサーバ6は、第1監視タイマを起動する。
オペレーションFCにおいてSIPクライアント4−1は、Call−IDの値が「7」である最初のINVITEメッセージを振り分けサーバ6へ送信する。この時点では、Call−ID「7」のエントリが振り分け管理テーブル26に登録されておらず、且つエントリ期間T1内である。振り分けサーバ6は、最初のINVITEメッセージと再送のINVITEメッセージを区別せずに、Call−ID「7」のエントリを振り分け管理テーブル26に登録する。その際、振り分けサーバ6は、サーバ台数の変化前のSIPサーバ7のサーバ台数「3」に基づき計算されたハッシュ値により、情報要素「サーバ識別子」のSIPサーバ7の識別子を定める。ハッシュ値は(H=7 mod 3=1)となる。登録されるSIPサーバ7の識別子は、ハッシュ値「1」に対応する「01」である。振り分けサーバ6は、Call−ID「7」及びサーバ識別子「01」のエントリを振り分け管理テーブル26に登録する。この時点における振り分け管理テーブル26の内容を図14に示す。オペレーションFDにおいて振り分けサーバ6は、登録した識別子「01」のSIPサーバ7−1へ最初のINVITEメッセージを送信する。
その後、オペレーションFEにおいてエントリ期間T1が満了し、振り分けサーバ6は、第2監視タイマを起動する。エントリ期間T1満了後は、振り分けサーバ6は、振り分け管理テーブル26への新たなエントリの登録は行わない。オペレーションFFにおいてSIPクライアント4−1は、最初のINVITEメッセージに対する再送のINVITEメッセージを振り分けサーバ6へ送信する。再送のINVITEメッセージのCall−IDの値は、最初のINVITEメッセージのCall−IDの値「7」と同じである。振り分けサーバ6は、再送のINVITEメッセージのCall−ID「7」のエントリが振り分け管理テーブル26に登録されているか否かを判断する。
この時点では、Call−ID「7」のエントリが振り分け管理テーブル26に登録されているため、振り分けサーバ6は再送のINVITEメッセージを振り分けるSIPサーバ7−1の識別子「01」を取得する。オペレーションFGにおいて振り分けサーバ6は、取得した識別子「01」のSIPサーバ7−1へ再送のINVITEメッセージを送信する。このため、再送のINVITEメッセージは、最初のINVITEメッセージを振り分けたSIPサーバ7−1に振り分けられる。
オペレーションFHにおいて保持期間T2が満了したことを検出した振り分けサーバ6は、振り分け管理テーブル26を削除する。以降は、振り分け管理テーブル26が存在しないため、振り分けサーバ6は、受信したINVITEメッセージを振り分けるSIPサーバ7を、変更後のサーバ台数「4」によるハッシュ値によって決定する。
<4.4.3.サーバ台数変更時に生じる処理の第3例>
図15は、サーバ台数変更時に生じる処理の第3例の説明図である。このケースでは、保持期間T2の間に最初のINVITEメッセージが生じる。
オペレーションGAにおいて振り分けサーバ6がSIPメッセージを振り分けるSIPサーバ7の台数が3台から4台に変化する。サーバ台数の変化を検出した振り分けサーバ6は、オペレーションGBにおいて振り分け管理テーブル26を作成する。振り分けサーバ6は、第1監視タイマを起動する。その後、オペレーションGCにおいてエントリ期間T1が満了し、振り分けサーバ6は、第2監視タイマを起動する。エントリ期間T1満了後は、振り分けサーバ6は、振り分け管理テーブル26への新たなエントリの登録は行わない。
オペレーションGDにおいてSIPクライアント4−2は、Call−IDの値が「9」である最初のINVITEメッセージを振り分けサーバ6へ送信する。この時点では、Call−ID「9」のエントリが振り分け管理テーブル26に登録されておらず、且つエントリ期間T1は満了している。振り分けサーバ6は、サーバ台数の変化後のSIPサーバ7のサーバ台数「4」に基づき計算されたハッシュ値により、INVITEメッセージを振り分けるSIPサーバ7を決定する。ハッシュ値は(H=9 mod 4=1)となる。INVITEメッセージを振り分けるSIPサーバ7の識別子は、ハッシュ値「1」に対応する「01」である。オペレーションGEにおいて振り分けサーバ6は、識別子「01」のSIPサーバ7−1へ最初のINVITEメッセージを送信する。
オペレーションGFにおいて振り分けサーバ6は、空の振り分け管理テーブル26を削除する。オペレーションGGおいて保持期間T2が満了する。振り分け管理テーブル26が存在しないため、振り分けサーバ6は、受信したINVITEメッセージを振り分けるSIPサーバ7を、変更後のサーバ台数「4」によるハッシュ値によって決定する。
<5.後続メッセージの振り分け処理>
続いて、振り分けサーバ6及びSIPサーバ7による後続メッセージの振り分け処理について説明する。
<5.1.SIPサーバ装置における処理>
上述のとおり、SIPサーバ7は、SIPクライアント4へ転送されるSIPメッセージを振り分けサーバ6へ送信する際、このメッセージのヘッダのうち、SIPクライアント4からの送信メッセージに載せ替えられるタグにSIPサーバ7の識別情報を加える。
本実施例では、SIPサーバ7は、SIPリクエストを振り分けサーバ6へ送信する場合に、SIPメッセージのFromヘッダフィールドのタグに、SIPサーバ7の識別情報を付加してよい。また、SIPサーバ7は、SIPレスポンスを振り分けサーバ6へ送信する場合に、SIPメッセージのToヘッダフィールドのタグに、SIPサーバ7の識別情報を付加してよい。
SIPサーバ7−0によって、INVITEメッセージのレスポンスの一例である180RingingメッセージのToヘッダフィールドのタグに、SIPサーバ7−0の識別子「00」を加えられた例を以下に示す。
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP example.com:5060;branch=z9hG4bK74bf9
;received=192.0.2.101
From: Alice <sip:[email protected]>;tag=9fxced76sl
To: Bob <sip:[email protected]>;tag=8321234300
Call-ID: 6
CSeq: 1 INVITE
Contact: <sip:[email protected];transport=udp>
Content-Length: 0
上記の例では、Toヘッダフィールドのタグ「tag=8321234300」の下2桁として、SIPサーバ7−0の識別子「00」が付加される。
SIPリクエストを受信したSIPクライアント4は、SIPリクエストの後の後続メッセージを送信する際に、SIPリクエストのFromヘッダフィールドのタグを、SIPリクエストと同じセッションの後続メッセージのFromヘッダフィールドへ載せ替える。また、SIPレスポンスを受信したSIPクライアント4は、SIPレスポンスと同じセッションの後続メッセージを送信する際に、SIPレスポンスのToヘッダフィールドのタグを、後続メッセージのToヘッダフィールドへ載せ替える。
SIPクライアント4とのセッションに接続する相手方のSIPクライアントから送信されるSIPメッセージは、SIPクライアント4から送信されるSIPメッセージが経由するSIPサーバ7を経由する。したがって、INVITEメッセージへの最初のレスポンスからSIPサーバ7の識別情報の付加を行うことにより、後続メッセージのヘッダに、最初のINVITEメッセージが振り分けられたSIPサーバ7の識別情報を含めることができる。
SIPクライアント4によって、後続メッセージの一例であるByeメッセージのToヘッダフィールドのタグに、SIPサーバ7−0の識別子「00」を加えられた例を以下に示す。
BYE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP example.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
From: Alice <sip:[email protected]>;tag=9fxced76sl
To: Bob <sip:[email protected]>;tag=8321234300
Call-ID:6
CSeq: 1 BYE
Content-Length: 0
上記の例では、Toヘッダフィールドのタグとして、SIPサーバ7−0によってSIPサーバ7−0の識別子「00」が下2桁に付加された「tag=8321234300」が載せ替えられている。
<5.2.振り分けサーバ装置における処理>
上記の通り、SIPクライアント4から振り分けサーバ6に送信される後続メッセージがSIPリクエストである場合、そのToヘッダフィールドのタグに最初のINVITEメッセージが振り分けられたSIPサーバ7の識別情報が付加されている。また同様にSIPクライアント4から振り分けサーバ6に送信される後続メッセージがSIPレスポンスである場合、そのFromヘッダフィールドのタグに最初のINVITEメッセージが振り分けられたSIPサーバ7の識別情報が付加されている。振り分けサーバ6のサーバ特定部24は、これらのタグに付加されているSIPサーバ7の識別情報に従って、後続メッセージを振り分けるSIPサーバ7を決定する。
図16は、後続メッセージの振り分け処理の一例の説明図である。オペレーションHAにおいてサーバ特定部24は、受信した後続メッセージの方路を判断する。すなわち、サーバ特定部24は、後続メッセージがSIPサーバ7へ向かうメッセージであるか、後続メッセージがSIPサーバ7から受信されるメッセージであるかを判断する。後続メッセージがSIPサーバ7へ向かうメッセージである場合には(オペレーションHA:Y)処理はオペレーションHBへ進む。後続メッセージがSIPサーバ7へ向かうメッセージでない場合には(オペレーションHA:N)処理はオペレーションHFへ進む。
オペレーションHBにおいてサーバ特定部24は、受信したメッセージの種別を判断する。受信したメッセージがリクエストである場合には(オペレーションHB:Y)処理はオペレーションHCへ進む。受信したメッセージがレスポンスである場合には(オペレーションHB:N)処理はオペレーションHDへ進む。
オペレーションHCにおいてサーバ特定部24は、受信したメッセージのToヘッダフィールドのタグから、受信したメッセージを振り分けるSIPサーバ7の識別情報を取得する。その後処理はオペレーションHEへ進む。オペレーションHDにおいてサーバ特定部24は、受信したメッセージのFromヘッダフィールドのタグから、受信したメッセージを振り分けるSIPサーバ7の識別情報を取得する。その後処理はオペレーションHEへ進む。
オペレーションHEにおいてサーバ特定部24は、取得された識別情報によって特定されるSIPサーバ7へ受信メッセージを振り分ける。その後処理は終了する。一方で、オペレーションHFにおいてSIPメッセージ送信部21は、受信したメッセージをSIPクライアント4に送信する。その後に処理は終了する。
続いて、図17を参照して後続メッセージ受信時に生じる処理の例を説明する。オペレーションIAにおいてSIPクライアント4−2は、Call−IDの値が「6」であるINVITEメッセージを振り分けサーバ6へ送信する。この時点で、SIPサーバ7の台数が3であるため、ハッシュ値は(H=6 mod 3=0)となる。オペレーションIBにおいて振り分けサーバ6は、オペレーションIAで算出したハッシュ値0に対応するSIPサーバ7−0へINVITEメッセージを送信する。
オペレーションICにおいてSIPサーバ7−0は、INVITEに対するレスポンスメッセージである180RingingメッセージのToヘッダフィールドのタグに、SIPサーバ7−0の識別子「00」を付加してから振り分けサーバ6へ送信する。オペレーションIDにおいて振り分けサーバ6は、SIPサーバ7から受信した180RingingメッセージをSIPクライアント4−2へ送信する。
その後、オペレーションIEにおいてSIPクライアント4−2は、Call−IDの値が「6」であるBYEメッセージを振り分けサーバ6へ送信する。この際に、SIPクライアント4−2は、SIPサーバ7−0が、メッセージに付加したSIPサーバ7−0の識別子「00」を、BYEメッセージのToヘッダフィールドのタグに載せ替える。オペレーションIFにおいて振り分けサーバ6は、受信したBYEメッセージのToヘッダフィールドに設定されている識別子「00」に対応するSIPサーバ7−0へBYEメッセージを送信する。
<6.効果>
本実施例の効果を以下に示す。
(1)振り分けサーバ6は、受信した後続メッセージのヘッダのタグに記述されたSIPサーバ7の識別子によって、後続メッセージを振り分けるSIPサーバ7を決定する。このため、参照することによって振分けサーバ6にて、セッション情報や振分け管理テーブルを保持することなく、INVITEメッセージと同じセッションの後続メッセージを、INVITEメッセージを振り分けたSIPサーバ7に転送することができる。
(2)振り分けサーバ6は、ハッシュ演算をすることなく後続メッセージを振り分けるサーバ装置7を特定することができるため、振り分けサーバ6の負荷が低減される。
(3)振分けサーバ6は、SIPサーバ7の台数変更があった場合でも、セッション情報や振分け管理テーブルを保持することなく、再送のINVITEメッセージを最初のINVITEメッセージと同じSIPサーバ7に振り分けることが可能となる。
(4)このように振分けサーバ6は、セッション情報や振分け管理テーブルを保持しなくて済むため、メモリ領域へのデータ参照・更新処理やメモリアクセス時の排他処理などにより処理能力が減殺されることが低減される。また振分けサーバ6が冗長化されていても、セッション情報や振分け管理テーブルの同期処理が不要なため、このような同期処理によって処理能力が減殺されることが低減される。
なお、振分けサーバ6は、一時的に振り分け管理テーブル26を参照してSIPメッセージの振り分け先を決定するが、振り分け管理テーブル26の参照はSIPサーバ7の台数変更後の所定期間に限定される。このため、メモリ領域へのデータ参照・更新処理やメモリアクセス時の排他処理や、メモリの同期処理を行う期間が限定されるため、振分けサーバ6の処理能力の減殺が低減される。
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
SIP(Session Initiation Protocol)クライアントから受信されるSIPメッセージのヘッダに付加されたSIPサーバの識別子を取得する処理と、
前記SIPクライアントによるセッションを制御する複数のSIPサーバのうち、取得された前記識別子に対応するSIPサーバに、受信された前記SIPメッセージを振り分ける処理と、
を実行する制御部を備えることを特徴とするサーバ装置。
(付記2)
前記サーバ装置は、記憶装置を備え、
前記制御部は、
前記複数のSIPサーバの数の変化を検出する処理と、
前記SIPサーバの数の変化後に、前記SIPクライアントから受信するSIPメッセージの振り分け先のSIPサーバを、変化前の前記SIPサーバの台数に従い特定する処理と、
前記SIPクライアントからSIPメッセージを受信するセッション毎に、変化前の前記SIPサーバの台数に従って特定したSIPサーバを指定するサーバ指定情報を、前記記憶装置に格納する処理と、
前記SIPサーバの数の変化後の所定期間において、前記サーバ指定情報に従ってSIPメッセージを振り分ける処理と、
前記所定期間の後に、前記サーバ指定情報を前記記憶装置から消去する処理と、
を実行することを特徴とする付記1に記載のサーバ装置。
(付記3)
前記制御部は、SIPメッセージを受信する前記SIPクライアントが、受信したSIPメッセージのヘッダから送信するSIPメッセージのヘッダに載せ替えた前記識別子を取得する処理を実行することを特徴とする、付記1又は2に記載のサーバ装置。
(付記4)
前記制御部は、リクエストメッセージの着信者指定ヘッダフィールドから前記識別子を取得する処理を実行することを特徴とする、付記1〜3のいずれか一項に記載のサーバ装置。
(付記5)
前記制御部は、レスポンスメッセージの生成元指定ヘッダフィールドから前記識別子を取得する処理を実行することを特徴とする、付記1〜3のいずれか一項に記載のサーバ装置。
(付記6)
前記制御部は、前記SIPサーバの数の変化後にセッション確立リクエストメッセージを受信した場合に、前記セッション確立リクエストメッセージのセッションの前記サーバ指定情報を前記記憶装置に格納することを特徴とする付記2〜5のいずれか一項に記載のサーバ装置。
(付記7)
前記制御部は、セッション確立リクエストメッセージの最終応答の確認応答メッセージを受信した場合に、前記確認応答メッセージのセッションの前記サーバ指定情報を前記記憶装置から消去する処理を実行することを特徴とする付記2〜6のいずれか一項に記載のサーバ装置。
(付記8)
SIPクライアントによるセッションを制御するSIPサーバ装置であって、
前記SIPサーバ装置から前記SIPクライアントへ送信するSIPメッセージのヘッダのうち、前記SIPクライアントから送信されるSIPメッセージのヘッダに載せ替えられるヘッダに、前記SIPサーバ装置の前記識別子を付加する処理を実行する制御部を備えるSIPサーバ装置。
(付記9)
サーバ装置が備える制御部に、
SIPクライアントから受信されるSIPメッセージのヘッダに付加されたSIPサーバの識別子を取得する処理と、
前記SIPクライアントによるセッションを制御する複数のSIPサーバのうち、取得された前記識別子に対応するSIPサーバに、受信された前記SIPメッセージを振り分ける処理と、を実行させることを特徴とするコンピュータプログラム。
(付記10)
サーバ装置が備える制御部に、
SIPクライアントから受信されるSIPメッセージのヘッダに付加されたSIPサーバの識別子を取得する処理と、
前記SIPクライアントによるセッションを制御する複数のSIPサーバのうち、取得された前記識別子に対応するSIPサーバに、受信された前記SIPメッセージを振り分ける処理と、を実行させることを特徴とするメッセージ振り分け方法。
1 ネットワーク
4、4−0〜4−3 SIPクライアント装置
6 振り分けサーバ装置
7、7−0〜7−3 SIPサーバ装置

Claims (8)

  1. SIP(Session Initiation Protocol)クライアントから受信されるSIPメッセージのヘッダに付加されたSIPサーバ装置の識別子を取得する処理と、
    前記SIPクライアントによるセッションを制御する複数のSIPサーバ装置のうち、取得された前記識別子に対応するSIPサーバ装置に、受信された前記SIPメッセージを振り分ける処理と、
    前記複数のSIPサーバ装置の台数の変化を検出する処理と、
    前記SIPサーバ装置の台数の変化後に、前記SIPクライアントから受信するSIPメッセージの振り分け先のSIPサーバ装置を、変化前の前記SIPサーバ装置の台数に従い特定する処理と、を実行する制御部を備えるサーバ装置であって、
    前記制御部は、
    前記SIPクライアントからSIPメッセージを受信するセッション毎に、変化前の前記SIPサーバ装置の台数に従って特定したSIPサーバを指定するサーバ指定情報を、前記サーバ装置の記憶装置に格納する処理と、
    前記SIPサーバ装置の台数の変化後の所定期間において、前記サーバ指定情報に従ってSIPメッセージを振り分ける処理と、
    前記所定期間の後に、前記サーバ指定情報を前記記憶装置から消去する処理と、
    を実行することを特徴とするサーバ装置。
  2. 前記制御部は、SIPメッセージを受信する前記SIPクライアントが、受信したSIPメッセージのヘッダから送信するSIPメッセージのヘッダに載せ替えた前記識別子を取得する処理を実行することを特徴とする、請求項1に記載のサーバ装置。
  3. 前記制御部は、SIPメッセージを受信する前記SIPクライアントが、受信したSIPメッセージのヘッダから送信するSIPメッセージのヘッダに載せ替えた前記識別子を取得する処理を実行することを特徴とする請求項に記載のサーバ装置。
  4. 前記制御部は、前記SIPサーバ装置の台数の変化後にセッション確立リクエストメッセージを受信した場合に、前記セッション確立リクエストメッセージのセッションの前記サーバ指定情報を前記記憶装置に格納することを特徴とする請求項又はに記載のサーバ装置。
  5. 前記制御部は、セッション確立リクエストメッセージの最終応答の確認応答メッセージを受信した場合に、前記確認応答メッセージのセッションの前記サーバ指定情報を前記記憶装置から消去する処理を実行することを特徴とする請求項又はのいずれか一項に記載のサーバ装置。
  6. 請求項1に記載のサーバ装置において前記SIPクライアントによるセッションを制御するSIPサーバ装置であって、前記SIPサーバ装置から前記SIPクライアントへ送信するSIPメッセージのヘッダのうち、前記SIPクライアントから送信されるSIPメッセージのヘッダに載せ替えられるヘッダに、前記SIPサーバ装置の識別子を付加する処理を実行する制御部を備えるSIPサーバ装置。
  7. サーバ装置が備える制御部に、
    SIPクライアントから受信されるSIPメッセージのヘッダに付加されたSIPサーバ装置の識別子を取得する処理と、
    前記SIPクライアントによるセッションを制御する複数のSIPサーバ装置のうち、取得された前記識別子に対応するSIPサーバ装置に、受信された前記SIPメッセージを振り分ける処理と、
    前記複数のSIPサーバ装置の台数の変化を検出する処理と、
    前記SIPサーバ装置の台数の変化後に、前記SIPクライアントから受信するSIPメッセージの振り分け先のSIPサーバ装置を、変化前の前記SIPサーバ装置の台数に従い特定する処理と、
    前記SIPクライアントからSIPメッセージを受信するセッション毎に、変化前の前記SIPサーバ装置の台数に従って特定したSIPサーバ装置を指定するサーバ指定情報を、前記サーバ装置の記憶装置に格納する処理と、
    前記SIPサーバ装置の台数の変化後の所定期間において、前記サーバ指定情報に従ってSIPメッセージを振り分ける処理と、
    前記所定期間の後に、前記サーバ指定情報を前記記憶装置から消去する処理と、を実行させることを特徴とするコンピュータプログラム。
  8. サーバ装置が備える制御部に、
    SIPクライアントから受信されるSIPメッセージのヘッダに付加されたSIPサーバ装置の識別子を取得する処理と、
    前記SIPクライアントによるセッションを制御する複数のSIPサーバ装置のうち、取得された前記識別子に対応するSIPサーバ装置に、受信された前記SIPメッセージを振り分ける処理と、
    前記複数のSIPサーバ装置の台数の変化を検出する処理と、
    前記SIPサーバ装置の台数の変化後に、前記SIPクライアントから受信するSIPメッセージの振り分け先のSIPサーバ装置を、変化前の前記SIPサーバ装置の台数に従い特定する処理と、
    前記SIPクライアントからSIPメッセージを受信するセッション毎に、変化前の前記SIPサーバ装置の台数に従って特定したSIPサーバ装置を指定するサーバ指定情報を、前記サーバ装置の記憶装置に格納する処理と、
    前記SIPサーバ装置の台数の変化後の所定期間において、前記サーバ指定情報に従ってSIPメッセージを振り分ける処理と、
    前記所定期間の後に、前記サーバ指定情報を前記記憶装置から消去する処理と、を実行させることを特徴とするメッセージ振り分け方法。
JP2011271064A 2011-12-12 2011-12-12 サーバ装置、sipサーバ装置、コンピュータプログラム及びメッセージ振り分け方法 Active JP5834864B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011271064A JP5834864B2 (ja) 2011-12-12 2011-12-12 サーバ装置、sipサーバ装置、コンピュータプログラム及びメッセージ振り分け方法
US13/661,528 US20130151586A1 (en) 2011-12-12 2012-10-26 Message distribution server, sip server, and message distribution method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011271064A JP5834864B2 (ja) 2011-12-12 2011-12-12 サーバ装置、sipサーバ装置、コンピュータプログラム及びメッセージ振り分け方法

Publications (2)

Publication Number Publication Date
JP2013123152A JP2013123152A (ja) 2013-06-20
JP5834864B2 true JP5834864B2 (ja) 2015-12-24

Family

ID=48573013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011271064A Active JP5834864B2 (ja) 2011-12-12 2011-12-12 サーバ装置、sipサーバ装置、コンピュータプログラム及びメッセージ振り分け方法

Country Status (2)

Country Link
US (1) US20130151586A1 (ja)
JP (1) JP5834864B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013117215A1 (en) * 2012-02-07 2013-08-15 Telefonaktiebolaget L M Ericsson (Publ) Session persistent data and method of use thereof
US10004004B2 (en) 2014-07-15 2018-06-19 T-Mobile Usa, Inc. Telecommunication equipment measuring pre-establishment service interruptions
US10039019B2 (en) * 2014-07-24 2018-07-31 T-Mobile Usa, Inc. Telecommunications network non-establishment response
CN104158755B (zh) 2014-07-30 2017-12-05 华为技术有限公司 传输报文的方法、装置和***
US10594741B2 (en) 2014-08-04 2020-03-17 T-Mobile Usa, Inc. Suppressing third party registration and third party deregistration actions
JP6653277B2 (ja) * 2017-02-28 2020-02-26 日本電信電話株式会社 分散処理システムに用いられるサーバ装置及び分散処理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1480407A1 (en) * 2003-05-20 2004-11-24 Hewlett-Packard Development Company, L.P. Method and apparatus for load-balancing in a distributed processing system
US20060036747A1 (en) * 2004-07-28 2006-02-16 Galvin James P Jr System and method for resource handling of SIP messaging
JP2008199348A (ja) * 2007-02-14 2008-08-28 Fujitsu Ltd 中継装置、中継プログラム及び通信システム
CN101127766B (zh) * 2007-09-24 2010-06-09 中兴通讯股份有限公司 基于sip协议的消息处理方法、装置及ip通信***
JP5125679B2 (ja) * 2008-03-27 2013-01-23 日本電気株式会社 負荷分散装置及び方法とプログラム
US20090287846A1 (en) * 2008-05-19 2009-11-19 Arun Kwangil Iyengar Method and Apparatus for Load Balancing in Network Based Telephony Based On Call Length
US8954542B2 (en) * 2011-06-14 2015-02-10 Avaya Inc. Method and system for transmitting and receiving configuration and registration information for session initiation protocol devices

Also Published As

Publication number Publication date
JP2013123152A (ja) 2013-06-20
US20130151586A1 (en) 2013-06-13

Similar Documents

Publication Publication Date Title
JP5834864B2 (ja) サーバ装置、sipサーバ装置、コンピュータプログラム及びメッセージ振り分け方法
US8826381B2 (en) Node device and method to prevent overflow of pending interest table in name based network system
US10182091B2 (en) Decentralized, hierarchical, and overlay-driven mobility support architecture for information-centric networks
US9143527B2 (en) Apparatus and method preventing overflow of pending interest table in name based network system
US10432712B2 (en) System and method of injecting states into message routing in a distributed computing environment
US10069746B2 (en) Reduction of network congestion
US9961058B2 (en) System and method of message routing via connection servers in a distributed computing environment
CN103339901A (zh) 内容导向网络环境中的终端和中间节点以及终端和中间节点的通信方法
CN105282138A (zh) 兴趣返回控制消息
US9350812B2 (en) System and method of message routing using name-based identifier in a distributed computing environment
KR100673514B1 (ko) SlP 로드밸런서에서 레지스터 기능을 수행하는 방법 및이를 수행하는 SlP로드밸런서
EP3451592B1 (en) Packet transmission between vxlan domains
WO2004049667A1 (ja) 情報処理装置および情報処理方法、並びにコンピュータ・プログラム
CN111970321A (zh) 一种集群中连接管理方法、***、存储介质和电子装置
JP2017034666A (ja) コンテンツ指向型ネットワークのスタックにおける状態の転送
US20150074234A1 (en) Content system and method for chunk-based content delivery
JP2010003273A (ja) Sipメッセージ振分方法およびsipメッセージ振分装置
CN102882906A (zh) 受限应用协议中数据通信的方法和装置
US8451847B2 (en) Intermediate node device, method of controlling intermediate node device, and network system
US20120054310A1 (en) Terminal, intermediate node and communication method of the same
CN114338574B (zh) 一种即时通讯方法、管理节点及***
CN113489786B (zh) 一种长连接网络弱网重连方法、重发方法
WO2017028806A1 (zh) 一种转发报文的方法和装置
WO2019114779A1 (zh) 信息收集
CN104954199B (zh) 一种信息处理方法和电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150910

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151019

R150 Certificate of patent or registration of utility model

Ref document number: 5834864

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150