説明

ネットワーク診断装置、ネットワーク診断方法およびプログラム

【課題】ASのように規模の大きなネットワークを診断する場合において、ネットワーク診断の負荷を格段に低減させる技術を提供する。
【解決手段】ネットワーク診断装置1は、ネットワークのトポロジを示すトポロジ情報を記憶するトポロジ情報記憶部10と、ネットワーク内のパケットを読み込むパケット読込部50と、パケットの送達確認に用いられる確認情報に基づいて、パケット読込部50によって読み込まれたパケットのパケットロスを検出するパケットロス検出部60と、トポロジ情報記憶部10に記憶されているトポロジ情報とパケットロス検出部60によって検出されたパケットロスに係るパケットロス情報とに基づいて、トポロジによって示される各エリアを集約した集約エリアを決定し、パケットロス情報を集約エリア毎に集計する集約部70と、集約部70によって集約された集約エリア毎の品質を判定する品質判定部80とを備えることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク診断装置、ネットワーク診断方法およびプログラムに関する。
【背景技術】
【0002】
現在、診断対象のネットワークにプローブパケットを送信するアクティブ計測ベースの技術を中心として、種々のネットワーク診断に係る技術が提案されている(例えば、非特許文献1、非特許文献2、非特許文献3参照)。非特許文献1は、マルチキャストパケットの代わりにパケットペアを用いたフロー品質を利用するネットワーク診断に係る技術を開示している。非特許文献2は、エンドエンドのフロー品質を利用するネットワーク診断に係る技術を開示している。非特許文献3は、IPプレフィックスに基づき診断対象ネットワークを集約するネットワーク診断に係る技術を開示している。
【非特許文献1】Y.Tsang,M.Coates and R.Nowak,“Passive Network Tomography using EM Algorithms,”IEEE ICASSP,2001.
【非特許文献2】V.N.Padmanabhan,L.Qiu and H.J.Wang,“Server−based Inference of Internet Link Lossiness,”IEEE INFOCOM,2003.
【非特許文献3】K.Cho,R.Kaizaki and A.Kato,“Aguri: An Aggregation−based Traffic Profiler,”Proc.QofIS2001,Sep.2001.
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、アクティブ計測ベースの従来のネットワーク診断技術では、AS(Autonomous system)のように規模の大きなネットワークを診断する場合、ネットワーク診断の負荷(例えば、データ解析の時間)が大きくなるという問題がある。本発明は、このような事情に鑑みてなされたものであり、ASのように規模の大きなネットワークを診断する場合において、ネットワーク診断の負荷を格段に低減させる技術を提供することを目的とする。
【課題を解決するための手段】
【0004】
上記問題を解決するために、本発明の一態様であるネットワーク診断装置は、ネットワークのトポロジを示すトポロジ情報を記憶するトポロジ情報記憶部と、ネットワーク内のパケットを読み込むパケット読込部と、パケットの送達確認に用いられる確認情報に基づいて、パケット読込部によって読み込まれたパケットのパケットロスを検出するパケットロス検出部と、トポロジ情報記憶部に記憶されているトポロジ情報とパケットロス検出部によって検出されたパケットロスに係るパケットロス情報とに基づいて、トポロジ情報によって示される各エリアを集約した集約エリアを決定し、パケットロス情報を集約エリア毎に集計する集約部と、集約部によって集約された集約エリア毎の品質を判定する品質判定部とを備えることを特徴とする。
【0005】
上記ネットワーク診断装置において、集約部は、パケット読込部によって読み込まれた各エリアのパケット数を隣接する各エリア同士において逐次累計し、累計パケット数が所定数をはじめて超えたときに、当該隣接する各エリアを集約エリアとして決定するようにしてもよい。
【0006】
上記ネットワーク診断装置において、品質判定部は、集約エリア毎のパケットロス率を算出し、集約エリア毎のパケットロス率が所定の基準値以上であるか否かに基づいて集約エリア毎の品質を判定するようにしてもよい。
【0007】
上記ネットワーク診断装置において、集約部は、パケットロス検出部によって検出されたパケットロスに係るパケットロス情報をパケットの送信元または宛先毎に集計した個別パケットロス情報を生成する第1集約部と、トポロジ情報記憶部に記憶されているトポロジ情報と第1集約部によって生成された個別パケットロス情報とに基づいて、集約エリアを決定し、個別パケットロス情報を集約エリア毎に集計した集約パケットロス情報を生成する第2集約部とを備え、品質判定部は、第2集約部によって生成された集約パケットロス情報に基づいて集約エリア毎の品質を判定するようにしてもよい。
【0008】
上記ネットワーク診断装置において、確認情報は、TCP(Transmission Control Protocol)におけるシーケンス番号であって、パケットロス検出部は、一のTCPコネクションにおいて既に取得しているパケットに付された最大のシーケンス番号に連続するシーケンス番号より大きいシーケンス番号を付されたパケットを取得した場合、最大のシーケンス番号に連続するシーケンス番号を付されたパケットが未取得であった旨を示す未取得情報を設定する未取得情報設定部と、一のTCPコネクションにおいて最大のシーケンス番号に連続するシーケンス番号より小さいシーケンス番号を付されたパケットを取得した場合に、未取得情報が設定されているときは送信元から当該ネットワーク装置迄の経路上においてパケットロスがあったと判定し、未取得情報が設定されていないときは当該ネットワーク装置から宛先迄の経路上においてパケットロスがあったと判定するパケットロス判定部とを備えるようにしてもよい。
【0009】
上記ネットワーク診断装置において、パケットロス判定部は、未取得情報が設定されている場合に、最大のシーケンス番号に連続するシーケンス番号と取得したパケットに付されたシーケンス番号との差が所定の閾値(オクテット数)以上であったときは、送信元から当該ネットワーク装置迄の経路上においてパケットロスがあったと判定し、最大のシーケンス番号に連続するシーケンス番号と取得したパケットに付されたシーケンス番号との差が所定の閾値未満であったときは、送信元から当該ネットワーク装置迄の経路上においてパケットロスがなかったと判定するようにしてもよい。
【0010】
上記ネットワーク診断装置において、パケットロス判定部は、未取得情報が設定されていない場合に、最大のシーケンス番号に連続するシーケンス番号と取得したパケットに付されたシーケンス番号との差が所定の閾値(オクテット数)以上であったときは、当該ネットワーク装置から宛先迄の経路上においてパケットロスがあったと判定し、最大のシーケンス番号に連続するシーケンス番号と取得したパケットに付されたシーケンス番号との差が所定の閾値未満であったときは、当該ネットワーク装置から宛先迄の経路上においてパケットロスがなかったと判定するようにしてもよい。
【0011】
上記問題を解決するために、本発明の他の一態様であるネットワーク診断方法は、ネットワーク内のパケットを読み込むパケット読込ステップと、パケットの送達確認に用いられる確認情報に基づいて、パケット読込ステップによって読み込まれたパケットのパケットロスを検出するパケットロス検出ステップと、パケットロス検出ステップによって検出されたパケットロスに係るパケットロス情報と、ネットワークのトポロジを示すトポロジ情報とに基づいて、トポロジ情報によって示される各エリアを集約した集約エリアを決定し、パケットロス情報を集約エリア毎に集計する集約ステップと、集約ステップによって集約された集約エリア毎の品質を判定する品質判定ステップとを有することを特徴とする。
【0012】
上記問題を解決するために、本発明の他の一態様であるプログラムは、ネットワークを診断するネットワーク診断装置のコンピュータに、ネットワーク内のパケットを読み込むパケット読込ステップと、パケットの送達確認に用いられる確認情報に基づいて、パケット読込ステップによって読み込まれたパケットのパケットロスを検出するパケットロス検出ステップと、パケットロス検出ステップによって検出されたパケットロスに係るパケットロス情報と、ネットワークのトポロジを示すトポロジ情報とに基づいて、トポロジ情報によって示される各エリアを集約した集約エリアを決定し、パケットロス情報を集約エリア毎に集計する集約ステップと、集約ステップによって集約された集約エリア毎の品質を判定する品質判定ステップとを実行させることを特徴とする。
【発明の効果】
【0013】
本発明によれば、ASのように規模の大きなネットワークを診断する場合であっても、ネットワーク診断の負荷を格段に低減させることができるようになる。アクティブ計測ベースのネットワーク診断を補完するものとして、アクティブ計測ベースのネットワーク診断を適用するエリアを事前に絞り込むことができるようになるからである。
【発明を実施するための最良の形態】
【0014】
以下、本発明の実施形態について図面を参照して詳細に説明する。図1は、インターネットを模式化した模式図である。図1において、T1〜T28は、インターネットに接続する端末である。R1〜R13は、インターネットを構成する各ネットワークを結ぶ節点であって、例えば、ルータ、レイヤ3スイッチである。ネットワーク診断装置1は、図1に示すように、接点R7に接続し、接点R7を通過するパケットを読み込む(キャプチャする)。例えば、接点R7のミラーポートにネットワーク診断装置1を接続し、接点R7を通過するパケットを読み込む。そして、ネットワーク診断装置1は、読み込んだパケットを解析してインターネットを診断する。なお、インターネットは複数のASによって構成されるが、ネットワーク診断装置1は、通信量の多いAS同士を結ぶ接点に接続してもよい。
【0015】
図2は、本発明の一実施形態に係るネットワーク診断装置1の構成例を示すブロック図である。図3は、パケットロス情報記憶部20に記憶される情報の一例である。図4は、個別パケットロス情報記憶部30に記憶される情報、集約パケットロス情報記憶部40に記憶される情報の一例である。図5は、集約エリアを模式化した模式図である。ネットワーク診断装置1は、図2に示すように、トポロジ情報記憶部10、パケットロス情報記憶部20、個別パケットロス情報記憶部30、集約パケットロス情報記憶部40、パケット読込部50、パケットロス検出部60、集約部70、品質判定部80および判定結果出力部90を備える。パケットロス検出部60は、未取得情報設定部61およびパケットロス判定部62から構成される。集約部70は、第1集約部71および第2集約部72から構成される。
【0016】
トポロジ情報記憶部10は、ネットワークのトポロジを示すトポロジ情報を記憶する。例えば、トポロジ情報記憶部10は、ネットワークの構成(各節点の位置、他の接点との接続関係、端末との接続関係などを示す情報)を示す情報をトポロジ情報として記憶する。以下、トポロジ情報によって示されるトポロジに従って、1以上の端末または1以上の接点をグループ化したときの当該グループをエリアと称する。例えば、図1に示す破線A1は、端末T13、T14をグループ化したときのエリアである。
【0017】
パケット読込部50は、ネットワーク(例えば、インターネット。以下、同様。)内のパケット(例えば、IPデータグラム。以下、同様。)を読み込む。パケット読込部50は、読み込んだパケットをパケットロス検出部60に供給する。
【0018】
パケットロス検出部60は、パケット読込部50からパケットを取得する。パケットロス検出部60は、パケット読込部50からパケットを取得した場合、パケットの送達確認に用いられる確認情報(TCPにおけるシーケンス番号)に基づいてパケットロスを検出する。パケットロス検出部60は、パケットロスを検出した場合、検出結果であるパケットロス情報をパケットロス情報記憶部20に記憶する。パケット検出部60によるパケットロスの検出方法の詳細は後述する。
【0019】
パケットロス情報記憶部20は、パケットロス情報を記憶する。例えば、パケットロス情報記憶部20は、図3に示すように、TCPコネクションを一意に識別する、送信元IPアドレス(図中および以下「SA」と表記)、宛先IPアドレス(図中および以下「DA」と表記)、プロトコル、送信元ポート番号(図中および以下「SP」と表記)および宛先ポート番号(図中および以下「DP」と表記)に対応付けて、パケットロスの検出の有無を示す情報(以下、「ロス有無情報」という)、および、パケットロスの検出された場所を示す情報(以下、「ロス場所情報」という)を記憶する。
【0020】
ロス有無情報「無(0)」は当該TCPセグメントに係るパケットについてパケットロスが検出されなかった旨を示し、ロス有無情報「有(1)」は当該TCPセグメントに係るパケットについてパケットロスが検出された旨を示す。ロス場所情報「前(0)」は送信元からネットワーク診断装置1迄の経路上(以下、「前」または「上流」ともいう)の何れかの場所においてのパケットロスが検出された旨を示し、ロス場所情報「後(1)」はネットワーク診断装置1から宛先迄の経路上(以下、「後」または「下流」ともいう)の何れかの場所においてのパケットロスが検出された旨を示す。
【0021】
なお、パケットロス情報記憶部20は、図3に示す例において、SA、DA、プロトコル、SP、DP、ロス有無情報およびロス場所情報を記憶したが、少なくともSA、DAおよびロス場所情報を記憶し、プロトコル、SP、DPおよびロス有無情報は記憶しなくてもよい。プロトコル、SPおよびDPは、パケットロス検出部60がTCPセグメントを一意に識別する際に使用した情報であって後段においては原則使用しないからである。また、ロス有無情報は、ロス場所情報の記憶有無によって代用できるからである。
【0022】
以下、パケットロスの検出方法について詳細に説明する。パケットロス検出部60を構成する未取得情報設定部61は、一のTCPコネクションにおいて既に取得しているパケットに付された最大のシーケンス番号に連続するシーケンス番号より大きいシーケンス番号を付されたパケットを取得した場合、最大のシーケンス番号に連続するシーケンス番号を付されたパケットが未取得であった旨を示す未取得情報(例えば、抜け落ちたデータを特定する情報)を設定(記憶)する。一のTCPコネクションとは、一連のシーケンス番号によって制御される単位である1つのTCPコネクションを意味する。既に取得しているパケットに付された最大のシーケンス番号に連続するシーケンス番号とは、ネットワーク診断装置1が取得したTCPセグメントのうち最大のシーケンス番号が付されたTCPセグメントの当該最大のシーケンス番号(オクテット数)に当該TCPセグメントのTCPペイロードのデータサイズ(オクテット数)を加算したシーケンス番号(オクテット数)である。つまり、次回取得予定のTCPセグメント(再送分のTCPセグメントを除く、以下同様。)に付されている筈のシーケンス番号である。最大のシーケンス番号に連続するシーケンス番号より大きいシーケンス番号を付されたパケットを取得した場合とは、次回取得予定のTCPセグメントを取得する前に更にそれ以降に取得予定のTCPセグメントを取得した場合である。なお、次回取得予定のTCPセグメントに係るパケットのパケットロス、遅延、遅延ゆらぎ(ジッタ)、異経路による送信などによって、ネットワーク診断装置1は、次回取得予定のTCPセグメントを取得する前に更にそれ以降に取得予定のTCPセグメントを取得する可能性がある。
【0023】
即ち、未取得情報設定部61は、ネットワーク診断装置1が、次回取得予定のTCPセグメントを取得する前に更にそれ以降に取得予定のTCPセグメントを取得した場合、次回取得予定のTCPセグメントが未取得であった旨を示す未取得情報を設定する。
【0024】
また、パケットロス検出部60を構成するパケットロス判定部62は、一のTCPコネクションにおいて最大のシーケンス番号に連続するシーケンス番号より小さいシーケンス番号を付されたパケットを取得した場合に未取得情報が設定されているときは、送信元からネットワーク診断装置1迄の経路上、つまり上流においてパケットロスがあったと判定する。最大のシーケンス番号に連続するシーケンス番号より小さいシーケンス番号を付されたパケットを取得した場合とは、次回取得予定のTCPセグメントではなく過去に取得している筈であったが未取得であったTCPセグメントを取得した場合、または、次回取得予定のTCPセグメントではなく過去に取得済みのTCPセグメントを再度取得した場合である。また、未取得情報が設定されているときとは、上述の如く、次回取得予定のTCPセグメントを取得する前に更にそれ以降に取得予定のTCPセグメントを取得した場合であるから、最大のシーケンス番号に連続するシーケンス番号より小さいシーケンス番号を付されたパケットを取得した場合に未取得情報が設定されているときとは、次回取得予定のTCPセグメントではなく過去に取得している筈であったが未取得であったTCPセグメントを取得したときである。
【0025】
即ち、パケットロス判定部62は、ネットワーク診断装置1が次回取得予定のTCPセグメントではなく過去に取得している筈であったが未取得であったTCPセグメントを取得したときは、上流においてパケットロスがあったと判定する。上流においてパケットロスがあったパケットが再送されてネットワーク診断装置1に初めて届いたと考えられるからである。
【0026】
なお、パケットロス判定部62は、最大のシーケンス番号に連続するシーケンス番号と取得したパケットに付されたシーケンス番号との差が所定の閾値以上である場合に未取得情報が設定されているときは、上流においてパケットロスがあったと判定する一方、最大のシーケンス番号に連続するシーケンス番号と取得したパケットに付されたシーケンス番号との差が所定の閾値未満である場合に、上流においてパケットロスがなかったと判定してもよい。遅延ゆらぎや異経路による送信などによってTCPセグメントの順序逆転が発生する場合があるが、閾値を数TCPセグメント分のデータ量とした設定することによって、高々、数TCPセグメント内のTCPセグメントの順序逆転をパケットロスとして取り扱わないようにするためである。
【0027】
また、パケットロス判定部62は、一のTCPコネクションにおいて最大のシーケンス番号に連続するシーケンス番号より小さいシーケンス番号を付されたパケットを取得した場合に未取得情報が設定されていないときは、ネットワーク診断装置1から宛先迄の経路上、つまり下流においてパケットロスがあったと判定する。未取得情報が設定されていないときとは、次回取得予定のTCPセグメントを取得する前に更にそれ以降に取得予定のTCPセグメントを取得していない場合であるから、最大のシーケンス番号に連続するシーケンス番号より小さいシーケンス番号を付されたパケットを取得した場合に未取得情報が設定されていないときとは、次回取得予定のTCPセグメントではなく過去に取得済みのTCPセグメントを再度取得したときである。
【0028】
即ち、パケットロス判定部62は、ネットワーク診断装置1が次回取得予定のTCPセグメントではなく過去に取得済みのTCPセグメントを再度取得したときは、下流においてパケットロスがあったと判定する。下流においてパケットロスがあったパケットが再送されてネットワーク診断装置1に再度届いたと考えられるからである。
【0029】
なお、パケットロス判定部62は、最大のシーケンス番号に連続するシーケンス番号と取得したパケットに付されたシーケンス番号との差が所定の閾値以上である場合に未取得情報が設定されていないときは、下流においてパケットロスがあったと判定する一方、最大のシーケンス番号に連続するシーケンス番号と取得したパケットに付されたシーケンス番号との差が所定の閾値未満である場合に、下流においてパケットロスがなかったと判定してもよい。遅延ゆらぎや異経路による送信などによってTCPセグメントの順序逆転が発生する場合があるが、閾値を数TCPセグメント分のデータ量とした設定することによって、高々、数TCPセグメント内のTCPセグメントの順序逆転をパケットロスとして取り扱わないようにするためである。
【0030】
集約部70は、ユーザ命令受付部(非図示)を介して受け付けたユーザからの命令に従って、トポロジ情報記憶部10に記憶されているトポロジ情報と、パケットロス情報記憶部20に記憶されているパケットロス情報とに基づいて、トポロジによって示される各エリアを集約した集約エリアを決定し、パケットロス情報を集約エリア毎に集計する。具体的には、集約部70は、パケット読込部50によって読み込まれた各エリアのパケット数を隣接する各エリア同士において逐次累計し、累計パケット数が所定数をはじめて超えたときに、当該隣接する各エリアを集約エリアとして決定する。なお、集約部70は、ユーザからの命令に代えてまたは加えて、予め指定した所定の時刻に、集約エリアを決定し、パケットロス情報を集約エリア毎に集計してもよい。
【0031】
以下、集約エリアの決定方法および集約エリア毎の集計方法について詳細に説明する。集約部70を構成する第1集約部71は、パケットロス情報記憶部20に記憶されているパケットロス情報をパケットの送信元または宛先毎に集計した個別パケットロス情報を生成する。具体的には、第1集約部71は、ロス場所情報「前(0)」であるTCPセグメントに係るパケット、つまり上流においてパケットロスがあったと判定されたTCPセグメントに係るパケットについては送信元(SA)毎に集計し、ロス場所情報「前(1)」であるTCPセグメントに係るパケット、つまり下流においてパケットロスがあったと判定されたTCPセグメントに係るパケットについては宛先(DA)毎に集計した個別パケットロス情報を生成する。
【0032】
個別パケットロス情報記憶部30は、個別パケットロス情報を記憶する。例えば、個別パケットロス情報記憶部30は、図4(a)に示すように、SAに対応付けて、当該SAを送信元とする全パケット数、および、当該SAを送信元とする全パケット数のうちパケットロスが検出されたパケット数(図中および以下「ロス数」と表記)を記憶する。また例えば、個別パケットロス情報記憶部30は、図4(b)に示すように、DAに対応付けて、当該DAを宛先とする全パケット数、および、当該DAを宛先とするロス数を記憶する。
【0033】
集約部70の第2集約部72は、トポロジ情報記憶部10に記憶されているトポロジ情報と、個別パケットロス情報記憶部30に記憶されている個別パケットロス情報とに基づいて、トポロジによって示される各エリアを集約した集約エリアを決定する。即ち、第2集約部72は、各集約エリアに含まれる全パケット数が所定数以上であって、かつ、集約エリア数が最大となるように集約エリアを決定する。例えば、第2集約部72は、図5(b)に示すように、集約エリアG1、G2、G3を決定し、パケットロス情報を集約エリアG1、G2、G3毎に集計する。集約エリアG1は、図5(a)に示す、R8配下のエリアA1、A2、A3、A4を集約した集約エリア、集約エリアG2は、R12配下のエリアA5、A6を集約した集約エリア、集約エリアG3は、R13配下のエリアA7、A8を集約した集約エリアである。なお、図5(a)は、図1の一部(R7〜R13の部分)を抜き出したものである。
【0034】
集約エリアを決定した集約部70の第2集約部72は、個別パケットロス情報を集約エリア毎に集計した集約パケットロス情報を生成し、生成した集約パケットロス情報を集約パケットロス情報記憶部40に記憶する。
【0035】
集約パケットロス情報記憶部40は、集約パケットロス情報を記憶する。例えば、集約パケットロス情報記憶部40は、集約エリアを特定する情報に対応付けて、当該集約エリア内の全パケット数、および、当該集約エリア内のロス数を記憶する。より詳細には、集約パケットロス情報記憶部40は、図4(c)に示すように、集約エリアを特定(識別)する情報としてIPアドレスに対応付けて、当該IPアドレスを送信元または宛先とする全パケット数、および、当該IPアドレスを送信元または宛先とするロス数を記憶する。なお、図4(c)に示す例において、集約パケットロス情報記憶部40は、IPアドレス「A1」「A2」に対応付けて、全パケット数「43800」およびロス数「67」を記憶している。全パケット数「43800」は、図4(a)に示すSA「A11」に対応付けられた全パケット数「10050」とSA「A12」に対応付けられた全パケット数「260000」と図4(b)に示すDA「A11」に対応付けられた全パケット数「7300」の合計である。また、ロス数「67」は、図4(a)に示すSA「A11」に対応付けられたロス数「18」とSA「A12」に対応付けられたロス数「37」と図4(b)に示すDA「A11」に対応付けられたロス数「12」の合計である。
【0036】
品質判定部80は、集約パケットロス情報記憶部40に記憶されている集約パケットロス情報に基づいて、集約エリア毎の品質を判定する。具体的には、品質判定部80は、集約エリア毎のパケットロス率を算出し、集約エリア毎のパケットロス率が所定の基準値未満である場合に品質は良好であると判断し、基準値以上の場合に品質は不明であると判定する。例えば、図4(c)に示す集約パケットロス情報が集約パケットロス情報記憶部40に記憶されており、所定の基準値「0.1(%)」であるとした場合、品質判定部80は、集約エリア「A1」「A2」のパケットロス率「約0.153(%)」(67÷43800)を算出し、集約エリア「A1」「A2」のパケットロス率「約0.153(%)」が所定の基準値「0.1(%)」以上であるため集約エリア「A1」「A2」の品質は不明であると判定する。品質判定部80は、集約エリア毎の品質を判定した場合には、判定結果を判定結果出力部90に供給する。
【0037】
判定結果出力部90は、品質判定部80から集約エリア毎の品質を判定した判定結果を取得する。判定結果出力部90は、判定結果を取得した場合、判定結果を外部の装置(例えば、アクティブ計測ベースのネットワーク診断を適用した他のネットワーク診断装置)に出力する。なお、判定結果出力部90から判定結果を取得した外部の装置は、品質が良好であると判定された集約エリアに対してはアクティブ計測ベースのネットワーク診断を行わず、品質が不明であると判定された集約エリアに対してのみアクティブ計測ベースのネットワーク診断を行う。即ち、ネットワーク診断装置1は、外部の装置に判定結果を出力し、外部の装置がアクティブ計測ベースのネットワーク診断を適用するエリアを絞り込んでいる。
【0038】
図6は、パケットロス検出部60によるパケットロスの検出の動作の一例を示すフローチャートである。図7は、図6に示すフローチャートを補足説明する説明図である。なお、図6に示すフローチャートは、パケットロス検出部60がパケット読込部50からパケットを取得することにより開始する(ステップS100)。なお、説明の便宜上、コネクション確立時のシーケンス番号の初期値は1(オクテット)、全てのTCPセグメントはデータ部(TCPペイロード)を有しているものとし、各データサイズは1024(オクテット、図6、図7において「D」と表記))であるものとする。
【0039】
ステップS100に続いて、パケットロス検出部60は、今回取得したパケットに付されたシーケンス番号(図6、図7において「Seq」と表記)が既に取得しているパケットに付された最大のシーケンス番号に連続するシーケンス番号(図6、図7において「rmax」と表記)より大きいか否かを判断する(ステップS110)。例えば、パケットロス検出部60は、図7(a)に示すように、1つ目のパケット(シーケンス番号「1」、データサイズ「1024」)、2つ目のパケット(シーケンス番号「1025」、データサイズ「1024」、3つ目のパケット(シーケンス番号「2049」、データサイズ「1024」)を取得した後に、図7(b)に示す4つ目のパケット(シーケンス番号「5121」、データサイズ「1024」)を取得した場合、4つ目のパケットのシーケンス番号であるSeq「2049」が、シーケンス番号「2049」に連続するシーケンス番号(rmax)「3073」より大きいか否かを判断する(ステップS110)。
【0040】
パケットロス検出部60は、シーケンス番号(Seq)がシーケンス番号(rmax)より大きいと判断した場合(ステップS110:Yes)、未取得情報(図6、図7において「hole」と表記)を設定(記憶)する(ステップS112)。例えば、図7(b)に示す4つ目のパケットを取得したパケットロス検出部60は、Seq「5121」がrmax「3073」より大きいと判断し(ステップS110:Yes)、当該TCPコネクションに対応付けて、図7(c)に示すように、hole「3073−5120」を設定する。つまり、パケットロス検出部60は、抜け落ちたデータ部分「3073−5120」にHoleを設定する。そして、ステップS150に進む。
【0041】
一方、ステップS110において、パケットロス検出部60は、シーケンス番号(Seq)がシーケンス番号(rmax)より大きくないと判断した場合(ステップS110:No)、つまり、シーケンス番号(Seq)がシーケンス番号(rmax)と等しいか、シーケンス番号(Seq)がシーケンス番号(rmax)より小さいと判断した場合(ステップS110:No)、シーケンス番号(rmax)とシーケンス番号(Seq)との差が所定の閾値以上であるか否かを判断する(ステップS120)。なお、閾値となる所定の定数は種々考えられるが、例えば、TCPセグメントのデータサイズ「D」に所定の定数(図6において「S」と表記)を加えた値とする。
【0042】
パケットロス検出部60は、シーケンス番号(rmax)とシーケンス番号(Seq)との差が所定の閾値以上であると判断した場合(ステップS120:Yes)、holeが設定(記憶)されているか否かを判断する(ステップS130)。パケットロス検出部60は、holeが設定(記憶)されていると判断した場合(ステップS130:Yes)、上流(前)においてパケットロスがあったと判定し、パケットロス(図6、図7において、上流におけるパケットロスを「前ロス」と表記する)をカウントする(ステップS132)。また、パケットロス検出部60は、ステップS132に続いて、当該holeの設定を解除(消去)する(ステップS134)。例えば、所定の定数「S」がゼロであって、かつ、図7(c)に示すように、hole「3073−5120」が設定(記憶)されている場合に、図7(d)に示す5つ目のパケット(シーケンス番号「3073」、データサイズ「1024」)を取得したパケットロス検出部60は、Seq「3073」がrmax「6145」より大きくないと判断し(ステップS110:No)、rmax「6145」とSeq「3073」との差「3072」が所定の閾値「1024」以上であると判断し(ステップS120:Yes)、hole「3073−5120」が設定(記憶)されていると判断し(ステップS130:Yes)、図7(e)に示すように、前ロスをカウントし(ステップS132)、hole「3073−4096」の設定を解除(消去)する(ステップS134)。そして、ステップS150に進む。
【0043】
一方、ステップS130において、パケットロス検出部60は、holeが設定(記憶)されていないと判断した場合(ステップS130:No)、下流(後)においてパケットロスがあったと判定し、パケットロス(図6において、下流におけるパケットロスを「後ロス」と表記する)をカウントする(ステップS136)。例えば、所定の定数「S」がゼロである場合に、パケットロス検出部60が、図7(a)に示す1つ目、2つ目、3つ目のパケットを取得した後に2つ目のパケットを再取得した場合、Seq「1025」がrmax「3073」より大きくないと判断し(ステップS110:No)、rmax「3073」とSeq「1025」との差「2048」が所定の閾値「1024」以上であると判断し(ステップS120:Yes)、holeが設定(記憶)されていないと判断し(ステップS130:No)、後ロスをカウントする(ステップS136)。そして、ステップS150に進む。
【0044】
一方、ステップS120において、パケットロス検出部60は、シーケンス番号(rmax)とシーケンス番号(Seq)との差が所定の閾値以上でないと判断した場合(ステップS120:No)、holeが設定(記憶)されているか否かを判断する(ステップS140)。パケットロス検出部60は、holeが設定(記憶)されていると判断した場合(ステップS140:Yes)、当該holeの設定を解除(消去)する(ステップS142)。例えば、所定の定数「S」がゼロでなく3072(3データ分)であって、かつ、図7(c)に示すように、hole「3073−5120」が設定(記憶)されている場合に、図7(d)に示す5つ目のパケットを取得したパケットロス検出部60は、Seq「3073」がrmax「6145」より大きくないと判断し(ステップS110:No)、rmax「6145」とSeq「3073」との差「3072」が所定の閾値「4096」以上でないと判断し(ステップS120:No)、hole「3073−5120」が設定(記憶)されていると判断し(ステップS140:Yes)、hole「3073−5120」の設定を解除(消去)する(ステップS162)。そして、ステップS150に進む。
【0045】
一方、ステップS140において、パケットロス検出部60は、holeが設定(記憶)されていないと判断した場合(ステップS140:No)、ステップS142を飛ばして、ステップS150に進む。例えば、所定の定数「S」をゼロではなく3072(3データ分)であって、パケットロス検出部60が、図7(a)に示す1つ目、2つ目、3つ目のパケットを取得した後に2つ目のパケットを再取得した場合、Seq「1025」がrmax「3073」より大きくないと判断し(ステップS110:No)、rmax「3073」とSeq「1025」との差「2048」が所定の閾値「4096」以上でないと判断し(ステップS120:Yes)、holeが設定(記憶)されていないと判断し(ステップS140:No)、ステップS142を飛ばしてステップS150に進む。
【0046】
ステップS134、ステップS136、ステップS142またはステップS140(No)に続いて、パケットロス検出部60は、シーケンス番号(Seq)にデータサイズ「D」を加えた値がシーケンス番号(rmax)より大きいか否かを判断する(ステップS150)。パケットロス検出部60は、シーケンス番号(Seq)にデータサイズ「D」を加えた値がシーケンス番号(rmax)より大きいと判断した場合(ステップS150:Yes)、シーケンス番号(rmax)を更新する(ステップS152)。具体的には、シシーケンス番号(Seq)にデータサイズ「D」を加えた値を新たなシーケンス番号(rmax)とする。そして、ステップS160に進む。
【0047】
一方、ステップS150において、パケットロス検出部60は、シーケンス番号(Seq)にデータサイズ「D」を加えた値がシーケンス番号(rmax)より大きくないと判断した場合(ステップS150:Yes)、つまり、シーケンス番号(Seq)にデータサイズ「D」を加えた値がシーケンス番号(rmax)と等しいか、シーケンス番号(Seq)にデータサイズ「D」を加えた値がシーケンス番号(rmax)より小さいと判断した場合(ステップS150:No)、ステップS152を飛ばしてステップS160に進む。
【0048】
ステップS112、ステップS150(No)またはステップS152に続いて、パケットロス検出部60は、TCPコネクションが終了したか否かを判断する(ステップS160)。パケットロス検出部60は、TCPコネクションが終了したと判断した場合(ステップS160:Yes)、当該TCPコネクション全体に係るholeの設定を解除(消去)する(ステップS162)。そして本フローチャートは終了する。なお、パケットロス検出部60は、パケット読込部50からパケットを再度取得した場合には(ステップS100)、別のTCPコネクションとしてステップS110以降を実行する。
【0049】
一方、ステップS160において、パケットロス検出部60は、TCPコネクションが終了していないと判断した場合(ステップS160:No)、ステップS162を飛ばして本フローチャートは終了する。なお、パケットロス検出部60は、パケット読込部50からパケットを再度取得した場合には(ステップS100)、同一のTCPコネクションとしてステップS110以降を実行する。なお、パケットロス検出部60は、送受信側の双方からのコネクション切断要求(fin)に係るパケットと、それぞれの切断要求に対する確認応答(Ack)に係るパケットを取得した場合にTCPコネクションが終了したと判断する。
【0050】
なお、図7(g)は、例えば、所定の定数「S」がゼロであって、かつ、図7(e)に示すように、hole「4096−5120」が設定(記憶)されている場合に、パケットロス検出部60が、図7(f)に示す6つ目のパケット(シーケンス番号「7169」、データサイズ「1024」)を取得した場合に、hole「6145−7168」が設定(記憶)される例である。
【0051】
以上、本実施形態によれば、ASのように規模の大きなネットワークを診断する場合であっても、ネットワーク診断の負荷を格段に低減させることができるようになる。アクティブ計測ベースのネットワーク診断を補完するものとして、アクティブ計測ベースのネットワーク診断を適用するエリアを事前に絞り込むことができるようになるからである。
【0052】
なお、本実施形態では、確認情報の一例としてTCPのシーケンス番号の例を説明したが、確認情報はTCPにおけるシーケンス番号に限定されない。例えば、同種の情報を含むプロトコルであれば実施可能である。確認情報の他の例は、VoIPなどに用いられるRTP(Real−time Transport Protocol)のシーケンス番号、インターネットVPNなどに利用されるIPsecのESPヘッダのシーケンス番号およびAHヘッダのシーケンス番号である。
【0053】
なお、ネットワーク診断装置1の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、ネットワーク診断装置1に係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0054】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0055】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【0056】
【図1】インターネットを模式化した模式図である。
【図2】本発明の一実施形態に係るネットワーク診断装置1の構成例を示すブロック図である。
【図3】パケットロス情報記憶部20に記憶される情報の一例である。
【図4】個別パケットロス情報記憶部30に記憶される情報および集約パケットロス情報記憶部40に記憶される情報の一例である。
【図5】集約エリアを模式化した模式図である。
【図6】パケットロス検出部60によるパケットロスの検出の動作の一例を示すフローチャートである。
【図7】図6に示すフローチャートを補足説明する説明図である。
【符号の説明】
【0057】
1 ネットワーク診断装置 10 トポロジ情報記憶部 20 パケットロス情報記憶部 30 個別パケットロス情報記憶部 40 集約パケットロス情報記憶部 50パケット読込部 60 パケットロス検出部 61 未取得情報設定部 62 パケットロス判定部 70 集約部 71 第1集約部 72 第2集約部 80 品質判定部 90 判定結果出力部

【特許請求の範囲】
【請求項1】
ネットワークのトポロジを示すトポロジ情報を記憶するトポロジ情報記憶部と、
ネットワーク内のパケットを読み込むパケット読込部と、
パケットの送達確認に用いられる確認情報に基づいて、前記パケット読込部によって読み込まれたパケットのパケットロスを検出するパケットロス検出部と、
前記トポロジ情報記憶部に記憶されている前記トポロジ情報と前記パケットロス検出部によって検出されたパケットロスに係るパケットロス情報とに基づいて、前記トポロジ情報によって示される各エリアを集約した集約エリアを決定し、前記パケットロス情報を前記集約エリア毎に集計する集約部と、
前記集約部によって集約された前記集約エリア毎の品質を判定する品質判定部と
を備えることを特徴とするネットワーク診断装置。
【請求項2】
前記集約部は、
前記パケット読込部によって読み込まれた前記各エリアのパケット数を隣接する各エリア同士において逐次累計し、累計パケット数が所定数をはじめて超えたときに、当該隣接する各エリアを前記集約エリアとして決定することを特徴とする請求項1に記載のネットワーク診断装置。
【請求項3】
前記品質判定部は、
前記集約エリア毎のパケットロス率を算出し、
前記集約エリア毎のパケットロス率が所定の基準値以上であるか否かに基づいて前記集約エリア毎の品質を判定することを特徴とする請求項1または請求項2の何れか1項に記載のネットワーク診断装置。
【請求項4】
前記集約部は、
前記パケットロス検出部によって検出されたパケットロスに係るパケットロス情報をパケットの送信元または宛先毎に集計した個別パケットロス情報を生成する第1集約部と、
前記トポロジ情報記憶部に記憶されている前記トポロジ情報と前記第1集約部によって生成された前記個別パケットロス情報とに基づいて、前記集約エリアを決定し、前記個別パケットロス情報を前記集約エリア毎に集計した集約パケットロス情報を生成する第2集約部と
を備え、
前記品質判定部は、前記第2集約部によって生成された前記集約パケットロス情報に基づいて前記集約エリア毎の品質を判定することを特徴とする請求項1または請求項3の何れか1項に記載のネットワーク診断装置。
【請求項5】
前記確認情報は、
TCPにおけるシーケンス番号であって、
前記パケットロス検出部は、
一のTCPコネクションにおいて既に取得しているパケットに付された最大のシーケンス番号に連続するシーケンス番号より大きいシーケンス番号を付されたパケットを取得した場合、前記最大のシーケンス番号に連続するシーケンス番号を付されたパケットが未取得であった旨を示す未取得情報を設定する未取得情報設定部と、
一のTCPコネクションにおいて前記最大のシーケンス番号に連続するシーケンス番号より小さいシーケンス番号を付されたパケットを取得した場合に、前記未取得情報が設定されているときは送信元から当該ネットワーク装置迄の経路上においてパケットロスがあったと判定し、前記未取得情報が設定されていないときは当該ネットワーク装置から宛先迄の経路上においてパケットロスがあったと判定するパケットロス判定部と
を備えることを特徴とする請求項1から請求項4の何れかに記載のネットワーク診断装置。
【請求項6】
前記パケットロス判定部は、
前記未取得情報が設定されている場合に、前記最大のシーケンス番号に連続するシーケンス番号と取得したパケットに付されたシーケンス番号との差が所定の閾値(オクテット数)以上であったときは、送信元から当該ネットワーク装置迄の経路上においてパケットロスがあったと判定し、前記最大のシーケンス番号に連続するシーケンス番号と取得したパケットに付されたシーケンス番号との差が所定の閾値未満であったときは、送信元から当該ネットワーク装置迄の経路上においてパケットロスがなかったと判定することを特徴とする請求項5に記載のネットワーク診断装置。
【請求項7】
前記パケットロス判定部は、
前記未取得情報が設定されていない場合に、前記最大のシーケンス番号に連続するシーケンス番号と取得したパケットに付されたシーケンス番号との差が所定の閾値(オクテット数)以上であったときは、当該ネットワーク装置から宛先迄の経路上においてパケットロスがあったと判定し、前記最大のシーケンス番号に連続するシーケンス番号と取得したパケットに付されたシーケンス番号との差が所定の閾値未満であったときは、当該ネットワーク装置から宛先迄の経路上においてパケットロスがなかったと判定することを特徴とする請求項5に記載のネットワーク診断装置。
【請求項8】

ネットワーク内のパケットを読み込むパケット読込ステップと、
パケットの送達確認に用いられる確認情報に基づいて、前記パケット読込ステップによって読み込まれたパケットのパケットロスを検出するパケットロス検出ステップと、
前記パケットロス検出ステップによって検出されたパケットロスに係るパケットロス情報と、ネットワークのトポロジを示すトポロジ情報とに基づいて、前記トポロジ情報によって示される各エリアを集約した集約エリアを決定し、前記パケットロス情報を前記集約エリア毎に集計する集約ステップと、
前記集約ステップによって集約された前記集約エリア毎の品質を判定する品質判定ステップと
を有することを特徴とするネットワーク診断方法。
【請求項9】
ネットワークを診断するネットワーク診断装置のコンピュータに、
ネットワーク内のパケットを読み込むパケット読込ステップと、
パケットの送達確認に用いられる確認情報に基づいて、前記パケット読込ステップによって読み込まれたパケットのパケットロスを検出するパケットロス検出ステップと、
前記パケットロス検出ステップによって検出されたパケットロスに係るパケットロス情報と、ネットワークのトポロジを示すトポロジ情報とに基づいて、前記トポロジ情報によって示される各エリアを集約した集約エリアを決定し、前記パケットロス情報を前記集約エリア毎に集計する集約ステップと、
前記集約ステップによって集約された前記集約エリア毎の品質を判定する品質判定ステップと
を実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate