(57)【要約】【課題】パケットの検閲処理を負荷分散させることを課題とする。【解決手段】ルータは、端末間の通信フローを識別するフロー識別子ごとに、パケットの検閲を実行する振分先サーバのアドレス情報を、通信フローの帯域幅に応じて複数記憶する。そして、ルータは、フロー識別子が付与されたパケットを受信した場合に、当該フロー識別子に対応付けられる振分先サーバを特定する。その後、ルータは、特定された振分先サーバのうち、処理負荷が所定値より小さい振分先サーバにフロー識別子が付与されたパケットを送信する。【選択図】図４
2014138412.tif 000002
【特許請求の範囲】
【請求項１】
端末間の通信フローを識別するフロー識別子ごとに、パケットの検閲を実行する振分先サーバのアドレス情報を、前記通信フローの帯域幅に応じて複数記憶する振分先記憶部と、
前記フロー識別子が付与されたパケットを受信した場合に、当該フロー識別子に対応付けられる振分先サーバを前記振分先記憶部から特定する特定部と、
前記特定部によって特定された振分先サーバのうち、処理負荷が所定値より小さい振分先サーバに前記フロー識別子が付与されたパケットを送信する送信制御部と
を有することを特徴とするネットワーク装置。
【請求項２】
前記フロー識別子と振分先サーバとに対応付けて、振分先サーバが処理できるパケットサイズを示す負荷情報を記憶する負荷情報記憶部をさらに有し、
前記送信制御部は、前記パケットを前記振分先サーバへ送信した場合に、前記振分先サーバに対応付けられる負荷情報から前記パケットのパケットサイズを減算し、前記振分先サーバから受信した検閲済みのパケットを宛先に送信した場合に、前記振分先サーバに対応付けられる負荷情報に前記パケットのパケットサイズを加算することを特徴とする請求項１に記載のネットワーク装置。
【請求項３】
確立済みの通信フローが終了した場合に、確立を要求する通信フローの振分先を負荷情報と前記帯域幅に基づいて決定して前記ネットワーク装置に通知する振分先通知装置に対して、前記負荷情報記憶部に記憶される各振分先サーバの負荷情報を送信し、終了した通信フローのフロー識別子に対応する情報を前記振分先記憶部から削除する負荷通知部をさらに有することを特徴とする請求項２に記載のネットワーク装置。
【請求項４】
コンピュータが、
端末間の通信フローを識別するフロー識別子が付与されたパケットを受信した場合に、前記フロー識別子ごとにパケットの検閲を実行する振分先サーバのアドレス情報を前記通信フローの帯域幅に応じて複数記憶する振分先記憶部を参照し、前記フロー識別子に対応付けられる振分先サーバを特定し、
特定した振分先サーバのうち、処理負荷が所定値より小さい振分先サーバに前記フロー識別子が付与されたパケットを送信する
処理を含んだことを特徴とする振分制御方法。
【請求項５】
コンピュータに、
端末間の通信フローを識別するフロー識別子が付与されたパケットを受信した場合に、前記フロー識別子ごとにパケットの検閲を実行する振分先サーバのアドレス情報を前記通信フローの帯域幅に応じて複数記憶する振分先記憶部を参照し、前記フロー識別子に対応付けられる振分先サーバを特定し、
特定した振分先サーバのうち、処理負荷が所定値より小さい振分先サーバに前記フロー識別子が付与されたパケットを送信する
処理を実行させることを特徴とする振分制御プログラム。
【請求項６】
通信フローの振分先候補である候補サーバに対応付けて、当該候補サーバが処理できる帯域幅と当該候補サーバの負荷情報とを記憶する負荷情報記憶部と、
前記通信フローの確立を要求する要求パケットに含まれる帯域幅と、前記負荷情報記憶部に記憶される帯域幅とから、前記通信フローの振分先となるサーバ台数を決定する第１決定部と、
前記第１決定部によって決定された台数分の候補サーバを、前記負荷情報記憶部に記憶される負荷情報が小さい順に決定する第２決定部と、
前記通信フローにおけるパケットの振分を実行するネットワーク装置に、前記第２決定部によって決定された候補サーバを、当該通信フローの振分先として通知する通知部と
を有することを特徴とする振分先通知装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク装置、振分制御方法、振分制御プログラムおよび振分先通知装置に関する。
【背景技術】
【０００２】
従来、ＩＰ（Internet  Protocol）パケットに関連するサービスを利用して、異なる運用ポリシーを持つネットワーク間で通信を行う場合、運用ポリシーの差異を吸収することが行われている。例えば、ネットワークの境界にＳＢＣ（セッションボーダーコントローラ）等のゲートウェイ装置を配置し、運用ポリシーの差異を吸収することが行われる。
【０００３】
ＳＢＣは、設定されたポリシーに従った処理を実行することで、ＩＰパケットのＮＡＴ（Network  Address  Translation)変換、ＮＡＰＴ（Network  Address  Port  Translation）変換、フィルタリングなどを実現する。また、ＳＢＣは、ＳＩＰ（Session  Initiation  Protocol)等のＶｏＩＰ（Voice  over  Internet  Protocol）用シグナリングプロトコルやメディア通信プロトコルに対するファイアウォール機能や品質保証機能などを実現する。なお、メディア通信プロトコルとしては、ＲＴＰ（Real−time  Transport  Protocol）やＲＴＣＰ（RTP  Control  Protocol)などが利用される。
【０００４】
このように、ＳＩＰにおいてシグナリングに利用されるＳＩＰ信号パケットであってもメディアパケットであっても、ＳＢＣにおいて検閲されるのが一般的である。ところが、近年ではＩＰｖ６が普及し、メディアパケットについては、ＮＡＴ変換やＮＡＰＴ変換、検閲を行わずに送信する場合がある。具体的には、利用者端末から送信されたＩＰｖ６を用いたメディアパケットは、ルータへ到達する。ルータは、当該メディアパケットをＳＢＣへ送信せず、直接宛先に送信する。
【０００５】
このような運用が実行されると、メディアパケットについては検閲処理が実行されないので、セキュリティの低下に繋がる。これに対して、ルータのアクセスリストにＳＢＣの情報を登録し、アクセスリストに基づくパケットフォワーディング機能等を用いて、メディアパケットをＳＢＣに転送させることが行われている。この際に、ＳＢＣを複数設置し、ＩＰ電話の加入者数の増加に伴うセッション数の増加などによるトラフィックの増加を予測し、ＳＢＣの負荷分散を行うという技術が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２８８７１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記技術を用いた負荷分散では、１つのフローが１つのＳＢＣへ割当てられるので、処理対象のフローの帯域幅がＳＢＣで許容される帯域幅より大きい場合には、ＳＢＣで検閲処理することができないという問題がある。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、パケットの検閲処理を負荷分散させることができるネットワーク装置、振分制御方法、振分制御プログラムおよび振分先通知装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示するネットワーク装置は、一つの態様において、振分先記憶部を有する。振分先記憶部は、端末間の通信フローを識別するフロー識別子ごとに、パケットの検閲を実行する振分先サーバのアドレス情報を、前記通信フローの帯域幅に応じて複数記憶する。また、ネットワーク装置は、前記フロー識別子が付与されたパケットを受信した場合に、当該フロー識別子に対応付けられる振分先サーバを前記振分先記憶部から特定する特定部を有する。また、ネットワーク装置は、前記特定部によって特定された振分先サーバのうち、処理負荷が所定値より小さい振分先サーバに前記フロー識別子が付与されたパケットを送信する送信制御部を有する。
【発明の効果】
【００１０】
本願の開示するネットワーク装置、振分制御方法、振分制御プログラムおよび振分先通知装置の一つの態様によれば、パケットの検閲処理を負荷分散させることができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係るシステムの全体構成例を示す図である。
【図２】図２は、実施例１に係るＳＢＣ振分サーバの機能構成を示す機能ブロック図である。
【図３】図３は、ＳＢＣ振分情報ＤＢに記憶される情報の例を示す図である。
【図４】図４は、実施例１に係るルータの機能構成を示す機能ブロック図である。
【図５】図５は、フォワーディング情報ＤＢに記憶される情報の例を示す図である。
【図６】図６は、実施例１に係るＳＢＣ振分処理を示す処理シーケンス図である。
【図７】図７は、実施例１に係るＳＢＣ振分サーバによる振分先通知処理の流れを示すフローチャートである。
【図８】図８は、実施例１に係るルータによる振分処理の流れを示すフローチャートである。
【図９】図９は、実施例１に係るルータによる宛先への送信処理の流れを示すフローチャートである。
【図１０】図１０は、実施例１に係るＳＢＣ振分終了処理を示す処理シーケンス図である。
【図１１】図１１は、ＳＢＣ振分サーバのハードウェア構成例を示す図である。
【図１２】図１２は、ルータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するネットワーク装置、振分制御方法、振分制御プログラムおよび振分先通知装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１３】
［全体構成］
図１は、実施例１に係るシステムの全体構成例を示す図である。図１に示すように、システムは、加入者端末２、加入者端末５、Ｓ−ＣＳＣＦ（Serving  Call  Session  Control  Function）装置３、Ｓ−ＣＳＣＦ装置６、ＳＢＣ振分サーバ１０、複数のＳＢＣサーバ、ルータ２０を有する。このシステムは、ＳＩＰを用いて、加入者端末２と加入者端末５とが音声通信を実行するシステムである。なお、図１に示した装置の台数等は、例示であり、限定するものではない。
【００１４】
加入者端末２と加入者端末５は、ＳＩＰに準拠した端末である。本実施例では、一例として、加入者端末２が加入者端末５にＳＩＰ通信を要求し、加入者端末２から加入者端末５へパケットが送信される例を説明する。
【００１５】
加入者端末２は、ネットワーク１を介してＳ−ＣＳＣＦ装置３に接続される。この加入者端末２は、ＳＩＰシグナリング信号や発呼信号などのＣ−Ｐｌａｎｅ信号を、Ｓ−ＣＳＣＦ装置３を経由させて加入者端末５に送信する。具体的には、加入者端末２から送信されたＣ−Ｐｌａｎｅ信号は、Ｓ−ＣＳＣＦ装置３、ルータ２０、ＳＢＣ振分サーバ１０、いずれかのＳＢＣサーバ、ＳＢＣ振分サーバ１０、ルータ２０、Ｓ−ＣＳＣＦ装置６を順に経由して、加入者端末５に到達する。
【００１６】
また、加入者端末２は、メディアパケットなどのＵ−Ｐｌａｎｅ信号を、Ｓ−ＣＳＣＦ装置３を経由させずに加入者端末５に送信する。具体的には、加入者端末２から送信されたＵ−Ｐｌａｎｅ信号は、ルータ２０といずれかのＳＢＣサーバを経由して、加入者端末５に到達する。
【００１７】
同様に、加入者端末５は、ネットワーク４を介してＳ−ＣＳＣＦ装置６に接続される。この加入者端末５は、加入者端末２と同様、ＳＩＰシグナリング信号などのＣ−Ｐｌａｎｅ信号を、Ｓ−ＣＳＣＦ装置６を経由させて加入者端末２に送信する。また、加入者端末５は、メディアパケットなどのＵ−Ｐｌａｎｅ信号を、Ｓ−ＣＳＣＦ装置６を経由させずルータ２０を経由させて、加入者端末２に送信する。
【００１８】
なお、ネットワーク１やネットワーク４の一例としては、ホームネットワークがある。つまり、加入者端末２と加入者端末５とは、異なるホームネットワークに属し、ネットワークを跨った通信を実行する。
【００１９】
Ｓ−ＣＳＣＦ装置３とＳ−ＣＳＣＦ装置６は、各ホームネットワークに接続されたＳＩＰサーバであり、ユーザ認証やセッション制御を実行する。
【００２０】
ＳＢＣ振分サーバ１０は、端末間の通信であるフローの帯域幅に応じて、振分先となるＳＢＣサーバの数や振分対象のＳＢＣサーバを決定するサーバである。また、ＳＢＣ振分サーバ１０は、決定した振分先に関する情報をルータ２０に通知し、決定した振分先の各ＳＢＣサーバに送信元端末に関する情報を通知する。
【００２１】
ＳＢＣサーバ（Ａ）とＳＢＣサーバ（Ｂ）とＳＢＣサーバ（Ｃ）は、パケットの検閲処理を実行するサーバである。具体的には、各ＳＢＣサーバは、異なるネットワーク間のパケット通信において、各ネットワークの運用ポリシーの違いを吸収し、セキュリティを確保する処理を実行する。例えば、各ＳＢＣサーバは、アドレス変換機能、ファイアウォール機能、品質保証機能などを実行する。
【００２２】
ルータ２０は、加入者端末間の通信を中継するネットワーク機器である。具体的には、ルータ２０は、送信元の加入者端末２から送信されたパケットを受信し、ＳＢＣ振分サーバ１０や振分先のＳＢＣサーバへ送信する。そして、ルータ２０は、ＳＢＣ振分サーバ１０や振分先のＳＢＣサーバから受信したパケットを、宛先の加入者端末５へ送信する。
【００２３】
このような状態において、ルータ２０は、端末間の通信であるフローを識別するフロー識別子ごとに、パケットの検閲を実行するＳＢＣサーバのアドレス情報を、フローの帯域幅に応じて複数記憶する。そして、ルータ２０は、フロー識別子が付与されたパケットを受信した場合に、当該フロー識別子に対応付けられる振分先サーバを特定する。その後、ルータ２０は、特定されたＳＢＣサーバのうち、処理負荷が所定値より小さいＳＢＣサーバにフロー識別子が付与されたパケットを送信する。
【００２４】
このように、ルータ２０は、フロー毎に帯域幅に応じた複数のＳＢＣサーバを対応付け、フローのパケットを受信する毎に、負荷が最小のＳＢＣサーバへ振分けることで、パケット毎に振分先のＳＢＣサーバを決定でき、検閲処理を負荷分散できる。
【００２５】
［各装置の構成］
次に、図１に示したシステムが有する各装置の機能構成について説明する。なお、各Ｓ−ＣＳＣＦ装置は、一般的なＳ−ＣＳＣＦ装置と同様の機能構成を有し、各ＳＢＣサーバは、一般的なＳＢＣサーバと同様の機能構成を有するので、ここでは詳細な説明は省略する。ここでは、図１に示したＳＢＣ振分サーバ１０とルータ２０について具体的に説明する。
【００２６】
（ＳＢＣ振分サーバの構成）
図２は、実施例１に係るＳＢＣ振分サーバの機能構成を示す機能ブロック図である。図２に示すように、ＳＢＣ振分サーバ１０は、通信制御部１１、ＳＢＣ振分情報ＤＢ１２、制御部１３を有する。なお、ここで図示した処理部は、例示であり、他の処理部を有していてもよい。
【００２７】
通信制御部１１は、他の装置との通信を制御する処理部であり、例えば、ネットワークインタフェースカードなどである。例えば、通信制御部１１は、ルータ２０や各ＳＢＣサーバから各種パケットを受信する。また、通信制御部１１は、ルータ２０や各ＳＢＣサーバに各種パケットを転送する。
【００２８】
ＳＢＣ振分情報ＤＢ１２は、各ＳＢＣサーバの負荷情報を記憶するデータベースである。このＳＢＣ振分情報ＤＢ１２は、メモリやハードディスクなどの記憶装置に設けられる。図３は、ＳＢＣ振分情報ＤＢに記憶される情報の例を示す図である。図３に示すように、ＳＢＣ振分情報ＤＢ１２は、「振分先ＳＢＣ番号、アドレス情報、ポート番号、負荷情報、帯域」を対応付けて記憶する。
【００２９】
ここで記憶される「振分先ＳＢＣ番号」は、ＳＢＣサーバを特定する情報が設定され、例えばＳＢＣサーバの名称やホスト名である。「アドレス情報」は、ＳＢＣサーバのＩＰアドレスやＭＡＣ（Media  Access  Control）アドレスが設定される。「ポート番号」は、ＳＢＣサーバが通信に使用するポートの番号が設定される。「負荷情報」は、ＳＢＣサーバの負荷状況を示す情報であり、例えば、処理できるパケットサイズの合計等を示す不足ラウンドロビンカウンタの値である。この負荷情報は、送信したパケットサイズを現不足ラウンドロビンカウンタから減算される。つまり、不足ラウンドロビンカウンタの値が大きい方ほど処理負荷が小さく、不足ラウンドロビンカウンタの値が０に近いほど処理負荷が大きい。「帯域」は、ＳＢＣサーバが処理できる帯域幅である。なお、図３は、一例として、各ＳＢＣサーバが処理できる帯域が４Ｇｂｐｓで場合を示している。
【００３０】
図３の１行目は、ＳＢＣサーバ（Ａ）には、ＩＰアドレス「ＩＰ（Ａ）」とＭＡＣアドレス「Ｍ（Ａ）」が設定されており、ポート番号「ポート（Ａ）」を用いて４Ｇｂｐｓの帯域まで処理することができ、現在の負荷情報が「10000」であることを示す。また、各ＳＢＣサーバの負荷情報は、ルータ２０から受信した情報によって更新される。
【００３１】
制御部１３は、ＳＢＣ振分サーバ１０の全体を司るプロセッサなどの電子回路であり、送受信部１４と振分先決定部１５と振分先設定部１６と情報更新部１７とを有する。
【００３２】
送受信部１４は、通信制御部１１を介して各種パケットの送受信を実行する処理部である。例えば、送受信部１４は、加入者端末２が送信したセッションの開始を要求するＩＮＶＩＴＥ信号や発呼信号を受信し、振分先決定部１５によって決定された振分先のＳＢＣサーバや加入者端末５に送信する。そして、送受信部１４は、ＩＮＶＩＴＥ信号に対する応答信号である２００ＯＫ信号を振分先のＳＢＣサーバや加入者端末５から受信し、加入者端末２へ送信する。
【００３３】
また、送受信部１４は、加入者端末２が送信したセッションの終了を要求するＢＹＥ信号を受信し、振分先のＳＢＣサーバや加入者端末５に送信する。そして、送受信部１４は、ＢＹＥ信号に対する応答信号である２００ＯＫ信号を振分先のＳＢＣサーバや加入者端末５から受信し、加入者端末２へ送信する。
【００３４】
振分先決定部１５は、端末間の通信であるフローの帯域幅に応じて、当該フローのパケットを振分ける候補となるＳＢＣを決定する処理部である。また、振分先決定部１５は１つの通信ごとに一意なフローＩＤを決定して、振分先設定部１６に通知する。
【００３５】
具体的には、振分先決定部１５は、送受信部１４が受信したＩＮＶＩＴＥ信号のＳＤＰ（Session  Description  Protocol）から帯域情報を取得する。そして、振分先決定部１５は、取得した帯域情報に基づいて振分先候補の台数を決定する。その後、振分先決定部１５は、ＳＢＣ振分情報ＤＢ１２を参照し、負荷情報が大きい順に、決定した台数分のＳＢＣサーバを決定する。また、振分先決定部１５は、決定した振分先候補の各ＳＢＣサーバの情報を振分先設定部１６に通知する。
【００３６】
例えば、図３を例にして説明すると、振分先決定部１５は、ＩＮＶＩＴＥ信号のＳＤＰから帯域情報として１０Ｇｂｐｓを取得する。すると、振分先決定部１５は、各ＳＢＣサーバの処理できる帯域が４Ｇｂｐｓであることから、振分先を３台と決定する。そして、振分先決定部１５は、図３の負荷情報を参照し、負荷情報が大きい順すなわち処理負荷が小さい順に、３台のＳＢＣサーバを決定する。ここでは、振分先決定部１５は、ＳＢＣサーバ（Ｂ）、ＳＢＣサーバ（Ｃ）、ＳＢＣサーバ（Ｎ）を決定したとする。そして、振分先決定部１５は、決定したＳＢＣサーバがＳＢＣサーバ（Ｂ）、ＳＢＣサーバ（Ｃ）、ＳＢＣサーバ（Ｎ）であることを振分先設定部１６に通知する。
【００３７】
また、ＳＢＣサーバごとに制御可能な帯域が異なる場合、振分先決定部１５は、ＳＢＣ振分情報ＤＢ１２の負荷情報を参照し、負荷が小さい順で、帯域の合計が１０Ｇｂｐｓ以上になるＳＢＣサーバの組合せを特定する。そして、振分先決定部１５は、決定した各ＳＢＣサーバを振分先設定部１６に通知することもできる。
【００３８】
振分先設定部１６は、パケットの振分を実行するルータ２０に、振分先決定部１５によって振分先の設定を要求する処理部である。具体的には、振分先設定部１６は、Diameterプロトコルを用いて、加入者間の通信パケットをフォワーディングするようフォワーディング情報ＤＢ２２ａに各種情報を設定する。なお、振分先設定部１６がコマンド等を用いて実際に設定してもよく、振分先設定部１６が設定要求をルータ２０に送信し、ルータ２０が設定してもよい。
【００３９】
例えば、振分先設定部１６は、ルータ２０に対して、送信元および宛先の加入者情報として「ＩＰアドレス、ＭＡＣアドレス」などを送信する。この加入者情報は、ＩＮＶＩＴＥ信号から取得することができる。また、振分先設定部１６は、ルータ２０に対して、振分先設定部１６が決定した振分先候補のＳＢＣサーバの情報として「ＩＰアドレス、ＭＡＣアドレス、ポート番号、負荷情報」などを送信する。このＳＢＣサーバの情報は、ＳＢＣ振分情報ＤＢ１２から取得することができる。また、振分先設定部１６は、振分先決定部１５が決定したフローＩＤもルータ２０に通知する。
【００４０】
情報更新部１７は、ルータ２０からＳＢＣサーバの最新の負荷情報を受信して、ＳＢＣ振分情報ＤＢ１２を更新する処理部である。具体的には、情報更新部１７は、フローが終了するたびに、ルータ２０から各ＳＢＣサーバの最新の負荷情報を受信する。そして、情報更新部１７は、受信した情報でＳＢＣ振分情報ＤＢ１２を更新する。この結果、ＳＢＣ振分情報ＤＢ１２の情報を最新に維持することができる。
【００４１】
（ルータの構成）
図４は、実施例１に係るルータの機能構成を示す機能ブロック図である。図４に示すように、ルータ２０は、通信制御部２１と記憶部２２と制御部２３とを有する。なお、ここで図示した処理部は、例示であり、他の処理部を有していてもよい。
【００４２】
通信制御部２１は、他の装置との通信を制御する処理部であり、例えば、ポートなどの通信インタフェースなどである。例えば、通信制御部２１は、ＳＢＣ振分サーバ１０から、フォワーディング情報ＤＢ２２ａに設定する各種情報を受信する。また、通信制御部２１は、加入者端末２から加入者端末５宛ての通信パケットを受信し、振分先のＳＢＣサーバへ送信する。また、通信制御部２１は、振分先のＳＢＣサーバによって検閲された通信パケットを受信して、宛先の加入者端末５に送信する。
【００４３】
記憶部２２は、メモリやハードディスクなどの記憶装置であり、フォワーディング情報ＤＢ２２ａとＳＢＣ振分情報ＤＢ２２ｂを記憶する。なお、ＳＢＣ振分情報ＤＢ２２ｂは、図３で説明したＳＢＣ振分サーバ１０のＳＢＣ振分情報ＤＢ１２と同様の情報を記憶するので、ここでは、詳細な説明は省略する。
【００４４】
フォワーディング情報ＤＢ２２ａは、フローＩＤごとに、通信パケットの検閲を実行するＳＢＣサーバのアドレス情報を、フローの帯域幅に応じて複数記憶するデータベースである。図５は、フォワーディング情報ＤＢに記憶される情報の例を示す図である。
【００４５】
図５に示すように、フォワーディング情報ＤＢ２２ａは、「振分先ＳＢＣ、宛先情報、ポート番号、フローＩＤ、パケットＩＤ」を対応付けて記憶する。ここで記憶される「振分先ＳＢＣ」は、振分先に決定されたＳＢＣサーバを特定する情報が設定され、例えばＳＢＣサーバのホスト名等であり、ＳＢＣ振分サーバ１０から取得することができる。「宛先情報」は、ＳＢＣサーバのＩＰアドレスやＭＡＣアドレスが設定され、ＳＢＣ振分サーバ１０から取得することができる。
【００４６】
「ポート番号」は、ＳＢＣサーバと通信を実行する際に使用するポートの番号であり、ＳＢＣ振分サーバ１０から取得することができる。「フローＩＤ」は、通信を識別する情報が設定され、ＳＢＣ振分サーバ１０から取得することができる。「パケットＩＤ」は、フローのパケットを識別する情報が設定され、例えば、フローで送信される順にルータ２０が付与する番号である。
【００４７】
例えば、図５の１行目は、加入者端末２と加入者端末５とのフロー（ＩＤ＝ＦＬ１）は、ＩＰ（Ｂ）とＭ（Ｂ）を有するＳＢＣサーバ（Ｂ）のポート（Ｂ）に振分けることを示す。なお、フォワーディング情報ＤＢ２２ａは、フローＩＤごとに、フローの終端装置である加入者端末のアドレス情報等を対応付けて記憶してもよい。
【００４８】
制御部２３は、ルータ２０の全体を司るプロセッサなどの電子回路であり、フォワーディング更新部２４とＡＢＦ（Access  control  list  Based  Fowarding）処理部２５と負荷通知部２６とを有する。
【００４９】
フォワーディング更新部２４は、ＳＢＣ振分サーバ１０から受信したＳＢＣ情報などに基づいて、フォワーディング情報ＤＢ２２ａを更新する処理部である。例えば、フォワーディング更新部２４は、通信対象である加入者情報と、振分先として決定されたＳＢＣサーバの情報と、通信を識別するフローＩＤとを、ＳＢＣ振分サーバ１０から受信する。
【００５０】
そして、フォワーディング更新部２４は、ＳＢＣサーバの情報を「振分先ＳＢＣ、宛先情報、ポート番号」に設定し、フローＩＤを「フローＩＤ」に設定したレコードを、フォワーディング情報ＤＢ２２ａに生成する。なお、フォワーディング更新部２４は、初期状態のパケットＩＤについては、例えばＰＫ０などの初期値を設定する。なお、パケットＩＤは、通信パケットが送信されるたびに、ＰＫ１、ＰＫ２と順に加算される。
【００５１】
ＡＢＦ処理部２５は、振分部２５ａと宛先送信部２５ｂとを有し、フォワーディング情報ＤＢ２２ａに記憶される情報に基づいて、通信パケットを振分先のＳＢＣや宛先へ送信する処理部である。
【００５２】
振分部２５ａは、加入者端末２から受信した通信パケットを振分先のＳＢＣサーバへ振分けて、ＳＢＣサーバで検閲処理を実行させる処理部である。例えば、振分部２５ａは、受信した通信パケットからフローＩＤを抽出し、当該フローＩＤに対応する振分先ＳＢＣをフォワーディング情報ＤＢ２２ａから特定する。そして、振分部２５ａは、特定した各振分先ＳＢＣに対応する負荷情報をＳＢＣ振分情報ＤＢ２２ｂから特定する。
【００５３】
その後、振分部２５ａは、特定した負荷情報のうち最大の値、すなわち、処理負荷が最小のＳＢＣサーバを特定する。そして、振分部２５ａは、特定したＳＢＣサーバのアドレスやポート番号をフォワーディング情報ＤＢ２２ａから特定して、受信した通信パケットを当該特定したＳＢＣサーバに送信する。
【００５４】
このとき、振分部２５ａは、振分先ＳＢＣとフローＩＤとの組み合わせに対応するパケットＩＤを特定し、当該パケットＩＤをインクリメントした新たなパケットＩＤを通信パケットに含めて送信する。また、振分部２５ａは、振分先ＳＢＣとフローＩＤとの組み合わせに対応するパケットＩＤを、最新のパケットＩＤで更新する。
【００５５】
また、振分部２５ａは、ＳＢＣサーバへ通信パケットを送信した場合に、当該通信パケットのパケットサイズを特定する。そして、振分部２５ａは、ＳＢＣ振分情報ＤＢ２２ｂにおいて、通信パケットを振分けたＳＢＣサーバに対応する負荷情報から当該パケットサイズを減算し、負荷情報を更新する。
【００５６】
例えば、振分部２５ａは、通信パケットからフローＩＤ「ＦＬ１」を抽出し、「ＦＬ１」に対応する振分先ＳＢＣとして「ＳＢＣサーバ（Ｂ）、ＳＢＣサーバ（Ｃ）、ＳＢＣサーバ（Ｎ）」を特定する。そして、振分部２５ａは、ＳＢＣ振分情報ＤＢ２２ｂを参照し、ＳＢＣサーバ（Ｂ）の負荷情報が「20000」、ＳＢＣサーバ（Ｃ）の負荷情報が「65535」、ＳＢＣサーバ（Ｎ）の負荷情報が「65530」であることを特定する。
【００５７】
すると、振分部２５ａは、負荷情報の値が最も大きいＳＢＣサーバ（Ｃ）を振分先と決定する。また、振分部２５ａは、「ＦＬ１」に対応するパケットＩＤのうち最新のパケットＩＤが「ＰＫ１」であることから、パケットＩＤとして「ＰＫ２」を通信パケットに設定して、ＳＢＣサーバ（Ｃ）に送信する。
【００５８】
このとき、振分部２５ａは、フォワーディング情報ＤＢ２２ａにおいて「ＦＬ１」に対応するパケットＩＤを「ＰＫ２」に更新する。さらに、振分部２５ａは、振分けた通信パケットのパケットサイズが「255」である場合、ＳＢＣ振分情報ＤＢ２２ｂにおいてＳＢＣサーバ（Ｃ）と対応付けられる負荷情報を、「65535−255＝65280」に更新する。
【００５９】
宛先送信部２５ｂは、ＳＢＣサーバによって検閲処理の結果、送信可能と判断された通信パケットを宛先に送信する処理部である。上記例で説明すると、宛先送信部２５ｂは、振分先のＳＢＣサーバ（Ｃ）から検閲済みの通信パケットを受信する。そして、宛先送信部２５ｂは、受信した検閲済みの通信パケットからフローＩＤとパケットＩＤを抽出する。
【００６０】
その後、宛先送信部２５ｂは、当該検証済みの通信パケットの順序チェックを実行する。具体的には、宛先送信部２５ｂは、当該検証済みの通信パケットが次に送信する対象の通信パケットかを判定し、順番が入れ替わっていないかを判定する。判定方法は、様々な方法を用いることができるが、例えば、送信済みの最新パケットＩＤをフロー毎に記憶部２２に格納しておくことで、受信した検証済みの通信パケットが送信対象のパケットかを判定できる。
【００６１】
そして、宛先送信部２５ｂは、受信した検証済みの通信パケットのヘッダから宛先を特定し、受信した検証済みの通信パケットを宛先の加入者端末５に送信する。なお、宛先送信部２５ｂは、一般的なルーティングテーブル等を用いることで、検証済みの通信パケットの出力ポート等を特定することができる。
【００６２】
また、宛先送信部２５ｂは、宛先への送信を実行すると、宛先へ送信した通信パケットのパケットサイズが「255」である場合、ＳＢＣ振分情報ＤＢ２２ｂにおいてＳＢＣサーバ（Ｃ）に対応付けられる負荷情報を、「65280＋255＝65535」に更新する。
【００６３】
負荷通知部２６は、フローが終了した場合に、各ＳＢＣサーバの負荷情報をＳＢＣ振分サーバ１０に送信する処理部である。例えば、負荷通知部２６は、フローＩＤが「ＦＬ１」の通信においてＢＹＥ信号を受信した場合、当該「ＦＬ１」に対する振分を終了する。このとき、負荷通知部２６は、ＳＢＣ振分情報ＤＢ２２ｂに記憶される各ＳＢＣサーバの負荷情報を取得して、ＳＢＣ振分サーバ１０へ送信する。そして、負荷通知部２６は、通信が終了した「ＦＬ１」に対応するレコードを、フォワーディング情報ＤＢ２２ａから削除する。
【００６４】
［処理の流れ］
次に、実施例１に係るシステムで実行される各処理について説明する。ここでは、全体的な流れ、振分先通知処理、振分処理、宛先への送信処理、振分終了処理について説明する。
【００６５】
（全体的な流れ）
図６は、実施例１に係るＳＢＣ振分処理を示す処理シーケンス図である。図６に示すように、加入者端末２は、Ｓ−ＣＳＣＦ装置３を介して、ＩＮＶＩＴＥ信号をＳＢＣ振分サーバ１０へ送信する（Ｓ１０１とＳ１０２）。
【００６６】
ＳＢＣ振分サーバ１０では、送受信部１４がＩＮＶＩＴＥ信号を受信し、振分先決定部１５が、振分先候補を決定する（Ｓ１０３）。具体的には、振分先決定部１５は、ＩＮＶＩＴＥ信号のＳＤＰから取得した帯域情報と、ＳＢＣ振分情報ＤＢ１２に記憶されるＳＢＣサーバの負荷情報および帯域とを用いて、当該ＩＮＶＩＴＥ信号に対応するフローの振分先を決定する。ここでは、振分先決定部１５は、ＳＢＣサーバ（Ｂ）、ＳＢＣサーバ（Ｃ）、ＳＢＣサーバ（Ｎ）を振分先候補と決定したとする。
【００６７】
そして、送受信部１４は、振分先決定部１５が決定した各ＳＢＣサーバにＩＮＶＩＴＥ信号を送信する（Ｓ１０４〜Ｓ１０７）。各ＳＢＣサーバは、受信したＩＮＶＩＴＥ信号に基づいてポリシー設定を実行する（Ｓ１０８〜Ｓ１１０）。例えば、ＳＢＣサーバ（Ｂ）は、セッションＩＤ、送信元のＩＰアドレス、ポート番号をＩＮＶＩＴＥ信号から取得し、特定のパケットを受信した場合には送信を許可し、それ以外は破棄するなどのポリシーを設定する。そして、各ＳＢＣサーバは、ポリシー設定を行った後、ＩＮＶＩＴＥ信号の応答として２００ＯＫ信号をＳＢＣ振分サーバ１０に送信する（Ｓ１１１〜Ｓ１１６）。
【００６８】
ＳＢＣ振分サーバ１０の送受信部１４は、振分先候補に決定された各ＳＢＣサーバから２００ＯＫ信号を受信すると、ＩＮＶＩＴＥ信号を加入者端末５へ送信する（Ｓ１１７とＳ１１８）。加入者端末５は、加入者端末２と通信を確立することから、受信したＩＮＶＩＴＥ信号に対して２００ＯＫ信号を応答する（Ｓ１１９とＳ１２０）。
【００６９】
そして、ＳＢＣ振分サーバ１０の振分先決定部１５は、当該ＩＮＶＩＴＥ信号で要求された通信フローに対して一意なフローＩＤを決定する（Ｓ１２１）。その後、振分先設定部１６は、加入者情報、決定された振分先ＳＢＣの情報、決定されたフローＩＤを、Diameterプロトコルを用いてルータ２０に送信する（Ｓ１２２とＳ１２３）。
【００７０】
そして、ルータ２０のフォワーディング更新部２４は、受信した加入者情報とＳＢＣの情報とフローＩＤとを用いて、フォワーディング情報ＤＢ２２ａを更新する（Ｓ１２４）。具体的には、ルータ２０は、加入者端末２から加入者端末５へのフローＩＤ「ＦＬ１」のパケットの振分先候補がＳＢＣサーバ（Ｂ）、ＳＢＣサーバ（Ｃ）、ＳＢＣサーバ（Ｎ）であることを特定するレコードを、フォワーディング情報ＤＢ２２ａに設定する。
【００７１】
一方で、ＳＢＣ振分サーバ１０は、ＩＮＶＩＴＥ信号に対する２００ＯＫ信号を振分先のＳＢＣサーバと加入者端末５から受信したので、Ｓ１０１に対するＩＮＶＩＴＥ信号の応答として２００ＯＫ信号を加入者端末２へ応答する（Ｓ１２５とＳ１２６）。このとき、ＳＢＣ振分サーバ１０は、Ｓ１２１で決定されたフローＩＤを加入者端末２へ通知する。
【００７２】
その後、加入者端末２は、加入者端末５を宛先とする、フローＩＤを含んだ通信パケットを送信する（Ｓ１２７とＳ１２８）。この通信パケットはルータ２０によって受信され、ルータ２０の振分部２５ａは、通信パケットのフローＩＤに対応する振分先を決定する（Ｓ１２９）。そして、振分部２５ａは、決定した振分先のＳＢＣサーバに、通信パケットを振分ける（Ｓ１３０とＳ１３１）。
【００７３】
例えば、振分部２５ａは、フローＩＤに対応する振分先ＳＢＣサーバとしてＳＢＣサーバ（Ｂ）、ＳＢＣサーバ（Ｃ）、ＳＢＣサーバ（Ｎ）をフォワーディング情報ＤＢ２２ａから特定する。そして、振分部２５ａは、特定した各サーバの負荷情報をＳＢＣ振分情報ＤＢ２２ｂから特定し、最も負荷が少ないＳＢＣサーバがＳＢＣサーバ（Ｂ）であると特定する。その後、振分部２５ａは、ＳＢＣサーバ（Ｂ）を振分先に決定し、ＳＢＣサーバ（Ｂ）に通信パケットを転送する。このとき、振分部２５ａは、当該フローＩＤに対応するパケットＩＤを最新のパケットＩＤに更新し、通信パケットに含めて送信する。
【００７４】
そして、ＳＢＣサーバ（Ｂ）は、ルータ２０から転送された通信パケットを検閲する（Ｓ１３２）。ここでは、ＳＢＣサーバ（Ｂ）は、検閲の結果、通信可能と判断したとする。すると、ＳＢＣサーバ（Ｂ）は、通信パケットと検閲結果とをルータ２０へ送信する（Ｓ１３２とＳ１３３）。その後、ルータ２０は、検閲済みの通信パケットのヘッダ等に基づいて、宛先の加入者端末５へ通信パケットを送信する（Ｓ１３４とＳ１３５）。
【００７５】
（振分先通知処理）
図７は、実施例１に係るＳＢＣ振分サーバによる振分先通知処理の流れを示すフローチャートである。図７に示すように、ＳＢＣ振分サーバ１０の送受信部１４は、ＩＮＶＩＴＥ信号を受信する（Ｓ２０１）。
【００７６】
すると、振分先決定部１５は、ＩＮＶＩＴＥ信号のＳＤＰから帯域情報を取得し（Ｓ２０２）、帯域幅が所定値よりも大きいか否かを判定する（Ｓ２０３）。ここで、振分先決定部１５は、取得された帯域幅が所定値よりも小さい場合（Ｓ２０３：Ｎｏ）、特定のＳＢＣへＩＮＶＩＴＥ信号を送信する（Ｓ２０４）。
【００７７】
例えば、振分先決定部１５は、ＳＢＣ振分情報ＤＢ１２の各ＳＢＣサーバの帯域よりもＩＮＶＩＴＥ信号の帯域幅の方が小さい場合には、いずれのＳＢＣサーバでも処理できることから、その時点で最も負荷が少ないＳＢＣ振分サーバを振分先と決定する。
【００７８】
一方、振分先決定部１５は、得された帯域幅が所定値よりも大きい場合（Ｓ２０３：Ｙｅｓ）、取得された帯域幅と、ＳＢＣ振分情報ＤＢ１２の各ＳＢＣサーバの帯域とに基づいて、振分先候補となるＳＢＣサーバの台数を決定する（Ｓ２０５）。続いて、振分先決定部１５は、ＳＢＣ振分情報ＤＢ１２から各ＳＢＣサーバの負荷情報を取得し（Ｓ２０６）、負荷の少ない順に、Ｓ２０５で決定された台数分のＳＢＣサーバを決定する（Ｓ２０７）。
【００７９】
その後、送受信部１４は、Ｓ２０７において振分先決定部１５が決定した振分先のＳＢＣサーバへ、Ｓ２０１で受信されたＩＮＶＩＴＥ信号を送信する（Ｓ２０８）。なお、ＳＢＣ振分サーバ１０は、各ＳＢＣサーバを管理下におくことから、各ＳＢＣサーバのＩＰアドレスやＭＡＣアドレスを記憶している。
【００８０】
（振分処理）
図８は、実施例１に係るルータによる振分処理の流れを示すフローチャートである。図８に示すように、ルータ２０の振分部２５ａは、通信パケットが受信されると（Ｓ３０１：Ｙｅｓ）、当該通信パケットからフローＩＤを特定する（Ｓ３０２）。
【００８１】
続いて、振分部２５ａは、特定したフローＩＤをキーにしてフォワーディング情報ＤＢ２２ａを参照し（Ｓ３０３）、フローＩＤに対応するＳＢＣサーバを特定する（Ｓ３０４）。
【００８２】
そして、振分部２５ａは、ＳＢＣ振分情報ＤＢ２２ｂを参照し、Ｓ３０４で特定したＳＢＣサーバのうち、最も負荷が少ないＳＢＣサーバを振分先に決定する（Ｓ３０５）。続いて、振分部２５ａは、フローＩＤに対応するパケットＩＤをＳＢＣ振分情報ＤＢ２２ｂから特定し、最新のパケットＩＤを通信パケットに付加する（Ｓ３０６）。このとき、振分部２５ａは、ＳＢＣ振分情報ＤＢ２２ｂにおける振分先ＳＢＣとフローＩＤとの組み合わせに対応するパケットＩＤを、最新のパケットＩＤで更新する。
【００８３】
その後、振分部２５ａは、Ｓ３０６で最新のパケットＩＤが付加された通信パケットを、Ｓ３０５で決定した振分先のＳＢＣサーバに送信する（Ｓ３０７）。続いて、振分部２５ａは、Ｓ３０７で振分けた通信パケットのパケットサイズを用いて、ＳＢＣ振分情報ＤＢ２２ｂにおいて振分先に対応付けられる負荷情報を更新する（Ｓ３０８）。すなわち、宛先送信部２５ｂは、通信パケットの検閲要求し、ＳＢＣサーバの負荷が増加されたので、現在の負荷情報から当該パケットサイズを減算して、負荷状況を大きくする。
【００８４】
その後、振分部２５ａは、当該通信フローにおいて残りの通信パケットが存在するか否かを判定し（Ｓ３０９）、存在する場合には（Ｓ３０９：Ｙｅｓ）、Ｓ３０１に戻って以降の処理を繰り返す。一方、振分部２５ａは、残りの通信パケットが存在しない場合には（Ｓ３０９：Ｎｏ）、処理を終了する。なお、振分部２５ａは、ＢＹＥ信号を受信したか否かによって、残りの通信パケットが存在するか否かを判定できる。
【００８５】
（宛先への送信処理）
図９は、実施例１に係るルータによる宛先への送信処理の流れを示すフローチャートである。図９に示すように、ルータ２０の宛先送信部２５ｂは、検閲を実行する振分先のＳＢＣサーバから、検閲済みの通信パケットを受信すると（Ｓ４０１：Ｙｅｓ）、フォワーディング情報ＤＢ２２ａを参照して順序をチェックする（Ｓ４０２）。
【００８６】
例えば、宛先送信部２５ｂは、フローＩＤごとに送信済みのパケットＩＤをメモリ等に記憶させておき、検閲済みの通信パケットに含まれるフローＩＤとパケットＩＤとから、次に送信する対象のパケットＩＤか否かを判定する。
【００８７】
続いて、宛先送信部２５ｂは、検閲済みの通信パケットを正常なパケットであると判定した場合（Ｓ４０３：Ｙｅｓ）、当該通信パケットのヘッダやルーティングテーブルなどから宛先を特定する（Ｓ４０４）。
【００８８】
そして、宛先送信部２５ｂは、当該通信パケットの検閲を実行したＳＢＣサーバに対応付けてＳＢＣ振分情報ＤＢ２２ｂに格納される負荷情報を、当該通信パケットのパケットサイズを用いて更新する（Ｓ４０５）。すなわち、宛先送信部２５ｂは、通信パケットの検閲が終了し、ＳＢＣサーバの負荷が軽減されたので、現在の負荷情報に当該パケットサイズを加算して、負荷状況を小さくする。
【００８９】
その後、宛先送信部２５ｂは、Ｓ４０４で特定した宛先へ、Ｓ４０１で受信した検閲済みの通信パケットを送信する（Ｓ４０６）。なお、Ｓ４０５とＳ４０６はどちらが先に実行されてもよい。
【００９０】
一方、Ｓ４０３において、宛先送信部２５ｂは、検閲済みの通信パケットを正常なパケットではないと判定した場合（Ｓ４０３：Ｎｏ）、すなわち、順序が異なると判定した場合、当該検閲済みの通信パケットを一時的にメモリ等に保存する（Ｓ４０７）。
【００９１】
そして、宛先送信部２５ｂは、受信済みでメモリ等に一時的に記憶される検閲済みのパケットを並べ替える（Ｓ４０８）。その後、宛先送信部２５ｂは、並び替えた結果、正常な順序にパケットを送信できる場合には（Ｓ４０９：Ｙｅｓ）、Ｓ４０４以降の処理を実行する。一方、宛先送信部２５ｂは、並び替えても、正常な順序にパケットを送信できない場合には（Ｓ４０９：Ｎｏ）、Ｓ４０１以降を繰り返す。
【００９２】
（振分終了処理）
図１０は、実施例１に係るＳＢＣ振分終了処理を示す処理シーケンス図である。図１０に示すように、加入者端末２は、Ｓ−ＣＳＣＦ装置３を介して、フローＩＤを含めたＢＹＥ信号をＳＢＣ振分サーバ１０に送信する（Ｓ５０１とＳ５０２）。
【００９３】
続いて、ＳＢＣ振分サーバ１０の情報更新部１７は、ＢＹＥ信号から抽出したフローＩＤを含めて、ＳＢＣの最新情報の提供を要求する信号をルータ２０へ送信する（Ｓ５０３とＳ５０４）。
【００９４】
すると、ルータ２０の負荷通知部２６は、ＳＢＣ振分情報ＤＢ２２ｂを参照し、各ＳＢＣサーバに対応付けられる負荷情報を特定し（Ｓ５０５）、特定したＳＢＣサーバの負荷情報をＳＢＣ振分サーバ１０へ送信する（Ｓ５０６とＳ５０７）。また、負荷通知部２６は、受信したフローＩＤをキーにしてＳＢＣ振分情報ＤＢ２２ｂを参照し、該当するレコードを削除する（Ｓ５０８）。
【００９５】
そして、ＳＢＣ振分サーバ１０の情報更新部１７は、ルータ２０から受信した各ＳＢＣサーバの負荷情報を用いて、ＳＢＣ振分情報ＤＢ２２ｂに記憶される各ＳＢＣサーバの負荷情報を更新する（Ｓ５０９）。
【００９６】
続いて、ＳＢＣ振分サーバ１０の情報更新部１７は、ＢＹＥ信号のフローＩＤに基づいて、振分先としてルータ２０へ通知したＳＢＣサーバを特定する（Ｓ５１０）。例えば、情報更新部１７は、フローＩＤごとに、振分先としてルータに通知したＳＢＣサーバの情報をメモリ等に記憶させておくことで、ＢＹＥ信号のフローＩＤから振分先として指定されている各ＳＢＣサーバを特定できる。
【００９７】
その後、送受信部１４は、ＢＹＥ信号のフローＩＤに対して振分先として指定される各ＳＢＣサーバに対して、Ｓ５０１で受信されたフローＩＤを含むＢＹＥ信号を送信する（Ｓ５１１〜Ｓ５１４）。
【００９８】
そして、各ＳＢＣサーバは、ＢＹＥ信号を受信すると、閉塞処理を実行する（Ｓ５１５〜Ｓ５１７）。例えば、ＳＢＣサーバ（Ｂ）は、ＢＹＥ信号からフローＩＤを取得し、当該フローＩＤで特定されるフローのＰｉｎｈｏｌｅを閉じる。
【００９９】
その後、各ＳＢＣサーバは、閉塞処理が正常に終了すると、Ｓ５１１からＳ５１５のＢＹＥ信号の応答として２００ＯＫ信号をＳＢＣ振分サーバ１０に送信する（Ｓ５１８からＳ５２３）。
【０１００】
続いて、ＳＢＣ振分サーバ１０の送受信部１４は、Ｓ５０３で受信したＢＹＥ信号を加入者端末５に送信する（Ｓ５２４とＳ５２５）。そして、加入者端末５は、セッションの終了を許可し、当該ＢＹＥ信号の応答として２００ＯＫ信号をＳＢＣ振分サーバ１０へ送信する（Ｓ５２６とＳ５２７）。
【０１０１】
その後、ＳＢＣ振分サーバ１０の送受信部１４は、Ｓ５０３で受信したＢＹＥ信号の応答として２００ＯＫ信号を加入者端末２に送信する（Ｓ５２８とＳ５２９）。
【０１０２】
［効果］
このように、実施例１によれば、ルータ２０は、１つのフローを複数のＳＢＣサーバに振分けることができる。また、実施例１によれば、ルータ２０は、１つのフローについて、フロー内のパケットごとに、ＳＢＣサーバへの振分を分散させることができる。つまり、ルータ２０は、同一セッション内のパケットごとに負荷分散させることができるので、ＳＢＣサーバの過大な処理負荷を軽減でき、処理の高速化が図れる。
【０１０３】
例えば、１０Ｇｂｐｓのトラヒックフローを制御したい場合に、１台のＳＢＣサーバの制御可能な帯域が１Ｇｂｐｓであるとする。この場合、システム内にＳＢＣサーバを複数台設置し、ルータ２０は、帯域を分割して複数ＳＢＣサーバに振り分けることができ、合計１０Ｇｂｐｓのトラヒックフローを制御することができる。
【０１０４】
また、ルータ２０は、各ＳＢＣサーバの負荷情報をリアルタイムに管理し、１フローが終了するたびにＳＢＣ振分サーバ１０に負荷情報を通知する。このため、ＳＢＣ振分サーバ１０は、最新の負荷情報を保持でき、負荷情報に基づく振分先候補を適切に決定することができる。
【０１０５】
また、ＳＢＣ振分サーバ１０は、セッションが開始するタイミングにおける最新の負荷情報やセッションの帯域幅に基づいて複数の振分先を決定してルータ２０へ通知し、ルータ２０は、通知された情報に基づいて振分を実行する。このため、ルータ２０は、振分けた先のＳＢＣサーバで検閲処理が遅延したり、遅延によってパケットが破棄されたりすることを抑制でき、性能劣化を抑制できる。また、ルータ２０の性能劣化を抑制し、検閲処理の高速化が図れることから、システム全体の信頼性も向上する。
【実施例２】
【０１０６】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【０１０７】
（ＳＩＰ）
実施例１では、ＳＩＰ信号を例にして説明したが、これに限定されるものではない。例えば、ＶｏＩＰに用いられる他の信号や一般的なＩＰネットワークで使用されるプロトコルであっても、同様に処理することができる。
【０１０８】
（ＳＢＣ振分情報）
実施例１では、ルータ２０が、ＳＢＣ振分サーバ１０から振分先候補の情報を受信してＳＢＣ振分情報ＤＢ２２ｂを生成する例を説明したが、これに限定されるものではない。例えば、ルータ２０は、管理者等によって受け付けた情報をＳＢＣ振分情報ＤＢ２２ｂに格納することもできる。
【０１０９】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１１０】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１１１】
（ハードウェア構成）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。
【０１１２】
（ＳＢＣ振分サーバのハードウェア構成）
図１１は、ＳＢＣ振分サーバのハードウェア構成例を示す図である。図１１に示すように、ＳＢＣ振分サーバ１００は、ＣＰＵ（Central  Processing  Unit）１０１、メモリ１０２、ＨＤＤ（Hard  Disk  Drive）１０３、通信インタフェース１０４、入力装置１０５、表示装置１０６を有する。また、図１１に示した各部は、バスで相互に接続される。
【０１１３】
入力装置１０５は、マウスやキーボードであり、表示装置１０６は、ディスプレイなどであり、通信インタフェース１０４は、ＮＩＣ（Network  Interface  Card）などのインタフェースである。ＨＤＤ１０３は、図２等に示した機能を実行するプログラムとともに、各ＤＢ等を記憶する。記録媒体の例としてＨＤＤ１０３を例に挙げたが、ＲＯＭ（Read  Only  Memory）、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータが読み取り可能な記録媒体に各種プログラムを格納しておき、ＳＢＣ振分サーバ１００に読み取らせることとしてもよい。なお、記録媒体を遠隔地に配置し、ＳＢＣ振分サーバ１００が、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのＳＢＣ振分サーバ１００自身の記録媒体に格納して用いてもよい。
【０１１４】
ＣＰＵ１０１は、図２に示した各処理部と同様の処理を実行するプログラムを読み出してメモリ１０２に展開することで、図２等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、送受信部１４、振分先決定部１５、振分先設定部１６、情報更新部１７を実行する。このように、ＳＢＣ振分サーバ１００は、プログラムを読み出して実行することで振分先通知方法を実行する情報処理装置として動作する。
【０１１５】
また、ＳＢＣ振分サーバ１００は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、ＳＢＣ振分サーバ１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【０１１６】
（ルータのハードウェア構成）
図１２は、ルータのハードウェア構成例を示す図である。図１２に示すように、ルータ２００は、通信インタフェース２０１、メモリ２０２、ＣＰＵ２０３を有する。また、図１２に示した各部は、バスで相互に接続される。
【０１１７】
通信インタフェース２０１は、ＮＩＣやポートなどのインタフェースである。メモリ２０２は、図４等に示した機能を実行するプログラムとともに、各ＤＢ等を記憶する。記録媒体の例としてメモリ２０２を例に挙げたが、ＨＤＤなど他のコンピュータが読み取り可能な記録媒体に各種プログラムを格納しておき、ルータ２００に読み取らせることとしてもよい。なお、記録媒体を遠隔地に配置し、ルータ２００が、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのルータ２００自身の記録媒体に格納して用いてもよい。
【０１１８】
ＣＰＵ２０３は、図４に示した各処理部と同様の処理を実行するプログラムを読み出してメモリ２０２に展開することで、図４等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、フォワーディング更新部２４、ＡＢＦ処理部２５、負荷通知部２６を実行する。このように、ルータ２００は、プログラムを読み出して実行することで振分制御方法を実行する情報処理装置として動作する。
【０１１９】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２０】
（付記１）端末間の通信フローを識別するフロー識別子ごとに、パケットの検閲を実行する振分先サーバのアドレス情報を、前記通信フローの帯域幅に応じて複数記憶する振分先記憶部と、
前記フロー識別子が付与されたパケットを受信した場合に、当該フロー識別子に対応付けられる振分先サーバを前記振分先記憶部から特定する特定部と、
前記特定部によって特定された振分先サーバのうち、処理負荷が所定値より小さい振分先サーバに前記フロー識別子が付与されたパケットを送信する送信制御部と
を有することを特徴とするネットワーク装置。
【０１２１】
（付記２）前記フロー識別子と振分先サーバとに対応付けて、振分先サーバが処理できるパケットサイズを示す負荷情報を記憶する負荷情報記憶部をさらに有し、
前記送信制御部は、前記パケットを前記振分先サーバへ送信した場合に、前記振分先サーバに対応付けられる負荷情報から前記パケットのパケットサイズを減算し、前記振分先サーバから受信した検閲済みのパケットを宛先に送信した場合に、前記振分先サーバに対応付けられる負荷情報に前記パケットのパケットサイズを加算することを特徴とする付記１に記載のネットワーク装置。
【０１２２】
（付記３）確立済みの通信フローが終了した場合に、確立を要求する通信フローの振分先を負荷情報と前記帯域幅に基づいて決定して前記ネットワーク装置に通知する振分先通知装置に対して、前記負荷情報記憶部に記憶される各振分先サーバの負荷情報を送信し、終了した通信フローのフロー識別子に対応する情報を前記振分先記憶部から削除する負荷通知部をさらに有することを特徴とする付記２に記載のネットワーク装置。
【０１２３】
（付記４）コンピュータが、
端末間の通信フローを識別するフロー識別子が付与されたパケットを受信した場合に、前記フロー識別子ごとにパケットの検閲を実行する振分先サーバのアドレス情報を前記通信フローの帯域幅に応じて複数記憶する振分先記憶部を参照し、前記フロー識別子に対応付けられる振分先サーバを特定し、
特定した振分先サーバのうち、処理負荷が所定値より小さい振分先サーバに前記フロー識別子が付与されたパケットを送信する
処理を含んだことを特徴とする振分制御方法。
【０１２４】
（付記５）コンピュータに、
端末間の通信フローを識別するフロー識別子が付与されたパケットを受信した場合に、前記フロー識別子ごとにパケットの検閲を実行する振分先サーバのアドレス情報を前記通信フローの帯域幅に応じて複数記憶する振分先記憶部を参照し、前記フロー識別子に対応付けられる振分先サーバを特定し、
特定した振分先サーバのうち、処理負荷が所定値より小さい振分先サーバに前記フロー識別子が付与されたパケットを送信する
処理を実行させることを特徴とする振分制御プログラム。
【０１２５】
（付記６）メモリと
前記メモリに接続されるプロセッサと、を有し、
前記プロセッサは、端末間の通信フローを識別するフロー識別子が付与されたパケットを受信した場合に、前記フロー識別子ごとにパケットの検閲を実行する振分先サーバのアドレス情報を前記通信フローの帯域幅に応じて複数記憶する振分先記憶部を参照し、前記フロー識別子に対応付けられる振分先サーバを特定し、
特定した振分先サーバのうち、処理負荷が所定値より小さい振分先サーバに前記フロー識別子が付与されたパケットを送信する
処理を実行することを特徴とするネットワーク装置。
【０１２６】
（付記７）端末間の通信フローを識別するフロー識別子が付与されたパケットを受信した場合に、前記フロー識別子ごとにパケットの検閲を実行する振分先サーバのアドレス情報を前記通信フローの帯域幅に応じて複数記憶する振分先記憶部を参照し、前記フロー識別子に対応付けられる振分先サーバを特定し、
特定した振分先サーバのうち、処理負荷が所定値より小さい振分先サーバに前記フロー識別子が付与されたパケットを送信する処理をコンピュータに実行させる振分制御プログラムを記憶する、コンピュータ読み取り可能な記憶媒体。
【０１２７】
（付記８）通信フローの振分先候補である候補サーバに対応付けて、当該候補サーバが処理できる帯域幅と当該候補サーバの負荷情報とを記憶する負荷情報記憶部と、
前記通信フローの確立を要求する要求パケットに含まれる帯域幅と、前記負荷情報記憶部に記憶される帯域幅とから、前記通信フローの振分先となるサーバ台数を決定する第１決定部と、
前記第１決定部によって決定された台数分の候補サーバを、前記負荷情報記憶部に記憶される負荷情報が小さい順に決定する第２決定部と、
前記通信フローにおけるパケットの振分を実行するネットワーク装置に、前記第２決定部によって決定された候補サーバを、当該通信フローの振分先として通知する通知部と
を有することを特徴とする振分先通知装置。
【０１２８】
（付記９）確立済みの通信フローが終了した場合に、前記ネットワーク装置から各候補サーバの負荷情報を受信し、受信した負荷情報で前記負荷情報記憶部に記憶される候補サーバごとの負荷情報を更新する更新部をさらに有することを特徴とする付記８に記載の振分先通知装置。
【０１２９】
（付記１０）コンピュータが、
通信フローの振分先候補である候補サーバに対応付けて、当該候補サーバが処理できる帯域幅と当該候補サーバの負荷情報とを記憶する負荷情報記憶部を参照し、前記通信フローの確立を要求する要求パケットに含まれる帯域幅と、前記負荷情報記憶部に記憶される帯域幅とから、前記通信フローの振分先となるサーバ台数を決定し、
決定した台数分の候補サーバを、前記負荷情報記憶部に記憶される負荷情報が小さい順に決定し、
前記通信フローにおけるパケットの振分を実行するネットワーク装置に、決定した候補サーバを、当該通信フローの振分先として通知する
処理を含んだことを特徴とする振分先通知方法。
【０１３０】
（付記１１）コンピュータに、
通信フローの振分先候補である候補サーバに対応付けて、当該候補サーバが処理できる帯域幅と当該候補サーバの負荷情報とを記憶する負荷情報記憶部を参照し、前記通信フローの確立を要求する要求パケットに含まれる帯域幅と、前記負荷情報記憶部に記憶される帯域幅とから、前記通信フローの振分先となるサーバ台数を決定し、
決定した台数分の候補サーバを、前記負荷情報記憶部に記憶される負荷情報が小さい順に決定し、
前記通信フローにおけるパケットの振分を実行するネットワーク装置に、決定した候補サーバを、当該通信フローの振分先として通知する
処理を実行させることを特徴とする振分先通知プログラム。
【０１３１】
（付記１２）メモリと
前記メモリに接続されるプロセッサと、を有し、
前記コンピュータは、通信フローの振分先候補である候補サーバに対応付けて、当該候補サーバが処理できる帯域幅と当該候補サーバの負荷情報とを記憶する負荷情報記憶部を参照し、前記通信フローの確立を要求する要求パケットに含まれる帯域幅と、前記負荷情報記憶部に記憶される帯域幅とから、前記通信フローの振分先となるサーバ台数を決定し、
決定した台数分の候補サーバを、前記負荷情報記憶部に記憶される負荷情報が小さい順に決定し、
前記通信フローにおけるパケットの振分を実行するネットワーク装置に、決定した候補サーバを、当該通信フローの振分先として通知する
処理を実行することを特徴とする振分先通知装置。
【０１３２】
（付記１３）通信フローの振分先候補である候補サーバに対応付けて、当該候補サーバが処理できる帯域幅と当該候補サーバの負荷情報とを記憶する負荷情報記憶部を参照し、前記通信フローの確立を要求する要求パケットに含まれる帯域幅と、前記負荷情報記憶部に記憶される帯域幅とから、前記通信フローの振分先となるサーバ台数を決定し、
決定した台数分の候補サーバを、前記負荷情報記憶部に記憶される負荷情報が小さい順に決定し、
前記通信フローにおけるパケットの振分を実行するネットワーク装置に、決定した候補サーバを、当該通信フローの振分先として通知する
処理をコンピュータに実行させる振分通知プログラムを記憶する、コンピュータ読み取り可能な記憶媒体。
【符号の説明】
【０１３３】
１０  ＳＢＣ振分サーバ
１１  通信制御部
１２  ＳＢＣ振分情報ＤＢ
１３  制御部
１４  送受信部
１５  振分先決定部
１６  振分先設定部
１７  情報更新部
２０  ルータ
２１  通信制御部
２２  記憶部
２２ａ  フォワーディング情報ＤＢ
２２ｂ  ＳＢＣ振分情報ＤＢ
２３  制御部
２４  フォワーディング更新部
２５  ＡＢＦ処理部
２５ａ  振分部
２５ｂ  宛先送信部
２６  負荷通知部
【図１】
2014138412.tif 000003
【図２】
2014138412.tif 000004
【図３】
2014138412.tif 000005
【図４】
2014138412.tif 000006
【図５】
2014138412.tif 000007
【図６】
2014138412.tif 000008
【図７】
2014138412.tif 000009
【図８】
2014138412.tif 000010
【図９】
2014138412.tif 000011
【図１０】
2014138412.tif 000012
【図１１】
2014138412.tif 000013
【図１２】
2014138412.tif 000014