(57)【特許請求の範囲】
【請求項１】
パケット交換ネットワーク内で送受信される通信パケットを処理するパケット通信処理装置であって、
上記パケット通信処理装置の動作を制御する制御手段と、
上記パケット通信処理装置の動作を制御するためのオペレーティングシステムのプログラムと、通信パケットを用いて通信を行う通信機器を仮想的に実現するための仮想デバイスの機能を実行する仮想デバイスプログラムとを格納し、上記制御手段が上記オペレーティングシステム上で上記仮想デバイスプログラムを実行したとき、少なくとも１つのネットワークインタフェースをそれぞれ有しかつ互いに異なる仮想デバイス識別子がそれぞれ割り当てられた複数の仮想デバイスが動作するように、上記各仮想デバイスの機能を実行するために必要な実行プログラムとそれを実行するために必要なデータとを格納する記憶手段とを備え、
上記制御手段は、
上記通信パケットが上記各仮想デバイスの各ネットワークインタフェースを通過したときに、当該ネットワークインタフェースを有する仮想デバイスの仮想デバイス識別子と、当該ネットワークインタフェースのネットワークインタフェース名と、当該通信パケットが送信されたのか又は受信されたのかを表す送受信識別子と、当該通信パケットに含まれる送信元アドレスと、当該通信パケットに含まれる宛先アドレスと、当該通信パケットに含まれるプロトコルを表すデータとを含む通信ログパケットを生成し、
上記生成された複数の通信ログパケットを、上記各通信ログパケットが上記各ネットワークインタフェースを通過した時系列の順序で含む通信ログファイルを生成して上記記憶手段に格納し、
上記格納された複数の通信ログパケットを含む通信ログファイルにおいて、当該複数の通信ログパケットのうち、互いに同一のプロトコルを有し、かつ、
（ａ）各通信ログパケットの上記送信元アドレスが同一でありかつ上記宛先アドレスが同一である通信ログパケットと、
（ｂ）各通信ログパケットの上記宛先アドレスが上記同一の送信元アドレスに一致しかつ上記送信元アドレスが上記同一の宛先アドレスに一致する通信ログパケットとが同一の通信ログパケットグループに属するように、上記格納された複数の通信ログパケットを分類することを特徴とするパケット通信処理装置。
【請求項２】
上記送信元アドレスは送信元ＩＰ（Internet Protocol）アドレスであり、
上記宛先アドレスは宛先ＩＰアドレスであり、
上記プロトコルは、インターネットプロトコルよりも上位である上位プロトコルであることを特徴とする請求項１記載のパケット通信処理装置。
【請求項３】
上記通信パケットは、上記プロトコルがＩＣＭＰ（Internet Control Message Protocol）であるとき、エコー要求のための通信パケットと当該エコー要求に対するエコー応答のための通信パケットとの組を識別するためのＩＣＭＰパケット識別子及びＩＣＭＰパケットシーケンス番号を含むエコー識別データをさらに含み、
上記制御手段は、上記通信ログパケットグループにおいて上記同一のプロトコルがＩＣＭＰであるとき、当該通信ログパケットグループに含まれる通信ログパケットを、互いに同一のエコー識別データを有する通信ログパケットが同一の通信ログパケットサブグループに属するように分類することを特徴とする請求項２記載のパケット通信処理装置。
【請求項４】
上記パケット通信処理装置は表示手段をさらに備え、
上記制御手段は、
（ａ）上記同一の通信ログパケットグループに属する各通信ログパケットの時系列の順序と、
（ｂ）上記同一の通信ログパケットグループに属する各通信ログパケットにそれぞれ含まれる上記仮想デバイス識別子と、上記ネットワークインタフェース名と、上記送受信識別子とに基づいて、
当該同一の通信ログパケットグループに属する各通信ログパケットで示される通信パケットの通信経路を識別し、当該識別された通信パケットの通信経路を上記表示手段に表示することを特徴とする請求項１又は２記載のパケット通信処理装置。
【請求項５】
上記パケット通信処理装置は表示手段をさらに備え、
上記制御手段は、
（ａ）ＩＣＭＰ以外の上記同一のプロトコルを有する上記同一の通信ログパケットグループに属する各通信ログパケットの時系列の順序と、
（ｂ）ＩＣＭＰ以外の上記同一のプロトコルを有する上記同一の通信ログパケットグループに属する各通信ログパケットにそれぞれ含まれる上記仮想デバイス識別子と、上記ネットワークインタフェース名と、上記送受信識別子とに基づいて、
当該ＩＣＭＰ以外の上記同一のプロトコルを有する同一の通信ログパケットグループに属する各通信ログパケットで示される通信パケットの通信経路を識別し、当該識別された通信パケットの通信経路を上記表示手段に表示し、
（ａ）ＩＣＭＰである上記同一のプロトコルを有する上記同一の通信ログパケットサブグループに属する各通信ログパケットの時系列の順序と、
（ｂ）ＩＣＭＰである上記同一のプロトコルを有する上記同一の通信ログパケットサブグループに属する各通信ログパケットにそれぞれ含まれる上記仮想デバイス識別子と、上記ネットワークインタフェース名と、上記送受信識別子とに基づいて、
当該ＩＣＭＰである上記同一のプロトコルを有する同一の通信ログパケットサブグループに属する各通信ログパケットで示される通信パケットの通信経路を識別し、当該識別された通信パケットの通信経路を上記表示手段に表示することを特徴とする請求項３記載のパケット通信処理装置。
【請求項６】
上記通信ログパケットは、送信元ＭＡＣ（Media Access Control）アドレスと、宛先ＭＡＣアドレスとをさらに含み、
上記制御手段は、上記識別された通信パケットの通信経路上に上記送信元ＭＡＣアドレス及び上記宛先ＭＡＣアドレスをさらに表示することを特徴とする請求項４又は５記載のパケット通信処理装置。
【請求項７】
上記オペレーティングシステムのプログラムはリナックス（登録商標）であり、
上記仮想デバイスプログラムはユーザモードリナックスであることを特徴とする請求項１乃至６のうちのいずれか１つに記載のパケット通信処理装置。
【請求項８】
上記各仮想デバイスの機能は、上記通信パケットのルーティング機能又は送受信機能であることを特徴とする請求項１乃至７のうちのいずれか１つに記載のパケット通信処理装置。
【請求項９】
パケット交換ネットワーク内で送受信される通信パケットを処理するパケット通信処理装置の制御方法であって、
上記パケット通信処理装置は、
上記パケット通信処理装置の動作を制御する制御手段と、
上記パケット通信処理装置の動作を制御するためのオペレーティングシステムのプログラムと、通信パケットを用いて通信を行う通信機器を仮想的に実現するための仮想デバイスの機能を実行する仮想デバイスプログラムとを格納し、上記制御手段が上記オペレーティングシステム上で上記仮想デバイスプログラムを実行したとき、少なくとも１つのネットワークインタフェースをそれぞれ有しかつ互いに異なる仮想デバイス識別子がそれぞれ割り当てられた複数の仮想デバイスが動作するように、上記各仮想デバイスの機能を実行するために必要な実行プログラムとそれを実行するために必要なデータとを格納する記憶手段とを備え、
上記制御方法は、
上記制御手段が、上記通信パケットが上記各仮想デバイスの各ネットワークインタフェースを通過したときに、当該ネットワークインタフェースを有する仮想デバイスの仮想デバイス識別子と、当該ネットワークインタフェースのネットワークインタフェース名と、当該通信パケットが送信されたのか又は受信されたのかを表す送受信識別子と、当該通信パケットに含まれる送信元アドレスと、当該通信パケットに含まれる宛先アドレスと、当該通信パケットに含まれるプロトコルを表すデータとを含む通信ログパケットを生成するステップと、
上記制御手段が、上記生成された複数の通信ログパケットを、上記各通信ログパケットが上記各ネットワークインタフェースを通過した時系列の順序で含む通信ログファイルを生成して上記記憶手段に格納するステップと、
上記制御手段が、上記格納された複数の通信ログパケットを含む通信ログファイルにおいて、当該複数の通信ログパケットのうち、互いに同一のプロトコルを有し、かつ、
（ａ）各通信ログパケットの上記送信元アドレスが同一でありかつ上記宛先アドレスが同一である通信ログパケットと、
（ｂ）各通信ログパケットの上記宛先アドレスが上記同一の送信元アドレスに一致しかつ上記送信元アドレスが上記同一の宛先アドレスに一致する通信ログパケットとが同一の通信ログパケットグループに属するように、上記格納された複数の通信ログパケットを分類するステップとを含むことを特徴とするパケット通信処理装置の制御方法。
【請求項１０】
上記送信元アドレスは送信元ＩＰアドレスであり、
上記宛先アドレスは宛先ＩＰアドレスであり、
上記プロトコルは、インターネットプロトコルよりも上位である上位プロトコルであることを特徴とする請求項９記載のパケット通信処理装置の制御方法。
【請求項１１】
上記通信パケットは、上記プロトコルがＩＣＭＰであるとき、エコー要求のための通信パケットと当該エコー要求に対するエコー応答のための通信パケットとの組を識別するためのＩＣＭＰパケット識別子及びＩＣＭＰパケットシーケンス番号を含むエコー識別データをさらに含み、
上記制御方法は、上記制御手段が、上記通信ログパケットグループにおいて上記同一のプロトコルがＩＣＭＰであるとき、当該通信ログパケットグループに含まれる通信ログパケットを、互いに同一のエコー識別データを有する通信ログパケットが同一の通信ログパケットサブグループに属するように分類するステップをさらに含むことを特徴とする請求項１０記載のパケット通信処理装置の制御方法。
【請求項１２】
上記パケット通信処理装置は表示手段をさらに備え、
上記制御方法は、上記制御手段が、
（ａ）上記同一の通信ログパケットグループに属する各通信ログパケットの時系列の順序と、
（ｂ）上記同一の通信ログパケットグループに属する各通信ログパケットにそれぞれ含まれる上記仮想デバイス識別子と、上記ネットワークインタフェース名と、上記送受信識別子とに基づいて、
当該同一の通信ログパケットグループに属する各通信ログパケットで示される通信パケットの通信経路を識別し、当該識別された通信パケットの通信経路を上記表示手段に表示するステップをさらに含むことを特徴とする請求項９又は１０記載のパケット通信処理装置の制御方法。
【請求項１３】
上記パケット通信処理装置は表示手段をさらに備え、
上記制御方法は、
上記制御手段が、
（ａ）ＩＣＭＰ以外の上記同一のプロトコルを有する上記同一の通信ログパケットグループに属する各通信ログパケットの時系列の順序と、
（ｂ）ＩＣＭＰ以外の上記同一のプロトコルを有する上記同一の通信ログパケットグループに属する各通信ログパケットにそれぞれ含まれる上記仮想デバイス識別子と、上記ネットワークインタフェース名と、上記送受信識別子とに基づいて、
当該ＩＣＭＰ以外の上記同一のプロトコルを有する同一の通信ログパケットグループに属する各通信ログパケットで示される通信パケットの通信経路を識別し、当該識別された通信パケットの通信経路を上記表示手段に表示するステップと、
上記制御手段が、
（ａ）ＩＣＭＰである上記同一のプロトコルを有する上記同一の通信ログパケットサブグループに属する各通信ログパケットの時系列の順序と、
（ｂ）ＩＣＭＰである上記同一のプロトコルを有する上記同一の通信ログパケットサブグループに属する各通信ログパケットにそれぞれ含まれる上記仮想デバイス識別子と、上記ネットワークインタフェース名と、上記送受信識別子とに基づいて、
当該ＩＣＭＰである上記同一のプロトコルを有する同一の通信ログパケットサブグループに属する各通信ログパケットで示される通信パケットの通信経路を識別し、当該識別された通信パケットの通信経路を上記表示手段に表示するステップとをさらに含むことを特徴とする請求項１１記載のパケット通信処理装置の制御方法。
【請求項１４】
上記通信ログパケットは、送信元ＭＡＣアドレスと、宛先ＭＡＣアドレスとをさらに含み、
上記制御方法は、上記制御手段が、上記識別された通信パケットの通信経路上に上記送信元ＭＡＣアドレス及び上記宛先ＭＡＣアドレスをさらに表示するステップをさらに含むことを特徴とする請求項１２又は１３記載のパケット通信処理装置の制御方法。
【請求項１５】
上記オペレーティングシステムのプログラムはリナックス（登録商標）であり、
上記仮想デバイスプログラムはユーザモードリナックスであることを特徴とする請求項９乃至１４のうちのいずれか１つに記載のパケット通信処理装置の制御方法。
【請求項１６】
上記各仮想デバイスの機能は、上記通信パケットのルーティング機能又は送受信機能であることを特徴とする請求項９乃至１５のうちのいずれか１つに記載のパケット通信処理装置の制御方法。
【請求項１７】
請求項９乃至１６のうちのいずれか１つに記載のパケット通信処理装置のための制御方法における各ステップを含むことを特徴とするプログラム。
【請求項１８】
請求項１７記載のプログラムを格納したことを特徴とするコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置及びルータなどの通信機器の機能を仮想的に実現するための仮想デバイス（以下、仮想機器又は仮想マシンともいう。）を用いて、例えばＩＰ（Internet Protocol）ネットワークなどのパケット交換ネットワークを仮想的に構築し、当該パケット交換ネットワーク内で送受信される通信パケットを処理するパケット通信処理装置及びその制御方法に関する。また、上記パケット通信処理装置のための制御方法における各ステップを含むプログラム、並びに、当該プログラムを格納したコンピュータにより読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
従来、パケット交換ネットワークを構成する各通信機器の各ネットワークインタフェース毎に、ネットワークインタフェースを通過する通信パケット（以下、パケットともいう。）を取得（以下、捕捉又はキャプチャともいう。）して、送信元ＩＰアドレス及び宛先ＩＰアドレスなどの取得したパケットの情報を含む通信ログデータを生成したり、当該パケットの情報を表示装置に表示したりするための装置及びソフトウェアのプログラムが開発されている。ネットワーク管理者などの作業者は、このような装置又はプログラムを用いることにより、パケット交換ネットワークで障害が発生したときにどの通信機器に問題があるのかを調べたり、設計通りにパケットが送受信されているのかを調べたりできる（特許文献１乃至３参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１７３９３１号公報。
【特許文献２】特開２０１０−１２４４３０号公報。
【非特許文献】
【０００４】
【非特許文献１】上田拓実ほか、「仮想Linux環境を用いたネットワーク教育システムのための仮想ルータとＧＵＩの実装」、第６回情報科学技術フォーラム講演論文集、２００７年９月、Ｊ−０２６。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来は、各通信機器のネットワークインタフェース毎に通信ログデータが生成されるため、作業者は、パケットがどのように送受信されているのかを確認するためには、通信ログデータの内容を理解できる必要があり、さらに複数の通信ログデータに基づいてパケットの通信経路を特定する必要があった。
【０００６】
本発明の目的は以上の問題点を解決し、通信機器間で送受信されるパケットの情報を、従来技術に比較して作業者が簡単に確認できるパケット通信処理装置及びその制御方法並びにプログラム及び記録媒体を提供することにある。
【課題を解決するための手段】
【０００７】
第１の発明に係るパケット通信処理装置は、パケット交換ネットワーク内で送受信される通信パケットを処理するパケット通信処理装置であって、
上記パケット通信処理装置の動作を制御する制御手段と、
上記パケット通信処理装置の動作を制御するためのオペレーティングシステムのプログラムと、通信パケットを用いて通信を行う通信機器を仮想的に実現するための仮想デバイスの機能を実行する仮想デバイスプログラムとを格納し、上記制御手段が上記オペレーティングシステム上で上記仮想デバイスプログラムを実行したとき、少なくとも１つのネットワークインタフェースをそれぞれ有しかつ互いに異なる仮想デバイス識別子がそれぞれ割り当てられた複数の仮想デバイスが動作するように、上記各仮想デバイスの機能を実行するために必要な実行プログラムとそれを実行するために必要なデータとを格納する記憶手段とを備え、
上記制御手段は、
上記通信パケットが上記各仮想デバイスの各ネットワークインタフェースを通過したときに、当該ネットワークインタフェースを有する仮想デバイスの仮想デバイス識別子と、当該ネットワークインタフェースのネットワークインタフェース名と、当該通信パケットが送信されたのか又は受信されたのかを表す送受信識別子と、当該通信パケットに含まれる送信元アドレスと、当該通信パケットに含まれる宛先アドレスと、当該通信パケットに含まれるプロトコルを表すデータとを含む通信ログパケットを生成し、
上記生成された複数の通信ログパケットを、上記各通信ログパケットが上記各ネットワークインタフェースを通過した時系列の順序で含む通信ログファイルを生成して上記記憶手段に格納し、
上記格納された複数の通信ログパケットを含む通信ログファイルにおいて、当該複数の通信ログパケットのうち、互いに同一のプロトコルを有し、かつ、
（ａ）各通信ログパケットの上記送信元アドレスが同一でありかつ上記宛先アドレスが同一である通信ログパケットと、
（ｂ）各通信ログパケットの上記宛先アドレスが上記同一の送信元アドレスに一致しかつ上記送信元アドレスが上記同一の宛先アドレスに一致する通信ログパケットとが同一の通信ログパケットグループに属するように、上記格納された複数の通信ログパケットを分類することを特徴とする。
【０００８】
上記パケット通信処理装置において、
上記送信元アドレスは送信元ＩＰアドレスであり、
上記宛先アドレスは宛先ＩＰアドレスであり、
上記プロトコルは、インターネットプロトコルよりも上位である上位プロトコルであることを特徴とする。
【０００９】
また、上記パケット通信処理装置において、
上記通信パケットは、上記プロトコルがＩＣＭＰ（Internet Control Message Protocol）であるとき、エコー要求のための通信パケットと当該エコー要求に対するエコー応答のための通信パケットとの組を識別するためのＩＣＭＰパケット識別子及びＩＣＭＰパケットシーケンス番号を含むエコー識別データをさらに含み、
上記制御手段は、上記通信ログパケットグループにおいて上記同一のプロトコルがＩＣＭＰであるとき、当該通信ログパケットグループに含まれる通信ログパケットを、互いに同一のエコー識別データを有する通信ログパケットが同一の通信ログパケットサブグループに属するように分類することを特徴とする。
【００１０】
さらに、上記パケット通信処理装置において、
上記パケット通信処理装置は表示手段をさらに備え、
上記制御手段は、
（ａ）上記同一の通信ログパケットグループに属する各通信ログパケットの時系列の順序と、
（ｂ）上記同一の通信ログパケットグループに属する各通信ログパケットにそれぞれ含まれる上記仮想デバイス識別子と、上記ネットワークインタフェース名と、上記送受信識別子とに基づいて、
当該同一の通信ログパケットグループに属する各通信ログパケットで示される通信パケットの通信経路を識別し、当該識別された通信パケットの通信経路を上記表示手段に表示することを特徴とする。
【００１１】
またさらに、上記パケット通信処理装置において、
上記パケット通信処理装置は表示手段をさらに備え、
上記制御手段は、
（ａ）ＩＣＭＰ以外の上記同一のプロトコルを有する上記同一の通信ログパケットグループに属する各通信ログパケットの時系列の順序と、
（ｂ）ＩＣＭＰ以外の上記同一のプロトコルを有する上記同一の通信ログパケットグループに属する各通信ログパケットにそれぞれ含まれる上記仮想デバイス識別子と、上記ネットワークインタフェース名と、上記送受信識別子とに基づいて、
当該ＩＣＭＰ以外の上記同一のプロトコルを有する同一の通信ログパケットグループに属する各通信ログパケットで示される通信パケットの通信経路を識別し、当該識別された通信パケットの通信経路を上記表示手段に表示し、
（ａ）ＩＣＭＰである上記同一のプロトコルを有する上記同一の通信ログパケットサブグループに属する各通信ログパケットの時系列の順序と、
（ｂ）ＩＣＭＰである上記同一のプロトコルを有する上記同一の通信ログパケットサブグループに属する各通信ログパケットにそれぞれ含まれる上記仮想デバイス識別子と、上記ネットワークインタフェース名と、上記送受信識別子とに基づいて、
当該ＩＣＭＰである上記同一のプロトコルを有する同一の通信ログパケットサブグループに属する各通信ログパケットで示される通信パケットの通信経路を識別し、当該識別された通信パケットの通信経路を上記表示手段に表示することを特徴とする。
【００１２】
また、上記パケット通信処理装置において、
上記通信ログパケットは、送信元ＭＡＣ（Media Access Control）アドレスと、宛先ＭＡＣアドレスとをさらに含み、
上記制御手段は、上記識別された通信パケットの通信経路上に上記送信元ＭＡＣアドレス及び上記宛先ＭＡＣアドレスをさらに表示することを特徴とする。
【００１３】
さらに、上記パケット通信処理装置において、
上記オペレーティングシステムのプログラムはリナックス（登録商標）であり、
上記仮想デバイスプログラムはユーザモードリナックスであることを特徴とする。
【００１４】
また、上記パケット通信処理装置において、
上記各仮想デバイスの機能は、上記通信パケットのルーティング機能又は送受信機能であることを特徴とする。
【００１５】
第２の発明に係るパケット通信処理装置の制御方法は、パケット交換ネットワーク内で送受信される通信パケットを処理するパケット通信処理装置の制御方法であって、
上記パケット通信処理装置は、
上記パケット通信処理装置の動作を制御する制御手段と、
上記パケット通信処理装置の動作を制御するためのオペレーティングシステムのプログラムと、通信パケットを用いて通信を行う通信機器を仮想的に実現するための仮想デバイスの機能を実行する仮想デバイスプログラムとを格納し、上記制御手段が上記オペレーティングシステム上で上記仮想デバイスプログラムを実行したとき、少なくとも１つのネットワークインタフェースをそれぞれ有しかつ互いに異なる仮想デバイス識別子がそれぞれ割り当てられた複数の仮想デバイスが動作するように、上記各仮想デバイスの機能を実行するために必要な実行プログラムとそれを実行するために必要なデータとを格納する記憶手段とを備え、
上記制御方法は、
上記制御手段が、上記通信パケットが上記各仮想デバイスの各ネットワークインタフェースを通過したときに、当該ネットワークインタフェースを有する仮想デバイスの仮想デバイス識別子と、当該ネットワークインタフェースのネットワークインタフェース名と、当該通信パケットが送信されたのか又は受信されたのかを表す送受信識別子と、当該通信パケットに含まれる送信元アドレスと、当該通信パケットに含まれる宛先アドレスと、当該通信パケットに含まれるプロトコルを表すデータとを含む通信ログパケットを生成するステップと、
上記制御手段が、上記生成された複数の通信ログパケットを、上記各通信ログパケットが上記各ネットワークインタフェースを通過した時系列の順序で含む通信ログファイルを生成して上記記憶手段に格納するステップと、
上記制御手段が、上記格納された複数の通信ログパケットを含む通信ログファイルにおいて、当該複数の通信ログパケットのうち、互いに同一のプロトコルを有し、かつ、
（ａ）各通信ログパケットの上記送信元アドレスが同一でありかつ上記宛先アドレスが同一である通信ログパケットと、
（ｂ）各通信ログパケットの上記宛先アドレスが上記同一の送信元アドレスに一致しかつ上記送信元アドレスが上記同一の宛先アドレスに一致する通信ログパケットとが同一の通信ログパケットグループに属するように、上記格納された複数の通信ログパケットを分類するステップとを含むことを特徴とする。
【００１６】
上記パケット通信処理装置の制御方法において、
上記送信元アドレスは送信元ＩＰアドレスであり、
上記宛先アドレスは宛先ＩＰアドレスであり、
上記プロトコルは、インターネットプロトコルよりも上位である上位プロトコルであることを特徴とする。
【００１７】
また、上記パケット通信処理装置の制御方法において、
上記通信パケットは、上記プロトコルがＩＣＭＰであるとき、エコー要求のための通信パケットと当該エコー要求に対するエコー応答のための通信パケットとの組を識別するためのＩＣＭＰパケット識別子及びＩＣＭＰパケットシーケンス番号を含むエコー識別データをさらに含み、
上記制御方法は、上記制御手段が、上記通信ログパケットグループにおいて上記同一のプロトコルがＩＣＭＰであるとき、当該通信ログパケットグループに含まれる通信ログパケットを、互いに同一のエコー識別データを有する通信ログパケットが同一の通信ログパケットサブグループに属するように分類するステップをさらに含むことを特徴とする。
【００１８】
さらに、上記パケット通信処理装置の制御方法において、
上記パケット通信処理装置は表示手段をさらに備え、
上記制御方法は、上記制御手段が、
（ａ）上記同一の通信ログパケットグループに属する各通信ログパケットの時系列の順序と、
（ｂ）上記同一の通信ログパケットグループに属する各通信ログパケットにそれぞれ含まれる上記仮想デバイス識別子と、上記ネットワークインタフェース名と、上記送受信識別子とに基づいて、
当該同一の通信ログパケットグループに属する各通信ログパケットで示される通信パケットの通信経路を識別し、当該識別された通信パケットの通信経路を上記表示手段に表示するステップをさらに含むことを特徴とする。
【００１９】
またさらに、上記パケット通信処理装置の制御方法において、
上記パケット通信処理装置は表示手段をさらに備え、
上記制御方法は、
上記制御手段が、
（ａ）ＩＣＭＰ以外の上記同一のプロトコルを有する上記同一の通信ログパケットグループに属する各通信ログパケットの時系列の順序と、
（ｂ）ＩＣＭＰ以外の上記同一のプロトコルを有する上記同一の通信ログパケットグループに属する各通信ログパケットにそれぞれ含まれる上記仮想デバイス識別子と、上記ネットワークインタフェース名と、上記送受信識別子とに基づいて、
当該ＩＣＭＰ以外の上記同一のプロトコルを有する同一の通信ログパケットグループに属する各通信ログパケットで示される通信パケットの通信経路を識別し、当該識別された通信パケットの通信経路を上記表示手段に表示するステップと、
上記制御手段が、
（ａ）ＩＣＭＰである上記同一のプロトコルを有する上記同一の通信ログパケットサブグループに属する各通信ログパケットの時系列の順序と、
（ｂ）ＩＣＭＰである上記同一のプロトコルを有する上記同一の通信ログパケットサブグループに属する各通信ログパケットにそれぞれ含まれる上記仮想デバイス識別子と、上記ネットワークインタフェース名と、上記送受信識別子とに基づいて、
当該ＩＣＭＰである上記同一のプロトコルを有する同一の通信ログパケットサブグループに属する各通信ログパケットで示される通信パケットの通信経路を識別し、当該識別された通信パケットの通信経路を上記表示手段に表示するステップとをさらに含むことを特徴とする。
【００２０】
また、上記パケット通信処理装置の制御方法において、
上記通信ログパケットは、送信元ＭＡＣアドレスと、宛先ＭＡＣアドレスとをさらに含み、
上記制御方法は、上記制御手段が、上記識別された通信パケットの通信経路上に上記送信元ＭＡＣアドレス及び上記宛先ＭＡＣアドレスをさらに表示するステップをさらに含むことを特徴とする。
【００２１】
さらに、上記パケット通信処理装置の制御方法において、
上記オペレーティングシステムのプログラムはリナックス（登録商標）であり、
上記仮想デバイスプログラムはユーザモードリナックスであることを特徴とする請求項９乃至１４のうちのいずれか１つに記載のパケット通信処理装置の制御方法。
【００２２】
またさらに、上記パケット通信処理装置の制御方法において、
上記各仮想デバイスの機能は、上記通信パケットのルーティング機能又は送受信機能であることを特徴とする。
【００２３】
第３の発明に係るプログラムは、上記パケット通信処理装置のための制御方法における各ステップを含むことを特徴とする。
【００２４】
第４の発明に係るコンピュータで読み取り可能な記録媒体は、上記プログラムを格納したことを特徴とする。
【発明の効果】
【００２５】
本発明に係るパケット通信処理装置及びその制御方法並びにプログラム及び記録媒体によれば、通信パケットが各仮想デバイスの各ネットワークインタフェースを通過したときに、当該ネットワークインタフェースを有する仮想デバイスの仮想デバイス識別子と、当該ネットワークインタフェースのネットワークインタフェース名と、当該通信パケットが送信されたのか又は受信されたのかを表す送受信識別子と、当該通信パケットに含まれる送信元アドレスと、当該通信パケットに含まれる宛先アドレスと、当該通信パケットに含まれるプロトコルを表すデータとを含む通信ログパケットを生成し、生成された複数の通信ログパケットを、各通信ログパケットが各ネットワークインタフェースを通過した時系列の順序で含む通信ログファイルを生成して記憶手段に格納する。さらに、格納された複数の通信ログパケットを含む通信ログファイルにおいて、当該複数の通信ログパケットのうち、互いに同一のプロトコルを有し、かつ、（ａ）各通信ログパケットの送信元アドレスが同一でありかつ宛先アドレスが同一である通信ログパケットと、（ｂ）各通信ログパケットの宛先アドレスが同一の送信元アドレスに一致しかつ送信元アドレスが同一の宛先アドレスに一致する通信ログパケットとが同一の通信ログパケットグループに属するように、格納された複数の通信ログパケットを分類する。従って、上記同一の通信ログパケットグループに属する各通信ログパケットは、１つの通信パケットを示しているので、作業者は、同一の通信ログパケットグループに属する各通信ログパケットに基づいて、上述した１つの通信パケットの通信経路を、従来技術に比較して容易に特定して確認できる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施形態に係るネットワーク構築演習装置１の構成を示すブロック図である。
【図２】図１のＣＰＵ２によって実行されるネットワーク構築演習処理の第１の部分を示すフローチャートである。
【図３】図１のＣＰＵ２によって実行されるネットワーク構築演習処理の第２の部分を示すフローチャートである。
【図４】図２のステップＳ６において実行されるログ表示処理を示すフローチャートである。
【図５】図３のステップＳ１２において実行されるアニメーション表示キューリストテーブル生成処理の第１の部分を示すフローチャートである。
【図６】図３のステップＳ１２において実行されるアニメーション表示キューリストテーブル生成処理の第２の部分を示すフローチャートである。
【図７】図３のステップＳ１３において実行されるアニメーション表示処理を示すフローチャートである。
【図８】図１の通信ログファイル５５の各行に順次書き込まれる通信ログパケット１００のフォーマットを示すフォーマット図である。
【図９】図１の各仮想デバイス４−ｍ（ｍ＝１，２，…，Ｍ）間で送受信されるＩＰパケット２００のフォーマットを示すフォーマット図である。
【図１０】図１のピングコマンドプログラム５１ｐの実行時に、各仮想デバイス４−ｍ（ｍ＝１，２，…，Ｍ）間で送受信される図９のＩＰパケット２００に含まれるデータ本体フィールド２１５である、ＩＣＭＰ（Internet Control Message Protocol）パケット２１５Ａのフォーマットを示すフォーマット図である。
【図１１】図２のステップＳ１においてディスプレイ６に表示されるネットワーク構築支援ウィンドウの表示例である。
【図１２】図４のステップＳ２５においてディスプレイ６に表示される、仮想ホストＨｏｓｔ０のネットワークインタフェースｅｔｈ０に対応するログ表示ウィンドウにおいて、「簡易」タブが選択されたときの表示例である。
【図１３】図４のステップＳ２５においてディスプレイ６に表示される、仮想ホストＨｏｓｔ０のネットワークインタフェースｅｔｈ０に対応するログ表示ウィンドウにおいて、「詳細」タブが選択されたときの表示例である。
【図１４】図４のステップＳ２５においてディスプレイ６に表示される、仮想ホストＨｏｓｔ０のネットワークインタフェースｅｔｈ０に対応するログ表示ウィンドウにおいて、「１６進データ」タブが選択されたときの表示例である。
【図１５】図７のステップＳ６３においてネットワーク構築支援ウィンドウに表示されるアニメーションの表示例である。
【図１６】図７のステップＳ６３においてネットワーク構築支援ウィンドウのネットワーク図に表示されるアニメーションの別の表示例である。
【発明を実施するための形態】
【００２７】
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
【００２８】
図１は、本発明の実施形態に係るネットワーク構築演習装置１の構成を示すブロック図である。図１において、ネットワーク構築演習装置１は、例えばパーソナルコンピュータなどのディジタル計算機であって、学習者が、通信パケットであるＩＰパケット２００（図９参照。）を用いて通信を行うパケット交換ネットワークを仮想的に構築して演習を行うための端末装置として用いられる。また、詳細後述するように、ネットワーク構築演習装置１は、仮想的なパケット交換ネットワーク内で送受信されるＩＰパケット２００（図９参照。）を処理するパケット通信処理装置としても機能する。
【００２９】
詳細後述するように、図１のネットワーク構築演習装置１は、
（ａ）ネットワーク構築演習装置１の動作を制御するＣＰＵ（Central Processing Unit）２と、
（ｂ）ネットワーク構築演習装置１の動作を制御するためのオペレーティングシステムのプログラム５１と、ＩＰパケット２００を用いて通信を行う通信機器を仮想的に実現するための仮想デバイス４−１〜４−Ｍの機能を実行する仮想デバイスプログラム５２とを格納するハードディスクドライブ５と、
（ｃ）ＣＰＵ２がオペレーティングシステム上で仮想デバイスプログラム５２を実行したとき、少なくとも１つのネットワークインタフェースをそれぞれ有しかつ互いに異なる仮想デバイス識別子がそれぞれ割り当てられた複数の仮想デバイス４−１〜４−Ｍが動作するように、各仮想デバイス４−１〜４−Ｍの機能を実行するために必要な実行プログラムとそれを実行するために必要なデータとを格納するＲＡＭ（Random Access Memory）４とを備える。
【００３０】
ここで、ＣＰＵ２は、
（１）ＩＰパケット２００が各仮想デバイス４−１〜４−Ｍの各ネットワークインタフェースを通過したときに、当該ネットワークインタフェースを有する仮想デバイス４−１〜４−Ｍの仮想デバイス識別子と、当該ネットワークインタフェースのネットワークインタフェース名と、当該ＩＰパケット２００が送信されたのか又は受信されたのかを表す送受信識別子と、当該ＩＰパケット２００に含まれる送信元アドレスと、当該ＩＰパケット２００に含まれる宛先アドレスと、当該ＩＰパケット２００に含まれるプロトコルを表すデータとを含む通信ログパケット１００を生成し、
（２）生成された複数の通信ログパケット１００を、各通信ログパケット１００が各ネットワークインタフェースを通過した時系列の順序で含む通信ログファイル５５を生成してハードディスクドライブ５に格納し、
（３）格納された複数の通信ログパケット１００を含む通信ログファイル５５において、当該複数の通信ログパケット１００のうち、互いに同一の上位プロトコルを有し、かつ、
（ａ）各通信ログパケット１００の送信元ＩＰアドレスが同一でありかつ宛先ＩＰアドレスが同一である通信ログパケット１００と、
（ｂ）各通信ログパケット１００の宛先ＩＰアドレスが上述した同一の送信元ＩＰアドレスに一致しかつ送信元ＩＰアドレスが上述した同一の宛先ＩＰアドレスに一致する通信ログパケット１００とが同一の通信ログパケットグループに属するように、格納された複数の通信ログパケット１００を分類することを特徴としている。
【００３１】
図１を参照して、ネットワーク構築演習装置１の構成を具体的に説明する。図１において、ネットワーク構築演習装置１は、ＣＰＵ２と、ＲＯＭ（Read Only Memory）３と、ＲＡＭ４と、ハードディスクドライブ５と、ディスプレイ６と、操作入力部７と、タイマ回路９とを備えて構成される。ＣＰＵ２は、バスを介してＲＯＭ３、ＲＡＭ４、ハードディスクドライブ５、ディスプレイ６、操作入力部７、及びタイマ回路９と接続されていてそれらを制御するほか、種々のソフトウェアの機能を実行する。また、ディスプレイ６は、液晶表示装置（ＬＣＤ（Liquid Crystal Display））又はＣＲＴ（Cathode Ray Tube）ディスプレイなどの表示装置であり、ネットワーク構築演習装置１の動作状態の表示及び種々のＧＵＩ（Graphic User Interface）プログラムのための表示装置として機能する。さらに、操作入力部７は、例えば、学習者がマウスなどのポインティングデバイス及びキーボードなどの文字入力手段を含み、文字データや指示コマンドなどを入力するために用いられる。また、タイマ回路９は、ＣＰＵ２によりリセットされた後に、計時した時間を示す出力信号を発生して、ＣＰＵ２に出力する。
【００３２】
また、図１において、ＲＯＭ３は、ネットワーク構築演習装置１の動作に必要であってＣＰＵ２によって実行される種々のソフトウェアのプログラムを予め格納する。また、ハードディスクドライブ５は、記録媒体を内蔵する記憶装置であり、ＣＰＵ２が実行するＯＳ（Operating System）のプログラム５１と、仮想デバイスプログラム５２と、スタートキャプチャプログラム５４を含むネットワーク構築演習プログラム５３と、その他のアプリケーションプログラムとをあらかじめ格納する。さらに、ハードディスクドライブ５は、図２乃至図７を参照して詳細後述するネットワーク構築演習処理の実行中に生成される通信ログファイル５５と、キューテーブル５６と、アニメーション表示キューリストテーブル５７とを格納する。
【００３３】
さらに、ＲＡＭ４は、ＳＲＡＭ（Static RAM）、ＤＲＡＭ（Dynamic RAM）、ＳＤＲＡＭ（Synchronous DRAM）などで構成され、ＣＰＵ２のワーキングエリアとして使用されて、各プログラムなど５１〜５４を実行したときに、当該実行するプログラムに対応する機能を実行するために必要な実行プログラムとそれを実行するために必要なデータ及び実行時に発生する一時的なデータを格納する。
【００３４】
次に、ハードディスクドライブ５に格納される各プログラム５１〜５３を説明する。図１において、ＯＳのプログラム５１は、ネットワーク構築演習装置１の全体の動作を制御して、ネットワーク構築演習装置１のシステム管理を行い、基本的なユーザ操作環境を提供する基本ソフトウェアのプログラムである。ＣＰＵ２は、ネットワーク構築演習装置１の電源が投入されると、ＯＳのプログラム５１を実行することにより、ネットワーク構築演習装置１の全体の動作を制御する。本実施形態において、ＯＳのプログラム５１は、リナックス（Linux（登録商標））のプログラムである。リナックス（登録商標）のプログラムは、ＩＣＭＰに準拠したパケット（以下、ＩＣＭＰパケット２１５Ａという。図１０参照。）を送受信するためのピング（Packet InterNet Groper（Ping））コマンドプログラム５１ｐなどのリナックス（登録商標）の各コマンドのプログラムを含む。
【００３５】
また、仮想デバイスプログラム５２は、具体的には、ユーザモードリナックス（UserModeLinux（ＵＭＬ））であって、パケットを用いて通信を行う通信機器を仮想的に実現するための仮想デバイスの機能を実行する仮想ＯＳのプログラムである。ユーザモードリナックスは、リナックス（Linux（登録商標））のプログラムをＯＳのプログラム５１として実行する実ホスト装置であるネットワーク構築演習装置１において、別のリナックス（登録商標）をユーザモードプロセスとして実行するためのプログラムである。ＣＰＵ２は、オペレーティングシステム上で仮想デバイスプログラム５２を実行することにより、各仮想デバイス４−ｍ（ｍ＝１，２，…，Ｍ）が動作するように、各仮想デバイス４−ｍの機能を実行するために必要な実行プログラムとそれを実行するために必要なデータとをＲＡＭ４のワーキングエリアに格納する（以下、「仮想デバイス４−ｍを起動する」という。）。図１において、仮想デバイス４−ｍの機能を実行するために必要な実行プログラムとそれを実行するために必要なデータを格納するワーキングエリアを、「仮想デバイス４−ｍ」として示す。本実施形態において、各仮想デバイス４−ｍの機能は、ＩＰパケット２００のルーティング機能又はＩＰパケット２００の送受信機能である。以下、ルーティング機能を実行する仮想的なルータに対応する仮想デバイス４−ｍを仮想ルータといい、パケットの送受信機能を実行する仮想的なホスト装置に対応する仮想デバイス４−ｍを仮想ホストという。
【００３６】
図１に示す例では、ネットワークインタフェースｅｔｈ０を有する仮想ホストＨｏｓｔ０である仮想デバイス４−１と、ネットワークインタフェースｅｔｈ０及びｅｔｈ１を有する仮想ルータＲｏｕｔｅｒ０である仮想デバイス４−２と、ネットワークインタフェースｅｔｈ０及びｅｔｈ１を有する仮想ルータＲｏｕｔｅｒ１である仮想デバイス４−３と、ネットワークインタフェースｅｔｈ０を有する仮想ホストＨｏｓｔ１である仮想デバイス４−４とがそれぞれ起動されている。また、仮想ホストＨｏｓｔ０と仮想ルータＲｏｕｔｅｒ０とは、仮想ホストＨｏｓｔ０のネットワークインタフェースｅｔｈ０と仮想ルータＲｏｕｔｅｒ０のネットワークインタフェースｅｔｈ１とを介して接続され、仮想ルータＲｏｕｔｅｒ０と仮想ルータＲｏｕｔｅｒ１とは、仮想ルータＲｏｕｔｅｒ０のネットワークインタフェースｅｔｈ０と仮想ルータＲｏｕｔｅｒ１のネットワークインタフェースｅｔｈ０とを介して接続されている。さらに、仮想ホストＨｏｓｔ１と仮想ルータＲｏｕｔｅｒ１とは、仮想ホストＨｏｓｔ１のネットワークインタフェースｅｔｈ０と仮想ルータＲｏｕｔｅｒ１のネットワークインタフェースｅｔｈ１とを介して互いに接続されている。仮想ホストＨｏｓｔ０と、仮想ルータＲｏｕｔｅｒ０と、仮想ルータＲｏｕｔｅｒ１と、仮想ホストＨｏｓｔ１とは、ＩＰｖ４（インターネットプロトコルバージョン４）に準拠したＩＰパケット２００（図９参照。）に、送信元ＭＡＣアドレス及び宛先ＭＡＣアドレスを含むＭＡＣヘッダ３００を付加して互いに送受信する。
【００３７】
図９は、図１の各仮想デバイス４−ｍ（ｍ＝１，２，…，Ｍ）間で送受信されるＩＰパケット２００のフォーマットを示すフォーマット図である。図９において、ＩＰパケット２００は、ＩＰヘッダ２００ｈと、ＩＰよりも上位である上位プロトコルの通信パケットをデータとして格納するデータ本体フィールド２１５とを含む。ここで、上位プロトコルは、ＩＣＭＰ、ＵＤＰ（User Datagram Protocol）、ＴＣＰ（Transmission Control Protocol）又はＡＲＰ（Address Resolution Protocol）である。さらに、ＩＰヘッダ２００ｈは、以下の各フィールド２０１〜２１４を含む。
【００３８】
（１）ＩＰパケット２００のバージョンを表すデータを格納するバージョン番号フィールド２０１。
（２）ＩＰヘッダ２００ｈのデータ長を表すデータを格納するヘッダ長フィールド２０２。
（３）ＩＰパケット２００がルータに対して要求するサービスの特徴を表すデータを格納するサービスタイプフィールド２０３。
（４）ＩＰパケット２００のデータ長を表すデータを格納するパケット長フィールド２０４。
（５）ＩＰパケット２００を識別するためのパケット識別子を格納するパケット識別子フィールド２０５。
（６）ＩＰパケット２００のフラグメント化を許可するか否かを表すフラグデータを格納するフラグフィールド２０６。
（７）ＩＰパケット２００がフラグメント化されている場合に、そのフラグメントの元のＩＰパケット２００での位置を表すデータを格納するフラグメントオフセットフィールド２０７。
（８）ＩＰパケット２００の生存時間（Time To Live（ＴＴＬ））を表すデータを格納するＴＴＬフィールド２０８。
（９）ＩＰパケット２００のデータ本体２１５に格納されるデータのプロトコル（すなわち、上位プロトコルである。）を表すプロトコル番号を格納するプロトコル番号フィールド２０９。なお、上位プロトコルがＩＣＭＰであるとき、プロトコル番号は１であり、上位プロトコルがＴＣＰであるとき、プロトコル番号は６であり、上位プロトコルがＵＤＰであるとき、プロトコル番号は１７である。
（１０）ＩＰヘッダ２００ｈの内容が正しいか否かを表すデータを格納するヘッダチェックサムフィールド２１０。
（１１）ＩＰパケット２００の送信元ＩＰアドレスを格納する送信元ＩＰアドレスフィールド２１１。
（１２）ＩＰパケット２００の宛先ＩＰアドレスを格納する宛先ＩＰアドレスフィールド２１２。
（１３）ＩＰパケット２００を転送するときに所定の処理を行うように指示するためのデータを格納するオプションフィールド２１３。
（１４）ＩＰヘッダ２００ｈのデータ長を３２ビットの整数倍にするために付加されるパディングフィールド２１４。
【００３９】
また、図１０は、図１のピングコマンドプログラム５１ｐの実行時に、各仮想デバイス４−ｍ（ｍ＝１，２，…，Ｍ）間で送受信される図９のＩＰパケット２００に含まれるデータ本体フィールド２１５である、ＩＣＭＰ（Internet Control Message Protocol）パケット２１５Ａのフォーマットを示すフォーマット図である。図１０において、ＩＣＭＰパケット２１５Ａは、以下の各フィールド３０１〜３０６を含む。
【００４０】
（１）ＩＣＭＰパケット２１５Ａのタイプ（以下、ＩＣＭＰタイプともいう。）を表すデータを格納するＩＣＭＰタイプフィールド３０１。特に、ＩＣＭＰパケット２１５Ａのタイプが、ピングコマンドプログラム５１ｐの実行時に送信元のホスト装置から送信されるエコー要求のための通信パケットであるときは、ＩＣＭＰタイプフィールド３０１は「８」を格納し、ピングコマンドプログラム５１ｐの実行時に宛先のホスト装置から返信されるエコー応答のための通信パケットであるときは、ＩＣＭＰタイプフィールド３０１は「０」を格納する。
（２）「０」を格納するコードフィールド３０２。
（３）ＩＣＭＰパケット２１５Ａの内容が正しいか否かを表すデータを格納するチェックサムフィールド３０３。
（４）エコー要求パケットであるＩＣＭＰパケット２１５Ａと、当該エコー要求パケットであるＩＣＭＰパケット２１５Ａに対するエコー応答パケットであるＩＣＭＰパケット２１５Ａとの組を識別するためのエコー識別データである、ＩＣＭＰパケット識別子及びＩＣＭＰシーケンス番号をそれぞれ格納するＩＣＭＰパケット識別子フィールド３０４及びＩＣＭＰシーケンス番号フィールド３０５。エコー要求パケットであるＩＣＭＰパケット２１５Ａと、当該エコー要求パケットであるＩＣＭＰパケット２１５Ａに対するエコー応答パケットであるＩＣＭＰパケット２１５Ａとは、同一のＩＣＭＰパケット識別子及び同一のＩＣＭＰシーケンス番号を含む。
（５）任意のデータを格納するデータ本体フィールド３０６。
【００４１】
図１において、ネットワーク構築演習プログラム５３は、非特許文献１に記載の従来技術に係るネットワーク構築演習プログラム（イーネットラボ（e-Netlab））に対して、ＲＡＭ４上で動作する各仮想デバイス４−１〜４−Ｍの各ネットワークインタフェースを通過するＩＰパケット２００の情報を取得するためのスタートキャプチャプログラム５４を追加したものである。
【００４２】
次に、図２乃至図７を参照して、図１のＣＰＵ２によって実行されるネットワーク構築演習処理を説明する。図２及び図３は、図１のＣＰＵ２によって実行されるネットワーク構築演習処理を示すフローチャートであり、図４は、図２のステップＳ６において実行されるログ表示処理を示すフローチャートである。また、図５及び図６は、図３のステップＳ１２において実行されるアニメーション表示キューリストテーブル生成処理を示すフローチャートであり、図７は、図３のステップＳ１３において実行されるアニメーション表示処理を示すフローチャートである。
【００４３】
学習者がネットワーク構築演習装置１の操作入力部７を用いて、ネットワーク構築演習プログラム５３を実行するための所定の操作（例えば、ディスプレイ６に表示されている所定のアイコンをクリックする、又は、ディスプレイ６に表示されているコンソールウィンドウにおいて所定のコマンドを入力するなど。）を行うと、これに応答して、ＣＰＵ２は、ネットワーク構築演習プログラム５３を実行して、ネットワーク構築演習処理を実行する。そして、図２のステップＳ１において、ＣＰＵ２は、ネットワーク構築支援ウィンドウをディスプレイ６に表示する。図１１は、図２のステップＳ１においてディスプレイ６に表示されるネットワーク構築支援ウィンドウの表示例である。図１１において、ネットワーク構築支援ウィンドウは、機器追加リストと、ネットワーク図と、コンソールウィンドウと、機器情報一覧とを含む。機器追加リストは、仮想ルータを表すルータボタン（Router）と、仮想ホストを表すホストボタン（Host）とを含む。
【００４４】
次に、図２のステップＳ２において、学習者が、機器追加リストのルータボタン又はホストボタンをネットワーク図にドラッグアンドドロップすると、ネットワーク図上に各仮想デバイス４−ｍに対応するアイコンを追加する。また、学習者が、ネットワーク図上で２つの仮想デバイス４−ｍのアイコン間をマウスによって選択すると、ネットワーク図上の２つのアイコン間を線で接続する。さらに、図１１において、学習者が機器設定を行う各仮想デバイス４−ｍに対応するコンソールウィンドウのコマンド入力欄に、ＩＰアドレス、ネットマスク、及びデフォルトゲートウェイなどの機器設定のためのコマンドを入力することができる。ＣＰＵ２は、学習者が操作入力部７及びネットワーク構築支援ウィンドウを利用して入力した各仮想デバイス４−ｍの機器設定のための情報に従って、各仮想デバイス４−ｍを起動し、学習者によって接続動作が行われたアイコンに対応する仮想デバイス４−ｍどうしを、互いにＩＰパケット２００を送受信するように接続する。このとき、図１１に示すように、各仮想デバイス４−ｍからの出力メッセージは、対応するコンソールウィンドウ上に表示される。また、図１１に示すように、機器情報一覧には、各仮想デバイス４−ｍの各ネットワークインタフェース毎に、仮想デバイス名、仮想デバイスの種類、インタフェース名、ＩＰアドレス、ネットマスク、インタフェースの状態（起動している（ｕｐ）又は停止している（ｄｏｗｎ））、ポートの設定及びＶＬＡＮ（Virtual Local Area Network）などの各仮想デバイス４−ｍの各ネットワークインタフェースの情報が表示される。なお、ＣＰＵ２は、各仮想デバイス４−ｍを起動するとき、各仮想デバイス４−ｍに対して、各仮想デバイス４−ｍを識別するための仮想デバイス識別子を割り当てる。
【００４５】
図２のステップＳ２の処理が終了すると、学習者は、各仮想デバイス４−ｍに対応するコンソールウィンドウを利用して、各仮想デバイス４−ｍに対してピングコマンドプログラム５１ｐなどのリナックス（登録商標）の各コマンドプログラムを実行させることができる。これにより、仮想デバイス４−１〜４−Ｍ間でＩＰパケット２００が送受信される。
【００４６】
次に、図２のステップＳ３において、学習者が、ネットワーク構築支援ウィンドウのメニューバーの「キャプチャ」メニュー（図１５参照。）を選択し、「キャプチャ」メニュー内のメニューアイテムの「キャプチャの開始」メニューを選択したか否かが判断される。ステップＳ３においてＹＥＳのときはステップＳ４に進む一方、ＮＯのときはステップＳ９に進む。ステップＳ４において、ＣＰＵ２は、空の通信ログファイル５５を生成してハードディスクドライブ５に格納する。
【００４７】
ステップＳ４に続いてステップＳ５において、ＣＰＵ２は、各仮想デバイス４−ｍ毎に、スタートキャプチャプログラム５４を実行することにより、ＩＰパケット２００が各ネットワークインタフェースを通過したときに通信ログパケット１００を生成し、生成された通信ログパケット１００を、通信ログファイル５５の各行に順次書き込む通信ログパケット取得処理を開始する。
【００４８】
図８は、図１の通信ログファイル５５の各行に順次書き込まれる通信ログパケット１００のフォーマットを示すフォーマット図である。図８において、通信ログパケット１００は、通信ログヘッダ１００ｈと、ネットワークインタフェースを通過したＩＰパケット２００に付加されたＭＡＣヘッダ３００と、ネットワークインタフェースを通過したＩＰパケット２００そのものとを含む。さらに、通信ログヘッダ１００ｈは、以下の各フィールド１０１〜１０４を含む。
【００４９】
（１）通信ログパケット１００を生成した仮想デバイスの仮想デバイス識別子を格納する仮想デバイス識別子フィールド１０１。
（２）通信ログパケット１００を生成した仮想デバイスのネットワークインタフェースのうち、通信ログパケット１００に含まれるＩＰパケット２００が通過したネットワークインタフェースのネットワークインタフェース名を格納するネットワークインタフェース名フィールド１０２。
（３）通信ログパケット１００に含まれるＩＰパケット２００が送信されたのか又は受信されたのかを表す送受信識別子を格納する送受信識別子フィールド１０３。なお、ＩＰパケット２００が送信されたとき、送受信識別子は１であり、ＩＰパケット２００が受信されたとき、送受信識別子は０である。
（４）通信ログヘッダ１００ｈのデータ長を３２ビットにするためのパディングフィールド１０４。
【００５０】
ここで、全ての仮想デバイス４−Ｍは１台のネットワーク構築演習装置１内で起動されており、各ＩＰパケット２００が各仮想デバイス４−１〜４−Ｍの各ネットワークインタフェースを通過したときに通信ログパケット１００を生成して通信ログファイル５５の最後の行に書き込むので、通信ログファイル５５は、各通信ログパケット１００を、各ＩＰパケット２００が各ネットワークインタフェースを通過した時系列の順序で含む。
【００５１】
図１のように仮想デバイス４−１〜４−４が起動し、仮想デバイス４−１〜４−４に仮想デバイス識別子１〜４がそれぞれ割り当てられ、仮想ホストＨｏｓｔ０のＩＰアドレスが１９２．１６８．５．２に設定され、仮想ホストＨｏｓｔ１のＩＰアドレスが１９２．１６８．５．１に設定されている場合を例に挙げて、生成される通信ログファイル５５を説明する。この場合、学習者が、図１の仮想ホストＨｏｓｔ０に対応するコンソールウィンドウを用いて、仮想ホストＨｏｓｔ１を宛先ホスト機器に指定してピングコマンドプログラム５１ｐを実行した後に、仮想ホストＨｏｓｔ０から仮想ホスト１にＵＤＰのＩＰパケット２００が送信されたとき、図２のステップＳ５の通信ログパケット取得処理において生成される通信ログファイル５５の１行目から１８行目に格納される各通信ログパケット１００内の仮想デバイス識別子と、ネットワークインタフェース名と、送受信識別子と、プロトコル番号と、送信元ＩＰアドレスと、宛先ＩＰアドレスと、ＩＣＭＰタイプと、ＩＣＭＰパケット識別子と、ＩＣＭＰパケットシーケンス番号とは、以下の表１のとおりである。
【００５２】
【表１】
0005622233.tif 000002
【００５３】
表１に示すように、仮想ホストＨｏｓｔ０は、ＩＣＭＰタイプフィールド３０１にエコー要求パケットを表す「８」を格納したＩＣＭＰパケット２１５Ａ（図１０参照。）を含むＩＰパケット２００を、ネットワークインタフェースｅｔｈ０から送信する。ＩＰパケット２００は、仮想ルータＲｏｕｔｅｒ０のネットワークインタフェースｅｔｈ１及びｅｔｈ０と、仮想ルータＲｏｕｔｅｒ１のネットワークインタフェースｅｔｈ０及びｅｔｈ１を介して、仮想ホストＨｏｓｔ１のネットワークインタフェースｅｔｈ１によって受信される。これに応答して、仮想ホストＨｏｓｔ１は、受信したＩＰパケット２００の送信元ＩＰアドレスフィールド２１１に格納された送信元ＩＰアドレスと宛先ＩＰアドレスフィールド２１２に格納された宛先ＩＰアドレスとを入れ換え、ＩＣＭＰタイプフィールド３０１にエコー応答パケットを表す「０」を格納し、ＩＣＭＰパケット識別子フィールド３０４と、ＩＣＭＰシーケンス番号フィールド３０５とにそれぞれ格納されたデータを変更せずに、ネットワークインタフェースｅｔｈ０から返信する。以上説明したＩＰパケット２００の通信経路の情報は、表１に示すように、通信ログファイル５５の１行目から１２行に、時系列の順序で格納される。
【００５４】
さらに、表１に示すように、仮想ホストＨｏｓｔ０から仮想ルータＲｏｕｔｅｒ０及び仮想ルータＲｏｕｔｅｒ１を介して、仮想ホストＨｏｓｔ１に上位プロトコルがＵＤＰであるＩＰパケットデータ２００が送信されると、当該ＩＰパケット２００の通信経路の情報は、通信ログファイル５５の１３行目から１８行に、時系列の順序で格納される。
【００５５】
次に、図２に戻り参照すると、ステップＳ５に続いて、ステップＳ６において、ＣＰＵ２は、図４のログ表示処理を開始する。図４のステップＳ２１において、ＣＰＵ２は、各仮想デバイス４−ｍの各ネットワークインタフェース毎に、ログ表示ウィンドウをディスプレイ６に表示する。次に、ステップＳ２２において、ＣＰＵ２は、タイマ回路９をリセットして計時を開始し、ステップＳ２３において、タイマ回路９からの計時された時間を示す出力信号に基づいて、０．２秒経過したか否かを判断する。ステップＳ２３においてＹＥＳのときはステップＳ２４に進む一方、ＮＯのときはステップＳ２３の処理を繰り返して実行する。ステップＳ２４において、ＣＰＵ２は、タイマ回路９をリセットして計時を開始し、ステップＳ２５に進む。ステップＳ２５では、ＣＰＵ２は、通信ログファイル５５に新たに追加された各通信ログパケット１００を読み出し、読み出された各通信ログパケット１００に基づいて、各仮想デバイス４−ｍの各ネットワークインタフェースに対応するログ表示ウィンドウの表示内容を更新し、ステップＳ２３に戻る。
【００５６】
図１２は、図４のステップＳ２５においてディスプレイ６に表示される、仮想ホストＨｏｓｔ０のネットワークインタフェースｅｔｈ０に対応するログ表示ウィンドウにおいて、「簡易」タブが選択されたときの表示例であり、図１３は、「詳細」タブが選択されたときの表示例であり、図１４は、「１６進データ」タブが選択されたときの表示例である。図１２乃至図１４に示すように、ログ表示ウィンドウの左端部には、仮想ホストＨｏｓｔ０のネットワークインタフェースｅｔｈ０を通過したＩＰパケット２００のパケット番号と、ＩＰパケット２００のプロトコル番号フィールド２０９に格納されたプロトコル番号に対応するプロトコル名との対応関係を示すＩＰパケット対応表が表示される。また、ログ表示ウィンドウの上部には、全てのＩＰパケット２００のうちＩＰパケット対応表に表示されるＩＰパケット２００の送信又は受信の種別と、上位プロトコルとを設定するためのチェックボックスを含む操作パネルが表示される。
【００５７】
図１２に示すように、ログ表示ウィンドウにおいて「簡易」タブが選択されると、通信ログファイル５５に含まれる通信ログパケット１００のうち、ＩＰパケット対応表において選択された（ハッチングされている。）ＩＰパケット２００に対応する通信ログパケット１００に含まれる送信又は受信の種別のデータと、上位プロトコルのデータと、送信元ＩＰアドレスと、宛先ＩＰアドレスと、送信元ＭＡＣアドレスと、宛先ＭＡＣアドレスとが表示される。また、図１３に示すように、ログ表示ウィンドウにおいて「詳細」タブが選択されると、通信ログファイル５５に含まれる通信ログパケット１００のうち、ＩＰパケット対応表において選択された（ハッチングされている。）ＩＰパケット２００に対応する通信ログパケット１００に含まれる各データが、「簡易」タブが表示されたときに比較してより詳細に表示される。さらに、図１４において、ログ表示ウィンドウにおいて「１６進データ」タブが選択されると、通信ログファイル５５に含まれる通信ログパケット１００のうち、ＩＰパケット対応表において選択された（ハッチングされている。）ＩＰパケット２００に対応する通信ログパケット１００に含まれる各データが、１６進数のデータとしてそれぞれ表示される。図１４において、「１６進データ」タブが選択されているときは、フィールド毎に又はレイヤ毎に、学習者によって選択された各フィールドのデータが色づけされて表示される。
【００５８】
次に、図２に戻り参照すると、ステップＳ６に続いて、ステップＳ７において、学習者が、ネットワーク構築支援ウィンドウのメニューバーの「キャプチャ」メニュー（図１５参照。）を選択し、メニューアイテムの「キャプチャの終了」メニューを選択したか否かが判断され、ＹＥＳのときはステップＳ８に進む一方、ＮＯのときはステップＳ７の処理を繰り返して実行する。ステップＳ８において、ＣＰＵ２は、通信ログパケット取得処理及びログ表示処理を終了し、通信ログファイル５５をハードディスクドライブ５から削除する。
【００５９】
ステップＳ８に続いてステップＳ９において、ＣＰＵ２は、学習者が、ネットワーク構築支援ウィンドウのメニューバーの「アニメーション」メニュー（図１５参照。）を選択し、「アニメーション」メニュー内のメニューアイテムの「アニメーション表示」メニューを選択したか否かを判断し、ＹＥＳのときはステップＳ１０に進む一方、ＮＯのときはステップＳ９の処理を繰り返して実行する。ステップＳ１０において、ＣＰＵ２は、空の通信ログファイル５５と、空のキューテーブル５６と、空のアニメーション表示キューリストテーブル５７を生成してハードディスクドライブ５に格納し、ステップＳ１１において、ステップＳ５の通信ログパケット取得処理を開始する。さらに、ＣＰＵ２は、ステップＳ１２において、図５及び図６のアニメーション表示キューリストテーブル生成処理を開始し、ステップＳ１３において、図７のアニメーション表示処理を開始する。
【００６０】
次に、図５及び図６を参照して、図３のステップＳ１２において実行されるアニメーション表示キューリストテーブル生成処理を説明する。図５のステップＳ３１において、ＣＰＵ２は、タイマ回路９をリセットして計時を開始し、ステップＳ３２において、タイマ回路９からの計時された時間を示す出力信号に基づいて、０．２秒経過したか否かを判断する。ステップＳ３２においてＹＥＳのときはステップＳ３３に進む一方、ＮＯのときはステップＳ３２の処理を繰り返して実行する。ステップＳ３３において、ＣＰＵ２は、タイマ回路９をリセットして計時を開始する。
【００６１】
さらに、ステップＳ３４において、ＣＰＵ２は、通信ログファイル５５に新たに追加された各通信ログパケット１００を読み出し、読み出した各通信ログパケット１００を、送信元ＩＰアドレスと、宛先ＩＰアドレスと、プロトコル番号とに基づいて、Ｋ個の通信ログパケットグループに分類する。そして、Ｋ個の通信ログパケットグループを、キューとしてそれぞれキューテーブル５６に格納する。なお、各キューは、当該各キューに対応する通信ログパケットグループに属する各通信ログパケット１００と、各通信ログパケット１００の時系列の順序のデータとを含む。
【００６２】
具体的には、ＣＰＵ２は、通信ログファイル５５に新たに追加された各通信ログパケット１００のうち、互いに同一のプロトコル番号を含み、かつ、
（ａ）各通信ログパケット１００の送信元ＩＰアドレスが同一でありかつ宛先ＩＰアドレスが同一である通信ログパケット１００と、
（ｂ）各通信ログパケット１００の宛先ＩＰアドレスが上述した同一の送信元ＩＰアドレスに一致しかつ送信元ＩＰアドレスが上述した同一の宛先ＩＰアドレスに一致する通信ログパケット１００とが同一の通信ログパケットグループに属するように、上記格納された複数の通信ログパケットを分類する。
【００６３】
このため、表１の例では、通信ログファイル５５内の通信ログパケット１００は、通信ログファイル５５の１行目から１２行目の各通信ログパケット１００を含む通信ログパケットグループと、通信ログファイル５５の１３行目から１８行目の各通信ログパケット１００を含む通信ログパケットグループとに分類される。
【００６４】
次に、図５において、ステップＳ３４に続いてステップＳ３５において、キュー番号ｋに初期値１が代入され、ステップＳ３６において、ｋ番目のキューに対応するプロトコル番号がＩＣＭＰを表すか否かが判断される。ステップＳ３６においてＹＥＳのときはステップＳ４０に進む一方、ＮＯのときはステップＳ３７に進む。
【００６５】
ステップＳ３７では、ｋ番目のキューに対応するアニメーション表示キューが、アニメーション表示キューリストテーブル５７に含まれているか否かが判断される。すなわち、ｋ番目のキューに含まれる通信ログパケット１００で示されるＩＰパケット２００に対応するアニメーション表示キューが、アニメーション表示キューリストテーブル５７に含まれているか否かが判断される。ステップＳ３７においてＹＥＳのときはステップＳ３８に進む一方、ＮＯのときはステップＳ３９に進む。そして、ステップＳ３８において、ＣＰＵ２は、ｋ番目のキューを、アニメーション表示キューリストテーブル５７内のキューのうち、ｋ番目のキューに対応するアニメーション表示キューに追加してステップＳ４７に進む。一方、ステップＳ３９において、ＣＰＵ２は、ｋ番目のキューを、アニメーション表示キューとしてアニメーション表示キューリストテーブル５７に格納してステップＳ４７に進む。
【００６６】
ステップＳ３６においてＹＥＳのときは、ステップＳ４０において、ｋ番目のキューに含まれる各通信ログパケット１００を、ＩＣＭＰパケット識別子と、ＩＣＭＰパケットシーケンス番号とに基づいて、Ｊ個の通信ログパケットサブグループにさらに分類する。そして、Ｊ個の通信ログパケットサブグループを、キューとしてそれぞれキューテーブル５６に格納する。具体的には、ｋ番目のキューに含まれる通信ログパケット１００を、互いに同一のＩＣＭＰパケット識別子と、互いに同一のＩＣＭＰパケットシーケンス番号とを有する通信ログパケット１００が同一の通信ログパケットサブグループに属するように分類する。このため、表１の例では、通信ログファイル５５内の１行目から１２行目の通信ログパケット１００を含むキューは、１つの（すなわち、Ｊ＝１である。）通信ログパケットサブグループに分類される。
【００６７】
ステップＳ４０に続いてステップＳ４１において、キュー番号ｊに初期値１が代入され、ステップＳ４２において、ｊ番目のキューに対応するアニメーション表示キューが、アニメーション表示用キューリストテーブル５７に含まれているか否かが判断される。すなわち、ｊ番目のキューに含まれる通信ログパケット１００で示されるＩＰパケット２００に対応するアニメーション表示キューが、アニメーション表示キューリストテーブル５７に含まれているか否かが判断される。ステップＳ４２においてＹＥＳのときはステップＳ４３に進む一方、ＮＯのときはステップＳ４４に進む。
【００６８】
ステップＳ４３では、ｊ番目のキューを、アニメーション表示キューリストテーブル５７内の対応するアニメーション表示キューに追加してステップＳ４５に進む。一方、ステップＳ４４では、ｊ番目のキューを、アニメーション表示キューリストテーブル５７にアニメーション表示キューとして格納して、ステップＳ４５に進む。ステップＳ４５では、キュー番号ｊがステップＳ４０において分類された通信ログパケットサブグループの数Ｊに等しいか否かが判断され、ＹＥＳのときはステップＳ４６においてキュー番号ｊに１を加算してステップＳ４２に戻る一方、ＮＯのときはステップＳ４７において、キュー番号ｋがステップＳ３４において分類された通信ログパケットグループの数Ｋに等しいか否かが判断される。そして、ステップＳ４７においてＹＥＳのときはステップＳ３２に戻る一方、ＮＯのときはステップＳ４８においてキュー番号ｋに１を加算してステップＳ３６に戻る。
【００６９】
次に、図７を参照して、図３のステップＳ１３において実行されるアニメーション表示処理を説明する。ＣＰＵ２は、図７のステップＳ６１において、アニメーション表示キューリストテーブル５７に含まれる最初のアニメーション表示キューを読み出す。そして、ステップＳ６２において、読み出したアニメーション表示キューに含まれる各通信ログパケット１００の時系列の順序と、各通信ログパケット１００に含まれる仮想デバイス識別子、ネットワークインタフェース名、及び送受信識別子とに基づいて、読み出したアニメーション表示キューに含まれる通信ログパケット１００で示されるＩＰパケット２００の通信経路を識別する。具体的には、ＩＰパケット２００が各通信ログパケット１００の時系列の順序で、各ネットワークインタフェースを通過するように、ＩＰパケット２００の通信経路を識別する。さらに、識別されたＩＰパケット２００の通信経路を、ネットワーク構築支援ウィンドウのネットワーク図に、アニメーションで表示する。具体的には、ネットワーク図上で、上位プロトコル名を付記したＩＰパケット２００を表すアイコンが、送信元の仮想デバイスから宛先の仮想デバイスまで所定の速度で移動するように表示する。なお、アニメーション表示キュー毎に、ＩＰパケット２００を表すアイコンは互いに異なる色で表示される。
【００７０】
次に、ステップＳ６４において、読み出したアニメーション表示キューが最後のアニメーション表示キューであるか否かが判断され、ＹＥＳのときはステップＳ６１に戻る一方、ＮＯのときはステップＳ６５に進む。ステップＳ６５では、アニメーション表示キューリストテーブル５７に含まれる、次のアニメーション表示キューが読み出されて、ステップＳ６２に戻る。
【００７１】
図１５は、図７のステップＳ６３においてネットワーク構築支援ウィンドウに表示されるアニメーションの表示例である。図１５において、上位プロトコルがＩＣＭＰであるＩＰパケット２００が、仮想ホストＨｏｓｔ０のネットワークインタフェースｅｔｈ０から、仮想ルータＲｏｕｔｅｒ０のネットワークインタフェースｅｔｈ１まで送信された後に、仮想ルータＲｏｕｔｅｒ０のネットワークインタフェースｅｔｈ０から仮想ルータＲｏｕｔｅｒ１のネットワークインタフェースｅｔｈ０まで送信され、さらに、仮想ルータＲｏｕｔｅｒ１のネットワークインタフェースｅｔｈ１から、仮想ホストＨｏｓｔ１のネットワークインタフェースｅｔｈ０に送信される様子がアニメーションとして表示される。
【００７２】
図１６は、図７のステップＳ６３においてネットワーク構築支援ウィンドウのネットワーク図に表示されるアニメーションの別の表示例である。図１６において、各仮想デバイスの各ネットワークインタフェース毎に、通過したＩＰパケット２００の送信元ＩＰアドレスと、宛先ＩＰアドレスと、送信元ＭＡＣアドレスと、宛先ＭＡＣアドレスとがダイアログに表示されている。このようにダイアログを表示するので、学習者は、各仮想デバイス４−ｍ（ｍ＝１，２，…，Ｍ）を通過する毎に、宛先ＩＰアドレス及び宛先ＭＡＣアドレスがどのように変化するかを視覚的に確認できる。
【００７３】
図３に戻り参照すると、ステップＳ１３に続いて、ステップＳ１４において、学習者が、ネットワーク構築支援ウィンドウのメニューバーの「アニメーション」メニュー（図１５参照。）を選択し、メニューアイテムの「アニメーション非表示」メニューを選択したか否かが判断され、ＹＥＳのときはステップＳ１５に進む一方、ＮＯのときはステップＳ１４の処理を繰り返して実行する。ステップＳ１５において、ＣＰＵ２は、通信ログパケット取得処理と、アニメーション表示キューリストテーブル生成処理と、アニメーション表示処理とを終了し、通信ログファイル５５と、キューテーブル５６と、アニメーション表示キューリストテーブル５７とをハードディスクドライブ５から削除する。次に、ステップＳ１６において、学習者が、ネットワーク構築支援ウィンドウを閉じる処理などの所定の終了指示を行ったか否かが判断され、ＹＥＳのときはネットワーク構築演習処理を終了し、ＮＯのときはステップＳ３に戻る。
【００７４】
以上説明したように、本実施形態によれば、ＣＰＵ２は、スＩＰパケット２００が、ＲＡＭ４上に起動された各仮想デバイス４−１〜４−Ｍの各ネットワークインタフェースを通過したときに、図８のように、通信ログヘッダ１００ｈと、ネットワークインタフェースを通過したＩＰパケット２００に付加されたＭＡＣヘッダ３００と、ネットワークインタフェースを通過したＩＰパケット２００そのものとを含む通信ログパケット１００を生成する。そして、生成した通信ログパケット１００を、各ＩＰパケット２００を通過した時系列の順序で含む通信ログファイル５５を生成する。さらに、ＣＰＵ２は、通信ログファイル５５において、通信ログファイル５５に含まれる複数の通信ログパケット１００のうち、互いに同一の上位プロトコルを有し、かつ、
（ａ）各通信ログパケット１００の送信元ＩＰアドレスが同一でありかつ宛先ＩＰアドレスが同一である通信ログパケット１００と、
（ｂ）各通信ログパケット１００の宛先ＩＰアドレスが上述した同一の送信元ＩＰアドレスに一致しかつ送信元ＩＰアドレスが上述した同一の宛先ＩＰアドレスに一致する通信ログパケット１００とが同一の通信ログパケットグループに属するように、格納された複数の通信ログパケット１００を分類する。
【００７５】
従って、同一の通信ログパケットグループに属する各通信ログパケット１００は、１つのＩＰパケット２００を示しているので、作業者は、同一の通信ログパケットグループに属する各通信ログパケット１００に基づいて、上述した１つのＩＰパケット２００の通信経路を、従来技術に比較して容易に特定して確認できる。
【００７６】
さらに、ＣＰＵ２は、同一の通信ログパケットグループ又は通信ログパケットサブグループに属する各通信ログパケット１００の時系列の順序と、同一の通信ログパケットグループ又は通信ログパケットサブグループに属する各通信ログパケット１００にそれぞれ含まれる仮想デバイス識別子と、ネットワークインタフェース名と、送受信識別子とに基づいて、ＩＰパケット２００の実際の通信経路を自動的に識別してアニメーションで表示する。従って、学習者は、各ＩＰパケット２００の通信経路が設定通りであるか否かを、ＩＰパケット２００のＩＰヘッダ２００ｈに含まれるデータを自ら解析することなく、視覚的に確認できる。また、学習者は、仮想ルータにおいて、ＲＩＰ（Routing Information Protocol）のアップデート情報がどのように交換されているのかを観察できる。
【００７７】
また、本実施形態によれば、通信ログパケットグループにおいて上位プロトコルがＩＣＭＰであるとき、当該通信ログパケットグループに含まれる通信ログパケット１００を、互いに同一のエコー識別データを有する通信ログパケット１００が同一の通信ログパケットサブグループに属するように分類する。従って、例えば、学習者が、図１の仮想ホストＨｏｓｔ０に対応するコンソールウィンドウを用いて、仮想ホストＨｏｓｔ１を宛先ホスト機器に指定してピングコマンドプログラム５１ｐを実行した後に、図１の仮想ホストＨｏｓｔ１に対応するコンソールウィンドウを用いて、仮想ホストＨｏｓｔ０を宛先ホスト機器に指定してピングコマンドプログラム５１ｐを実行すると、ＩＰパケット２００が仮想ホストＨｏｓｔ０から仮想ホストＨｏｓｔ１に送信され、仮想ホストＨｏｓｔ１から仮想ホストＨｏｓｔ０に返信される様子を上位プロトコル名「ＩＣＭＰ」を付記されたアイコン（例えば、赤色のアイコンである。）を用いてアニメーションで表示した後に、ＩＰパケット２００が仮想ホストＨｏｓｔ１から仮想ホストＨｏｓｔ０に送信され、仮想ホストＨｏｓｔ０から仮想ホストＨｏｓｔ１に返信される様子を上位プロトコル名「ＩＣＭＰ」を付記された別のアイコン（例えば、青色のアイコンである。）を用いてアニメーションで表示できる。
【００７８】
また、図２のステップＳ２において、学習者が、ネットワーク構築演習ウィンドウを用いて、実際のパケット交換ネットワークと同様の仮想的なパケット交換ネットワークを構築するように各仮想デバイス４−ｍ（ｍ＝１，２，…，Ｍ）の機器設定を行うと、実際のパケット交換ネットワークでのＩＰパケット２００の通信経路を確認できる。このため、実際のパケット交換ネットワークで障害が発生したときにどの通信機器に問題があるのかを、従来技術に比較して容易に特定できる。
【００７９】
なお、上記実施形態において、通信ログファイル５５と、キューテーブル５６と、アニメーション表示キューリストテーブル５７とをハードディスクドライブ５に格納したが、本発明はこれに限られず、ＲＡＭ４に格納してもよい。また、ＲＡＭ４と、ハードディスクドライブ５とに代えて、１つの記憶手段を用いてもよい。
【００８０】
また、図８に示すように、通信ログパケット１００はＩＰパケット２００そのものを含んだが、本発明はこれに限られず、通信ログパケット１００は、ＩＰパケット２００に含まれるデータのうち、送信元ＩＰアドレスと、宛先ＩＰアドレスと、プロトコル番号とを少なくとも含めばよい。なお、上記実施形態では、ＩＰパケット２００は、ＩＰｖ４に準拠したが、本発明はこれに限られず、ＩＰｖ６に準拠してもよい。この場合、通信ログパケット１００は、ＩＰパケット２００に含まれるデータのうち、送信元ＩＰアドレスと、宛先ＩＰアドレスと、図９のプロトコル番号フィールド２０９に対応するネクストヘッダフィールドに格納されるデータとを少なくとも含めばよい。
【００８１】
さらに、上記実施形態において、ネットワーク構築演習装置１のＯＳのプログラム５１はリナックス（登録商標）のプログラムであり、仮想デバイスプログラム５２は、ユーザモードリナックスのプログラムであった。リナックス（登録商標）及びユーザモードリナックスの各プログラムは、無償であり、ソースが公開されているので、安価なネットワーク構築演習装置１を実現するために適している。また、ユーザモードリナックスは、ユーザモードプロセスとして実行されるので耐障害性並びに管理及び改変のしやすさの点で、ゼン（Ｘｅｎ）又はヴイエムウェア（ＶＭＷａｒｅ（登録商標））などの他の仮想デバイスプログラムに比較して、ネットワーク構築演習装置１を安定して動作させるために適している。しかしながら、本発明はこれに限らず、ＯＳのプログラム５１は、任意のＯＳのプログラムであってよく、仮想デバイスプログラム５２は、ＲＡＭ４上で仮想デバイス４１の機能を実行できる任意の仮想デバイスプログラムであってもよい。
【００８２】
またさらに、本実施形態において、プログラムなど５１〜５４及びその実行のためのデータをそれぞれハードディスクドライブ５に予め格納した。しかしながら、本発明はこれに限らず、ＣＤ−ＲＯＭ又はＤＶＤなどの、コンピュータで読み取り可能な記録媒体に記録されたプログラムなど５１〜５４及びその実行のためのデータをそれぞれ、コンピュータなどのコントローラを含む光ディスクドライブにより読み出して、ネットワーク構築演習装置１の外部インタフェース又はインターネットを介してハードディスクドライブ５に格納してもよい。
【産業上の利用可能性】
【００８３】
以上説明したように、本発明に係るパケット通信処理装置及びその制御方法並びにプログラム及び記録媒体によれば、通信パケットが各仮想デバイスの各ネットワークインタフェースを通過したときに、当該ネットワークインタフェースを有する仮想デバイスの仮想デバイス識別子と、当該ネットワークインタフェースのネットワークインタフェース名と、当該通信パケットが送信されたのか又は受信されたのかを表す送受信識別子と、当該通信パケットに含まれる送信元アドレスと、当該通信パケットに含まれる宛先アドレスと、当該通信パケットに含まれるプロトコルを表すデータとを含む通信ログパケットを生成し、生成された複数の通信ログパケットを、各通信ログパケットが各ネットワークインタフェースを通過した時系列の順序で含む通信ログファイルを生成して記憶手段に格納する。さらに、格納された複数の通信ログパケットを含む通信ログファイルにおいて、当該複数の通信ログパケットのうち、互いに同一のプロトコルを有し、かつ、（ａ）各通信ログパケットの送信元アドレスが同一でありかつ宛先アドレスが同一である通信ログパケットと、（ｂ）各通信ログパケットの宛先アドレスが同一の送信元アドレスに一致しかつ送信元アドレスが同一の宛先アドレスに一致する通信ログパケットとが同一の通信ログパケットグループに属するように、格納された複数の通信ログパケットを分類する。従って、上記同一の通信ログパケットグループに属する各通信ログパケットは、１つの通信パケットを示しているので、作業者は、同一の通信ログパケットグループに属する各通信ログパケットに基づいて、上述した１つの通信パケットの通信経路を、従来技術に比較して容易に特定して確認できる。
【符号の説明】
【００８４】
１…ネットワーク構築演習装置、
２…ＣＰＵ、
３…ＲＯＭ、
４…ＲＡＭ、
４−１〜４−Ｍ…仮想デバイス、
５…ハードディスクドライブ、
６…ディスプレイ、
７…操作入力部、
９…タイマ回路、
５１…ＯＳのプログラム、
５１ｐ…ピングコマンドプログラム、
５２…仮想デバイスプログラム、
５３…ネットワーク構築演習プログラム、
５４…スタートキャプチャプログラム、
５５…通信ログファイル、
５６…キューテーブル、
５７…アニメーション表示キューリストテーブル、
１００…通信ログパケット、
２００…ＩＰパケット。
【図１】
0005622233.tif 000003
【図２】
0005622233.tif 000004
【図３】
0005622233.tif 000005
【図４】
0005622233.tif 000006
【図５】
0005622233.tif 000007
【図６】
0005622233.tif 000008
【図７】
0005622233.tif 000009
【図８】
0005622233.tif 000010
【図９】
0005622233.tif 000011
【図１０】
0005622233.tif 000012
【図１６】
0005622233.tif 000013
【図１１】
0005622233.tif 000014
【図１２】
0005622233.tif 000015
【図１３】
0005622233.tif 000016
【図１４】
0005622233.tif 000017
【図１５】
0005622233.tif 000018