(57)【特許請求の範囲】
【請求項１】
複数の端末装置間でデータフレームを中継する複数のハブ装置を含むネットワークにおいて使用される通信管理装置であって、
複数のポートと、
受信フレームから異常フレームを検知する検知部と、
前記検知部により異常フレームが検知されたときに、前記異常フレームが到着した第１の到着ポート、および前記複数のポートのいずれかに到着した受信フレームのなかで前記異常フレームが到着した順序を特定する特定部と、
前記特定部により特定された順序を表す順序情報を前記第１の到着ポートに接続するハブ装置へ送信する送信部と、
を有する通信管理装置。
【請求項２】
前記送信部は、前記順序情報および前記異常フレームの送信元の探索を指示する探索指示を含む探索フレームを、前記第１の到着ポートに接続するハブ装置へ送信する
ことを特徴とする請求項１に記載の通信管理装置。
【請求項３】
前記探索指示は、前記探索フレームに格納されている順序情報に基づいて前記探索フレームを受信したハブ装置が備える複数のポートの中から前記異常フレームが到着した第２の到着ポートを特定する処理、前記第２の到着ポートを表すポート情報を前記探索フレームに追加する処理、および前記ポート情報が追加された探索フレームを前記通信管理装置および前記第２の到着ポートに接続するハブ装置または端末装置へ送信する処理の実行を、前記探索フレームを受信したハブ装置に要求する
ことを特徴とする請求項２に記載の通信管理装置。
【請求項４】
前記通信管理装置は、前記ネットワークのトポロジを認識しており、
前記ポート情報が追加された探索フレームを前記通信管理装置が受信したときに、前記ネットワークのトポロジおよび前記ポート情報に基づいて前記異常フレームが到着したポートに接続する装置を特定することで、前記異常フレームの送信元を特定する送信元特定部、をさらに備える
ことを特徴とする請求項３に記載の通信管理装置。
【請求項５】
前記順序情報は、最新の受信フレームに対して前記異常フレームが到着した順序を表す
ことを特徴とする請求項１に記載の通信管理装置。
【請求項６】
前記順序情報は、予め指定された受信フレームに対して前記異常フレームが到着した順序を表す
ことを特徴とする請求項１に記載の通信管理装置。
【請求項７】
複数のノードを含むネットワークにおいて使用される、複数のポートを備える通信管理装置のプロセッサにより実行される通信管理プログラムであって、
受信フレームから異常フレームを検知し、
前記異常フレームが到着したポート、および前記複数のポートのいずれかに到着した受信フレームのなかで前記異常フレームが到着した順序を特定し、
特定された順序を表す順序情報を特定されたポートに接続するノードへ送信する、
処理を前記プロセッサに実行させる通信管理プログラム。
【請求項８】
複数の端末装置、前記複数の端末装置間でデータフレームを中継する複数のハブ装置、および前記複数の端末装置の通信を管理する通信管理装置を含むネットワークにおいて使用される通信管理方法であって、
前記通信管理装置および前記複数のハブ装置は、それぞれ、データフレームが到着したポートを表すポート番号をデータフレームの到着順に記録する履歴メモリを備え、
前記通信管理装置は、前記通信管理装置に到着したデータフレームから異常フレームを検知し、
前記通信管理装置は、前記異常フレームが到着した順序を特定し、前記順序で前記通信管理装置の履歴メモリを参照することにより前記異常フレームが到着した第１の到着ポートを特定し、
前記通信管理装置は、特定した順序を表す順序情報および探索指示を含む探索フレームを前記第１の到着ポートに接続するハブ装置へ送信し、
前記探索指示は、前記探索フレームに格納されている順序情報に基づいて前記探索フレームを受信したハブ装置が備える複数のポートの中から前記異常フレームが到着した異常フレーム到着ポートを特定する処理、前記異常フレーム到着ポートを表すポート情報を前記探索フレームに追加する処理、および前記ポート情報が追加された探索フレームを前記通信管理装置および前記異常フレーム到着ポートに接続するハブ装置または端末装置へ送信する処理の実行を、前記探索フレームを受信したハブ装置に要求するものであり、
前記探索フレームを受信したハブ装置は、前記順序情報に基づいて自装置の履歴メモリを参照し、前記異常フレームが到着した第２の到着ポートを特定し、
前記探索フレームを受信したハブ装置は、前記第２の到着ポートを表すポート情報を前記探索フレームに追加して前記通信管理装置および前記第２の到着ポートに接続するハブ装置または端末装置へ送信し、
前記通信管理装置は、前記ポート情報が追加された探索フレームを受信したときに、前記ネットワークのトポロジおよび前記ポート情報に基づいて前記異常フレームが到着したポートに接続する装置を特定することで、前記異常フレームの送信元を特定する
ことを特徴とする通信管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードを含むネットワークにおいて通信を監視する通信監視装置、通信監視プログラム、および通信監視方法に係わる。
【背景技術】
【０００２】
近年、自動車には多数の電子機器が搭載され、様々な電子制御が行われている。これらの電子機器は、ネットワークを介して互いに接続される。自動車内に構築されるネットワークプロトコルの１つとして、ＣＡＮ（Controller Area Network）が普及している。
【０００３】
ＣＡＮで構成されたネットワークにおいては、複数のＥＣＵ（Electronic Control Unit）がＨＵＢノードを介して通信を行う。ＨＵＢノードは、中継ノードとして動作する。また、ＣＡＮにおいては、あるＥＣＵから送信されるデータフレームは、他のすべてのＥＣＵにより受信される。すなわち、ＣＡＮは、ブロードキャスト通信を提供する。そして、各ＥＣＵは、受信データフレームに付与されているＩＤに基づいて、必要なデータフレームを取得し、不要なデータフレームを廃棄する。
【０００４】
上記構成のＣＡＮネットワークにおいて、異常フレームを検知する機能が要求されることがある。この場合、ＣＡＮネットワークには、通信監視装置を備える。通信監視装置は、例えば、ゲートウェイ装置により実現される。ゲートウェイ装置は、ＣＡＮと他のネットワーク（例えば、インターネット）とを接続する。以下の記載では、ゲートウェイ装置が異常フレームを検知する機能を有しているものとする。
【０００５】
ＣＡＮは、上述したように、ブロードキャスト通信を提供する。このため、ゲートウェイ装置は、ネットワーク内でブロードキャストされるすべてのフレームを受信することができる。そして、ゲートウェイ装置は、各受信フレームを解析することにより、異常フレームを検知する。ここで、ゲートウェイ装置は、検知した異常フレームの送信元を特定できることが好ましい。
【０００６】
関連技術として、複数の中継装置を含むネットワークにおいて、パケットの発信源を追跡する発信源追跡システムが提案されている。（例えば、特許文献１）
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１４８５９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＣＡＮにおいては、異常フレームが検知されたときに、その異常フレームの送信元のＥＣＵを特定する方法が明確には決められていない。また、ＣＡＮにおいて伝送されるフレームには、送信元を識別する情報（例えば、送信元アドレス）は付与されていない。このため、ゲートウェイ装置は、異常フレームを検知したとき、その異常フレームの送信元のＥＣＵを特定することは困難である。
【０００９】
伝送フレームに送信元を識別する情報が付与されていないネットワークであっても、各中継ノードが通過フレームの内容を保持する構成であれば、ゲートウェイ装置は、異常フレームの送信元を特定できるかも知れない。ただし、この構成では、各中継ノードに大きな容量のメモリを設ける必要がある。
【００１０】
なお、上述の問題は、ＣＡＮにおいてのみ発生するものではなく、伝送フレームに送信元を識別する情報が付与されていないネットワークにおいて発生し得る。
【００１１】
本発明の１つの側面に係わる目的は、伝送フレームに送信元を識別する情報が付与されていないネットワークにおいて、異常フレームの送信元を特定することである。
【課題を解決するための手段】
【００１２】
本発明の１つの態様の通信監視装置は、複数のノードを含むネットワークにおいて使用され、複数のポートと、受信フレームから異常フレームを検知する検知部と、前記検知部により異常フレームが検知されたときに、前記異常フレームが到着した第１の到着ポート、および前記複数のポートのいずれかに到着した受信フレームのなかで前記異常フレームが到着した順序を特定する特定部と、前記特定部により特定された順序を表す順序情報を前記第１の到着ポートに接続するノードへ送信する送信部と、を有する。
【発明の効果】
【００１３】
上述の態様によれば、伝送フレームに送信元を識別する情報が付与されていないネットワークにおいて、異常フレームの送信元を特定できる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係わるネットワークの一例を示す図である。
【図２】ＣＡＮで使用されるデータフレームの構造を示す図である。
【図３】データフレームのブロードキャストの一例を示す図である。
【図４】異常フレームの送信元を特定する方法の一例を示す図である。
【図５】異常フレームの送信元を特定する方法の他の例を示す図である。
【図６】第１の実施形態に係わる通信管理方法の一例を示す図である。
【図７】ゲートウェイ装置のハードウェア構成の一例を示す図である。
【図８】ゲートウェイ装置の機能を説明する図である。
【図９】ハブ装置の機能を説明する図である。
【図１０】探索フレームの生成および更新の例を示す図である。
【図１１】フレームを受信したハブ装置の動作を示すフローチャートである。
【図１２】フレームを受信したゲートウェイ装置の動作を示すフローチャートである。
【図１３】探索フレームを受信したハブ装置の動作を示すフローチャートである。
【図１４】異常フレームの送信元を特定する処理を示すフローチャートである。
【図１５】第２の実施形態に係わる通信管理方法の一例を示す図である。
【図１６】第２の実施形態の変形例を示す図である。
【発明を実施するための形態】
【００１５】
図１は、本発明の実施形態に係わるネットワークの一例を示す。実施形態のネットワーク１００は、図１に示すように、ゲートウェイ装置１０、複数のハブ装置２０、複数の端末装置３０を含む。
【００１６】
ゲートウェイ装置１０は、ネットワーク１００と他のネットワーク（例えば、インターネット）とを接続することができる。また、ゲートウェイ装置１０は、ネットワーク１００において伝送されるデータフレームの中から異常フレームを検知する機能を有する。なお、異常フレームを検知する機能については後で説明する。
【００１７】
端末装置３０は、他の所望の端末装置３０へデータフレームを送信することができる。また、端末装置３０は、他の端末装置３０から送信されるデータフレームを受信することができる。なお、ネットワーク１００において伝送されるデータフレームには、そのデータフレームの送信元を識別する情報およびそのデータフレームの宛先を識別する情報は付与されていない。端末装置３０は、例えば、ＥＣＵ（Electronic Control Unit）により実現される。なお、図１では、ＥＣＵ１２１〜ＥＣＵ１２３が示されているが、ネットワーク１００は他の端末装置３０を含んでいてもよい。
【００１８】
ハブ装置２０は、中継ノードとして動作し、端末装置３０から送信されるデータフレームをネットワーク１００内の端末装置３０へ伝送する。すなわち、ネットワーク１００において、データフレームはブロードキャストされる。なお、図１では、ＨＵＢ１〜ＨＵＢ３、ＨＵＢ１１〜ＨＵＢ１３が示されているが、ネットワーク１００は他のハブ装置２０を含んでいてもよい。
【００１９】
複数のハブ装置２０は、ゲートウェイ装置１０に対して階層的に接続されている。図１に示す例では、ゲートウェイ１０にＨＵＢ１〜ＨＵＢ３が接続されており、ＨＵＢ１にＨＵＢ１１〜ＨＵＢ１３が接続されている。すなわち、ＨＵＢ１〜ＨＵＢ３は、ゲートウェイ装置１０に対して第１ステージに配置されている。また、ＨＵＢ１１〜ＨＵＢ１３は、ゲートウェイ装置１０に対して第２ステージに配置されている。
【００２０】
ゲートウェイ装置１０および各ハブ装置２０は、それぞれ複数のポートを備えている。図１に示す例では、ゲートウェイ装置１０は、ポートＰ１〜Ｐ３を備えている。そして、ゲートウェイ装置１０のポートＰ１〜Ｐ３には、それぞれ、ＨＵＢ１〜ＨＵＢ３が接続されている。ＨＵＢ１は、ポートＰ１〜Ｐ４を備えている。ＨＵＢ１のポートＰ１にはゲートウェイ装置１０が接続され、ＨＵＢ１のポートＰ２〜Ｐ４には、それぞれ、ＨＵＢ１１〜ＨＵＢ１３が接続されている。ＨＵＢ１２は、ポートＰ１〜Ｐ４を備えている。ＨＵＢ１２のポートＰ１にはＨＵＢ１が接続され、ＨＵＢ１２のポートＰ２〜Ｐ４には、それぞれ、ＥＣＵ１２１〜ＥＣＵ１２３が接続されている。同様に、他のハブ装置２０もそれぞれ複数のポートを備えている。
【００２１】
上記構成のネットワーク１００は、例えば、ＣＡＮ（Controller Area Network）により実現される。ＣＡＮは、自動車内に構築されるネットワークの１つとして広く普及している。
【００２２】
図２（ａ）は、ＣＡＮにおいて使用されるデータフレームの構造を示す。ＣＡＮにおいて使用されるデータフレームは、ＳＯＦ（Start of Frame）、アービトレーション、コントロール、データ、ＣＲＣ、ＡＣＫ、ＥＯＦ（End of Frame）を含む。ここで、アービトレーションフィールドには、ＩＤ情報が格納される。なお、ＣＡＮにおいては、図２（ａ）に示す標準仕様の他に、図２（ｂ）に示す拡張仕様が規定されている。さらに、ＣＡＮＦＤと呼ばれる次世代の規格も検討されている。
【００２３】
上記構成のネットワーク１００において、端末装置３０から送信されるデータフレームは、上述したように、ハブ装置２０によりすべての端末装置３０へブロードキャストされる。このとき、このデータフレームは、ゲートウェイ装置１０にも伝送される。
【００２４】
ＣＡＮのＩＤは、データフレームの内容の意味を示すものであり、送信元を表す情報、及び、送信先を表す情報も兼ねている。たとえば、自動車内でＣＡＮが使用される場合、ID=0x123は、アクセル開度を示し、「アクセルペダルＥＣＵからエンジンコントロールＥＣＵへ送信される」と決められている。このデータフレームは、ハブ装置２０によりすべての端末装置３０へブロードキャストされる。そして、各端末装置３０は、受信データフレームのＩＤに基づいて、必要なデータフレームを取得し、不要なデータフレームを廃棄（或いは、無視）する。なお、各端末装置３０が受信すべきデータフレームのＩＤは、予め決められて各端末装置３０に通知、または格納されている。また、ＣＡＮにおける通信は、必ずしも一対一ではなく、一対多のこともありうる。
【００２５】
ゲートウェイ装置１０は、ネットワーク１００において伝送されるデータフレームの中から異常フレームを検知することができる。例えば、図３において、ＥＣＵ１２１から送信されるデータフレームが異常であったものとする。すなわち、ＥＣＵ１２１が異常フレームを送信したものとする。この異常フレームは、ブロードキャストされるので、ゲートウェイ装置１０にも到着する。ここで、ゲートウェイ装置１０は、例えば、受信フレームのＩＤが予め指定されていない値であるときに、その受信フレームが異常フレームであると判定する。
【００２６】
ところが、ネットワーク１００において伝送されるデータフレームには、送信元を識別する情報は付与されているが、故障や攻撃等によってＩＤ部分が誤っていたり、データ部が異常となったりした場合、ゲートウェイ装置１０は、異常フレームを検知したときに、そのフレームに格納されている情報に基づいてそのフレームの送信元を特定することはできない。すなわち、図３に示す例では、ゲートウェイ装置１０は、受信した異常フレームに格納されている情報に基づいて、ＥＣＵ１２１〜ＥＣＵ１２３のうちのいずれから異常フレームが送信されたのかを特定することはできない。但し、ゲートウェイ装置１０は、その異常フレームが到着したポートを特定することはできる。図３に示す例では、ゲートウェイ装置１０は、異常フレームが到着したポートがＰ１であると判定できる。
【００２７】
上記構成のネットワーク１００において、ゲートウェイ装置１００は、検知した異常フレームの送信元を特定できることが好ましい。以下、異常フレームの送信元を特定する方法について検討する。
【００２８】
図４に示す例では、各ハブ装置２０は、ポート毎に通信ログを記録する。一例として、ハブ装置２０の通信ログメモリに、各受信フレームのＩＤおよびデータが記録される。
【００２９】
ゲートウェイ装置１０は、異常フレームを検知し、その異常フレームが到着したポートを特定すると、特定したポートに接続されるノードに問合せメッセージフレームを送信する。問合せメッセージフレームは、検知した異常フレームのＩＤおよびデータを含み、異常フレームの送信元を問い合わせる。図３に示す例では、ゲートウェイ装置１０は、ＨＵＢ１へ問合せメッセージフレームを送信する。そして、ゲートウェイ装置１０からＨＵＢ１へ送信された問合せメッセージフレームは、ＨＵＢ１の配下の各ハブ装置２０にブロードキャストされる。
【００３０】
問合せメッセージフレームを受信した各ハブ装置２０は、そのフレームに含まれているＩＤおよびデータの組で自分の通信ログメモリをサーチし、対応するポートを特定する。図３に示す例では、ＨＵＢ１においてポートＰ３が特定され、ＨＵＢ１２においてポートＰ３が特定される。そうすると、ＨＵＢ１およびＨＢＵ１２は、それぞれ、特定したポートをゲートウェイ装置１０に通知する。そして、ゲートウェイ装置１０は、ＨＵＢ１およびＨＢＵ１２から受信する通知に基づいて、異常フレームの送信元を特定することができる。この実施例では、ＨＵＢ１２のポートＰ３に接続されている端末装置３０（即ち、ＥＣＵ１２２）が異常フレームの送信元であると判定される。
【００３１】
このように、ゲートウェイ装置１０は、異常フレームの送信元を特定できる。しかしながら、図４に示す方法で異常フレームの送信元を特定する場合、各ハブ装置２０は、ポート毎に通信ログを記録する。このため、ハブ装置２０は、大容量のメモリを備える必要がある。例えば、ＩＤが１１ビットであり、データが６４ビットであるものとする。また、ハブ装置２０は、４つのポートを備えるものとする。さらに、通信ログは、ポート毎に１０００個の受信フレームを記録するものとする。この場合、ハブ装置２０は、通信ログのためのメモリのサイズは、３０００００ビットである。
【００３２】
図５に示す例では、ハッシュ関数を利用して異常フレームの送信元を特定する。但し、図５に示す方法は、図４に示す方法と類似する。すなわち、図４に示す方法では、各ハブ装置２０において受信フレームのＩＤおよびデータが記録される。これに対して、図５に示す方法では、各ハブ装置２０において受信フレームのＩＤおよびデータの組に対するハッシュ値が記録される。ここで、ｎビットのハッシュ値が生成されるときは、各ハブ装置２０は、ポート毎に、２ｎビットのメモリを備える。また、図５に示すフラグは、過去に通過したデータフレームに対応するレコードを識別する。
【００３３】
図４に示す方法と比較すると、図５に示す方法によれば、通信ログを記録するためのメモリのサイズを小さくできる。しかし、各ハブ装置２０においてハッシュ演算を実行するためのハードウェア回路が必要であり、また、ハッシュ演算のための処理時間が必要である。
【００３４】
＜第１の実施形態＞
図６は、本発明の第１の実施形態に係わる通信管理方法の一例を示す。第１の実施形態のネットワーク２００は、図６に示すように、ゲートウェイ装置４０、複数のハブ装置５０、複数の端末装置３０を含む。
【００３５】
なお、ネットワーク２００は、例えば、ＣＡＮ（Controller Area Network）により実現される。この場合、ネットワーク２００において、図２に示すフレームが伝送される。また、端末装置３０から送信されるデータフレームは、ネットワーク２００内のすべての端末装置３０にブロードキャストされる。
【００３６】
ゲートウェイ装置４０は、ネットワーク２００と他のネットワーク（例えば、インターネット）とを接続することができる。また、ゲートウェイ装置４０は、ネットワーク２００において伝送されるデータフレームの中から異常フレームを検知する機能を有する。例えば、ゲートウェイ装置４０は、受信フレームのＩＤが予め指定されていない値であるときに、その受信フレームが異常フレームであると判定する。或いは、ゲートウェイ装置４０は、ＣＲＣを利用して受信フレームが異常フレームであるか否かを判定することもできる。さらに、ゲートウェイ装置４０は、他の方法で異常フレームを検知してもよい。
【００３７】
端末装置３０は、図１および図６において実質的に同じである。すなわち、端末装置３０は、他の端末装置３０へデータフレームを送信することができ、また、他の端末装置３０からデータフレームを受信することができる。また、ネットワーク２００において伝送されるデータフレームには、そのデータフレームの送信元を識別する情報およびそのデータフレームの宛先を識別する情報は直接的には付与されていない。端末装置３０は、たとえば、ＥＣＵ（Electronic Control Unit）により実現される。なお、図６では、ＥＣＵ１３１〜ＥＣＵ１３３が示されているが、ネットワーク２００は他の端末装置３０を含んでいてもよい。
【００３８】
ハブ装置５０は、中継ノードとして動作し、端末装置３０から送信されるデータフレームをネットワーク２００内のすべての端末装置３０へ伝送する。すなわち、ネットワーク２００において、データフレームはブロードキャストされる。なお、図６では、ＨＵＢ１〜ＨＵＢ３、ＨＵＢ１１〜ＨＵＢ１３が示されているが、ネットワーク２００は他のハブ装置５０を含んでいてもよい。
【００３９】
複数のハブ装置５０は、ゲートウェイ装置４０に対して階層的に接続されている。図６に示す例では、ゲートウェイ４０にＨＵＢ１〜ＨＵＢ３が接続されており、ＨＵＢ１にＨＵＢ１１〜ＨＵＢ１３が接続されている。すなわち、ＨＵＢ１〜ＨＵＢ３は、ゲートウェイ装置４０に対して第１ステージに配置されている。また、ＨＵＢ１１〜ＨＵＢ１３は、ゲートウェイ装置４０に対して第２ステージに配置されている。
【００４０】
ゲートウェイ装置４０および各ハブ装置５０は、それぞれ複数のポートを備えている。図６に示す実施例では、ゲートウェイ装置４０は、ポートＰ１〜Ｐ３を備えている。ゲートウェイ装置４０のポートＰ１〜Ｐ３には、それぞれ、ＨＵＢ１〜ＨＵＢ３が接続されている。ＨＵＢ１は、ポートＰ１〜Ｐ４を備えている。ＨＵＢ１のポートＰ１にはゲートウェイ装置４０が接続され、ＨＵＢ１のポートＰ２〜Ｐ４には、それぞれ、ＨＵＢ１１〜ＨＵＢ１３が接続されている。ＨＵＢ１３は、ポートＰ１〜Ｐ４を備えている。ＨＵＢ１３のポートＰ１にはＨＵＢ１が接続され、ＨＵＢ１３のポートＰ２〜Ｐ４には、それぞれ、ＥＣＵ１３１〜ＥＣＵ１３３が接続されている。同様に、他のハブ装置２０もそれぞれ複数のポートを備えている。
【００４１】
ゲートウェイ装置４０および各ハブ装置５０は、それぞれ、Ｆｒｏｍ履歴メモリ６１を備える。Ｆｒｏｍ履歴メモリ６１には、データフレームが到着したポートを表す到着ポート番号が順番に記録される。
【００４２】
図６に示す実施例では、ＨＵＢ１１に収容されている不図示のＥＣＵから１番目のデータフレームＦ１が送信される。データフレームＦ１は、ＨＵＢ１１からＨＵＢ１に伝送され、ＨＵＢ１のポートＰ２に到着する。したがって、ＨＵＢ１のＦｒｏｍ履歴メモリ６１の１番目のレコードに「２」が記録される。
【００４３】
ＨＵＢ１は、ＨＵＢ１１から受信したデータフレームＦ１をブロードキャストする。このとき、ＨＵＢ１のポートＰ１から送信されるデータフレームＦ１は、ゲートウェイ装置４０のポートＰ１に到着する。よって、ゲートウェイ装置４０のＦｒｏｍ履歴メモリ６１の１番目のレコードに「１」が記録される。また、ＨＵＢ１のポートＰ４から送信されるデータフレームＦ１は、ＨＵＢ１３のポートＰ１に到着する。したがって、ＨＵＢ１３のＦｒｏｍ履歴メモリ６１の１番目のレコードに「１」が記録される。
【００４４】
続いて、ＨＵＢ２に収容されている不図示のＥＣＵから２番目のデータフレームＦ２が送信される。データフレームＦ２は、ＨＵＢ２からゲートウェイ装置４０に伝送され、ゲートウェイ装置４０のポートＰ２に到着する。よって、ゲートウェイ装置４０のＦｒｏｍ履歴メモリ６１の２番目のレコードに「２」が記録される。
【００４５】
ゲートウェイ装置４０は、ＨＵＢ２から受信したデータフレームＦ２をブロードキャストする。このとき、ゲートウェイ装置４０のポートＰ１から送信されるデータフレームＦ２は、ＨＵＢ１のポートＰ１に到着する。よって、ゲートウェイ装置４０のＦｒｏｍ履歴メモリ６１の２番目のレコードに「１」が記録される。また、ＨＵＢ１は、ゲートウェイ装置４０から受信したデータフレームＦ２をブロードキャストする。このとき、ＨＵＢ１のポートＰ４から送信されるデータフレームＦ２は、ＨＵＢ１３のポートＰ１に到着する。したがって、ＨＵＢ１３のＦｒｏｍ履歴メモリ６１の２番目のレコードに「１」が記録される。
【００４６】
同様に、ネットワーク２００内でデータフレームがブロードキャストされると、ゲートウェイ装置４０および各ハブ装置５０のＦｒｏｍ履歴メモリ６１には、それぞれ、データフレームが到着したポートを表す到着ポート番号が順番に記録される。例えば、ゲートウェイ装置４０のＦｒｏｍ履歴メモリ６１には、５個の到着ポート番号「１」「２」「１」「１」「１」が順番に記録されている。この場合、ゲートウェイ装置４０に記録される受信履歴は、以下の動作を表す。
（１）１番目のデータフレームＦ１がポートＰ１に到着した
（２）２番目のデータフレームＦ２がポートＰ２に到着した
（３）３番目のデータフレームＦ３がポートＰ１に到着した
（４）４番目のデータフレームＦ４がポートＰ１に到着した
（５）５番目のデータフレームＦ５がポートＰ１に到着した
【００４７】
ＨＵＢ１のＦｒｏｍ履歴メモリ６１には、到着ポート番号「２」「１」「３」「４」「２」が順番に記録されている。この場合、ＨＵＢ１に記録される受信履歴は、以下の動作を表す。
（１）１番目のデータフレームＦ１がポートＰ２に到着した
（２）２番目のデータフレームＦ２がポートＰ１に到着した
（３）３番目のデータフレームＦ３がポートＰ３に到着した
（４）４番目のデータフレームＦ４がポートＰ４に到着した
（５）５番目のデータフレームＦ５がポートＰ２に到着した
【００４８】
ＨＵＢ１３のＦｒｏｍ履歴メモリ６１には、到着ポート番号「１」「１」「１」「２」「１」が順番に記録されている。この場合、ＨＵＢ１に記録される受信履歴は、以下の動作を表す。
（１）１番目のデータフレームＦ１がポートＰ１に到着した
（２）２番目のデータフレームＦ２がポートＰ１に到着した
（３）３番目のデータフレームＦ３がポートＰ１に到着した
（４）４番目のデータフレームＦ４がポートＰ２に到着した
（５）５番目のデータフレームＦ５がポートＰ１に到着した
【００４９】
ここで、データフレームは、ネットワーク２００においてブロードキャストされる。このため、１つのデータフレームがブロードキャストされると、そのデータフレームに対応する到着ポート番号が、ゲートウェイ装置４０および各ハブ装置５０のＦｒｏｍ履歴メモリ６１にそれぞれ記録される。たとえば、データフレームＦ１がブロードキャストされると、ゲートウェイ装置４０および各ハブ装置５０のＦｒｏｍ履歴メモリ６１の１番目のレコードにそれぞれデータフレームＦ１に対応する到着ポート番号が記録され、データフレームＦ２がブロードキャストされると、ゲートウェイ装置４０および各ハブ装置５０のＦｒｏｍ履歴メモリ６１の２番目のレコードにそれぞれデータフレームＦ２に対応する到着ポート番号が記録される。換言すれば、各Ｆｒｏｍ履歴メモリ６１の同じレコードに記録されている到着ポート番号は、同じデータフレームに起因して生成されたものである。
【００５０】
第１の実施形態では、ゲートウェイ装置４０および各ハブ装置５０のＦｒｏｍ履歴メモリ６１を利用して、異常フレームの送信元が特定される。例えば、ゲートウェイ装置４０において、４番目のデータフレームが異常フレームであると判定されるものとする。この場合、ゲートウェイ装置４０のＦｒｏｍ履歴メモリ６１の４番目のレコードには「到着ポート番号：１」が記録されている。よって、異常フレームは、ゲートウェイ装置４０のポートＰ１に接続するノードから送信されたと判定される。即ち、異常フレームは、ＨＵＢ１から送信されたと判定される。ＨＵＢ１のＦｒｏｍ履歴メモリ６１の４番目のレコードには「到着ポート番号：４」が記録されている。よって、異常フレームは、ＨＵＢ１のポートＰ４に接続するノードから送信されたと判定される。即ち、異常フレームは、ＨＵＢ１３から送信されたと判定される。ＨＵＢ１３のＦｒｏｍ履歴メモリ６１の４番目のレコードには「到着ポート番号：２」が記録されている。よって、異常フレームは、ＨＵＢ１３のポートＰ２に接続するノードから送信されたと判定される。即ち、異常フレームは、ＥＣＵ１３１から送信されたと判定される。
【００５１】
図７は、ゲートウェイ装置４０のハードウェア構成の一例を示す。ゲートウェイ装置４０は、図７に示すように、ポートＰ１〜Ｐｎ、複数のトランシーバ４１、複数のコントローラ７１、プロセッサ４２、メモリ４３を備える。なお、ゲートウェイ装置４０は、図７に示していない他の回路要素を備えていてもよい。
【００５２】
ポートＰ１〜Ｐｎには、それぞれ、ネットワーク２００のハブ装置５０が接続される。図６に示す例では、ポートＰ１〜Ｐ３には、それぞれＨＵＢ１〜ＨＵＢ３が接続されている。トランシーバ４１は、対応するポート（Ｐ１〜Ｐｎ）を介してハブ装置５０へフレームを送信し、また、対応するポート（Ｐ１〜Ｐｎ）を介してハブ装置５０からフレームを受信する。コントローラ７１は、対応するトランシーバ４１を制御する。
【００５３】
プロセッサ４２は、ネットワーク２００と他のネットワークとを接続するゲートウェイ機能を提供する。また、プロセッサ４２は、ネットワーク２００内で伝送されるデータフレームから異常フレームを検知する機能、及び異常フレームの送信元を特定する機能を提供する。なお、プロセッサ４２は、メモリ４３に格納されているプログラムを実行することにより上述の機能を提供することができる。ただし、上述の機能の一部は、ハードウェア回路で実現してもよい。メモリ４３は、プロセッサ４２により実行されるプログラムを格納することができる。また、Ｆｒｏｍ履歴メモリ６１は、メモリ４３を利用して実現される。
【００５４】
ハブ装置５０は、図７に示すゲートウェイ装置４０と同様に、ポートＰ１〜Ｐｎ、トランシーバ４１、プロセッサ４２、メモリ４３を備える構成であってもよい。ただし、ハブ装置５０において実行されるプログラムは、ゲートウェイ装置４０において実行されるプログラムと同じではない。
【００５５】
図８は、ゲートウェイ装置４０の機能を説明する図である。ゲートウェイ装置４０は、図８に示すように、記録部４４、検知部４５、特定部４６、生成部４７、送信部４８、送信元特定部４９を備える。なお、記録部４４、検知部４５、特定部４６、生成部４７、送信部４８、送信元特定部４９の機能は、プロセッサ４２が与えられたプログラムを実行することにより提供される。ただし、記録部４４、検知部４５、特定部４６、生成部４７、送信部４８、送信元特定部４９の機能の一部は、ハードウェア回路で実現してもよい。
【００５６】
記録部４４は、ゲートウェイ装置４０がネットワーク２００からデータフレームを受信したときに、そのデータフレームが到着したポートを表す到着ポート番号をＦｒｏｍ履歴メモリ６１に記録する。検知部４５は、受信フレームから異常フレームを検知する。例えば、受信フレームのＩＤが予め指定されていない値であるときに、検知部４５は、その受信フレームが異常フレームであると判定する。或いは、検知部４５は、ＣＲＣを利用して受信フレームが異常フレームであるか否かを判定することもできる。さらに、検知部４５は、他の方法で異常フレームを検知してもよい。例えば、検知部４５は、受信フレームのデータフィールドの値が既定の範囲外であるときは、受信フレームが異常フレームである判定してもよい。
【００５７】
検知部４５により異常フレームが検知されると、特定部４６は、ゲートウェイ装置４０に到着したデータフレームのなかで、その異常フレームがゲートウェイ装置４０に到着した順序を特定する。このとき、特定部４６は、例えば、ゲートウェイ装置４０に到着した最新のデータフレームを基準として、いくつ前に到着したデータフレームが異常フレームであったのかを特定する。この場合、図６に示す例では、「順序：最新のデータフレームに対して１つ手前」が得られる。或いは、特定部４６は、異常フレームと最新のデータフレームとの間に到着したデータフレームの個数を特定してもよい。なお、最新のデータフレームが異常フレームであると判定されることもある。
【００５８】
特定部４６は、検知した異常の種別に応じて、異常フレームがゲートウェイ装置４０に到着した順序を特定できるものとする。例えば、受信フレームのＩＤに基づいて異常フレームを検知するために要する検知時間、およびＣＲＣ演算に基づいて異常フレームを検知するために要する検知時間、データフィールドが既定の範囲外であったことを検知する時間は、まちまちである。したがって、特定部４６は、これらの各検知時間に基づいて、異常フレームがゲートウェイ装置４０に到着した順序を特定できる。
【００５９】
さらに、特定部４６は、Ｆｒｏｍ履歴メモリ６１を参照して、異常フレームが到着したポートを特定する。このとき、特定部４６は、異常フレームがゲートウェイ装置４０に到着した順序に基づいて、異常フレームが到着したポートを特定する。図６に示す例では、「最新のデータフレームに対して１つ手前」が得られている。よって、この場合、特定部４６は、Ｆｒｏｍ履歴メモリ６１において、最新の到着ポート番号の１つ前に記録された到着ポート番号「１」を取得する。この結果、特定部４６は、ポートＰ１に異常フレームが到着したと判定する。
【００６０】
生成部４７は、特定部４６により特定された順序を表す順序情報を含む探索フレームを生成する。探索フレームのデータ構造は、この実施例では、図２に示すフレームと同じである。ただし、探索フレームのＩＤ領域には、探索フレームを表すＩＤ値が設定される。また、異常フレームがゲートウェイ装置４０に到着した順序を表す順序情報は、データ領域内の予め指定された位置（例えば、データ領域内の先頭）に格納される。
【００６１】
なお、ハブ装置５０は、探索フレームを表すＩＤ値が付与されているフレーム（すなわち、探索フレーム）を受信すると、対応する探索処理を実行する。すなわち、探索フレームを表すＩＤ値は、ハブ装置５０に探索処理を実行させる探索指示として機能する。このように、生成部４７は、特定部４６により特定された順序を表す順序情報、および異常フレームの送信元の探索を指示する探索指示を含む探索フレームを生成する。ハブ装置５０により実行される探索処理については、後で説明する。
【００６２】
送信部４８は、生成部４７により生成される探索フレームを、特定部４６により特定された到着ポート（すなわち、異常フレームが到着したポート）に接続するノードへ送信する。図６に示す例では、「到着ポート：Ｐ１」が特定されている。よって、この場合、ゲートウェイ装置４０は、ＨＵＢ１へ探索フレームを送信する。
【００６３】
なお、図６において、ゲートウェイ装置４０から送信される探索フレームに付与されている数字は、順序情報を表す。ここで、この実施例では、順序情報として「最新のデータフレームに対して１つ手前」が得られている。したがって、探索フレームに「−１」が付与されている。
【００６４】
探索フレームは、探索フレームを受信したハブ装置５０により更新される。また、ゲートウェイ装置４０は、ハブ装置５０により更新された探索フレームを受信する。そして、ゲートウェイ装置４０の送信元特定部４９は、更新された探索フレームに基づいて異常フレームの送信元を特定する。
【００６５】
図９は、ハブ装置５０の機能を説明する図である。ハブ装置５０は、図９に示すように、記録部５１、特定部５２、更新部５３、送信部５４を備える。なお、記録部５１、特定部５２、更新部５３、送信部５４の機能は、例えば、プロセッサが与えられたプログラムを実行することにより提供される。ただし、記録部５１、特定部５２、更新部５３、送信部５４の機能の一部は、ハードウェア回路で実現してもよい。
【００６６】
記録部５１は、ハブ装置５０がデータフレームを受信したときに、そのデータフレームが到着したポートを表す到着ポート番号をＦｒｏｍ履歴メモリ６１に記録する。特定部５２は、ハブ装置５０が探索フレームを受信したときに、その探索フレームに格納されている順序情報に従ってＦｒｏｍ履歴メモリ６１から対応する到着ポート番号を取得する。例えば、図６に示す例では、ＨＵＢ１は、「順序情報：−１」が格納されたる探索フレームを受信する。そうすると、ＨＵＢ１の特定部５２は、ＨＵＢ１のＦｒｏｍ履歴メモリ６１において最新の到着ポート番号の１つ前の到着ポート番号を取得する。すなわち、ＨＵＢ１においては、「到着ポート：Ｐ４」が特定される。
【００６７】
更新部５３は、受信した探索フレームのデータ領域に、特定部５２により特定された到着ポートを表すポート情報を追加する。図６に示す例では、ＨＵＢ１の更新部５３は、探索フレームのデータ領域に「到着ポート：Ｐ４」を表すポート情報を追加する。
【００６８】
送信部５４は、更新部５３により更新された探索フレームを、ゲートウェイ装置４０および特定された到着ポートに接続するノードへ送信する。図６に示す例では、ＨＵＢ１の送信部５４は、更新された探索フレームを、ゲートウェイ装置４０およびポートＰ４に接続するノード（すなわち、ＨＵＢ１３）へ送信する。
【００６９】
図１０は、探索フレームの生成および更新の例を示す。ここでは、図６に示す実施例で生成および更新される探索フレームについて説明する。なお、図１０においては、ＩＤおよびデータのみが描かれている。
【００７０】
図１０（ａ）は、ゲートウェイ装置４０により生成される探索フレームを示す。探索フレームのＩＤ領域には、探索フレームを表す専用のＩＤ値が設定される。また、データ領域の先頭には、順序情報が格納される。この例では、異常フレームがゲートウェイ装置４０に到着した順序として「最新のデータフレームに対して１つ手前」が得られている。したがって、順序情報として「−１」が格納される。また、異常フレームが到着したゲートウェイ装置４０のポートを表すポート情報「０ｘ００１（Ｐ１）」がデータ領域に格納される。そして、この探索フレームは、ゲートウェイ装置４０からＨＵＢ１へ送信される。
【００７１】
図１０（ｂ）は、ＨＵＢ１において更新された探索フレームを示す。ＨＵＢ１は、「順序情報：−１」でＦｒｏｍ履歴メモリ６１を検索することによって「到着ポート：Ｐ４」を得る。そうすると、ＨＵＢ１の更新部５３は、探索フレームのデータ領域内の１段目のＨＵＢのための領域に、ポート情報「０ｘ００４（Ｐ４）」を追加する。そして、この探索フレームは、ゲートウェイ装置４０およびＨＵＢ１３に送信される。
【００７２】
図１０（ｃ）は、ＨＵＢ１３において更新された探索フレームを示す。ＨＵＢ１３は、「順序情報：−１」でＦｒｏｍ履歴メモリ６１を検索することによって「到着ポート：Ｐ２」を得る。そうすると、ＨＵＢ１３の更新部５３は、探索フレームのデータ領域内の２段目のＨＵＢのための領域に、ポート情報「０ｘ００２（Ｐ２）」を追加する。そして、この探索フレームは、ゲートウェイ装置４０およびＥＣＵ１３１に送信される。なお、ＥＣＵ１３１は、探索フレームを処理することなく廃棄または無視する。
【００７３】
ＨＵＢ１３からゲートウェイ装置４０へ送信される探索フレームは、いったんＨＵＢ１により受信される。ここで、ハブ装置５０は、下流側のノードから探索フレームを受信したときは、その探索フレームを上流側のノードへ転送するように構成されているものとする。よって、ＨＵＢ１は、ＨＵＢ１３から探索フレームを受信すると、その探索フレームを更新することなく、ポートＰ１を介して送信する。この結果、ＨＵＢ１３により更新された探索フレームもゲートウェイ装置４０により受信される。
【００７４】
このように、ゲートウェイ装置４０は、ＨＵＢ１により更新された探索フレーム及びＨＵＢ１３により更新された探索フレームを受信する。ここで、ゲートウェイ装置４０は、ネットワーク２００のトポロジを認識しているものとする。そうすると、ゲートウェイ装置４０は、図１０（ｃ）に示す探索フレームに格納されているポート情報に基づいて、ＨＵＢ１３のポートＰ２に接続されている端末装置３０が異常フレームの送信元であると判定することができる。すなわち、ＥＣＵ１３１が異常フレームの送信元であると特定される。
【００７５】
図１１は、フレームを受信したハブ装置５０の動作を示すフローチャートである。このフローチャートの処理は、ハブ装置５０にフレームが到着する毎に実行される。
【００７６】
Ｓ１において、ハブ装置５０は、受信フレームが到着したポートを特定する。Ｓ２において、ハブ装置５０は、受信フレームのＩＤをチェックすることにより、受信フレームがデータフレームであるか否かを判定する。受信フレームがデータフレームであるときは、Ｓ３において、記録部５１は、そのフレームが到着したポートを表す到着ポート番号をＦｒｏｍ履歴メモリ６１に記録する。そして、Ｓ４において、ハブ装置５０は、受信したデータフレームをブロードキャストする。一方、受信フレームがデータフレームでなかったときは、ハブ装置５０は、Ｓ５において、受信フレームのＩＤに基づいてそのフレームを処理する。例えば、ハブ装置５０が探索フレームを受信したときは、図９を参照しながら説明したように、特定部５２は異常フレームが到着したポートを特定し、更新部５３は探索フレームを更新する。
【００７７】
図１２は、フレームを受信したゲートウェイ装置４０の動作を示すフローチャートである。このフローチャートの処理は、ゲートウェイ装置４０にフレームが到着する毎に実行される。
【００７８】
Ｓ１１〜Ｓ１３は、図１１に示すＳ１〜Ｓ３と実質的に同じである。すなわち、ゲートウェイ装置４０において、受信フレームがデータフレームであるときは、記録部４４は、そのフレームが到着したポートを表す到着ポート番号をＦｒｏｍ履歴メモリ６１に記録する。
【００７９】
Ｓ１４〜Ｓ１５において、検知部４５は、受信したデータフレームが異常フレームであるか否かを判定する。このとき、検知部４５は、例えば、ＩＤチェックおよびＣＲＣ演算により、受信したデータフレームが異常フレームであるか否かを判定する。そして、受信したデータフレームが異常フレームでなければ、ゲートウェイ装置４０は、Ｓ１６において、受信フレームのＩＤに基づいてそのフレームを処理する。たとえば、ゲートウェイ装置４０は、受信したデータフレームに格納されているデータを外部ネットワークへ送信する。
【００８０】
受信したデータフレームが異常フレームであるときには、特定部４６は、Ｓ１７において、その異常フレームがゲートウェイ装置４０に到着した順序を特定する。例えば、特定部４６は、ゲートウェイ装置４０に到着した最新のデータフレームを基準として、いくつ前に到着したデータフレームが異常フレームであったのかを特定する。図６に示す例では「最新のデータフレームに対して１つ手前」が得られる。さらに、特定部４６は、Ｓ１８において、異常フレームが到着したポートを特定する。このとき、特定部４６は、Ｓ１７で特定した順序を利用してＦｒｏｍ履歴メモリ６１を検索することにより、異常フレームが到着したポートを特定する。
【００８１】
Ｓ１９において、生成部４７は、探索フレームを生成する。この探索フレームのデータ領域には、異常フレームがゲートウェイ装置４０に到着した順序を表す順序情報が格納される。また、ゲートウェイ装置４０に異常フレームが到着したポートを表すポート情報も探索フレームのデータ領域に格納される。Ｓ２０において、送信部４８は、異常フレームが到着したポートを介して探索フレーム送信する。なお、受信フレームがデータフレームでなかったときには、ゲートウェイ装置４０は、Ｓ２１において、受信フレームのＩＤに基づいてそのフレームを処理する。例えば、ゲートウェイ装置４０がハブ装置５０により更新された探索フレームを受信したときは、送信元特定部４９は、異常フレームの送信元を特定する処理を実行する。
【００８２】
図１３は、探索フレームを受信したハブ装置５０の動作を示すフローチャートである。探索フレームは、ゲートウェイ装置４０により生成される。そして、ハブ装置５０は、ゲートウェイ装置４０または他のハブ装置５０から探索フレームを受信する。
【００８３】
Ｓ３１において、特定部５２は、受信した探索フレームから順序情報を取得する。Ｓ３２において、特定部５２は、探索フレームから取得した順序情報でＦｒｏｍ履歴メモリ６１を検索することにより、異常フレームが到着したポートを特定する。Ｓ３３において、更新部５３は、探索フレームのデータ領域に、異常フレームが到着したポートを表すポート情報を追加する。Ｓ３４において、送信部５４は、更新された探索フレームを、上流側ノードおよび異常フレームが到着したポートに接続されるノードへ送信する。なお、ハブ装置５０は、下流側ノードから探索フレームを受信したときは、その探索フレームを更新することなく上流側のノードへ転送する。すなわち、ハブ装置５０から上流側ノードへ送信される探索フレームは、最終的に、ゲートウェイ装置４０まで転送される。よって、ハブ装置５０は、実質的に、更新された探索フレームを、ゲートウェイ装置４０および異常フレームが到着したポートに接続されるノードへ送信することになる。
【００８４】
このように、ハブ装置５０は、探索フレームを受信すると、下記の処理（１）〜（３）を実行する。
（１）探索フレームに格納されている順序情報に基づいて、自装置の複数のポートの中から異常フレームが到着したポートを特定する処理
（２）異常フレームが到着したポートを表すポート情報を探索フレームに追加する処理
（３）ポート情報が追加された探索フレームを、ゲートウェイ装置４０および異常フレームが到着したポートに接続するノードへ送信する処理
ここで、ハブ装置５０は、探索フレームを表すＩＤ値が付与されたフレームを受信したときに、上記処理（１）〜（３）を実行する。したがって、探索フレームを表すＩＤ値は、上記処理（１）〜（３）の実行を要求する探索指示に相当する。
【００８５】
図１４は、異常フレームの送信元を特定する処理を示すフローチャートである。この処理は、ゲートウェイ装置４０がハブ装置５０へ探索フレームを送信した後に、送信元特定部４９により実行される。
【００８６】
Ｓ４１において、送信元特定部４９は、ハブ装置５０により更新された探索フレームを収集する。Ｓ４２において、送信元特定部４９は、収集した探索フレームの中の１つを選択する。Ｓ４３において、送信元特定部４９は、変数ｉを初期化する。変数ｉは、選択した探索フレームのデータ領域に格納されているポート情報を識別する。なお、変数ｉの初期値は１である。
【００８７】
Ｓ４４において、送信元特定部４９は、選択した探索フレームのデータ領域に格納されているｉ番目のポート情報を取得する。ｉ番目のポート情報は、ゲートウェイ装置４０に対してｉ段目のＨＵＢにおいて異常フレームが到着したポートを表す。Ｓ４５において、送信元特定部４９は、Ｓ４４で検出されたポートに接続するｉ＋１段目のノードを特定する。Ｓ４６において、送信元特定部４９は、Ｓ４５で特定したノードがＥＣＵであるか否かを判定する。Ｓ４５で特定したノードがＥＣＵであるときは、送信元特定部４９は、そのＥＣＵが異常フレームの送信元であると判定する。
【００８８】
Ｓ４５で特定したノードがＥＣＵでないときには、送信元特定部４９は、Ｓ４７において、選択した探索フレームのデータ領域にｉ＋１番目のポート情報が格納されているか否かを判定する。選択した探索フレームのデータ領域にｉ＋１番目のポート情報が格納されていないときは、送信元特定部４９の処理はＳ４２に戻る。一方、選択した探索フレームのデータ領域にｉ＋１番目のポート情報が格納されているときは、送信元特定部４９は、Ｓ４８において、変数ｉを１だけインクリメントする。この後、送信元特定部４９の処理はＳ４４に戻る。
【００８９】
図１４に示す処理を図６に示す実施例に基づいて説明する。ここでは、ゲートウェイ装置４０は、図１０（ｂ）に示す探索フレームおよび図１０（ｃ）に示す探索フレームを受信するものとする。
【００９０】
送信元特定部４９は、収集した２つの探索フレームのうちから、図１０（ｂ）に示す探索フレームを選択するものとする。この場合、送信元特定部４９は、この探索フレームに格納されている１番目のポート情報（０ｘ００４）に基づいて、２段目のノードがＨＵＢ１３であると判定する。すなわち、Ｓ４６において「Ｎｏ」と判定されるので、Ｓ４７が実行される。ただし、この探索フレームには、図１０（ｂ）に示すように、２番目のポート情報は格納されていない。したがって、送信元特定部４９の処理はＳ４２に戻る。
【００９１】
つづいて、送信元特定部４９は、図１０（ｃ）に示す探索フレームを選択する。この場合、送信元特定部４９は、この探索フレームに格納されている１番目のポート情報（０ｘ００４）に基づいて、２段目のノードがＨＵＢ１３であると判定する。すなわち、Ｓ４６において「Ｎｏ」を判定されるので、Ｓ４７が実行される。ただし、この探索フレームには、図１０（ｃ）に示すように、２番目のポート情報が格納されている。したがって、変数ｉが１から２にインクリメントされた後、送信元特定部４９の処理はＳ４４に戻る。
【００９２】
送信元特定部４９は、上記探索フレームに格納されている２番目のポート情報（０ｘ００２）に基づいて、３段目のノードがＥＣＵ１３１であると判定する。すなわち、Ｓ４６において「Ｙｅｓ」が得られる。したがって、送信元特定部４９は、異常フレームの送信元がＥＣＵ１３１であると判定することができる。
【００９３】
なお、上述の実施例では、探索フレームを受信したハブ装置５０は、探索フレームを更新した後、異常フレームが到着したポートを介して更新した探索フレームを送信するが、第１の実施形態はこの方法に限定されるものではない。例えば、ハブ装置５０は、更新した探索フレームをブロードキャストしてもよい。ただし、この場合、ハブ装置５０は、不要な探索フレームがゲートウェイ４０へ到着しないようにするために、例えば、異常フレームが到着したポート以外のポートの信号線を一時的に切断する。
【００９４】
また、下記（１）〜（４）を実行してもよい。
（１）ゲートウェイは、特定したポートに接続するハブに探索フレームを送信する。
（２）探索フレームを受信したハブは、自分のＦｒｏｍ履歴メモリ６１を参照して特定したポート番号をその探索フレームに格納し、特定したポートに接続するハブに送信する。
（３）上記（２）は、探索フレームがＥＣＵに到達するまで行われる。
（４）探索フレームを受信したＥＣＵは、上位側の装置へ探索フレームを送信する。
この手順によれば、各ハブは、中継機能を備えていればよく、送信機能を有している必要はない。
【００９５】
さらに、下記（１）〜（４）を実行してもよい。
（１）ゲートウェイは、特定したポートに接続するハブに探索フレームを送信する。
（２）探索フレームを受信したハブは、自分のＦｒｏｍ履歴メモリ６１を参照して特定したポート番号をその探索フレームに格納し、下位側のハブにブロードキャストする。ただし、ポートが特定された時点で、特定されたポート以外にポートに接続するハブへの通信は切断される。なお、探索フレームは、上位側のハブにもブロードキャストされる。
（３）上記（２）は、探索フレームがＥＣＵに到達するまで行われる。
（４）ゲートウェイは、上記（２）〜（３）で伝送される探索フレームをモニタする。
この手順においては、各ハブは、中継機能、データ挿入機能、通信切断機能を備えていればよく、送信機能を有している必要はない。
【００９６】
このように、第１の実施形態の通信監視方法によれば、各ハブ装置５０は、受信フレームのＩＤおよびデータの組を格納する必要はなく、Ｆｒｏｍ履歴メモリ６１を利用して到着ポート番号を記録する。ここで、ハブ装置５０は、４個のポートを備え、各ポートについて１０００個の到着ポート番号を記録するものとする。また、到着ポート番号は、１バイトで表されるものとする。そうすると、Ｆｒｏｍ履歴メモリ６１のメモリサイズは、以下の通りである。
１０００×４×８＝３２０００ビット
すなわち、受信フレームのＩＤおよびデータの組を格納する方法と比較して、第１の実施形態の通信監視方法によれば、異常フレームの送信元を特定するために各ハブ装置が備えるメモリのサイズは削減される。また、第１の実施形態の通信監視方法においては、ハッシュ関数は不要である。
【００９７】
＜第２の実施形態＞
第１の実施形態では、ゲートウェイ装置４０とハブ装置５０との間でＦｒｏｍ履歴メモリ６１の同期がずれるおそれがある。例えば、ゲートウェイ装置４０が異常フレームを検知してハブ装置５０へ探索フレームを送信したときに、次のデータフレームに起因してハブ装置５０のＦｒｏｍ履歴メモリ６１が既に更新されていれば、ゲートウェイ装置４０とハブ装置５０との間でＦｒｏｍ履歴メモリ６１の内容は一致しない。この場合、異常フレームの送信元は特定されない。第２の実施形態は、この問題を解決する。
【００９８】
図１５は、第２の実施形態に係わる通信管理方法の一例を示す。なお、図１５に示す実施例では、ゲートウェイ装置４０は、ハブ装置５０間でデータフレームを転送しない。すなわち、ゲートウェイ装置４０は、ＨＵＢ１から受信するデータフレームをＨＵＢ２、ＨＵＢ３へ転送しない。同様に、ゲートウェイ装置４０は、ＨＵＢ２から受信するデータフレームをＨＵＢ１、ＨＵＢ３へ転送しない。また、ゲートウェイ装置４０は、ＨＵＢ３から受信するデータフレームをＨＵＢ１、ＨＵＢ２へ転送しない。
【００９９】
但し、ＨＵＢ１の配下に接続されるサブネットワーク（ＥＣＵ１１１〜ＥＣＵ１１３、ＥＣＵ１２１〜ＥＣＵ１２３）においては、データフレームはブロードキャストされる。同様に、ＨＵＢ２の配下に接続されるサブネットワークおよびＨＵＢ３の配下に接続されるサブネットワークにおいても、それぞれデータフレームはブロードキャストされる。なお、ゲートウェイ装置４０は、各サブネットワークにおいてブロードキャストされるデータフレームを受信することができる。
【０１００】
ゲートウェイ装置４０は、受信フレームカウンタ６２−１〜６２−３を有する。受信フレームカウンタ６２−１は、ゲートウェイ装置４０のポートＰ１を介して受信するデータフレームの個数をカウントする。すなわち、受信フレームカウンタ６２−１は、ＨＵＢ１の配下のサブネットワークにおいてブロードキャストされるデータフレームの個数をカウントする。同様に、受信フレームカウンタ６２−２は、ポートＰ２を介して受信するデータフレームの個数をカウントし、受信フレームカウンタ６２−３は、ポートＰ３を介して受信するデータフレームの個数をカウントする。
【０１０１】
ハブ装置５０は、受信フレームカウンタ６３を有する。受信フレームカウンタ６３は、ハブ装置５０が受信するデータフレームの個数をカウントする。
【０１０２】
図１５に示す例では、ＨＵＢ１の配下のサブネットワークにおいて、７個のデータフレームがブロードキャストされ、ゲートウェイ装置４０の受信フレームカウンタ６２−１、ＨＵＢ１およびＨＵＢ１１の受信フレームカウンタ６３のカウンタ値は「７」である。ただし、この後、ＥＣＵ１２２から送信されたデータフレームがＨＵＢ１２に到着し、ＨＵＢ１２の受信フレームカウンタ６３のカウンタ値が「７」から「８」に更新されている。すなわち、Ｆｒｏｍ履歴メモリ６１の同期ずれが発生している。
【０１０３】
ゲートウェイ装置４０は、異常フレームを検知すると、第１の実施形態と同様に、Ｆｒｏｍ履歴メモリ６１を参照して異常フレームが到着したポートを特定する。図１５に示す例では、「到着ポート：Ｐ１」および「順序：最新のデータフレームに対して１つ手前」が得られる。
【０１０４】
続いて、特定部４６は、Ｆｒｏｍ履歴メモリ６１において、異常フレームに対応する到着ポート番号よりも後に記録されている到着ポート番号のなかで、異常フレームに対応する到着ポート番号と同じ到着ポート番号の個数をカウントする。図１５に示す例では、異常フレームに対応する到着ポート番号は１であり、異常フレームに対応する到着ポート番号よりも後に記録されている「１」の個数は、１つである。以下の記載では、この個数を「後続フレーム数」と呼ぶことがある。
【０１０５】
特定部４６は、異常フレームが到着したポートに対応する受信フレームカウンタのカウンタ値から後続フレーム数を引算する。図１５に示す例では、受信フレームカウンタ６２−１のカウンタ値「７」から後続フレーム数「１」を引算することにより「６」が得られる。この引算の結果は、「最初に到着したデータフレームからカウントして６番目のデータフレームが異常フレームである」を表している。よって、ゲートウェイ装置４０は、この値を順序情報として探索フレームに格納して対応するハブ装置５０（図１５では、ＨＵＢ１）へ送信する。
【０１０６】
なお、図１５において、ゲートウェイ装置４０から送信される探索フレームに付与されている数字は、順序情報を表す。ここで、この実施例では、順序情報として「最初のデータフレームに対して６番目」が得られている。したがって、探索フレームに「６」が付与されている。
【０１０７】
探索フレームを受信したハブ装置５０は、受信フレームカウンタ６３のカウンタ値と順序情報の値との差分に基づいてＦｒｏｍ履歴メモリ６１を検索する。図１５に示すＨＵＢ１においては、受信フレームカウンタ６３のカウンタ値「７」と順序情報「６」との差分は「１」である。そうすると、特定部５２は、Ｆｒｏｍ履歴メモリ６１から「最新の到着ポート番号の１つ手前の到着ポート番号」を取得する。この結果、ＨＵＢ１のポートＰ３に異常フレームが到着したと判定される。そうすると、ＨＵＢ１は、ポートＰ３に接続するＨＵＢ１２へ探索フレームを送信する。
【０１０８】
ＨＵＢ１２において、受信フレームカウンタ６３のカウンタ値「８」と順序情報「６」との差分は「２」である。そうすると、特定部５２は、Ｆｒｏｍ履歴メモリ６１から「最新の到着ポート番号の２つ手前の到着ポート番号」を取得する。この結果、ＨＵＢ１２のポートＰ３に異常フレームが到着したと判定される。
【０１０９】
ＨＵＢ１およびＨＵＢ１２は、それぞれ、異常フレームが到着したポートを表すポート情報を含む探索フレームをゲートウェイ装置４０へ送信する。そして、ゲートウェイ装置４０は、第１の実施形態と同様に、各ハブ装置５０から収集する更新された探索フレームに基づいて、異常フレームの送信元を特定する。なお、更新された探索フレームから異常フレームの送信元を特定する方法は、第１の実施形態および第２の実施形態において実質的に同じである。
【０１１０】
このように、第２の実施形態においては、ゲートウェイ装置４０とハブ装置５０との間でＦｒｏｍ履歴メモリ６１の同期が確立していないときであっても、異常フレームの送信元が特定される。なお、第１の実施形態と比較すると、第２の実施形態においては、ハブ装置５０は受信フレームカウンタ６３を備える。ただし、受信フレームカウンタ６３を実現するためのメモリのサイズは小さい。たとえば、受信フレームカウンタ６３に対して３２ビットが割り当てられる。この場合、２32個の受信フレームをカウントすることができる。
【０１１１】
上述の実施例では、「最初に到着したデータフレームからカウントして何番目のデータフレームが異常フレームであるのか」を表す順序情報が探索フレームに格納されるが、第２の実施形態はこの方法に限定されるものではない。たとえば、ゲートウェイ装置４０およびハブ装置５０のＦｒｏｍ履歴メモリ６１が、定期的に、同時に初期化されるものとする。この場合、「Ｆｒｏｍ履歴メモリ６１が初期化されたときからカウントして何番目のデータフレームが異常フレームであるのか」を表す順序情報が探索フレームに格納されるようにしてもよい。すなわち、第２の実施形態の順序情報は、予め指定された受信フレームに対して異常フレームが到着した順序を表す。
【０１１２】
図１６は、第２の実施形態の変形例を示す。図１６に示す実施例では、ゲートウェイ装置４０は、ハブ装置５０間でデータフレームを転送する。すなわち、ある端末装置３０から送信されるデータフレームは、ネットワーク２００に接続されるすべての端末装置３０へブロードキャストされる。
【０１１３】
この場合、ゲートウェイ装置４０およびハブ装置５０は、それぞれ受信フレームカウンタ６４を備える。ゲートウェイ装置４０に設けられる受信フレームカウンタ６４は、ゲートウェイ装置４０に到着するデータフレームをカウントする。また、ハブ装置５０に設けられる受信フレームカウンタ６４は、ハブ装置５０に到着するデータフレームをカウントする。
【０１１４】
図１６に示す実施例では、ゲートウェイ装置４０は、最新の受信フレームの１つ前の受信フレームが異常フレームであると判定する。よって、ゲートウェイ装置４０は、Ｆｒｏｍ履歴メモリ６１を参照することにより、異常フレームが到着したポートがＰ１であると判定する。ここで、ゲートウェイ装置４０の受信フレームカウンタ６４のカウンタ値は７である。よって、ゲートウェイ装置４０は、「順序情報：６（先頭から６番目）」を含む探索フレームをＨＵＢ１へ送信する。
【０１１５】
ＨＵＢ１において、受信フレームカウンタ６４のカウンタ値「７」と順序情報「６」との差分は「１」である。この場合、ＨＵＢ１は、Ｆｒｏｍ履歴メモリ６１において最新の到着ポート番号の１つ前の到着ポート番号を取得することにより、異常フレームが到着したポートがＰ４であると判定する。よって、ゲートウェイ装置４０は、探索フレームをＨＵＢ１３へ送信する。また、ＨＵＢ１３において、受信フレームカウンタ６４のカウンタ値「８」と順序情報「６」との差分は「２」である。この場合、ＨＵＢ１３は、Ｆｒｏｍ履歴メモリ６１において最新の到着ポート番号の２つ前の到着ポート番号を取得することにより、異常フレームが到着したポートがＰ２であると判定する。なお、ゲートウェイ装置４０が各ハブ装置５０から更新された探索フレームを収集して異常フレームの送信元を特定する方法は、第１の実施形態および第２の実施形態において実質的に同じである。
【０１１６】
＜他の実施形態＞
上述の実施例では、ハブ装置５０は、更新した探索フレームをゲートウェイ装置４０へ送信するが、本発明はこの方法に限定されるものではない。例えば、探索フレームを受信したハブ装置５０は、ネットワーク２００の回線とは別に設けられている専用回線を利用して、異常フレームが到着したポートを表すポート情報をゲートウェイ装置４０へ通知してもよい。
【符号の説明】
【０１１７】
３０  端末装置（ＥＣＵ）
４０  ゲートウェイ装置
４２  プロセッサ
４４  記録部
４５  検知部
４６  特定部
４７  生成部
４８  送信部
４９  送信元特定部
５０  ハブ装置（ＨＵＢ）
５１  記録部
５２  特定部
５３  更新部
５４  送信部
６１  Ｆｒｏｍ履歴メモリ
６２−１〜６２−３、６３、６４  受信フレームカウンタ
２００  ネットワーク
【図１】
0006497142.tif 000002
【図２】
0006497142.tif 000003
【図３】
0006497142.tif 000004
【図４】
0006497142.tif 000005
【図５】
0006497142.tif 000006
【図６】
0006497142.tif 000007
【図７】
0006497142.tif 000008
【図８】
0006497142.tif 000009
【図９】
0006497142.tif 000010
【図１０】
0006497142.tif 000011
【図１１】
0006497142.tif 000012
【図１２】
0006497142.tif 000013
【図１３】
0006497142.tif 000014
【図１４】
0006497142.tif 000015
【図１５】
0006497142.tif 000016
【図１６】
0006497142.tif 000017