(57)【要約】【課題】ネットワーク対応機器の通信プロトコルの異常試験を簡単に実現する。【解決手段】通信異常発生装置１４は、通信制御部１４Ａと、通信ソフトウェア１５と被試験装置２との間で通信を行うため必要な情報と通信ソフトウェア１５が生成するアプリケーションデータに対する異常発生動作条件とが記憶された記憶部１４Ｄとを有し、通信ソフトウェア１５とプロトコルスタック１３におけるアプリケーションデータのやり取りが行われる間に配置される。通信制御部１４Ａは、記憶部１４Ｄに記憶された異常発生動作条件に基づいて、通信ソフトウェア１５が生成したアプリケーションデータを通信プロトコルの異常試験を行うための擬似アプリケーションデータに書き換えるとともに、この擬似アプリケーションデータをプロトコルスタック１３に送る。【選択図】図１
2010093431.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク対応機器である被試験装置（２）とネットワーク接続される試験対向装置（３）に組み込んで前記被試験装置の通信プロトコルの異常試験を行うときに用いられ、ネットワーク上で通信を行うための通信ソフトウェア（１５）と、前記被試験装置と通信するために必要な付加情報であるヘッダを前記通信ソフトウェアが生成するアプリケーションデータに付加するプロトコルスタック（１３）とを有する通信異常発生装置（１４）であって、
前記通信ソフトウェアと前記被試験装置との間で通信を行うために必要な情報と前記通信ソフトウェアが生成する前記アプリケーションデータに対する異常発生動作条件とが記憶された記憶部（１４Ｄ）を有しており、
前記通信ソフトウェアと前記プロトコルスタックにおける前記アプリケーションデータのやり取りが行われる間に配置され、
前記記憶部に記憶された異常発生動作条件に基づいて、前記通信ソフトウェアが生成した前記アプリケーションデータを前記通信プロトコルの異常試験を行うための擬似アプリケーションデータに書き換えるとともに、当該擬似アプリケーションデータを前記プロトコルスタックに送る通信制御部（１４Ａ）と、を備えたことを特徴とする通信異常発生装置。
【請求項２】
前記試験対向装置（３）が装備する物理ＮＩＣ（１１）とブリッジ接続され、複数の通信ソフトウェア（１５）それぞれにＩＰアドレスを割り当てて、前記複数の通信ソフトウェアをネットワーク上で通信させるための複数の仮想ＮＩＣ（１２）を備えたことを特徴とする請求項１記載の通信異常発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種ネットワーク対応機器の通信プロトコルの異常試験を行う際に用いられる通信異常発生装置に関する。
【背景技術】
【０００２】
従来より、各種ネットワーク対応機器の通信プロトコル試験は、通信相手となる試験対向装置と被試験装置とをネットワークで接続して行われる。
その際、専用のシミュレータを試験対向装置とする場合、サーバ等の実機を試験対向装置として用いる場合、ＰＣ等の端末を試験対向装置として試験用通信プログラム（以下、通信ソフトウェアと言う）を動作させる場合などがある。
【０００３】
しかしながら、上述した構成では、以下に示すような課題が存在していた。
（１）専用のシミュレータでは、装置自体が高価になる。
（２）サーバ等の実機では、容易に異常状態を発生させることができない。
（３）装置の構造やソースコードを読解して既存の通信ソフトウェアを改造する必要があり、その難易度が高い。
（４）多くの試験環境で用いられているサーバなどは、ソースコードが一般公開されておらず、環境も整備されていない。このため、バイナリオブジェクトしか入手できない場合が多く、改造自体ができない。
【０００４】
そこで、上記課題に対して、下記特許文献１に開示されるシステムが提案されている。この特許文献１に開示される回線障害発生システムは、図８に示すように、試験対向装置１０１と被試験装置１０２との間に通信異常発生装置１０３を配置し、それぞれの間がＬＡＮケーブルで接続される。この回線障害発生システムは、通信異常発生装置１０３によって異常を発生させる構成であり、試験対向装置１０１側の通信ソフトウェア１０１ａを改造することなく、被試験装置１０２の通信プロトコルの異常試験を行うことが可能である。
【特許文献１】特開２００２−００９８８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した特許文献１に開示される回線障害発生システムでは、以下に示すような課題が存在している。
（１）従来技術による試験構成において、データの伝送媒体が無線ＬＡＮ等のようなワイヤレス環境である場合、試験対向装置から送信された無線データは、途中の異常発生装置に届くタイミングで被試験装置にも届いてしまう。すなわち、異常発生装置によって改変したパケットと改変されていないオリジナルのパケットの両方が被試験装置に届いてしまうことになる。このため、無線ＬＡＮのように、被試験装置に対して改変したパケットのみを届けるためには、各装置をシールドボックス等によって遮蔽する必要があり、試験環境が非常に複雑になる。
（２）ＩＰＳｅｃやＳＳＬなどで暗号化通信を行う場合、通信経路上に配置した通信異常発生装置では暗号を復号しないとパケットの中身が判断できない。そのため、特定のパケットを選択して異常を発生することができない。
（３）通信異常発生装置において、ＴＣＰパケット等の偽造やセッションのなりすまし等を行った場合、試験対向装置のプロトコルスタックと、被試験装置のプロトコルスタックの状態に不整合が生じる。そのため、異常発生後に継続して試験を行うことができない。
【０００６】
なお、試験対向側の通信ソフトウェアと被試験装置側の通信ソフトウェア間の送受信データは、まず送信元の通信ソフトウェアから自身のプロトコルスタックに入力される。本発明では、この入力される送受信データを「アプリケーションデータ」と表記する。その後、プロトコルスタックにおいて、Ｅｔｈｅｒｎｅｔ（登録商標）ヘッダ、ＩＰヘッダ、ＴＣＰ／ＵＤＰヘッダなどが付与され通信相手へ送信される。本発明では、「アプリケーションデータ」と区別するため、プロコトルスタックにおいてヘッダが付与された状態の送受信データを「パケット」と表記する。
【０００７】
そこで、本発明は上記問題点に鑑みてなされたものであって、ネットワーク対応機器の通信プロトコルの異常試験を簡単に実現することができる通信異常発生装置を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の請求項１に記載された通信異常発生装置は、ネットワーク対応機器である被試験装置２とネットワーク接続される試験対向装置３に組み込んで前記被試験装置の通信プロトコルの異常試験を行うときに用いられ、ネットワーク上で通信を行うための通信ソフトウェア１５と、前記被試験装置と通信するために必要な付加情報であるヘッダを前記通信ソフトウェアが生成するアプリケーションデータに付加するプロトコルスタック１３とを有する通信異常発生装置１４であって、
前記通信ソフトウェアと前記被試験装置との間で通信を行うために必要な情報と前記通信ソフトウェアが生成する前記アプリケーションデータに対する異常発生動作条件とが記憶された記憶部１４Ｄを有しており、
前記通信ソフトウェアと前記プロトコルスタックにおける前記アプリケーションデータのやり取りが行われる間に配置され、
前記記憶部に記憶された異常発生動作条件に基づいて、前記通信ソフトウェアが生成した前記アプリケーションデータを前記通信プロトコルの異常試験を行うための擬似アプリケーションデータに書き換えるとともに、当該擬似アプリケーションデータを前記プロトコルスタックに送る通信制御部１４Ａと、を備えたことを特徴とする。
【０００９】
請求項２に記載された通信異常発生装置は、請求項１の通信異常発生装置において、
前記試験対向装置３が装備する物理ＮＩＣ１１とブリッジ接続され、複数の通信ソフトウェア１５それぞれにＩＰアドレスを割り当てて、前記複数の通信ソフトウェアをネットワーク上で通信させるための複数の仮想ＮＩＣ１２を備えたことを特徴とする。
【発明の効果】
【００１０】
本発明に係る通信異常発生装置は、通信異常を生じさせる機能を通信ソフトウェアとプロトコルスタックとの間に配置した構成なので、プロトコルスタック１３に受け渡される前のアプリケーションデータを直接変更することが可能となり、またプロトコルスタックが生成したパケットは、変更していないのでプロトコルスタックでの不整合が生じない。これにより、既存の通信ソフトウェアを改造したり、プロトコルスタックの不整合の処理をすることなく異常試験が可能となり、特に通信ソフトウェアが改造できない場合や改造の難易度が高い場合に有効である。
【００１１】
また、アプリケーションデータをフィルタリングするためのフィルタ定義と動作定義を組み合わせて異常発生動作条件として記憶部に記憶しておけば、様々なバリエーションの異常を発生させることが可能である。
【００１２】
さらに、既存の通信ソフトウェアが被試験装置のプロトコルシーケンスの一部分しか実装出来ていない場合でも、未実装部分を通信異常発生装置によって代替動作させることで試験を実施することが可能になる。また、通信仕様の変更などで通信ソフトウェアの改造が必要である場合に、通信ソフトウェアを改造することなくアプリケーションデータの書き換えが可能であり、被試験装置と通信ソフトウェアを同時に開発するような場合に有効である。
【００１３】
記憶部には、複数の試験対向装置を登録することが可能であり、それぞれ別々のＩＰアドレスを割り当てることができる。また、そのＩＰアドレスに応じて仮想ＮＩＣを生成することが可能になる。これにより、被試験装置に対して、あたかも複数のノードが動作しているように擬似することが可能であり、複数のノードが同時にアクセスするような試験や一つのノードだけが異常であるような試験を行う場合に有効である。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面を参照しながら具体的に説明する。図１は本発明に係る通信異常発生装置を含むネットワーク通信異常発生装置の全体構成を示すブロック図、図２は本発明に係る通信異常発生装置を中心とする送受信データの流れを示す図、図３は本発明に係る通信異常発生装置における起動画面の一例を示す図、図４は本発明に係る通信異常発生装置における試験対向ノード設定画面の一例を示す図、図５（ａ），（ｂ）は本発明に係る通信異常発生装置におけるログ確認画面の変更前後の表示の一部を示す図、図６は本発明に係る通信異常発生装置に記憶される試験対向ノード管理テーブルの一例を示す図、図７（ａ）〜（ｃ）は本発明に係る通信異常発生装置に記憶される異常発生動作定義テーブルの一例を示す図である。
【００１５】
本例のネットワーク通信異常発生装置１は、各種ネットワーク対応機器の通信プロトコルの異常試験を行う際に用いられるもので、図１に示すように、各種ネットワーク対応機器からなる被試験装置２と、被試験装置２と通信して試験を行うためのＰＣ等の端末からなる試験対向装置３とによって概略構成される。そして、試験の際には、被試験装置２と試験対向装置３とを１本の通信線（ＬＡＮケーブル）４により接続して通信を行う。
【００１６】
試験対向装置３は、図１及び図２に示すように、物理ＮＩＣ（Network Interface Card）１１と、仮想ＮＩＣ１２と、プロトコルスタック１３と、本発明の要部である通信異常発生装置１４と、通信ソフトウェア１５とを備えて構成される。
【００１７】
物理ＮＩＣ１１は、通常のＰＣ等の端末に標準で装備されるものであって、被試験装置２との間でＥｔｈｅｒｎｅｔ（登録商標）を介して通信するためのネットワークカードで構成される。
【００１８】
仮想ＮＩＣ１２は、１台のＰＣ等の端末で複数のノードを擬似するべく、物理ＮＩＣ１１に複数のＩＰアドレスを割り当てることが可能であり、１台の試験対向装置（ＰＣ等の端末）３上でそれぞれ別々のＩＰアドレスを持つ通信ソフトウェア１５を複数動作させる場合に設けられる。
【００１９】
なお、上記機能は、物理ＮＩＣ１１を複数台の試験対向装置３に装着することで実現可能であるが、例えば物理的に１００個の物理ＮＩＣ１１を装着することは不可能である。このため、本例では、物理ＮＩＣ１１を各仮想ＮＩＣ１２にブリッジ接続し、１台の試験対向装置３で複数のＩＰアドレスを持つ装置としてエミュレーションしている。これは、既に実現されている仮想化技術で使用されている技術である。
【００２０】
すなわち、１つの通信ソフトウェア１５に対して１つの仮想ＮＩＣ１２が対で関連付けられ、複数の通信ソフトウェア１５を同時に動作させる場合は、それぞれの通信ソフトウェア１５に対応して仮想ＮＩＣ１２が設けられることになる。なお、１つの通信ソフトウェア１５を動作させる場合には、仮想ＮＩＣ１２が省かれた構成となる。
【００２１】
プロトコルスタック１３は、通常のＰＣ等の端末で動作するＯＳ等に標準で装備されるもので、通信ソフトウェア１５が外部機器と通信するための通信プロトコル群であり、ネットワーク上の通信機器（被試験装置２）と通信するために必要な付加情報であるヘッダをアプリケーションデータに付加する機能を有している。また、プロトコルスタック１３は、図２に示すように、ＭＡＣ層、ＩＰ層、ＴＣＰ／ＵＤＰ層、通信用Ｉ／Ｆを備えている。
【００２２】
通信異常発生装置１４は、図１及び図２に示すように、通信制御部１４Ａ、設定制御部１４Ｂ、ログ管理部１４Ｃ、記憶部１４Ｄを備えて構成される。
【００２３】
通信制御部１４Ａは、既存の通信ソフトウェア１５と被試験装置２との間のアプリケーションデータのやり取りを制御するもので、プロトコルスタック１３と通信ソフトウェア１５との間に入って通信状態を把握し、試験条件に合致するか否かをフィルタリングする機能を有している。
【００２４】
さらに説明すると、通信制御部１４Ａは、図２に示すように、ｆａｋｅ通信用Ｉ／Ｆ１４Ａａ、擬似アプリケーションデータ生成部１４Ａｂ、管理部１４Ａｃを備えて構成される。
【００２５】
ｆａｋｅ通信用Ｉ／Ｆ１４Ａａは、通信ソフトウェア１５とプロトコルスタック１３との間に入ってアプリケーションデータを抽出するためのインターフェースであり、既存のプロトコルスタック１３の通信用Ｉ／Ｆと同じＩ／Ｆを持っている。そして、既存の通信ソフトウェア１５がリンクしている通信用Ｉ／Ｆのライブラリの実行アドレスを後述する設定制御部１４Ｂで設定された条件に基づいてｆａｋｅ通信用Ｉ／Ｆ１４Ａａの実行アドレスに書き換えることでアプリケーションデータがｆａｋｅ通信用Ｉ／Ｆ１４Ａａを経由することになり、アプリケーションデータが抽出できる。
【００２６】
ここで、上述したアプリケーションデータがｆａｋｅ通信用Ｉ／Ｆ１４Ａａを経由する仕組みについて簡単に説明する。プログラムを実行する場合、ＯＳは、プログラム実行用に用意したプロセスのメモリ空間（ＰＣのＯＳが管理するメモリ）に、実行モジュール本体と実行モジュールが依存しているＤＬＬ（ダイナミック・リンク・ライブラリ）をメモリにマッピングし、それ以降、ＤＬＬ内のコードを実行モジュールのプロセスの一部として扱う。これを利用し、自作のＤＬＬを所定のプロセスのメモリ空間に強制的にマッピングし、そこに含まれるコードを当該プロセスの一部として認識させる。この手法は一般に「ＤＬＬ  インジェクション」と呼ばれており、ＤＬＬ名を変更したり、メモリのマッピング方法自体を変更するなど複数の方法で実現することが可能である。
【００２７】
擬似アプリケーションデータ生成部１４Ａｂは、ｆａｋｅ通信用Ｉ／Ｆ１４ａ経由でやり取りするアプリケーションデータをバッファリングし、後述する記憶部１４Ｄに記憶されたテーブル情報に基づいてアプリケーションデータの改変、廃棄、遅延を行って擬似アプリケーションデータを生成している。
【００２８】
なお、擬似アプリケーションデータ生成部１４Ａｂの動作ログは、ログ管理部１４Ｃに通知されてログ管理部１４Ｃに逐次記憶されるようになっている。
【００２９】
管理部１４Ａｃは、後述する異常発生動作定義テーブル１４Ｄｂへの書込み・読出しのアクセス管理を行い、擬似アプリケーションデータ生成部１４Ａｂにフィルタ情報、動作内容を提供している。また、管理部１４Ａｃは、後述する試験対向ノード管理テーブル１４Ｄａにおいて、ノードのＩＤ、ＩＰアドレス、通信ソフトウェア情報、仮想ＮＩＣデバイスＩＤにより、通信ソフトウェア１５の動作（どの試験対向ノードで、どのＩＰアドレスで、どの仮想ＮＩＣを使って通信させるのか）を管理している。
【００３０】
なお、本例では、既存の通信ソフトウェア１５をそれぞれ個別のＩＰアドレスを持つ試験対向（試験対向ノード）として動作させることが可能であり、図１の一点鎖線で囲まれる部分が一つの試験対向ノードを表している。１ノードには、１つの通信ソフトウェア１５を動作させることが可能である。それぞれのノードは、ＩＰアドレスで識別され、そのＩＰアドレスとノード上で動作させる既存の通信ソフトウェア１５の情報（実行ファイルのパス、実行時のプロセスＩＤ）を一対として管理を行っている。また、それぞれのノード毎に、対応するＩＰアドレスを設定した仮想ＮＩＣ１２が割り当てられる。そして、ノードのＩＰアドレス、通信ソフトウェア１５の情報、仮想ＮＩＣの対応情報は、後述する試験対向ノード管理テーブル１４Ｄａに保持する。
【００３１】
設定制御部１４Ｂは、通信異常の各種条件設定を行うユーザインタフェースであり、試験環境の設定とフィルタおよび動作の設定、通信ソフトウェア等の各種アプリケーションのリンク先を定める実行アドレスの設定を提供している。
【００３２】
ここで、ユーザインタフェースについて図３及び図４を参照しながら簡単に説明する。図３は通信異常発生装置１４を含む試験対向装置３のＧＵＩイメージを示しており、装置を起動したときに表示される起動画面２１である。
【００３３】
起動画面２１は、試験対向ノードの設定、フィルタ条件の設定、異常発生時のログを確認する際に操作される各種ボタン（試験対向ノード設定ボタン２１ａ、フィルタ設定ボタン２１ｂ、ログ確認ボタン２１ｃ）を有している。また、何れかのボタンが押された際に、そのボタンに対応した詳細画面２２が表示されるようになっている。
【００３４】
図４は図３の起動画面２１において、試験対向ノード設定ボタン２１ａが押下されたときに詳細画面２２に表示される試験対向ノード設定画面を示している。この試験対向ノード設定画面において、ユーザは、追加したい試験対向ノードがあった場合、ボタンセット２３の追加ボタンを押下すると、ノードを表すノードアイコン２４が画面上に追加表示される。そして、追加表示されたノードアイコン２４をマウスデバイスでクリックすると、選択したノードの詳細内容がノード詳細設定画面２５に表示される。
【００３５】
このノード詳細画面２５では、試験対向ノードのＩＰアドレス、通信ソフトウェア１５のパス情報を指定することができる。通信ソフトウェア１５のパスは、直接入力する方法と、通信ソフトウェア１５のアイコンをマウスでドラッグし、ノードアイコン２４上にドロップすることでも設定することが可能である。
【００３６】
なお、ノード詳細設定画面２５の仮想ＮＩＣデバイスＩＤとプロセスＩＤは、ユーザが直接設定することができない情報である。また、仮想ＮＩＣデバイスについては、試験対向ノードの設定を保存した際に、ＯＳに対して通信ソフトウェア１５が生成・起動命令を行い、起動した際のデバイスＩＤを記憶部１４Ｄに記憶し、ノード詳細設定画面２５上に表示する。また、プロセスＩＤは、ユーザが通信ソフトウェア１５を実行する際にＯＳから割り当てられたものをノード詳細設定画面２５上に表示する。プロセスＩＤが設定時に割り当てられていない場合には、図４に示すように、例えば「＊＊＊＊＊」と表示される。
【００３７】
また、特に図示はしないが、図３の起動画面２１において、フィルタ設定ボタン２１ｂが押下された場合には、フィルタ設定画面が詳細画面２２に表示される。そして、このフィルタ設定画面において、フィルタに関する設定（フィルタＩＤ、内容）、フィルタにマッチした場合の動作設定（動作ＩＤ、種別（「改変」、「廃棄」、「遅延」）、内容）、フィルタと動作を関連付けする関連設定（ノードＩＤ、フィルタＩＤ、動作ＩＤ）が行われる。
【００３８】
さらに、図３の起動画面２１において、ログ確認ボタン２１ｃが押下された場合には、ログ確認画面が詳細画面２２に表示される。このログ確認画面には、アプリケーションデータの送受信の記憶が時間とともに表示される画面と、画面の任意行を選択することで、その行の詳細をバイナリ表示する画面と、バイナリを文字コードとしてＡＳＣII表示する画面（図５参照）とが表示されるようになっている。
【００３９】
設定制御部１４Ｂは、上述したユーザインタフェースによるユーザからの要求に対して、通信制御部１４Ａの管理部１４Ａｃとやり取りを行い、後述する記憶部１４Ｄの試験対向ノード管理テーブル１４Ｄａおよび異常発生動作定義テーブル１４Ｄｂに設定情報を記憶している。
【００４０】
なお、試験対向ノード管理テーブル１４Ｄａや異常発生動作定義テーブル１４Ｄｂは、被試験装置２に応じて試験前に予め記憶部１４Ｄに記憶させておく他、別途記憶させておいた各種外部記憶媒体や端末装置等から読み出して記憶部１４Ｄに記憶させておくこともできる。
【００４１】
ログ管理部１４Ｃは、通信ソフトウェア１５と被試験装置２との間のアプリケーションデータのやり取りが発生したタイミング、フィルタマッチング時に、時刻とともにログを逐次記憶している。
【００４２】
記憶部１４Ｄは、試験対向ノード管理テーブル１４Ｄａと異常発生動作定義テーブル１４Ｄｂとを記憶している。試験対向ノード管理テーブル１４Ｄａは、通信ソフトウェア１５と被試験装置２との間で通信を行うために必要な情報として、図６に示すように、ノード（ノードＩＤ）毎に、ＩＰアドレス、通信ソフトウェア情報、仮想ＮＩＣデバイスＩＤを関連づけたものである。
【００４３】
なお、通信ソフトウェア情報には、通信ソフトウェア１５の実行ファイルのパス情報とプロセス実行時のプロセスＩＤが保存される。また、プロセスＩＤは、ユーザが設定するのではなく、本例の試験対向装置３（通信異常発生装置１４）によって通信ソフトウェア１５が実行される際に、試験対向装置３（通信異常発生装置１４）のＯＳによって割り当てられるＩＤである。
【００４４】
異常発生動作定義テーブル１４Ｄｂは、通信ソフトウェア１５が生成するアプリケーションデータに対する異常発生動作条件として、図７（ａ），（ｂ），（ｃ）に示すように、フィルタとそのフィルタにマッチした場合の動作の関連を保持するためのフィルタ−動作関連テーブル１４Ｄｂ−１と、フィルタの詳細を定義したフィルタ定義テーブル１４Ｄｂ−２と、動作の詳細を定義した動作定義テーブル１４Ｄｂ−３の３つのテーブルで構成される。
【００４５】
フィルタ−動作関連テーブル１４Ｄｂ−１は、図７（ａ）に示すように、フィルタＩＤとそのフィルタにマッチした場合に作動させる動作ＩＤを関連づけしたもので、各ノード（ノードＩＤ）単位で定義することが可能である。
【００４６】
なお、フィルタ−動作関連テーブル１４Ｄｂ−１におけるフィルタＩＤと動作ＩＤは再利用が可能である。例えば、図７（ａ）の例では、ノード１に設定したフィルタＩＤ＝１と同じフィルタをノード２にも適用している。また、動作ＩＤについてもノード１のフィルタＩＤ＝２で実施する動作ＩＤ＝１００１と同様の動作ＩＤをノード２においても適用している。
【００４７】
フィルタ定義テーブル１４Ｄｂ−２は、フィルタの詳細条件を定義したもので、図７（ｂ）に示すように、トランスポート層のアプリケーションデータを先頭としたＯＦＦＳＥＴ値（どこのデータからフィルタするかを指定）と、フィルタ対象とするデータのバイト数であるＬＥＮＧＴＨ（どこまでフィルタするかを指定）と、ＥＱ（値が同じであることを意味する）か、ＮＥＱ（値が違うことを意味する）のいずれかの比較方法と、それに続いて、比較するデータの値をノード（ノードＩＤ）単位で記述する。
【００４８】
動作定義テーブル１４Ｄｂ−３は、動作の詳細定義を保持するもので、動作の種別には、図７（ｃ）に示すように、「廃棄」、「改変」、「遅延」の３種類がある。「廃棄」はアプリケーションデータを廃棄することを意味している。「遅延」は、内容に記述されたＷＡＩＴ＝の値（ｍｓ単位）の時間分、アプリケーションデータの送受信を遅延させることを意味している。「改変」は、ＯＦＦＳＥＴとＬＥＮＧＴＨで指定されたデータ部分を、ＣＨＡＮＧＥ＝で指定された値に書き換えることを意味している。
【００４９】
通信ソフトウェア１５は、ネットワーク上で通信を行うためのものであり、被試験装置２の通信対向となる既存のソフトウェアであって、試験対向装置３内に１つ乃至複数設けられ（図１の例では２つ）、それぞれ別々のＩＰアドレスを割り当てることが可能で、複数同時に動作させることも可能である。
【００５０】
なお、本例では、それぞれの通信ソフトウェア１５を識別する単位として「ノード」という表現を用いている。
【００５１】
次に、上記構成によるネットワーク通信異常発生装置１における送受信データの流れについて図２を参照しながら簡単に説明する。
【００５２】
なお、図２において、従来のパケットデータの流れを点線矢印で示し、本例における送受信データの流れを実線矢印で示している。
【００５３】
従来のパケットデータの流れは、既存の通信ソフトウェア１５からアプリケーションデータを送信する場合、図２に示すように、プロトコルスタック１３が提供する通信用Ｉ／Ｆを経由して、ＴＣＰ／ＩＰの各レイヤを通過して物理ＮＩＣ１１へとデータが受け渡される。受信の場合は反対経路でアプリケーションデータが受け渡される。
【００５４】
これに対し、上述した本例の構成を採用すると、既存の通信ソフトウェア１５からアプリケーションデータを送信する場合、図２に示すように、通信ソフトウェア１５からｆａｋｅ通信用Ｉ／Ｆ１４Ａａ、擬似アプリケーションデータ生成部１４Ａｂと経由して、プロトコルスタック１３へアプリケーションデータが受け渡される。受信の場合はその逆である。
【００５５】
次に、本例のネットワーク通信異常発生装置１における具体的な試験の流れの一例について説明する。
【００５６】
ここでは、一例として、被試験装置２をＷｅｂサーバ、試験対向装置３内で動作する既存の通信ソフトウェア１５をＷｅｂブラウザとして試験を実施する場合の流れについて説明する。
【００５７】
なお、通信ソフトウェア１５には、例で示したＷｅｂブラウザの他に、ＷｅｂサーバやＦＴＰサーバ、クライアント、ＤＨＣＰサーバ、ＤＮＳサーバなど様々なネットワーク通信ソフトウェアを適用することが可能である。
【００５８】
・異常発生内容
ＷｅｂブラウザとＷｅｂサーバ間の通信において、ＷｅｂクライアントからのＧＥＴメソッドを以下のように改変した場合のＷｅｂサーバの内部状態と返送メッセージを確認する。ＷｅｂサーバのＩＰアドレスは、１９２．１６８．１．１００、ＷｅｂクライアントのＩＰアドレスを１９２．１６８．１．１とする。
【００５９】
・試験の流れ
（１）試験環境の設定
装置を起動して図３に示す起動画面２１の試験対向ノード設定ボタン２１ａを例えばマウスでクリックすると、図４に示す試験対向ノード設定画面を詳細画面２２に表示する。続いて、試験対向ノード設定画面において、ボタンセット２３の追加ボタンを押下すると、新規ノードのノードアイコン２４を表示する。
【００６０】
次に、ノードアイコン２４として表示された「ノード  ＩＤ＝１」をクリックすると、クリックしたノードの詳細設定画面２５を表示する。このノードの詳細設定画面２５において、ＩＰアドレスには、ＷｅｂクライアントのＩＰアドレスである１９２．１６８．１．１を入力する。また、Ｗｅｂクライアントのパスには、例えば今回使用するＷｅｂクライアントソフトウェアの「Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ（登録商標）」のパスを入力する。この際、「Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ（登録商標）」のアイコンをノードアイコン２４にドラッグ＆ドロップしてもパスを設定することも可能である。
【００６１】
以上の入力を終えた後にボタンセット２３の保存ボタンを押下すると、ＩＰアドレスと通信ソフトウェア情報が記憶部１４Ｄの試験対向ノード管理テーブル１４Ｄａに記憶される。続いて、仮想ＮＩＣデバイスの生成・起動を行い、記憶部１４Ｄの試験対向ノード管理テーブル１４Ｄａに記憶しているＩＰアドレスを仮想ＮＩＣデバイスに設定する。そして、仮想ＮＩＣデバイスの生成時に取得できるデバイスＩＤを記憶部１４Ｄの試験対向ノード管理テーブル１４Ｄａに記憶する。
【００６２】
（２）異常発生条件の設定
図３に示す起動画面２１のフィルタ設定ボタン２１ｂを例えばマウスでクリックすると、フィルタ設定画面を詳細画面２２に表示する。このフィルタ設定画面において、ボタンセットの追加ボタンを押下した後、フィルタ設定画面のフィルタＩＤ領域にフィルタＩＤとして「１」を入力する。また、フィルタ設定画面の内容領域に、ＯＦＦＳＥＴ＝１１バイト目から３バイトのデータが「１．１」である場合にフィルタにマッチさせる旨の内容を入力する。以上の入力を終えた後にフィルタ設定画面の保存ボタンを押下する。これにより、フィルタＩＤ＝１のエントリがフィルタ定義テーブル１４Ｄｂ−２に記憶される。
【００６３】
続いて、動作設定画面の追加ボタンを押下し、動作設定画面の動作ＩＤ領域に対し、動作ＩＤとして「１０００」を入力する。また、動作設定画面の種別領域で「改変」を選択し、「１．１」から「５．０」に変更するためのフィルタ内容を動作設定画面の内容領域に入力する。以上の入力を終えた後に動作設定画面の保存ボタンを押下する。これにより、動作ＩＤ＝１０００のエントリが動作定義テーブル１４Ｄｂ−３に記憶される。
【００６４】
続いて、関連設定画面の追加ボタンを押下すると、関連設定画面のノードＩＤ領域に「１」が設定される。そして、関連設定画面のフィルタＩＤで「１」を選択し、動作ＩＤで「１０００」を選択した後に関連設定画面の保存ボタンを押下すると、ノードＩＤ＝１、フィルタＩＤ＝１、動作ＩＤ＝１０００のエントリがフィルタ−動作関連テーブル１４Ｄｂ−１に記憶される。
【００６５】
（３）試験実施
Ｗｅｂサーバである被試験装置２とＷｅｂブラウザが動作する試験対向装置３をＥｔｈｅｒｎｅｔ（登録商標）ケーブルで接続する。その後、Ｗｅｂブラウザを起動し、ＷｅｂサーバのホームページＵＲＬを指定してアクセスすると、ＷｅｂブラウザがＧＥＴメソッドメッセージを通信制御部１４Ａのｆａｋｅ通信用Ｉ／Ｆ１４Ａａを経由して送信する。
【００６６】
その際、ｆａｋｅ通信用Ｉ／Ｆ１４Ａａは、記憶部１４Ｄの試験対向ノード管理テーブル１４Ｄａを確認し、メッセージを送信した通信ソフトウェア１５がどのノードＩＤかを把握する。そして、ｆａｋｅ通信用Ｉ／Ｆ１４Ａａは、送信するメッセージとノードＩＤを擬似アプリケーションデータ生成部１４Ａｂに引き渡す。
【００６７】
続いて、管理部１４Ａｃは、引き渡したメッセージとノードＩＤに基づいて記憶部１４Ｄのフィルタ定義テーブル１４Ｄｂ−２と動作定義テーブル１４Ｄｂ−３を検索し、マッチするか否かを検証する。そして、フィルタにマッチした場合は、該当する動作定義にしたがって、アプリケーションデータを改変する。この際、擬似アプリケーションデータ生成部１４Ａｂは、ログ管理部１４Ｃに対して、ログを記憶するよう要求し、ログ管理部１４Ｃがログを記憶する。
【００６８】
そして、ｆａｋｅ通信用Ｉ／Ｆ１４Ａａは、プロトコルスタック１３の通信用Ｉ／Ｆに改変後のＧＥＴメソッドメッセージを引き渡す。この引き渡されたデータは、プロトコルスタック１３を経由し、送信元ＩＰアドレスにしたがって、仮想ＮＩＣデバイスを経由してメッセージを送信する。
【００６９】
なお、送信元ＩＰアドレスと仮想ＮＩＣの関連付けは、プロトコルスタック１３のＩＰ層およびＭＡＣ層の機能によって自動的に行われる。
【００７０】
その後、Ｗｅｂサーバから応答メッセージが返送されると、受信したデータは、プロトコルスタック１３を経由してｆａｋｅ通信用Ｉ／Ｆ１４Ａａに引き渡される。ｆａｋｅ通信用Ｉ／Ｆ１４Ａａは、引き渡されたメッセージを擬似アプリケーションデータ生成部１４Ａｂに引き渡し、ログ管理部１４Ｃがそのときのログを記憶する。その後、ｆａｋｅ通信用Ｉ／Ｆ１４Ａａ経由で通信ソフトウェア１５にデータが引き渡される。
【００７１】
（４）異常発生結果確認
図３に示す起動画面２１のログ確認ボタン２１ｃを例えばマウスでクリックすると、ログ確認画面を詳細画面２２に表示する。このログ確認画面において、該当するアプリケーションデータを例えばマウスでクリックすると、該当アプリケーションデータの詳細を表示する。ユーザは、フィルタの設定どおり、「１．１」という文字列が「５．０」に変更されて出力されていることを表示から確認する（図５（ａ），（ｂ）の点線で囲まれた文字列）。また、Ｗｅｂサーバ上のログなどでＷｅｂサーバの挙動を確認する。さらに、ログ確認画面において、Ｗｅｂサーバから返送されてきたメッセージの内容を確認する。また、Ｗｅｂクライアントの画面やログなどを確認して、Ｗｅｂクライアントの挙動を確認する。
【００７２】
このように、本例のネットワーク通信異常発生装置によれば、通信異常発生装置１４をプロトコルスタック１３と通信ソフトウェア１５との間に配置して試験対向装置３に組み込む構成により、プロコトルスタック１３に受け渡される前のアプリケーションデータを直接変更することが可能となり、通信ソフトウェア１５とプロトコルスタック１３との間の依存関係を維持、制御しながら通信異常を発生させることができる。これにより、既存の通信ソフトウェアを改造することなく異常試験を行うことができ、通信ソフトウェアの改造ができない場合や改造の難易度が高い場合などにおいて有効である。
【００７３】
異常発生動作条件として、アプリケーションデータをフィルタリングするためのフィルタ定義と動作定義を定義し、それぞれの組み合わせを図６及び図７に示すようなテーブル形式で関連付けて記憶部１４Ａに記憶保持させておけば、フィルタを変更するだけで様々なバリエーションの異常を発生させて試験を実施することが可能となる。
【００７４】
既存の通信ソフトウェア１５が被試験装置２のプロトコルシーケンスの一部分しか実装できていない場合でも、未実装部分を異常発生動作条件に基づくフィルタ処理により代替動作させることで試験を実施することが可能となる。また、通信仕様の変更などで通信ソフトウェア１５の改造が必要である場合に、通信ソフトウェア１５を改造することなくフィルタの変更によってアプリケーションデータを書き換えることが可能となり、被試験装置２と通信ソフトウェア１５を同時に開発するような場合に有効である。
【００７５】
試験対向ノード管理テーブル１４Ｄａには、複数の通信ソフトウェア１５を登録することが可能で、それぞれ別々のＩＰアドレスを割り当てることができる。しかも、そのＩＰアドレスに応じて仮想ＮＩＣ１２を生成することが可能となる。これにより、被試験装置２に対して、あたかも複数のノードが動作しているように擬似することが可能となり、複数のノードが同時にアクセスするような試験や一つのノードだけが異常であるような試験を行う場合に有効である。
【００７６】
ＩＰＳｅｃなどはプロトコルスタック１３が暗号化や圧縮を行うが、プロトコルスタック１３が行う暗号化前のアプリケーションデータに対して、異常を発生させることにより容易に暗号化通信での異常発生が可能になる。
【００７７】
プロトコルスタック１３に対しても制御することが可能であり、プロトコルスタック１３の状態を確認したり、通信路に対するパラメータの変更なども可能となり、プロトコルスタック１３の状態を維持しながら通信異常を発生させることができる。
【００７８】
通信ソフトウェア１５がプロトコルスタック１３に送信要求を行ったタイミングで送信動作をブロックすることが可能となり、通信ソフトウェア１５自体の動作を一時停止させるなどの制御を行うことができる。以上により、既存の通信ソフトウェアを改造することなく、暗号化通信時の異常試験や異常発生後の継続試験が可能になる。
【００７９】
ところで、上述した実施の形態では、被試験装置２と試験対向装置３との間が通信線４により有線接続された構成について説明したが、無線ＬＡＮによって被試験装置２と試験対向装置３との間をネットワーク接続する構成としてもよい。この場合、従来のように、シールドボックスなどによって各装置を遮蔽する必要もなく、試験対向装置３に組み込まれた通信異常発生装置１４で異常発生を行うことができる。
【図面の簡単な説明】
【００８０】
【図１】本発明に係る通信異常発生装置を含むネットワーク通信異常発生装置の全体構成を示すブロック図である。
【図２】本発明に係る通信異常発生装置を中心とする送受信データの流れを示す図である。
【図３】本発明に係る通信異常発生装置における起動画面の一例を示す図である。
【図４】本発明に係る通信異常発生装置における試験対向ノード設定画面の一例を示す図である。
【図５】（ａ），（ｂ）  本発明に係る通信異常発生装置におけるログ確認画面の変更前後の表示の一部を示す図である。
【図６】本発明に係る通信異常発生装置に記憶される試験対向ノード管理テーブルの一例を示す図である。
【図７】（ａ）〜（ｃ）  本発明に係る通信異常発生装置に記憶される異常発生動作定義テーブルの一例を示す図である。
【図８】特許文献１に開示される回線障害発生システムの概略構成図である。
【符号の説明】
【００８１】
１  ネットワーク通信異常発生装置
２  被試験装置
３  試験対向装置
４  通信線
１１  物理ＮＩＣ
１２  仮想ＮＩＣ
１３  プロトコルスタック
１４  通信異常発生装置
１４Ａ  通信制御部
１４Ａａ  ｆａｋｅ通信用Ｉ／Ｆ
１４Ａｂ  擬似アプリケーションデンータ生成部
１４Ａｃ  管理部
１４Ｂ  設定制御部
１４Ｃ  ログ管理部
１４Ｄ  記憶部
１４Ｄａ  試験対向ノード管理テーブル
１４Ｄｂ  異常発生動作定義テーブル
１４Ｄｂ−１  フィルタ−動作関連テーブル
１４Ｄｂ−２  フィルタ定義テーブル
１４Ｄｂ−３  動作定義テーブル
１５  通信ソフトウェア
２１  起動画面
２１ａ  試験対向ノード設定ボタン
２１ｂ  フィルタ設定ボタン
２１ｃ  ログ確認ボタン
２２  詳細画面
２３  ボタンセット
２４  ノードアイコン
２５  ノード詳細設定画面
【図１】
2010093431.tif 000003
【図２】
2010093431.tif 000004
【図３】
2010093431.tif 000005
【図４】
2010093431.tif 000006
【図５】
2010093431.tif 000007
【図６】
2010093431.tif 000008
【図７】
2010093431.tif 000009
【図８】
2010093431.tif 000010