(57)【要約】【課題】通信に異常が発生したフローを特定する。【解決手段】通信装置は、共通の属性を有するデータであるフローを特定するためのフロー条件情報と、通信装置に入力された入力フロー流量及び通信装置が出力した出力フロー流量をフローごとに示すフローカウンタ情報と、を保持し、フロー条件情報を参照して通信装置に入力されたデータが属するフローを特定し、フローカウンタ情報における当該フローの入力フロー流量を更新し、フロー条件情報を参照して通信装置が出力したデータが属するフローを特定し、フローカウンタ情報における当該フローの出力フロー流量を更新し、フローカウンタ情報を参照して、入力フロー流量と出力フロー流量とを比較する比較処理の結果に基づいて、通信に異常が発生しているフローを特定する。【選択図】図２
2019153981.tif 000002
【特許請求の範囲】
【請求項１】
データを転送する通信装置であって、
共通の属性を有するデータであるフローを特定するためのフロー条件情報と、
前記通信装置に入力された入力フロー流量、及び前記通信装置が出力した出力フロー流量を、フローごとに示すフローカウンタ情報と、
前記フロー条件情報を参照して前記通信装置に入力されたデータが属するフローを特定し、前記フローカウンタ情報における当該フローの入力フロー流量を更新する入力フローカウンタ処理部と、
前記フロー条件情報を参照して前記通信装置が出力したデータが属するフローを特定し、前記フローカウンタ情報における当該フローの出力フロー流量を更新する出力フローカウンタ処理部と、
前記フローカウンタ情報を参照して、入力フロー流量と出力フロー流量とを比較する比較処理の結果に基づいて、通信に異常が発生しているフローを特定するカウンタ比較部と、を含む通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記属性は、データのヘッダ情報、入力ポート情報、出力ポート情報、及びＶＬＡＮ情報の少なくとも１つを含む、通信装置。
【請求項３】
請求項１に記載の通信装置であって、
前記入力フローカウンタ処理部、及び前記出力フローカウンタ処理部の少なくとも一方は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を含んで構成され、
前記少なくとも一方は、前記フロー条件情報が示すフローに基づいて自身を再構成する、通信装置。
【請求項４】
請求項１に記載の通信装置であって、
前記入力フローカウンタ処理部は、前記フロー条件情報に定義されているフローに属さないデータが前記通信装置に入力された場合、所定種類の属性を当該データから抽出し、前記抽出した属性を有するデータを新たなフローとして前記フロー条件情報に設定する、通信装置。
【請求項５】
請求項１に記載の通信装置であって、
入力されたデータをコピーして複数の装置に出力し、
前記カウンタ比較部は、前記比較処理において、コピー数に基づいて前記比較を行う通信装置。
【請求項６】
請求項１に記載の通信装置であって、
前記カウンタ比較部は、前記比較処理において、同一のフローの入力フロー流量と出力フロー流量とを比較する、通信装置。
【請求項７】
請求項１に記載の通信装置であって、
前記比較処理における比較対象の入力フローと出力フローの対応を示す比較フロー管理情報を含み、
前記カウンタ比較部は、前記比較処理において、前記比較フロー管理情報が示す入力フローの入力フロー流量と、前記フローカウンタ情報において当該入力フローに対応する出力フローの出力フロー流量とを比較する、通信装置。
【請求項８】
請求項７に記載の通信装置であって、
前記比較フロー管理情報において、第１装置から第２装置へのデータ送信を示す第１入力フローと、第２装置から第１装置へのデータ送信を示す第１出力フローと、の対応が定義され、
前記カウンタ比較部は、前記比較処理において、過去の所定期間において前記通信装置に入力された第１入力フローのフロー流量と、前記通信装置から出力された第１出力フローの出力フロー流量と、の比に基づいて、前記比較を行う、通信装置。
【請求項９】
データを転送する複数の通信装置と、前記複数の通信装置を管理する管理装置と、を含む通信システムであって、
前記複数の通信装置それぞれは、
共通の属性を有するデータであるフローを特定するためのフロー条件情報と、
前記通信装置に入力された入力フロー流量、及び前記通信装置が出力した出力フロー流量を、フローごとに示すフローカウンタ情報と、
前記フロー条件情報を参照して前記通信装置に入力されたデータが属するフローを特定し、前記フローカウンタ情報における当該フローの入力フロー流量を更新する入力フローカウンタ処理部と、
前記フロー条件情報を参照して前記通信装置が出力したデータが属するフローを特定し、前記フローカウンタ情報における当該フローの出力フロー流量を更新する出力フローカウンタ処理部と、を含み、
前記管理装置は、
フローが最初に入力される入力通信装置と、最後にフローを出力する出力通信装置と、フローが通過するフロー通過通信装置と、をフローごとに示すフロー管理情報を保持し、
前記フロー管理情報が示すフローに対応する入力通信装置から、前記フローカウンタ情報において当該フローに対応する入力フロー流量を取得し、
前記フロー管理情報が示す当該フローに対応する出力通信装置から、前記フローカウンタ情報において当該フローに対応する出力フロー流量を取得し、
前記取得した入力フロー流量と前記取得した出力フロー流量とを比較する第１比較処理の結果に基づいて、当該フローの通信に異常が発生しているか否かを判定し、
異常が発生していると判定したフローに前記フロー管理情報において対応するフロー通過通信装置である障害発生通信装置候補それぞれから、前記フローカウンタ情報において当該フローに対応する入力しフロー流量と出力フロー流量とを取得し、
前記障害発生通信装置候補それぞれについて、取得した入力フロー流量と取得した出力フロー流量とを比較する第２比較処理に基づいて、前記障害発生通信装置候補に障害が発生しているか否かを判定する、通信システム。
【請求項１０】
請求項９に記載の通信システムであって、
前記管理装置は、
前記複数の通信装置から前記フロー条件情報が示すフローを特定するための情報を取得し、
前記取得した情報に基づいて、前記フロー管理情報を更新する、通信システム。
【請求項１１】
データを転送する通信装置による通信方法であって、
前記通信装置は、
共通の属性を有するデータであるフローを特定するためのフロー条件情報と、
前記通信装置に入力された入力フロー流量、及び前記通信装置が出力した出力フロー流量を、フローごとに示すフローカウンタ情報と、を保持し、
前記通信方法は、
前記通信装置が、前記フロー条件情報を参照して前記通信装置に入力されたデータが属するフローを特定し、前記フローカウンタ情報における当該フローの入力フロー流量を更新し、
前記通信装置が、前記フロー条件情報を参照して前記通信装置が出力したデータが属するフローを特定し、前記フローカウンタ情報における当該フローの出力フロー流量を更新し、
前記通信装置が、前記フローカウンタ情報を参照して、入力フロー流量と出力フロー流量とを比較する比較処理の結果に基づいて、通信に異常が発生しているフローを特定する、ことを含む通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム、及び通信方法に関する。
【背景技術】
【０００２】
インターネットや企業ネットワークにおける通信パケットを中継するパケット中継装置、及び複数のパケット中継装置から構成されるネットワークを用いて、多数の端末間の通信パケットが転送される。パケット中継装置に故障が発生した場合、端末間の通信ができなくなるが、通信を復旧させるため、パケット中継装置全体又は一部の機能を停止させ、別のパケット中継装置で通信を再開させる。
【０００３】
パケット中継装置の装置内部の障害を検出する技術として、特開２０１４−１６５８１９号公報（特許文献１）がある。この公報には、「ＮＰＵ受信部３２内部の監視区間にフレームが入力される際に、入力統計情報生成部５０は、監視区間への入力フレーム数に関する入力統計情報を生成し、入力統計情報挿入部６０は、その情報をフレームへ挿入する。監視区間からフレームが出力される際に、入力統計情報抽出部６２は、フレームから入力統計情報を抽出し、出力統計情報生成部５２は、監視区間からの出力フレーム数に関する出力統計情報を生成する。比較部６４は、入力統計情報抽出部６２が抽出した入力統計情報と、出力統計情報生成部５２が生成した出力統計情報を比較することにより監視区間の異常を検出する。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１６５８１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術においては、入力フレーム数と出力フレーム数を比較して異常を検知しているが、例えば、出力先が誤る障害が発生した場合には、入力フレーム数と出力フレーム数は一致してしまい、異常を検知することができない。
【０００６】
このような障害による異常を検知するためには、通信に異常が発生したフローを特定することが必要である。そこで本発明の一態様は、通信に異常が発生したフローを特定することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明の一態様は以下の構成を採用する。データを転送する通信装置は、共通の属性を有するデータであるフローを特定するためのフロー条件情報と、前記通信装置に入力された入力フロー流量、及び前記通信装置が出力した出力フロー流量を、フローごとに示すフローカウンタ情報と、前記フロー条件情報を参照して前記通信装置に入力されたデータが属するフローを特定し、前記フローカウンタ情報における当該フローの入力フロー流量を更新する入力フローカウンタ処理部と、前記フロー条件情報を参照して前記通信装置が出力したデータが属するフローを特定し、前記フローカウンタ情報における当該フローの出力フロー流量を更新する出力フローカウンタ処理部と、前記フローカウンタ情報を参照して、入力フロー流量と出力フロー流量とを比較する比較処理の結果に基づいて、通信に異常が発生しているフローを特定するカウンタ比較部と、を含む。
【発明の効果】
【０００８】
本発明の一態様によれば、通信に異常が発生したフローを特定することができる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】実施例１におけるパケット中継システムの構成例を示すブロック図である。
【図２】実施例１におけるパケット中継装置の構成例を示すブロック図である。
【図３】実施例１における入力フロー条件テーブルの構成例である。
【図４】実施例１における図４は、入力フローカウンタテーブルの構成例である。
【図５】実施例１におけるパケット転送処理の一例を示すフローチャートである。
【図６】実施例１におけるパケット転送処理の一例を示すフローチャートである。
【図７】実施例１における入力フローカウンタと出力フローカウンタの比較処理の一例を示すフローチャートである。
【図８】実施例２におけるパケット中継システムの構成例を示すブロック図である。
【図９】実施例２における比較フロー管理テーブルの構成例である。
【図１０】実施例３におけるパケット中継システムの構成例を示すブロック図である。
【図１１】実施例３におけるフロー管理情報テーブルの構成例である。
【図１２】実施例３におけるネットワーク単位での比較処理の一例を示すフローチャートである。
【図１３】実施例３における障害発生装置切り分け処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【００１１】
パケット中継装置において、特定のパケットのみ廃棄されるような障害が発生する場合がある。ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）８０２．１Ｑで規定されているＶＬＡＮ−Ｔａｇ内のＶＬＡＮ  ＩＤでＶＬＡＮを判定し、同一ＶＬＡＮに属するパケットのみをＶＬＡＮに属する出力ポートへ出力し、パケット中継装置に予め設定されていないＶＬＡＮ  ＩＤの値を設定されたパケットは廃棄する、パケット中継装置の一例について説明する。
【００１２】
パケット中継装置は、ＶＬＡＮ  ＩＤが装置に設定されていることを示す状態（以下、ＶＬＡＮ有効状態）をＶＬＡＮ  ＩＤごとに記憶するテーブルをメモリ内に保持している。パケット中継装置は、パケットを受信すると、当該テーブルを読み出し、ＶＬＡＮ有効状態であればパケットの処理を継続し、ＶＬＡＮ無効状態であればパケットを廃棄する。この場合、特定のＶＬＡＮ  ＩＤに対して、ＶＬＡＮ有効状態にも関わらず誤ってＶＬＡＮ無効状態と読み出される故障がメモリに発生すると、当該特定のＶＬＡＮ  ＩＤが設定されたパケットが誤って廃棄される。
【００１３】
このような事態が発生した場合、誤って廃棄されるパケットを特定することが求められる。また、誤って廃棄されるパケットの送信元端末等の入力元情報、及び宛先端末等の出力先情報によって示されるフローを特定することが求められる。前述した特許文献１にはフローを特定することについて記載されていない。
【００１４】
また、パケットの出力先が誤るような障害の発生を検出することが求められる。例えば、パケットの出力先を格納するメモリの読出しアドレスを指定する回路が故障し、別のパケットの出力先を読み出してしまう故障した場合、特許文献１に記載の技術は、入力フレーム数と出力フレーム数を比較して異常を検知しているため、出力先が誤る障害が発生しても、入力フレーム数と出力フレーム数は一致してしまい、異常を検知できない。
【００１５】
そこで、本実施形態のパケット中継装置は、入力フロー流量と出力フロー流量とを比較する比較処理を実行することにより、通信に異常が発生しているフローを特定することができ、ひいては、上述した問題を解決することができる。
【実施例１】
【００１６】
図１は、本実施例におけるパケット中継システムの構成例を示すブロック図である。パケット中継システムは、パケット中継装置１０００、サーバ２、管理端末３、及び複数のユーザ端末４を含む。図１の例では、パケット中継システムは、２つのユーザ端末４を含み、一方のユーザ端末４の識別子がＡ、他方のユーザ端末４の識別子がＢであるものとする。
【００１７】
パケット中継装置１０００は、通信装置の一例であり、ある装置から他の装置へパケットを中継する。パケット中継装置１０００は、識別子がＡのユーザ端末４からサーバ２へのパケット通信（フロー１１００）と、識別子がＢのユーザ端末４からサーバ２へのパケット通信（フロー１２００）の、処理及び監視を行う。なお、フローとは、共通の属性を有するパケットのグループである。また、本実施例では、データの一例としてパケットが処理される例を説明するが、処理対象はパケット以外のデータ（例えば、フレーム及びセグメント等）であってもよい。
【００１８】
パケット中継装置１０００は、フロー１１００として入力されるパケット数の積算値又はバイト数の積算値を、入力カウンタ１１０１を用いてカウントし、保持する。また、パケット中継装置１０００は、フロー１１００としてパケット中継装置１０００から出力されるパケット数の積算値又はバイト数の積算値を、出力カウンタ１１０２を用いてカウントし、保持する。パケット中継装置１０００は、入力カウンタ１１０１と出力カウンタ１１０２とを比較して、フロー１１００の通信が正常か否かを判定する。
【００１９】
またパケット中継装置１０００は、フロー１２００として入力されるパケット数の積算値又はバイト数の積算値を、入力カウンタ１２０１を用いてカウントし、保持する。パケット中継装置１０００は、フロー１２００としてパケット中継装置１０００から出力されるパケット数の積算値又はバイト数の積算値を、出力カウンタ１２０２を用いてカウントし、保持する。パケット中継装置１０００は、入力カウンタ１２０１と出力カウンタ１２０２とを比較して、フロー１２００の通信が正常か否かを判定する。
【００２０】
サーバ２、管理端末３、及びユーザ端末４は、いずれも、例えば、ＣＰＵ（プロセッサ）、メモリ、補助記憶装置、マウス及びキーボード等の入力装置、ディスプレイ等の出力装置、並びに通信インタフェースを含む計算機である。
【００２１】
サーバ２は、パケット中継装置１０００と接続され、ユーザ端末４からの要求に応じて所定のサービスを提供する。管理端末３は、パケット中継装置１０００の後述する装置制御部１００１と接続され、パケット中継装置１０００を管理する。管理端末３は、例えば、管理者からパケット中継装置１０００の設定指示を受け付け、装置制御部１００１に送信する。また、管理端末３は、例えば、パケット中継装置１０００からの通知を受信し表示する。
【００２２】
ユーザ端末４は、パケット中継装置１０００と接続され、サーバ２に対して所定のサービスを要求し、サーバ２から当該要求に対応するサービスの提供を受ける。なお、図１の例では、各装置が直接有線接続されているが、無線接続されていてもよい。
【００２３】
図２は、本実施例におけるパケット中継装置１０００の構成例を示すブロック図である。パケット中継装置１０００は、例えば、複数の入力ポート１０２０、複数の出力ポート１０３０、装置制御部１００１、パケット蓄積部１００２、入力フローカウンタ処理部１００３、入力フロー条件テーブル１００４、入力フローカウンタテーブル１００５、受信判定部１００６、宛先判定部１００７、送信判定部１００８、出力フローカウンタ処理部１００９、出力フロー条件テーブル１０１０、出力フローカウンタテーブル１０１１、及びカウンタ比較部１０１２を含む。
【００２４】
なお、パケット中継装置１０００に含まれる各部は、例えば、ＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の回路で構成されている。また、各テーブルは、例えば、パケット中継装置１０００が保持するメモリに格納されている。また、パケット中継装置１０００に含まれる各部は、ソフトウェアで実現されてもよい。即ち、パケット中継装置１０００がＣＰＵ（プロセッサ）及びメモリを含み、メモリに格納されたプログラムに従ってＣＰＵが動作することにより、各部が実現されてもよい。
【００２５】
装置制御部１００１は、管理端末３から受信した設定指示等に基づいて、パケット中継装置１０００内部の各種設定を行う。入力ポート１０２０は、自身に接続された入力回線からパケットを受信し、パケット蓄積部１００２に送信する。出力ポート１０３０は、パケット蓄積部１００２からパケットを受信し、自身に接続された出力回線へパケットを送信する。
【００２６】
パケット蓄積部１００２は、入力ポート１０２０から受信したパケットを蓄積する。また、パケット蓄積部１００２は、受信したパケットからヘッダ情報を抽出して入力フローカウンタ処理部１００３へ通知する。
【００２７】
入力フローカウンタ処理部１００３は、パケットのヘッダ情報を受信判定部１００６へ通知する。また、入力フローカウンタ処理部１００３は、入力フロー条件テーブル１００４に基づいて入力カウンタを特定し、入力フローカウンタテーブル１００５のカウンタ値を更新する。受信判定部１００６は、ヘッダ情報を基にして受信判定情報（パケットの通過又は廃棄を示す情報）を決定し、ヘッダ情報と受信判定情報とを宛先判定１００７へ送信する。
【００２８】
宛先判定部１００７は、ヘッダ情報を基にしてパケットの出力ポート、及び出力用ＶＬＡＮ情報等の出力情報を決定して、ヘッダ情報と受信判定情報と宛先情報とを送信判定部１００８へ送信する。送信判定部１００８は、ヘッダ情報を基にして送信判定情報（パケットの通過又は廃棄を示す情報）を決定する。また、送信判定部１００８は受信判定情報及び／又は送信判定情報に基づいて、パケットを通過させるか廃棄するかを決定し、パケット蓄積部１００２及び出力フローカウンタ処理部１００９に、宛先情報と共に通知する。
【００２９】
パケット蓄積部１００２は、宛先情報が示す出力ポート及び出力用ＶＬＡＮ情報等に基づいて、パケットに必要な情報を付与し、パケットを出力ポートへ出力する。出力フローカウンタ処理部１００９は、また、出力フローカウンタ処理部１００９は、出力フロー条件テーブル１０１０に基づいて出力カウンタを特定し、出力フローカウンタテーブル１０１１のカウンタ値を更新する。
【００３０】
入力フロー条件テーブル１００４は、入力フローカウンタ処理部１００３がフロー条件を基にして対応するカウンタを特定するためのテーブルである。入力フローカウンタテーブル１００５は、各入力カウンタのカウンタ値（例えば、パケット数の積算値及びバイト数の積算値）を格納する。出力フロー条件テーブル１０１０は、出力フローカウンタ処理部１００９がフロー条件を基にして対応するカウンタを特定するためのテーブルである。出力フローカウンタテーブル１０１１は、各出力カウンタのカウンタ値（例えば、パケット数の積算値及びバイト数の積算値）を格納する。
【００３１】
図３は、入力フロー条件テーブル１００４の構成例である。なお、出力フロー条件テーブル１０１０の構成は、入力フロー条件テーブル１００４の構成と同様であるため、ここでは入力フロー条件テーブル１００４のみについて説明する。
【００３２】
入力フロー条件テーブル１００４は、例えば、フロー条件欄１４０５と、カウンタ番号欄１４０６と、を含む。フロー条件欄１４０５は、フロー条件を格納する。なお、入力フロー条件テーブル１００４に格納されている全てのフロー条件は、出力フロー条件テーブル１０１０にも格納されている。なお、１つのパケットが１つのフロー条件のみに属するように、フロー条件欄１４０５のフロー条件が定められていてもよいし、１つのパケットが複数のフロー条件に属するように、フロー条件欄１４０５のフロー条件が定められていてもよい。
【００３３】
カウンタ番号欄１４０６は、対応するフロー条件が特定するフローの流量をカウントするカウンタの番号（識別子）を格納する。図３の例では、フロー条件１とカウンタ番号１が対応し、フロー条件２とカウンタ番号２が対応する。
【００３４】
フロー条件は、フローを特定するための情報である。フロー条件は、例えば、パケットのヘッダ情報、入力回線番号、出力回線番号、及び当該情報に基づいて決定されるＶＬＡＮ識別情報等を含む複数の情報、の組み合わせで表現される。
【００３５】
また、パケットのヘッダ情報は、Ｅｔｈｅｒｎｅｔ（登録商標、以下同）フレームのヘッダ情報である宛先ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、送信元ＭＡＣアドレス、及びＶＬＡＮ  ＩＤ等の各フィールド、並びにＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｃｏｔｏｌ）パケットのヘッダ情報である宛先ＩＰアドレス、送信元ＩＰアドレス、上位プロトコル、ＴＣＰ（Ｔｒａｎｓｆｅｒ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）の宛先ポート番号、送信元ポート番号等を含む。
【００３６】
なお、入力フロー条件テーブル１００４は、図３に示す構成に限られない。例えば、フロー条件をＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）で構成し、カウンタ番号はＣＡＭのアドレスに一対一に対応するようにＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に格納する構成をとってもよい。
【００３７】
図４は、入力フローカウンタテーブル１００５の構成例である。なお、出力フローカウンタテーブル１０１１の構成は、入力フローカウンタテーブル１００５と同様であるため、ここでは入力フローカウンタテーブル１００５のみについて説明する。
【００３８】
入力フローカウンタテーブル１００５は、例えば、カウンタ番号欄１５０１と、パケット数カウント値欄１５０２と、バイト数カウント値欄１５０３と、を含む。カウンタ番号欄１５０１は、カウンタ番号を格納する。パケット数カウント値欄１５０２は、対応するカウンタ番号のカウンタがカウントしたパケット数を格納する。バイト数カウント値欄１５０３は、対応するカウンタ番号のカウンタがカウントしたバイト数を格納する。
【００３９】
なお、入力フローカウンタテーブル１００５は、パケット数カウント値欄１５０２及びバイト数カウント値欄１５０３の一方のみを含んでいてもよい。また、入力フローカウンタテーブル１００５は、フローの流量（フローに属するパケットのヘッダ情報等を含むデータ総量）を示す値であれば、パケット数及びバイト数以外の値を格納してもよい。
【００４０】
図５及び図６は、パケット転送処理の一例を示すフローチャートである。パケット転送処理は、例えば、パケット中継装置１０００がいずれかの入力ポート１０２０からパケットを受信したことをトリガとして開始する。
【００４１】
パケット蓄積部１００２はパケットをポートから受信したパケットをメモリに蓄積し、当該パケットからヘッダ情報、及びバイト数を抽出し、またパケット数を１と判断し、当該抽出した情報と当該パケット数とを、入力フローカウンタ処理部１００３へ送信する（ステップ３０１）。なお、ヘッダ情報以外の情報（例えば、入力回線番号、出力回線番号、及びＶＬＡＮ識別情報等）を含むフロー条件が設定されている場合には、パケット蓄積部１００２は、ヘッダ情報に加えて当該情報を入力フローカウンタ処理部１００３へ送信する。以下、フロー条件は、ヘッダ情報のみで構成されている例を説明する。
【００４２】
入力フローカウンタ処理部１００３は、パケット蓄積部１００２から受信したヘッダ情報を検索キーにして、入力フロー条件テーブル１００４を検索して検索キーに該当するフロー条件を特定し、特定したフロー条件に対応するカウンタ番号を特定する（ステップ３０２）。
【００４３】
また、ステップ３０２において、入力フローカウンタ処理部１００３は、特定したカウンタ番号を検索キーにして、入力フローカウンタテーブル１００５を検索し、一致するカウンタ番号に対応するパケット数カウント値欄１５０２及びバイト数カウント値欄１５０３の値を加算する。その後、ステップ３０２において、入力フローカウンタ処理部１００３は、ヘッダ情報を受信判定部１００６に送信する。
【００４４】
受信判定部１００６は、例えば、１以上の所定のヘッダ情報に基づいて、受信判定情報を決定する（ステップ３０３）。受信判定情報は、パケットを通過させるか廃棄するかを示す情報である。なお、例えば、受信判定部１００６内には、当該所定のヘッダ情報の値と、受信判定情報と、の対応情報が予め設定されており、受信判定部１００６は、当該対応情報に基づいて、受信判定情報を決定する。また、ステップ３０３において、受信判定部１００６は、受信判定情報と、入力フローカウンタ処理部１００３から受信したヘッダ情報と、を宛先判定部１００７へ送信する。
【００４５】
宛先判定部１００７は、例えば、１以上の所定のヘッダ情報に基づいて、出力情報を決定する（ステップ３０４）。なお、宛先判定部１００７内には、例えば、当該所定のヘッダ情報の値と、パケットの出力ポート及び出力用ＶＬＡＮ情報等の出力情報と、の対応を示す宛先情報が、予め設定されており、宛先判定部１００７は、当該対応情報に基づいて、宛先情報を決定する。また、ステップ３０４において、宛先判定部１００７は、受信判定情報と決定した出力情報とを送信判定部１００８へ送信する。
【００４６】
送信判定部１００８は、例えば、１以上の所定のヘッダ情報に基づいて、送信判定情報を決定する（ステップ３０５）。送信判定情報は、パケットを、通過させるか廃棄させるかを示す情報である。なお、送信判定部１００８内には、当該所定のヘッダ情報の値と、送信判定情報と、の対応情報が予め設定されており、送信判定部１００８は、当該対応情報に基づいて、送信判定情報を決定する。なお、送信判定部１００８は、受信判定情報が「廃棄」である場合には、自動的に送信判定情報も「廃棄」に決定してもよい、又は送信判定情報の決定処理自体を実行しなくてもよい。
【００４７】
送信判定部１００８は、受信判定情報及び送信判定情報を検証する（ステップ３０６）。送信判定部１００８は、受信判定情報及び送信判定情報の双方が通過を示すと判定した場合、ステップ３０７に移行する。また、送信判定部１００８は、受信判定情報及び送信判定情報の少なくとも一方が廃棄を示すと判定した場合、ステップ３１０に移行する。
【００４８】
送信判定部１００８は、ステップ３０６において受信判定情報及び送信判定情報の双方が通過を示すと判定した場合、パケット処理情報を「通過」と決定して、パケット処理情報と出力情報とを、パケット蓄積部１００２及び出力フローカウンタ処理部１００９へ送信する（ステップ３０７）。
【００４９】
続いて、パケット蓄積部１００２は、パケット処理情報が「通過」であると判定した場合、出力情報に基づいて、当該パケットを対応する出力ポート１０３０へ出力する（ステップ３０８）。また、ステップ３０８において、パケット蓄積部１００２は、出力情報に基づいて、当該パケットに対応する出力ＶＬＡＮに対応するＶＬＡＮ  ＩＤを当該パケットに付与する。
【００５０】
続いて、出力フローカウンタ処理部１００９は、パケット処理情報が「通過」であると判定した場合、当該パケットのヘッダ情報を検索キーにして、出力フロー条件テーブル１０１０を検索して検索キーに該当するフロー条件を特定し、特定したフロー条件に対応するカウンタ番号を特定する（ステップ３０９）。また、ステップ３０９において、出力フローカウンタ処理部１００９は、特定したカウンタ番号を検索キーにして、出力フローカウンタテーブル１０１１を検索し、一致するカウンタ番号に対応するカウンタに対してパケット数カウント値欄１５０２及びバイト数カウント値欄１５０３の値を加算する。
【００５１】
送信判定部１００８は、ステップ３０６において受信判定情報及び送信判定情報の少なくとも一方が廃棄を示すと判定した場合、パケット処理情報を「廃棄」と決定して、パケット処理情報をパケット蓄積部１００２及び出力フローカウンタ処理部１００９へ送信する（ステップ３１０）。なお、この場合、送信判定部１００８は、パケット処理情報を出力フローカウンタ処理部１００９に送信しなくてもよい。
【００５２】
続いて、パケット蓄積部１００２は、パケット処理情報が「廃棄」の場合、当該パケットを廃棄する（ステップ３１１）。また、出力フローカウンタ処理部１００９は、パケット処理情報が「廃棄」の場合、処理を行わない（ステップ３１２）。
【００５３】
なお、送信判定部１００８は、ステップ３０６において、受信判定情報及び送信判定情報の少なくとも一方が通過を示すと判定した場合にステップ３０７に移行し、双方が廃棄を示すと判定した場合にステップ３１０に移行してもよい。
【００５４】
図７は、入力フローカウンタと出力フローカウンタの比較処理の一例を示すフローチャートである。比較処理は、一定時間ごとに（例えば、前回の比較処理終了から所定時間経過後）にカウンタ比較部１０１２によって開始する。カウンタ比較部１０１２は、入力フロー条件テーブル１００４の最初のフロー条件（図３の例ではフロー条件１）を対象フロー条件に決定する（ステップ３１３）。
【００５５】
カウンタ比較部１０１２は、対象フロー条件に対応する入力カウンタ及び出力カウンタの値を読み出す（ステップ３１４）。具体的には、カウンタ比較部１０１２は、入力フロー条件テーブル１００４において対象フロー条件に対応するカウンタ番号を特定し、入力フローカウンタテーブル１００５において当該カウンタ番号に対応するパケット数カウント値又はバイト数カウント値を入力カウンタの値として読み出す。
【００５６】
同様に、カウンタ比較部１０１２は、出力フロー条件テーブル１０１０において対象フロー条件に対応するカウンタ番号を特定し、出力フローカウンタテーブル１０１１において当該カウンタ番号に対応するパケット数カウント値又はバイト数カウント値（入力カウンタの値と同種の値）を出力カウンタの値として読み出す。
【００５７】
続いて、カウンタ比較部１０１２は、読み出した入力カウンタ及び出力カウンタの値を比較する（ステップ３１５）。具体的には、例えば、カウンタ比較部１０１２は、読み出した入力カウンタと出力カウンタの値の差を計算する。
【００５８】
続いて、カウンタ比較部１０１２は、対象フロー条件が、入力フロー条件テーブル１００４の最後のフロー条件であるか否かを判定する（ステップ３１６）。カウンタ比較部１０１２は、ステップ３１６において、対象フロー条件が最後のフロー条件でないと判定した場合、入力フロー条件テーブル１００４における次のフロー条件を対象フロー条件に決定し（ステップ３１７）、ステップ３１４に戻る。
【００５９】
カウンタ比較部１０１２は、ステップ３１６において、対象フロー条件が最後のフロー条件であると判定した場合、ステップ３１８に移行する。カウンタ比較部１０１２は、ステップ３１５における比較結果のうち、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果があるか否かを判定する（ステップ３１８）。カウンタ比較部１０１２は、ステップ３１８において、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果がないと判定した場合、ステップ３１３に戻る。
【００６０】
カウンタ比較部１０１２は、ステップ３１８において、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果があると判定した場合、障害が発生したと判断し、障害が発生したこと、及びカウンタの値の差が当該所定の閾値を超えた比較結果におけるフロー条件を、装置制御部１００１に通知する（ステップ３１９）。また、ステップ３１９において、通知を受けた装置制御部１００１は、通知されたフロー条件と異常が発生したことを、ログメッセージとして管理端末３の表示装置等に表示する。また、ステップ３１９において、装置制御部１００１は、パケット中継装置１０００を再起動する。
【００６１】
なお、カウンタ比較部１０１２は、ステップ３１５において、比較結果におけるにおけるカウンタ値の差が所定の閾値を超えるか否かを判定してもよい。この場合、カウンタ比較部１０１２は、当該差が当該所定の閾値を超えていると判定した場合、入力フロー条件テーブル１００４の残りのフロー条件についてのカウンタ値の比較を行うことなく、ステップ３１９に移行してもよい。また、上述した例において、異常が発生しない限り比較処理が終了しないが、例えば、管理端末３を介した管理者からの指示等に従って、比較処理が終了してもよい。
【００６２】
上述のように、パケット中継装置１０００は、入力カウンタの値と出力カウンタの値とを比較することにより、パケット中継装置１０００内の故障等を原因とする通信ができなくなったフローを特定することができる。
【００６３】
なお、パケット中継装置１０００は、以下の方法によって、パケットの出力先が誤るような故障が発生による障害を検出してもよい。まず、出力フロー条件テーブル１０１０は、各フロー条件に対応する出力先情報をさらに保持している。
【００６４】
パケット処理時のステップ３０９において、出力フローカウンタ処理部１００９は、出力フロー条件テーブル１０１０から特定したフロー条件に対応する出力先情報と、送信判定部１００８から通知された出力情報と、が一致すると判定した場合にのみ出力フローカウンタテーブル１０１１の当該フロー条件に対応するカウンタ値を更新する。
【００６５】
このような処理が行われることによって、出力先が誤る故障が発生した場合、出力フローカウンタテーブル１０１１のカウンタ値は更新されないため、入力フローカウンタテーブル１００５のカウンタ値との比較処理における差分が大きくなり、パケット中継装置１０００は異常を検出することができる。
【００６６】
なお、ネットワークの構成変化により出力先が変更する場合は、パケット中継装置１０００が誤って異常と判定しないように、新たな出力先情報が出力フロー条件テーブル１０１０に登録されるまで、パケット中継装置１０００は、比較処理を実行しないことが望ましい。
【００６７】
なお、入力フロー条件テーブル１００４等に設定されるフロー条件は、パケット中継装置１０００の管理者等によって予め設定されている。また、パケット中継装置１０００がパケットの受信時にこれらのテーブルにフロー条件を設定してもよい。
【００６８】
具体的には、例えば、入力フローカウンタ処理部１００３は、ステップ３０２において、入力フロー条件テーブル１００４を検索した結果、当該パケットが属するフロー条件が存在しない場合、新規のフローに属するパケットを受信したと判断し、当該フローに対応するフロー条件を生成する。さらに、入力フローカウンタ処理部１００３は、入力フロー条件テーブル１００４に当該フロー条件及び当該フローのパケットをカウントするカウンタ番号を設定し、入力フローカウンタテーブル１００５に当該カウンタ番号を設定する。入力フローカウンタ処理部１００３は、フロー条件の生成において、例えば、パケット中継装置１０００の管理者等によって予め設定されたヘッダ情報、装置のポート情報、及びＶＬＡＮ識別情報等から新たにフロー条件を生成する。
【００６９】
なお、出力フロー条件テーブル１０１０への新たなフロー条件及びカウンタ番号の設定処理、並びに出力フローカウンタテーブル１０１１への当該カウンタ番号の設定処理は、例えば、ステップ３０９において、出力フローカウンタ処理部１００９によって、同様の方法によって行われる。
【００７０】
フロー条件は、パケット中継装置１０００の管理者の監視ポリシーにより異なる。例えば、ＶＬＡＮとユーザ端末４が一対一に対応する構成の場合、ユーザ端末４ごとの通信を監視するためには、フロー条件はＶＬＡＮ識別情報を含めばよい。また、例えば、ユーザ端末４が通信するプロトコルごとの通信を監視するためには、フロー条件は、ユーザ端末４のＩＰアドレスとプロトコル情報との組み合わせを含めばよい。
【００７１】
また、パケット中継装置１０００がＩＰ、ＭＰＬＳ、及びＥｔｈｅｒｎｅｔ、など複数のプロトコルを対応可能な構成をとり、かつ当該プロトコルごとに監視するフロー条件の組み合わせが異なる場合、入力フロー条件テーブル１００４及び出力フロー条件テーブル１０１０において、プロトコルごとに異なるフロー条件が設定されていればよい。入力フローカウンタ処理部１００３及び出力フローカウンタ処理部１００９が回路構成を再構成可能なＦＰＧＡを含んで実現されている場合、プロトコルごとに異なるフロー条件を用いてフロー条件テーブルを検索する構成をとることが望ましい。プロトコルごとにフロー条件に用いるヘッダ情報のヘッダの長さが異なることが想定されるため、当該構成により、各プロコトルに対して最小限のハードウェアリソースを用いてフローカウンタ処理を行うことができる。
【００７２】
なお、上述した例で、一定時間ごとに比較処理が行われるが、パケット中継装置１０００は、例えば、パケットを受信するたびに、比較処理が実施されてもよい。具体的には、パケット転送処理時に、例えば、入力フローカウンタの値がヘッダ情報等と同時に、入力フローカウンタ処理部１００３から、受信判定部１００６、宛先判定部１００７、送信判定部１００８へと順次通知され、出力フローカウンタ処理部１００９が入力カウンタの値と出力カウンタの値とを比較してもよい。この場合、入力フローカウンタの積算と出力フローカウンタの積算の間に別のパケット処理が行われないため、カウンタ値の差がなくなり、通信の異常検知の精度が向上する利点がある。
【００７３】
なお、例えば、比較処理において、入力カウンタの値及び出力カウンタの値を、それぞれ、入力フローカウンタテーブル１００５及び出力フローカウンタテーブル１０１１から読み出す時刻が異なり、その時刻の間にパケット処理を行う場合、当該フローの通信に異常がなくても、カウンタ値に差分が生じる。従って、ステップ３１８における所定の閾値は、このカウンタ値の差分を通信の異常と誤判断しない程度の大きさが確保されている必要がある。
【００７４】
また、正常に通信が行われている場合でも、入力フローと出力フローのカウンタ値、一対一の対応ではなく、１対ｎ（ｎは自然数）の対応である場合も考えられる。具体的には、パケット蓄積部１００２がパケットを複数（ｎ個）の出力先へコピーするマルチキャスト通信をする例がある。この例において、通信が正常に行われている時は、マルチキャストの入力フローカウンタのカウンタ値がａであるとすると、コピー後の出力フローカウンタの値がａのｎ倍になる。
【００７５】
マルチキャスト通信が行われる場合、前述したカウンタ値の読み出し時刻の差によるカウンタ値の差分もｎ倍になるため、装置制御部１００１は、例えば、マルチキャストコピー数に応じてステップ３１８における閾値を動的に決定する。つまり、マルチキャストコピー数が変更になった場合、装置制御部１００１は、変更後のマルチキャストコピー数に応じて当該閾値を更新する。なお、閾値を変更せずに、カウンタ比較部１０１２が、ステップ３１５において、マルチキャストコピー数に応じて、入力カウンタの値を大きくした状態（例えばｎ倍）又は出力カウンタ値を小さくした状態（例えば１／ｎ倍）で比較してもよい。
【００７６】
なお、ステップ３１７では、パケット中継装置１０００が再起動される例を説明したが、パケット中継装置１０００を再起動するか否かを管理者が予め設定する構成でもよい。例えば、「パケット中継装置を再起動しない」と設定された場合ステップ３１７ではパケット中継装置１０００を再起動しない。
【実施例２】
【００７７】
図８は、本実施例におけるパケット中継システムの構成例を示すブロック図である。実施例１との相違点を説明する。パケット中継装置１０００は、さらに、サーバ２から識別子がＡのユーザ端末４へのパケット通信（フロー１３００）と、サーバ２から識別子がＢのユーザ端末４へのパケット通信（フロー１４００）の処理及び監視を実行する。
【００７８】
パケット中継装置１０００は、出力カウンタ１３０１及び出力カウンタ１４０１を有する。パケット中継装置１０００は、フロー１３００としてパケット中継装置１０００から識別子がＡであるユーザ端末４に出力されるパケット数の積算値又はバイト数の積算値を、出力カウンタ１３０１を用いてカウントし、保持する。また、パケット中継装置１０００は、フロー１４００としてパケット中継装置１０００から識別子がＢであるユーザ端末４に出力されるパケット数の積算値又はバイト数の積算値を、出力カウンタ１４０２を用いてカウントし、保持する。
【００７９】
パケット中継装置１０００は、入力カウンタ１１０１と出力カウンタ１３０１とを比較して、フロー１１００及びフロー１３００の通信が正常か否かを判定する。また、パケット中継装置１０００は、入力カウンタ１２０１と出力カウンタ１４０１とを比較して、フロー１２００及びフロー１４００の通信が正常か否かを判定する。また、本実施例において、カウンタ比較部１０１２は、後述する比較フロー管理テーブル１５００を有する。
【００８０】
ユーザ端末４とサーバ２の通信は一般的に双方向で行われる。例えば、ユーザ端末４がサーバ２からデータを読み出す場合、ユーザ端末４からサーバ２に送信されるパケットは、読み出し対象データの種別を指示するためのパケットであるため、当該パケットのヘッダ情報を含むデータ総量は、サーバ２からユーザ端末４に送信されるパケット（即ち読み出されるデータ本体を含むパケット）のヘッダ情報を含むデータ総量より少ない。このため、ユーザ端末４からサーバ２へのパケット数と、サーバ２からユーザ端末４へのパケット数には１対ｎ（ｎは１以上の実数）の関係がある。
【００８１】
パケット中継装置１０００は、例えば、識別子がＡのユーザ端末４からサーバ２のフローの流量と、サーバ２から識別子がＡのユーザ端末４へのフローの流量との関係を定期的に監視して、ｎの値を学習することで決定する。
【００８２】
具体的には、例えば、装置制御部１００１は、所定期間ごとに、当該所定期間におけるサーバ２から識別子がＡのユーザ端末４へのフローの流量Ｘと、当該所定期間における識別子がＡのユーザ端末４からサーバ２のフローの流量Ｙと、をそれぞれ、入力フローカウンタ処理部１００３、及び出力フローカウンタ処理部１００９から取得する。装置制御部１００１は、ＸをＹで除した値（若しくは当該値に所定のマージンを加えた又は引いた値）、を識別子がＡのユーザ端末４とサーバ２との間の通信におけるｎに決定し、カウンタ比較部１０１２に通知する。なお、ユーザ端末４からサーバ２へのデータ要求がない時間帯もあること、及びユーザ端末４からサーバ２へのデータ要求とサーバ２からユーザ端末４へのデータ要求との間に時差があること等、が考えられるため、当該所定の期間はある程度長い（例えば、秒単位ではなく時間単位のオーダ（例えば１時間程度））ことが望ましい。また、装置制御部１００１は、時間帯によってｎの値が大きく異なる（例えば、最大のｎから最小のｎを引いた差が所定値以上、又は最大のｎを最小のｎで割った商が所定値以上等）と判定した場合は、時間帯ごとにｎの値を決定してもよい。この場合、比較処理において、時間帯ごとに決定されたｎによって判定が行われてもよい。
【００８３】
また、当該所定期間においても、フローのカウンタ値が入力フローカウンタテーブル１００５及び出力フローカウンタテーブル１０１１に記録されているが、ｎの値を決定するための当該所定期間と、フロー１２００及びフロー１４００の通信が正常か否かを判定する期間と、は異なる（好ましくは重複しない）ことが望ましい。仮にこれらの期間が同一であると、フロー１２００及びフロー１４００の通信が異常と判定されなくなるためである。
【００８４】
カウンタ比較部１０１２は、ステップ３１５において、入力カウンタの値を大きくした状態（例えばｎ倍）又は出力カウンタ値を小さくした状態（例えば１／ｎ倍）で比較を行う。
【００８５】
図９は、比較フロー管理テーブル１５００の構成例である。比較フロー管理テーブル１５００は、例えば、フロー条件欄１５０５と比較用フロー条件欄１５０６とを含む。フロー条件欄１５０５は、フロー条件が格納する。比較用フロー条件欄１５０６は、フロー条件に対応する比較用フロー条件を格納する。
【００８６】
本実施例では、カウンタ比較部１０１２は、ステップ３１４において、比較フロー管理テーブル１５００のフロー条件欄１５０５から対象フロー条件一致するフロー条件を特定し、比較用フロー条件欄１５０６から特定したフロー条件に対応する比較用フロー条件を抽出する。図８の例では、比較フロー管理テーブル１５００において、フロー１１００を示すフロー条件にフロー１３００を示すフロー条件が比較用フロー条件として対応し、フロー１２００を示すフロー条件にフロー１４００を示すフロー条件が比較用フロー条件として対応している。
【００８７】
カウンタ比較部１０１２は、ステップ３１４において、入力フロー条件テーブル１００４からは、対象フロー条件に対応するカウンタ番号を取得し、出力フロー条件テーブル１０１０からは、抽出した比較用フロー条件に対応するカウンタ番号を取得し、カウンタ値を読み出す。カウンタ比較部１０１２は、ステップ３１５において、これらのカウンタ番号に対応するカウンタ値の比較を行う。
【００８８】
なお、比較フロー管理テーブル１５００内の値は、例えば、パケット中継装置１０００の管理者等によって予め設定されている。また、パケット中継装置１０００自身が、比較フロー管理テーブル１５００内の値を決定してもよい。
【００８９】
具体的には、例えば、識別子がＡのユーザ端末４からサーバ２への通信が開始した際のパケットをパケット中継装置１０００が受信した際に、パケット中継装置１０００の管理者が予め設定したヘッダ情報やパケット中継装置１０００のポート情報、及びＶＬＡＮ識別情報等を基にして、フロー１１００のフロー条件とフロー１３００のフロー条件を学習して、比較フロー管理テーブル１５００に格納する値を決定する。
【００９０】
装置制御部１００１は、入力フローカウンタ処理部１００３から、入力されたパケットのヘッダ情報、ポート情報、及びＶＬＡＮ識別情報等を受信する。例えば、第１のフローのパケットの宛先ＩＰアドレスと第２のフローの送信元ＩＰアドレスが一致し、かつ第１のフローのパケットの送信元ＩＰアドレスと第２のフローの宛先ＩＰアドレスと、が一致する場合に、第２のフローを示すフロー条件が、第１のフローを示すフロー条件の比較用フロー条件に決定されることが、予め定められているものとする。
【００９１】
この場合、図８の例において、装置制御部１００１は、フロー１１００及びフロー１３００のヘッダ情報から、フロー１１００のパケットの宛先ＩＰアドレスがフロー１３００のパケットの送信元ＩＰアドレスと一致し、フロー１１００のパケットの送信元ＩＰアドレスがフロー１３００のパケットの宛先ＩＰアドレスと一致すると判断することができる。これにより、装置制御部１００１は、フロー１１００を示すフロー条件に対応する比較用フロー条件を、フロー１３００を示すフロー条件に決定することができる。
【００９２】
本実施例のパケット中継装置１０００は、前述した構成により、上り通信のフローに対応する下り通信のフローが存在する場合に、これらの通信の異常を検出することができる。また、本実施例のパケット中継装置１０００は、中継対象の２つの装置の一方（図８の例ではユーザ端末４）との間のカウンタを用いて、通信の異常を発見することができる。
【実施例３】
【００９３】
実施例１との相違点を説明する。図１０は、本実施例におけるパケット中継システムの構成例を示すブロック図である。実施例１との相違点を説明する。本実施例のパケット中継システムは、複数のパケット中継装置１０００を含む。図１０の例では、パケット中継システムは、３つのパケット中継装置１０００−１〜１０００−３を含む。パケット中継装置１０００−１〜１０００−３を特に区別する必要がない場合は、単にパケット中継装置１０００と呼ぶ。
【００９４】
各パケット中継装置１０００は、管理ネットワーク７に接続されている。また、パケット中継システムは、管理ネットワーク７を介してパケット中継装置１０００−１〜１０００−３を管理及び監視する計算機であるネットワーク管理端末６を含む。ネットワーク管理端末６は、例えば、ＣＰＵ（プロセッサ）、メモリ、補助記憶装置、マウス及びキーボード等の入力装置、ディスプレイ等の出力装置、並びに通信インタフェースを含む計算機である。ネットワーク管理端末６は、後述するフロー管理情報テーブル１６００を保持する。
【００９５】
ユーザ端末４はそれぞれパケット中継装置１０００−１に、サーバ２はパケット中継装置１０００−３に、例えば、有線接続されている。パケット中継装置１０００−１とパケット中継装置１０００−２が、またパケット中継装置１０００−２とパケット中継装置１０００−３が、例えば有線接続されている。
【００９６】
パケット中継装置１０００−１は、入力カウンタ１１０１、入力カウンタ１２０１、出力カウンタ１１０２、及び出力カウンタ１２０２を有する。パケット中継装置１０００−２は、入力カウンタ１１０３、入力カウンタ１２０３、出力カウンタ１１０４、及び出力カウンタ１２０４を有する。パケット中継装置１０００−３は、入力カウンタ１１０５、入力カウンタ１２０５、出力カウンタ１１０６、及び出力カウンタ１２０６を有する。
【００９７】
識別子がＡのユーザ端末４からサーバ２へのフロー１１００は、パケット中継装置１０００−１、パケット中継装置１０００−２、パケット中継装置１０００−３の順で通過する。その際、パケット中継装置１０００−１の入力カウンタ１１０１及び出力カウンタ１１０２、パケット中継装置１０００−２の入力カウンタ１１０３及び出力カウンタ１１０４、並びにパケット中継装置１０００−３の入力カウンタ１１０５及び出力カウンタ１１０６、がそれぞれ更新される。
【００９８】
また、識別子がＢのユーザ端末４からサーバ２へのフロー１２００も同様に、パケット中継装置１０００−１、パケット中継装置１０００−２、パケット中継装置１０００−３の順で通過する。その際、パケット中継装置１０００−１の入力カウンタ１２０１及び出力カウンタ１２０２、パケット中継装置１０００−２の入力カウンタ１２０３及び出力カウンタ１２０４、並びにパケット中継装置１０００−３の入力カウンタ１２０５及び出力カウンタ１２０６、がそれぞれ更新される。
【００９９】
図１１は、フロー管理情報テーブル１６００の構成例である。フロー管理情報テーブル１６００は、フロー監視を制御するためのテーブルである。フロー管理情報テーブル１６００は、例えば、フロー条件欄１６０１、入力監視対象装置欄１６０２、出力監視対象装置欄１６０３、及びフロー通過装置欄１６０４を含む。フロー条件欄１６０１は、入力フロー条件テーブル１００４及び出力フロー条件テーブル１０１０に格納されているフロー条件を格納する。
【０１００】
入力監視対象装置欄１６０２は、複数のパケット中継装置１０００−１〜１０００−３のうち、対応するフロー条件が示すフローが最初に入力されるパケット中継装置１０００の識別子を格納する。出力監視対象装置欄１６０３は、複数のパケット中継装置１０００−１〜１０００−３のうち、対応するフロー条件が示すフローを最後に出力するパケット中継装置１０００の識別子を格納する。
【０１０１】
例えば、図１０の例におけるフロー１１００及びフロー１２００それぞれのフロー条件に対応する入力監視対象装置欄１６０２にはパケット中継装置１０００−１の識別子が格納されている。また、フロー１１００及びフロー１２００それぞれのフロー条件に対応する出力監視対象装置欄１６０３にはパケット中継装置１０００−３の識別子が格納されている。
【０１０２】
フロー通過装置欄１６０４は、対応するフロー条件が示すフローが通過するパケット中継装置１０００の識別子を、例えば、当該フローが通過する順、又は管理者等によって定められたポリシーが定める検査順序（例えば装置に優先順位が定められている。当該優先順位はフローによって異なってもよい）で格納する。例えば、図１０の例におけるフロー１１００及びフロー１２００それぞれのフロー条件に対応するフロー通過装置欄１６０４にはパケット中継装置１０００−１、パケット中継装置１０００−２、パケット中継装置１０００−３の順で格納されている。
【０１０３】
図１２は、本実施例におけるネットワーク単位での比較処理の一例を示すフローチャートである。図１３は、障害発生装置切り分け処理の一例を示すフローチャートである。
【０１０４】
比較処理の開始トリガは実施例１と同様であるが、開始トリガの判断主体はネットワーク管理端末６である。ネットワーク管理端末６は、フロー管理情報テーブル１６００の最初のフロー条件（図１１の例ではフロー条件１）を対象フロー条件に決定する（ステップ３２１）。ネットワーク管理端末６は、フロー管理情報テーブル１６００から、対象フロー条件に対応する入力監視対象装置、出力監視対象装置、及びフロー通過装置を読み出す（ステップ３２２）。
【０１０５】
ネットワーク管理端末６は、管理ネットワーク７を介して、入力監視対象装置から入力カウンタの値を読み出し、出力監視対象装置から出力カウンタの値を読み出し、これらの値を比較する（ステップ３２３）。具体的には、ステップ３２３において、ネットワーク管理端末６は、入力監視対象装置であるパケット中継装置１０００の入力フロー条件テーブル１００４において対象フロー条件に対応するカウンタ番号を特定し、入力フローカウンタテーブル１００５において当該カウンタ番号に対応するパケット数カウント値又はバイト数カウント値を入力カウンタの値として読み出す。
【０１０６】
また、ステップ３２３において、ネットワーク管理端末６は、入力監視対象装置であるパケット中継装置１０００の出力フロー条件テーブル１０１０において対象フロー条件に対応するカウンタ番号を特定し、出力フローカウンタテーブル１０１１において当該カウンタ番号に対応するパケット数カウント値又はバイト数カウント値（入力カウンタの値と同種の値）を出力カウンタの値として読み出す。
【０１０７】
また、ステップ３２３において、ネットワーク管理端末６は、読み出した入力カウンタ及び出力カウンタの値の比較として、例えば、読み出した入力カウンタと出力カウンタの値の差を計算する。
【０１０８】
続いて、ネットワーク管理端末６は、対象フロー条件が、フロー管理情報テーブル１６００の最後のフロー条件であるか否かを判定する（ステップ３２４）。ネットワーク管理端末６は、ステップ３２４において、対象フロー条件が最後のフロー条件でないと判定した場合、フロー管理情報テーブル１６００における次のフロー条件を対象フロー条件に決定し（ステップ３２５）、ステップ３２２に戻る。
【０１０９】
ネットワーク管理端末６は、ステップ３２４において、対象フロー条件が最後のフロー条件であると判定した場合、ステップ３２６に移行する。ネットワーク管理端末６は、ステップ３２３における比較結果のうち、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果があるか否かを判定する（ステップ３２６）。ネットワーク管理端末６は、ステップ３２６において、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果がないと判定した場合、ステップ３２１に戻る。
【０１１０】
ネットワーク管理端末６は、ステップ３２６において、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果があると判定した場合、当該比較結果におけるフロー条件を検査対象フロー条件に決定し、障害切り分け処理へと移行する。
【０１１１】
続いて、障害切り分け処理について説明する。ネットワーク管理端末６は、検査対象フロー条件を１つ選択する（ステップ３２７）。フロー管理情報テーブル１６００において選択中の検査対象フロー条件に対応するフロー通過装置のうち、先頭のパケット中継装置１０００を検査対象装置に決定する（ステップ３２８）。
【０１１２】
ネットワーク管理端末６は、管理ネットワーク７を介して、検査対象装置から入力カウンタ及び出力カウンタの値を読み出し、これらの値を比較する（ステップ３２９）。
【０１１３】
具体的には、ステップ３２９において、ネットワーク管理端末６は、管理ネットワーク７を介して、検査対象装置の入力フロー条件テーブル１００４において、選択中の検査対象フロー条件に対応するカウンタ番号を特定し、入力フローカウンタテーブル１００５において当該カウンタ番号に対応するパケット数カウント値又はバイト数カウント値を入力カウンタの値として読み出す。
【０１１４】
さらに、ステップ３２９において、ネットワーク管理端末６は、管理ネットワーク７を介して、検査対象装置の出力フロー条件テーブル１０１０において、選択中の検査対象フロー条件に対応するカウンタ番号を特定し、出力フローカウンタテーブル１０１１において当該カウンタ番号に対応するパケット数カウント値又はバイト数カウント値を出力カウンタの値として読み出す。
【０１１５】
また、ステップ３２８において、ネットワーク管理端末６は、読み出した入力カウンタ及び出力カウンタの値の比較として、例えば、読み出した入力カウンタと出力カウンタの値の差を計算する。
【０１１６】
続いて、ネットワーク管理端末６は、検査対象装置が、フロー管理情報テーブル１６００において、選択中の検査対象フロー条件に対応するフロー通過装置のうち、最後のパケット中継装置１０００であるか否かを判定する（ステップ３３０）。ネットワーク管理端末６は、ステップ３３０において、検査対象装置が最後のパケット中継装置１０００でないと判定した場合、フロー管理情報テーブル１６００において選択中の検査対象フロー条件に対応するフロー通過装置のうち、次のパケット中継装置１０００を検査対象装置に決定し（ステップ３３１）、ステップ３２９に戻る。
【０１１７】
ネットワーク管理端末６は、ステップ３３０において、検査対象装置が最後のパケット中継装置１０００であると判定した場合、未選択の検査対象フロー条件があるか否かを判定する（ステップ３３２）。ネットワーク管理端末６は、ステップ３３２において、未選択の検査対象フロー条件があると判定した場合、未選択の検査対象フロー条件を１つ選択し、ステップ３２８に戻る。
【０１１８】
ネットワーク管理端末６は、ステップ３３２において、未選択の検査対象フロー条件がないと判定した場合、ステップ３２９における比較結果のうち、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果があるか否かを判定する（ステップ３３４）。
【０１１９】
ネットワーク管理端末６は、ステップ３３４において、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果がないと判定した場合、例えば、障害が発生していないことを示すメッセージをネットワーク管理端末６の表示装置等に出力し（ステップ３３６）、障害発生装置切り分け処理を終了する。なお、ネットワーク管理端末６は、当該場合において、ステップ３３６を実行しなくてもよい。また、当該場合において、又はステップ３３６の実行後に、ステップ３２１に戻ってもよい。
【０１２０】
また、ネットワーク管理端末６は、当該場合において、検査対象フロー条件、及び検査対象フロー条件に対応する検査対象装置等を、ネットワーク管理端末６の表示装置等に出力してもよい。これにより、個々の検査対象において大きな異常がなくても、検査対象装置全体としては異常が発生したことを、管理者に報知することができる。
【０１２１】
ネットワーク管理端末６は、ステップ３３４において、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果があると判定した場合、例えば、障害発生装置（即ち、当該比較結果における検査対象装置）を示すメッセージをネットワーク管理端末６の表示装置等に出力し（ステップ３３７）、障害発生装置切り分け処理を終了する。なお、ネットワーク管理端末６は、障害発生装置のみならず、当該比較結果に対応する検査対象フロー条件、及び障害発生装置以外の当該検査対象フローに対応する検査対象装置も、当該メッセージに含めてもよい。当該メッセージが出力された場合、ネットワーク管理者は障害発生装置を切り分ける。
【０１２２】
なお、ネットワーク管理端末６は、ステップ３２９において、比較結果におけるにおけるカウンタ値の差が所定の閾値を超えるか否かを判定してもよい。この場合、ネットワーク管理端末６は、当該差が当該所定の閾値を超えていると判定した場合、残りの検査対象装置についてのカウンタ値の比較を行うことなく、ステップ３３５に移行してもよい。また、上述した例において、異常が発生しない限り比較処理が終了しないが、例えば、ネットワーク管理端末６は、管理者からの指示等に従って、比較処理を終了してもよい。
【０１２３】
なお、フロー管理情報テーブル１６００内の値は、例えば、ネットワーク管理端末６の管理者等によって、監視ネットワークの構成情報を基にして予め設定されている。また、ネットワーク管理端末６自身が、フロー管理情報テーブル１６００を生成してもよい。
【０１２４】
具体的には、例えば、各パケット中継装置１０００がフロー条件を学習した際に、管理ネットワーク７を経由して、フロー条件をネットワーク管理端末６へ通知する。これにより、ネットワーク管理端末６は、フロー条件、並びにフロー条件に対応する入力監視対象装置、出力監視対象装置、フロー通過装置を学習することができる。また、これにより、ネットワーク管理端末６は、ネットワーク構成が変更された場合であっても自動的にフロー管理情報テーブル１６００を更新することができる。
【０１２５】
ネットワーク管理端末６自身が、学習によってフロー管理情報テーブル１６００を生成することにより、ネットワーク管理端末６の管理者がフロー管理情報テーブル１６００を生成する必要がなくなる利点がある。
【０１２６】
本実施例のパケット中継システムは、前述した構成及び処理により、通信に異常が発生したフロー、及び当該異常の原因であるパケット中継装置１０００を特定することができる。
【０１２７】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１２８】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１２９】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１３０】
１０００  パケット中継装置、２  サーバ、４  ユーザ端末、６  ネットワーク管理端末、１００３  入力フローカウンタ処理部、１００４  入力フロー条件テーブル、１００５  入力フローカウンタテーブル、１０１０  出力フロー条件テーブル、１０１１  出力フローカウンタテーブル、１０１２  カウンタ比較部、１５００  比較フロー管理テーブル、１６００  フロー管理情報テーブル
【図１】
2019153981.tif 000003
【図２】
2019153981.tif 000004
【図３】
2019153981.tif 000005
【図４】
2019153981.tif 000006
【図５】
2019153981.tif 000007
【図６】
2019153981.tif 000008
【図７】
2019153981.tif 000009
【図８】
2019153981.tif 000010
【図９】
2019153981.tif 000011
【図１０】
2019153981.tif 000012
【図１１】
2019153981.tif 000013
【図１２】
2019153981.tif 000014
【図１３】
2019153981.tif 000015