(57)【特許請求の範囲】
【請求項１】
パケットの送信元装置と送信先装置との通信経路上に配置された、前記パケットの損失を検出する検出装置と通信可能で、
前記検出装置から前記パケットの損失の通知を受信した場合に、該パケットの通信経路上で、当該検出装置よりも前記送信元装置の側に位置する他の検出装置から前記損失に係るパケットを収集する収集部と、
前記収集部によって収集したパケットを、前記通信経路上で、前記損失を検出した検出装置よりも前記送信先装置の側に位置する他の検出装置に送信する送信部と
を有することを特徴とする管理装置。
【請求項２】
前記収集部は、前記送信元装置と前記送信先装置との間における接続関係であるコネクションが同一であって、該同一コネクションの経路上に設置された複数の検出装置から同一のパケットについて損失の通知をそれぞれ受信した場合には、最初に受信した損失の通知にのみ応じて、前記損失に係るパケットを収集することを特徴とする請求項１に記載の管理装置。
【請求項３】
前記収集部は、前記パケットの損失が発生した旨の通知を受信した場合に、当該パケットが属するコネクションの利用者の優先度を判定し、当該優先度が所定の閾値より高い場合にのみ、前記損失に係るパケットを収集することを特徴とする請求項１または２に記載の管理装置。
【請求項４】
前記検出装置がパケットの通信を行う送信元装置および送信先装置が接続される第一のネットワーク上に配置され、前記管理装置が前記検出装置と第二のネットワークを介して接続されることを特徴とする請求項１〜３のいずれか一つに記載の管理装置。
【請求項５】
複数の検出装置と管理装置とを含む通信システムであって、
前記複数の検出装置は、
パケットを取り込み、該パケットの損失を検出する検出部と、
前記検出部によって前記パケットの損失を検出した場合には、前記パケットの損失が発生した旨を前記管理装置に通知する通知部と、
前記管理装置からパケットを受信した場合には、前記送信先装置に前記パケットを転送する転送部と、
を有し、
前記管理装置は、
前記検出装置から前記パケットの損失の通知を受信した場合に、該パケットの通信経路上で、当該検出装置よりも前記送信元装置の側に位置する他の検出装置から前記損失に係るパケットを収集する収集部と、
前記収集部によって収集したパケットを、前記通信経路上で、前記損失を検出した検出装置よりも前記送信先装置の側に位置する他の検出装置に送信する送信部と
を有することを特徴とする通信システム。
【請求項６】
複数の検出装置および管理装置による通信方法であって、
前記検出装置は、
パケットを取り込み、該パケットの損失を検出し、
前記パケットの損失を検出した場合には、前記パケットの損失が発生した旨を前記管理装置に通知し、
前記管理装置からパケットを受信した場合には、前記送信先装置に前記パケットを転送し、
前記管理装置は、
前記検出装置から前記パケットの損失の通知を受信した場合に、該パケットの通信経路上で、当該検出装置よりも前記送信元装置の側に位置する他の検出装置から前記損失に係るパケットを収集し、
収集したパケットを、前記通信経路上で、前記損失を検出した検出装置よりも前記送信先装置の側に位置する他の検出装置に送信する
ことを特徴とするパケット通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置、通信システムおよびパケット通信方法に関する。
【背景技術】
【０００２】
従来、コネクション型の通信プロトコル（例えば、ＴＣＰ（Transmission  Control  Protocol）など）を用いて、送信元ホストから送信先ホストに対してルータ経由でデータを送信するデータ通信が実施されている。例えば、図１５に例示するように、送信元ホスト１は、複数のルータ３Ａ〜３Ｄを経由させて、送信先ホスト２にデータを送信する。図１５は、従来のネットワーク構成を示す図である。また、送信元ホスト１と送信先ホスト２との間で正常な通信が行われている間、送信先ホスト２は、通信プロトコルの標準機能により、送信元ホスト１から送信されたデータに対して、応答確認であるＡＣＫ（Acknowledgement）メッセージを返送する。
【０００３】
一方、ネットワーク上で何らかの障害によりパケットロスが発生した場合に、送信先ホストは、ロスしたパケットに対するＡＣＫメッセージを返送しない。ここで、図１６を用いて、パケットロスが発生した場合におけるデータ再送処理について説明する。図１６は、パケットロスが発生した場合における従来のデータ再送要求処理を説明する図である。図１６の例では、通信システムにおけるルータ３Ｃとルータ３Ｄとの間でパケットロスが発生した場合について説明する。図１６に示すように、送信元ホスト１は、送信したパケットに対するＡＣＫメッセージを一定時間以上受信しない場合には、ＡＣＫメッセージ未受信のタイムアウトを検出し、パケットの再送信を試みる。その後も、送信元ホスト１は、ＡＣＫメッセージが受信できない場合は、送信元ホスト１からのデータ再送信が間隔を変えながら複数回繰り返し、データの再送信を試みる。
【０００４】
このような通信プロトコルの再送機能に任せたデータ復旧を行う場合には、パケットロス発生後、送信元ホストが障害の発生を認識し再送を開始するまでに長時間を要してしまう場合がある。このため、ネットワーク上にＴＡＰ（Test  Access  Point）と呼ばれる信号分岐装置を設置し、ＴＡＰにネットワークプローブ（以下、プローブという）を接続してパケットロスを検出し、パケットロス検出後にパケットの再送信を行う方法が知られている。例えば、図１７に例示するように、送信元ホスト１と、各ルータ３Ａ〜３Ｆと、送信先ホスト２との間のリンク上にＴＡＰ５をそれぞれ設置し、ＴＡＰにプローブ４Ａ〜４Ｈを接続してパケットロスを検出する。図１７は、ネットワーク内のプローブ設置例を示す図である。
【０００５】
このようなプローブ４Ａ〜４Ｈは、ネットワーク上を流れるパケットを一定期間保持してパケットデータの解析を行い、コネクション型通信プロトコルのシーケンス番号の整合性をチェックすることで、パケットロスを検出する。そして、プローブ４Ａ〜４Ｈがパケットロスを検出した場合には、送信元ホスト１は、送信先ホスト２に対してパケットの再送を行い、送信先ホスト２が再送パケットを受信するまで、パケットの再送を繰り返し行う。
【０００６】
ところが、送信元ホスト１は、送信先ホスト２に対してパケットの再送を繰り返し行うので、送信先ホスト２が再送パケットを受信するまでに時間がかかる場合がある。また、再送信処理を行う場合には、送信元ホスト１に再送信処理の負荷が集中する場合がある。
【０００７】
このため、図１８に例示するように、ネットワーク上における各ルータ３Ａ〜３Ｆに対して、プローブと同様のパケットロス検出の仕組みを搭載した上で、中継ルートの前段ルータに対してパケットの再送を依頼する方法が知られている。図１８は、パケットロスが発生した場合における従来の再送要求処理を説明する図である。この方法では、再送依頼を受けた前段ルータは、中継済みのパケットを一定量保持しているバッファを検索し、再送依頼対象のパケットを見つけた場合には、送信先ホストに向けてパケットの再送を行う。例えば、図１８に例示するように、ルータ３Ｄは、通信システムにおけるルータ３Ｃとルータ３Ｄとの間でパケットロスが発生したことを検出した場合には、前段ルータであるルータ３Ｃに対してパケットの再送を依頼する。ルータ３Ｃは、自装置のバッファを検索し、再送依頼対象のパケットが見つかった場合は、送信先ホスト２に向けてパケットの再送を行う。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−６７８１４号公報
【特許文献２】特開２００３−３３３５７７号公報
【特許文献３】特開２００３−３０４２７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、上記したルータに対してパケットの再送を依頼する技術では、確実かつ迅速にロスパケットを再送することができないという課題があった。つまり、従来の技術では、送信先ホストに向けてパケットの再送を行うので、パケットロスが特定の箇所で頻繁に起こるような状況では、前段ルータから再送を行っても再びパケットロスが発生する可能性が高く、確実かつ迅速にロスパケットを再送することができない。
【００１０】
一つの側面では、確実かつ迅速にロスパケットを再送することを目的とする。
【課題を解決するための手段】
【００１１】
第一の案では、管理装置は、検出装置からパケットの損失の通知を受信した場合に、該パケットの通信経路上で、当該検出装置よりも前記送信元装置の側に位置する他の検出装置から前記損失に係るパケットを収集する収集部と、前記収集部によって収集したパケットを、前記通信経路上で、前記損失を検出した検出装置よりも前記送信先装置の側に位置する他の検出装置に送信する送信部とを有することを特徴とする。
【発明の効果】
【００１２】
確実かつ迅速にロスパケットを再送することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係る通信システムの構成を示す図である。
【図２】図２は、マネージャおよびプローブのハードウェア構成を示す図である。
【図３】図３は、実施例１に係るマネージャの構成を示すブロック図である。
【図４】図４は、ＴＣＰコネクション確立時における統計情報の一例を示す図である。
【図５】図５は、経路情報の一例を示す図である。
【図６】図６は、送信元ホストと送信先ホストとの間で行われる通信経路の一例を示す図である。
【図７】図７は、パケットロス発生時における障害情報の一例を示す図である。
【図８】図８は、実施例１に係るプローブの構成を示すブロック図である。
【図９】図９は、マネージャおよびプローブのパケットロス復旧処理を説明する図である。
【図１０】図１０は、実施例１に係るマネージャの処理動作を示すフローチャートである。
【図１１】図１１は、実施例１に係るプローブの処理動作を示すフローチャートである。
【図１２】図１２は、実施例２に係るマネージャの処理手順を説明するためのフローチャートである。
【図１３】図１３は、実施例３に係るマネージャの処理手順を説明するためのフローチャートである。
【図１４】図１４は、パケットロス復旧処理を実行するコンピュータを示す図である。
【図１５】図１５は、従来のネットワーク構成を示す図である。
【図１６】図１６は、パケットロスが発生した場合における従来のデータ再送処理を説明する図である。
【図１７】図１７は、ネットワーク内のプローブ設置例を示す図である。
【図１８】図１８は、パケットロスが発生した場合における従来の再送要求処理を説明する図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、この発明に係る管理装置、通信システムおよびパケット通信方法の実施例を詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１５】
以下の実施例では、実施例１に係る通信システムの構成、実施例１に係るマネージャの構成、実施例１に係るプローブの構成、実施例１に係るマネージャの処理および実施例１に係るプローブの処理の流れを順に説明し、最後に実施例１による効果を説明する。
【００１６】
［通信システムの構成］
最初に、図１を用いて、実施例１に係る通信システム１００の構成を説明する。通信システム１００は、マネージャ１０、複数のプローブ２０Ａ〜２０Ｈ、送信先ホスト４０、送信元ホスト５０、および、複数のルータ６０Ａ〜６０Ｆを有する。
【００１７】
マネージャ１０は、ネットワーク全体の状況を管理するためのサーバ装置である。マネージャ１０は、各プローブ２０Ａ〜２０Ｈ、各ルータ６０Ａ〜６０Ｆと保守リンク７０で相互接続されている。また、マネージャ１０は、各プローブ２０Ａ〜２０Ｈがキャプチャしたパケットの統計情報を保守リンク７０を介して定期的に受信する。また、マネージャ１０は、ルータ６０Ａ〜６０ＦがＯＳＰＦ（Open  Shortest  Path  First）等のプロトコルで収集した経路情報を保守リンク７０を介して定期的に受信する。このように、マネージャ１０は、ネットワーク全体の情報を把握することで、ネットワーク内のトラフィック統計やホスト間の経路情報をＧＵＩ（Graphical  User  Interface）を通してユーザ側へディスプレイ表示している。
【００１８】
各プローブ２０Ａ〜２０Ｈは、送信先ホスト４０と送信元ホスト５０との間で通信されるパケットをキャプチャし、キャプチャしたパケットを受信バッファ内に一定期間蓄積する。そして、各プローブ２０Ａ〜２０Ｈは、パケット内部のＩＰ（Internet  Protocol）やＴＣＰ（Transmission  Control  Protocol）のヘッダ情報を解析し、解析結果を統計情報としてマネージャ１０へ保守リンク７０を介して定期的に送信する。
【００１９】
各ルータ６０Ａ〜６０Ｆは、送信先ホスト４０と送信元ホスト５０との間で送受信されるネットワーク上のパケットを転送する。また、各ルータ６０Ａ〜６０Ｆは、ＯＳＰＦ等のプロトコルで収集した経路情報を保守リンク７０を介してマネージャ１０へ定期的に送信する。
【００２０】
ここで、図２を用いて、マネージャ１０および各プローブ２０のハードウェア構成について説明する。図２は、マネージャおよびプローブのハードウェア構成を示す図である。図２に示すように、マネージャ１０は、ＣＰＵ１１０、メモリ１２０、ディスク１３０、データベース１３１を有する。ＣＰＵ１１０は、ディスク１３０からデータを読み出してメモリ１２０に格納し、メモリ１２０に格納されたデータに基づいて処理を実行する。ディスク１３０は、各種処理に必要なデータおよびプログラムを格納している。データベース１３１は、後述するパケットの統計情報やパケットの経路情報などのデータを記憶する。
【００２１】
また、プローブ２０は、ＣＰＵ２１０、メモリ２２０、ディスク２３０を有する。ＣＰＵ２１０は、ディスク２３０からデータを読み出してメモリ２２０に格納し、メモリ２２０に格納されたデータに基づいて処理を実行する。ディスク２３０は、キャプチャしたパケットの統計情報などのデータを格納している。また、プローブ２０は、ＴＡＰ（Test  Access  Point）３０と接続され、ＴＡＰ３０が検出したデータ用リンク８０上のパケットを受信する。なお、ここでデータ用リンク８０とは、送信先ホスト４０と送信元ホスト５０との間に設置された各ルータ６０Ａ〜６０Ｆ間のパケット通信用のリンクのことをいう。
【００２２】
［マネージャの構成］
次に、図３を用いて、図１に示したマネージャ１０の構成を説明する。図３は、実施例１に係るマネージャの構成を示すブロック図である。図３に示すように、このマネージャ１０は、通信制御Ｉ／Ｆ（インターフェース）１１、制御部１２、記憶部１３を有し、保守リンク７０を介してプローブ２０およびルータ６０と接続される。以下にこれらの各部の処理を説明する。
【００２３】
通信制御Ｉ／Ｆ１１は、接続されるプローブ２０およびルータ６０との間でやり取りする各種情報に関する通信を制御する。例えば、通信制御Ｉ／Ｆ１１は、ＴＣＰコネクションにおけるパケットの統計情報をプローブ２０から受信する。具体例を挙げて説明すると、通信制御Ｉ／Ｆ１１は、パケットの統計情報として、送信元ポート番号、送信先ホスト名、送信先ホストＩＰアドレス、送信先ポート番号などをプローブ２０から受信する。また、通信制御Ｉ／Ｆ１１は、経路プロトコルの経路情報（例えば、ＯＳＰＦ経路情報等）をルータ６０から定期的に受信する。
【００２４】
記憶部１３は、制御部１２による各種処理に必要なデータおよびプログラムを格納している。また、記憶部１３は、統計情報記憶部１３ａおよび経路情報記憶部１３ｂを有する。なお、記憶部１３は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（flash  memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置であればよい。
【００２５】
統計情報記憶１３ａは、プローブ２０から送信されたパケットの統計情報を記憶する。例えば、統計情報記憶１３ａは、ＴＣＰコネクションにおける統計情報を記憶する。ここで、図４の例を用いて、ＴＣＰコネクションにおける統計情報の例について説明する。図４は、ＴＣＰコネクション確立時における統計情報の一例を示す図である。図４に示すように、統計情報記憶１３ａは、統計情報として、送信元ホスト名、送信元ホストＩＰアドレス、送信元ポート番号、送信先ホスト名、送信先ホストＩＰアドレス、送信先ポート番号を記憶する。また、統計情報記憶１３ａは、統計情報として、ＴＣＰコネクション上の送信パケット数、ＴＣＰコネクション上の送信バイト数を記憶する。
【００２６】
経路情報記憶部１３ｂは、ルータ６０から受信された、コネクションごとのパケットの通信経路に関する情報を記憶する。例えば、経路情報記憶部１３ｂは、経路情報として、図５に例示するようなコネクション管理テーブルを記憶する。図５は、経路情報の一例を示す図である。図５に示すように、経路情報記憶部１３ｂは、コネクション管理テーブルとして、送信先と送信元のホストを特定する「ホスト情報」と、送信先と送信元のポート番号を示す「ポート情報」と、送信元から送信先までのホップ数を示す「Ｈｏｐ情報」とを記憶する。図５の例では、送信元ホストαと送信先ホストβの間には、送信元ポート番号５００、送信先ポート番号８０のコネクションが張られており、その通信に使われる経路上にはＡ−Ｃ−Ｄ−Ｅ−Ｇ−Ｈの順でプローブ２０が設置されていることを示している。
【００２７】
制御部１２は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行している。また、制御部１２は、管理部１２ａ、受信部１２ｂ、収集部１２ｃ、送信部１２ｄを有する。
【００２８】
管理部１２ａは、パケットの経路に関する情報である経路情報およびプローブがキャプチャしたパケットの解析結果である統計情報を管理する。例えば、管理部１２ａは、ＴＣＰコネクションにおける統計情報をプローブ２０から定期的に受信し、統計情報記憶部１３ａに格納する。
【００２９】
また、例えば、管理部１２ａは、ネットワーク内の各ルータ６０間で送受信している経路プロトコルの経路情報（例えば、ＯＳＰＦ経路情報等）をルータ６０から定期的に受信し、経路情報記憶部１３ｂに格納している。このように、管理部１２ａは、ルータから定期的に来て経路に関する情報を受信することで、各ルータ６０のリンク接続関係や、ルータ６０間の優先経路をリアルタイムに管理している。
【００３０】
ここで、図６の例を用いて管理部１２ａによる通信経路の管理について説明する。図６は、送信元ホストと送信先ホストとの間で行われる通信経路の一例を示す図である。図６の例では、送信先ホスト４０と送信元ホスト５０とを接続するルータ６０間に着目し、送信先ホスト４０と送信元ホスト５０との最適経路が太線で示されている。図６に示すように、マネージャ１０は、各ルータ６０Ａ〜６０ＦからＯＳＰＦ経路情報を受信し、ＯＳＰＦ経路情報から送信先ホスト４０と送信元ホスト５０との最適経路であることを把握している。図６の例では、送信元ホスト５０、ルータ６０Ａ、ルータ６０Ｂ、ルータ６０Ｆ、ルータ６０Ｃ、ルータ６０Ｄ、送信先ホスト４０の順に送信される経路が最適経路であることを示している。
【００３１】
また、管理部１２ａは、プローブ２０がどのリンク上に設置されているかについて、ネットワーク保守者によって事前に設定を受け付けており、Ｈｏｐ情報として経路情報記憶部１３ｂに格納している。例えば、図６に示すように、送信元ホスト５０と送信先ホスト４０との間の最適経路上には、プローブ２０Ａ、２０Ｂ、２０Ｉ、２０Ｊ、２０Ｄ、２０Ｅが順に設置されている。このような場合には、管理部１２ａは、送信元ホスト５０と送信先ホスト４０との最適経路との間において、各プローブ２０Ａ、２０Ｂ、２０Ｉ、２０Ｊ、２０Ｄ、２０Ｅが設置されていることを経路情報記憶部１３ｂにＨｏｐ情報として格納する。なお、管理部１２ａは、統計情報記憶１３ａに記憶された統計情報に含まれるホスト名およびポート番号を読み出して、コネクション管理テーブル内のホスト情報およびポート情報を設定している。
【００３２】
受信部１２ｂは、プローブ２０から保守リンク７０を介してパケットの損失が発生した旨の通知である障害情報を受信する。例えば、受信部１２ｂは、ＴＣＰコネクションを特定するための情報と損失したパケットのシーケンス番号とが含まれた障害情報を受信する。ここで、図７を用いて、障害情報の例について説明する。図７は、パケットロス発生時における障害情報の一例を示す図である。図７に示すように、受信部１２ｂは、障害情報として、送信元ホスト名、送信元ホストＩＰアドレス、送信元ポート番号、送信先ホスト名、送信先ホストＩＰアドレス、送信先ポート番号、欠落シーケンス番号などを受信する。
【００３３】
収集部１２ｃは、プローブ２０からパケットの損失の通知を受信した場合に、パケットの通信経路上で、当該プローブ２０よりも送信元ホスト５０の側に位置する他のプローブ２０から損失に係るパケットを収集する。例えば、収集部１２ｃは、受信部１２ｂが障害情報を受信した場合には、経路情報記憶部１３ｂに記憶されたコネクション管理テーブルを検索し、損失したパケットが属するＴＣＰコネクションを特定する。
【００３４】
そして、収集部１２ｃは、コネクション管理テーブル内のＨｏｐ情報より、該当するＴＣＰコネクション上の経路上に存在するプローブ２０群を特定する。そして、収集部１２ｃは、経路上のプローブ２０群を前段（ロス検出プローブよりも送信元ホスト側）と後段（ロス検出プローブよりも送信先ホスト側）に分類する。例えば、図５の例で説明すると、経路上のプローブＤがロスを検出してマネージャへ通知した場合には、前段プローブ群は「Ａ−Ｃ」、後段プローブ群は「Ｅ−Ｇ−Ｈ」となる。なお、プローブの前段と後段の分類方法については、これまで述べたＯＳＰＦの経路から判断する方法以外でも構わない。例えば、パケット内のＩＰヘッダに含まれるＴＴＬ（Transistor  Transistor  Logic）情報を比較してプローブの前後関係を抽出するやり方等も考えられる。
【００３５】
その後、収集部１２ｃは、前段プローブ群のうちの一つの前段プローブ２０に対して損失したパケットに関する情報を通知して探索を依頼する。ここで、収集部１２ｃは、前段プローブとして、送信元ホスト５０に最も近い最前段のプローブ２０に送ってもよいし、パケットの損失を通知したプローブに最も近い前段のプローブに送ってもよい。そして、収集部１２ｃは、パケットの探索に失敗した場合には、送信元ホスト５０により近い次候補の前段プローブ２０に対して損失したパケットの探索を依頼する。なお、収集部１２ｃは、前段プローブ２０に対して損失したパケットの探索依頼の通知として、前述した障害情報（図７参照）を前段のプローブ２０に転送してもよい。
【００３６】
送信部１２ｄは、収集部１２ｃによって収集したパケットを、通信経路上で、損失を検出したプローブ２０よりも送信先ホスト４０の側に位置する他のプローブ２０に送信する。例えば、送信部１２ｄは、収集部１２ｃで収集したパケットとともに、パケットを送信先ホスト４０へ再送する要求を、送信先ホスト４０に最も近いプローブ２０に保守リンク７０を介して送信する。このように、マネージャ１０は、保守用リンク７０を介して、損失したパケットを送信先ホスト４０に対して送信するので、パケットの損失が発生したデータ用リンク８０を回避することができ、確実かつ迅速にロスパケットを再送することができる。
【００３７】
［プローブの構成］
次に、図８を用いて、図１に示したプローブ２０の構成を説明する。図８は、実施例１に係るプローブの構成を示すブロック図である。図８に示すように、このプローブ２０は、マネージャ通信制御Ｉ／Ｆ２１、ＴＡＰ（Test  Access  Point）通信制御Ｉ／Ｆ２２、受信バッファ２３、制御部２４を有し、マネージャ１０およびＴＡＰ３０と接続される。以下にこれらの各部の処理を説明する。
【００３８】
マネージャ通信制御Ｉ／Ｆ２１は、接続されるマネージャ１０との間でやり取りする各種情報に関する通信を制御する。例えば、マネージャ通信制御Ｉ／Ｆ２１は、ＴＣＰコネクションにおけるパケットの統計情報をマネージャ１０に定期的に送信する。また、マネージャ通信制御Ｉ／Ｆ２１は、パケットの損失が発生した場合には、パケットの損失が発生した旨の通知をマネージャ１０に送信する。また、マネージャ通信制御Ｉ／Ｆ２１は、損失したパケットの探索の要求をマネージャ１０から受信する。
【００３９】
ＴＡＰ通信制御Ｉ／Ｆ２２は、接続されるＴＡＰ３０との間でやり取りする各種情報に関する通信を制御する。例えば、ＴＡＰ通信制御Ｉ／Ｆ２２は、データ用リンク上を流れるパケットをＴＡＰ３０から受信する。
【００４０】
受信バッファ２３は、キャプチャされたパケットを記憶する。受信バッファ２３に記憶されたパケットは、後述する検出部２４ａによって読み出されて解析され、また、後述する再送部２４ｃによって損失したパケットが存在するか検索される。
【００４１】
制御部２４は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するまた、制御部２４は、検出部２４ａ、通知部２４ｂ、再送部２４ｃ、および転送部２４ｄを有する。
【００４２】
検出部２４ａは、パケットをデータ用リンク８０から取り込み、パケットの損失を検出する。例えば、検出部２４ａは、ＴＣＰヘッダのシーケンス番号の整合性をチェックして、シーケンス番号に抜けがあるか判定する。この結果、検出部２４ａは、シーケンス番号に抜けがあると判定した場合には、パケットの損失が発生したことを検出する。
【００４３】
通知部２４ｂは、検出部によってパケットの損失を検出した場合には、保守リンク７０を介してパケットの損失が発生した旨をマネージャ１０に通知する。例えば、通知部２４ｂは、前述した検出部２４ａによってパケットのシーケンス番号に抜けがあると判定された場合には、損失したパケットのシーケンス番号などを含む障害情報（前述した図７参照）をマネージャ１０に送信する。
【００４４】
再送部２４ｃは、マネージャ１０から損失したパケットの情報とともに、損失したパケットの探索依頼を受信し、受信バッファ２３に保持されたパケットのなかから、損失したパケット情報に含まれるシーケンス番号と一致するパケットが存在するか検索を行う。この結果、再送部２４ｃは、損失したパケットの情報に含まれるシーケンス番号と一致するパケットが存在する場合には、パケットデータ全体をマネージャ１０に送信する。
【００４５】
転送部２４ｄは、マネージャ１０からパケットの再送要求を受信した場合には、データ用リンク８０を介して送信先ホスト４０にパケットを転送する。例えば、転送部２４ｄは、マネージャ１０から損失したパケットとともにパケットの再送依頼を受信した場合には、データ用リンク８０を介して送信先ホスト４０にパケットを転送する。これにより、損失したパケットが送信先ホスト４０へ到達し、損失したパケットが復旧することができる。なお、パケットの再送信を行う範囲は、後段プローブから送信先ホストまでの区間に限定されることから、再送信要求がネットワーク帯域に与える影響を低く抑えることができる。
【００４６】
ここで、図９を用いて、マネージャ１０とプローブ２０のパケットロス復旧処理について説明する。図９は、マネージャおよびプローブのパケットロス復旧処理を説明する図である。なお、図９の例では、パケットの損失を検出したプローブをプローブ２０Ａ、パケットの損失を検出したプローブよりも前段側のプローブをプローブ２０Ｂ、パケットの損失を検出したプローブよりも後段側のプローブをプローブ２０Ｃとする。
【００４７】
図９に示すように、プローブ２０Ａは、データ用リンク８０を流れるパケットをキャプチャし（ステップＳ１）、受信バッファ２３に格納する（ステップＳ２）。そして、プローブ２０Ａは、受信バッファ２３に格納されたパケットの解析を行い（ステップＳ３）、解析した結果をパケットの統計情報としてマネージャ１０へ保守リンク７０を介して定期的に送信する（ステップＳ４）。また、プローブ２０Ａは、解析を行った結果、シーケンス番号に抜けがあると判定した場合には、パケットの損失が発生した旨の通知である障害情報をマネージャ１０へ保守リンク７０を介して送信する（ステップＳ５）。
【００４８】
そして、マネージャ１０は、保守リンク７０を介してプローブ２０Ａから障害情報を受信し（ステップＳ６）、前段プローブ群のうちの一つの前段プローブ２０に対して損失したパケットに関する情報を通知して探索を依頼し、損失したパケットを収集する（ステップＳ７）。探索を依頼された前段側プローブ２０Ｂは、受信バッファ２３から損失したパケットを探索し、損失したパケットを保守リンク７０を介してマネージャ１０へ送信する（ステップＳ８）。
【００４９】
そして、マネージャ１０は、収集したパケットとともに、送信先ホスト４０へのパケット再送要求を、後段側に位置するプローブ２０Ｃへ保守リンク７０を介して送信する（ステップＳ９）。その後、プローブ２０Ｃは、パケット再送要求を受信すると（ステップＳ１０）、送信先ホスト４０へパケットを再送する（ステップＳ１１）。
【００５０】
［マネージャによる処理］
次に、図１０を用いて、実施例１に係るマネージャ１０による処理を説明する。図１０は、実施例１に係るマネージャの処理動作を示すフローチャートである。
【００５１】
図１０に示すように、マネージャ１０は、プローブからパケットの損失を示す障害情報を受信すると（ステップＳ１０１肯定）、経路情報記憶部１３ｂのコネクション管理テーブルを検索し（ステップＳ１０２）、損失したパケットが属するＴＣＰコネクションを特定する。この検索の結果、マネージャ１０は、コネクション管理テーブル内に欠落パケットが属するＴＣＰコネクションがあるか判定し（ステップＳ１０３）、コネクション管理テーブル内に損失したパケットが属するＴＣＰコネクションがないと判定した場合には（ステップＳ１０３否定）、処理を終了する。
【００５２】
また、マネージャ１０は、コネクション管理テーブル内に損失したパケットが属するＴＣＰコネクションがあると判定した場合には（ステップＳ１０３肯定）、Ｈｏｐ情報から前段プローブ群を抽出する（ステップＳ１０４）。ここで、マネージャ１０は、Ｈｏｐ情報に前段プローブ群があるか判定し（ステップＳ１０５）、Ｈｏｐ情報に前段プローブ群がない場合には（ステップＳ１０５否定）、処理を終了する。また、マネージャ１０は、Ｈｏｐ情報に前段プローブ群がある場合には（ステップＳ１０５肯定）、前段プローブへパケットの探索要求を送信し（ステップＳ１０６）、プローブからのパケット探索応答を待つ（ステップＳ１０７）。
【００５３】
その後、マネージャ１０は、前段プローブからのパケット探索応答を受信したか判定し（ステップＳ１０８）、前段プローブからのパケット探索応答を受信していない場合には（ステップＳ１０８否定）、受信するまで待つ。また、マネージャ１０は、前段プローブからのパケット探索応答を受信した場合には（ステップＳ１０８肯定）、応答結果がパケットの探索成功であるか判定する（ステップＳ１０９）。この結果、マネージャ１０は、応答結果がパケットの探索成功である場合には（ステップＳ１０９肯定）、Ｈｏｐ情報から後段プローブ群を抽出し（ステップＳ１１０）、ロスパケットのデータを後段プローブへ送信し（ステップＳ１１１）、処理を終了する。
【００５４】
また、マネージャ１０は、応答結果がパケットの探索成功でない場合には（ステップＳ１０９否定）、前段プローブから次候補を選択する（ステップＳ１１２）。例えば、マネージャ１０は、送信元ホスト側に近い前段プローブを選択する。そして、マネージャ１０は、次候補の前段プローブがＨｏｐ情報にあるか判定し（ステップＳ１１３）、次候補の前段プローブがある場合には（ステップＳ１１３肯定）、前段プローブへ損失パケットの探索要求を送信し（ステップＳ１１４）、ステップＳ１０７に戻る。また、マネージャ１０は、次候補の前段プローブがない場合には（ステップＳ１１３否定）、処理を終了する。
【００５５】
［プローブによる処理］
次に、図１１を用いて、実施例１に係るプローブ２０による処理を説明する。図１１は、実施例１に係るプローブの処理動作を示すフローチャートである。
【００５６】
図１１に示すように、プローブ２０は、受信バッファ２３からパケットデータを読込むと（ステップＳ２０１）、パケットのヘッダ情報を収集する（ステップＳ２０２）。例えば、プローブ２０は、ヘッダ情報からＩＰアドレス、ポート番号、パケットのシーケンス番号などを収集する。
【００５７】
そして、プローブ２０は、パケットのシーケンス番号の妥当性をチェックし、シーケンス番号の妥当性チェックがＯＫであるか判定する（ステップＳ２０３）。例えば、プローブ２０は、パケットのシーケンス番号に抜けがないか判定する。この結果、プローブ２０は、パケットのシーケンス番号の妥当性チェックがＯＫでない場合には（ステップＳ２０３否定）、ロス発生と判断したパケット情報をマネージャ１０へ送信する（ステップＳ２０４）。また、プローブ２０は、パケットのシーケンス番号の妥当性チェックがＯＫである場合には（ステップＳ２０３肯定）、ステップＳ２０５に進む。
【００５８】
そして、プローブ２０は、ヘッダ情報を解析して統計情報へ変換し（ステップＳ２０５）、統計情報の送信周期に達したか判定する（ステップＳ２０６）。この結果、プローブ２０は、統計情報の送信周期に達した場合には（ステップＳ２０６肯定）、一定周期内の統計情報をマネージャ１０へ送信し（ステップＳ２０７）、Ｓ２０１に戻る。また、プローブ２０は、統計情報の送信周期に達していない場合には（ステップＳ２０６否定）、Ｓ２０１に戻る。
【００５９】
[実施例１の効果]
上述してきたように、プローブ２０は、パケットをデータ用リンク８０から取り込み、パケットの損失を検出し、パケットの損失を検出した場合には、保守リンク７０を介してパケットの損失が発生した旨をマネージャ１０に通知する。そして、マネージャ１０は、プローブ２０から保守リンク７０を介してパケットの損失が発生した旨の通知を受信した場合に、該プローブ２０よりも送信元ホスト５０の側に位置する他のプローブ２０から保守リンク７０を介して損失に係るパケットを収集する。そして、マネージャ１０は、収集したパケットを、損失を検出したプローブ２０よりも送信先ホスト４０の側に位置する他のプローブ２０に保守リンク７０を介して送信することで、データ用リンク８０を介して送信先ホスト４０にパケットを転送させる。その後、プローブ２０は、マネージャ１０からパケットを受信した場合には、データ用リンク８０を介して送信先ホスト４０にパケットを転送する。このため、確実性の高い前段側プローブからパケットを探索し、保守用リンク７０を介して損失したパケットを送信先ホスト４０に対して送信できる。この結果、パケットの損失が発生したデータ用リンク８０を回避してロスパケットを送信することができ、確実かつ迅速にロスパケットを再送することが可能である。
【実施例２】
【００６０】
ところで、上記の実施例１では、単一のプローブからパケットの損失が発生した旨の通知を受信する場合を説明したが、これに限定されるものではない。例えば、同一コネクションの経路上に設置された複数の検出装置から同一のパケットについて損失の通知をそれぞれ受信した場合も考えられる。このような場合には、最初に受信した損失の通知にのみ応じて、損失に係るパケットを収集するようにしてもよい。
【００６１】
そこで、以下の実施例２では、同一コネクションの経路上に設置された複数の検出装置から同一のパケットについて損失の通知をそれぞれ受信した際に、最初に受信した損失の通知にのみ応じて、損失に係るパケットを収集する場合について図１２を用いて説明する。図１２は、実施例２に係るマネージャの処理手順を説明するためのフローチャートである。なお、実施例２に係るマネージャの構成は、図３で説明した実施例１のマネージャと同様であるため、図を省略する。
【００６２】
ここで、図１２を用いて、実施例２に係るマネージャの処理手順を説明する。図１２に示すように、実施例２に係るマネージャは、実施例１と同様に、プローブ２０からパケットのロスを示すロス情報を受信すると（ステップＳ２０１肯定）、経路情報記憶部１３ｂのコネクション管理テーブルを検索する（ステップＳ２０２）。そして、マネージャは、経路情報内に欠落パケットが属するＴＣＰコネクションがあるか判定し（ステップＳ２０３）、ＴＣＰコネクションがあると判定した場合には（ステップＳ２０３肯定）、Ｈｏｐ情報から前段プローブ群を抽出する（ステップＳ２０４）。
【００６３】
そして、実施例２に係るマネージャは、既に前段プローブからロス情報を受信済みであるか判定する（ステップＳ２０５）。この結果、マネージャは、既に前段プローブからロス情報を受信済みであると判定した場合には（ステップＳ２０５肯定）、受信したロス情報を破棄する（ステップＳ２０６）。また、マネージャは、既に前段プローブからロス情報を受信済みでないと判定した場合には（ステップＳ２０５否定）、Ｈｏｐ情報に前段プローブ群があるか判定する（ステップＳ２０７）。
【００６４】
この結果、プローブは、Ｈｏｐ情報に前段プローブ群がない場合には（ステップＳ２０７否定）、処理を終了する。また、マネージャは、Ｈｏｐ情報に前段プローブ群がある場合には（ステップＳ２０７肯定）、前段プローブへパケットの探索要求を送信し（ステップＳ２０８）、プローブからのパケット探索応答を待つ（ステップＳ２０９）。
【００６５】
その後、マネージャは、前段プローブからのパケット探索応答を受信したか判定し（ステップＳ２１０）、前段プローブからのパケット探索応答を受信していない場合には（ステップＳ２１０否定）、受信するまで待つ。また、マネージャは、前段プローブからのパケット探索応答を受信した場合には（ステップＳ２１０肯定）、応答結果がパケットの探索成功であるか判定する（ステップＳ２１１）。この結果、マネージャは、応答結果がパケットの探索成功である場合には（ステップＳ２１１肯定）、Ｈｏｐ情報から後段プローブ群を抽出し（ステップＳ２１２）、ロスパケットのデータを後段プローブへ送信する（ステップＳ２１３）。
【００６６】
また、マネージャは、応答結果がパケットの探索成功でない場合には（ステップＳ２１１否定）、前段プローブから次候補を選択する（ステップＳ２１４）。そして、マネージャは、次候補の前段プローブがＨｏｐ情報にあるか判定し（ステップＳ２１５）、次候補の前段プローブがある場合には（ステップＳ２１５肯定）、前段プローブへ損失パケットの探索要求を送信する（ステップＳ２１６）。また、マネージャ１０は、次候補の前段プローブがない場合には（ステップＳ２１５否定）、処理を終了する。
【００６７】
つまり、ＴＣＰコネクション経路上の１箇所でパケットロスが発生した場合に、それ以降に設置された各プローブでは、パケットロスの発生を検出し、それぞれがマネージャに対して障害情報を送信して来る可能性がある。この場合には、マネージャは、最初に障害情報を通知して来たプローブが、コネクション管理テーブルのＨｏｐ情報より導き出されたプローブ群のどこに位置するかを認識する。その後、マネージャに対して他のプローブから障害情報が通知された場合に、最初に通知したプローブよりも後段のプローブが通知して来た場合は情報の重複となるため、マネージャは障害通知を破棄する。
【００６８】
また、マネージャは、まだプローブからの探索結果応答が来ていない時に、最初に通知したプローブよりも前段のプローブから障害情報の通知が来た場合は、損失したパケットの探索を要求するプローブの対象からは通知済み前段プローブを外す。例えば、図５の例を用いて説明すると、ＴＣＰコネクション上の経路においてプローブＤの障害通知がマネージャへ最初に到達し前段プローブへ探索要求を送信済みの場合には、それ以降にプローブＧやＨから障害情報の通知が来ても破棄し、前段プローブへの探索要求は行わない。
【００６９】
このように、上記の実施例２では、マネージャ１０は、同一コネクションの経路上に設置された複数のプローブ２０から同一のパケットについて損失の通知をそれぞれ受信した場合には、最初に受信した損失の通知にのみ応じて、損失に係るパケットを収集する。このため、プローブ２０とマネージャ１０間で送受信される情報量が必要最低限なものに削減されるため、送受信に必要な処理時間の短縮、および保守リンク７０上を流れるデータ量を削減することが可能である。
【実施例３】
【００７０】
ところで、コネクションの利用者に優先度が設定されていれば、高優先度の契約を結んでいる場合にのみ、損失に係るパケットを収集して送信先装置にパケットを転送させるようにしてもよい。
【００７１】
そこで、以下の実施例３では、パケットの損失が発生した旨の通知を受信した場合に、当該パケットが属するコネクションの利用者の優先度を判定し、優先度が所定の閾値より高い場合にのみ、損失に係るパケットを収集する処理について説明する。図１３は、実施例３に係るマネージャの処理手順を説明するためのフローチャートである。
【００７２】
図１３に示すように、実施例３に係るマネージャは、実施例１と同様に、プローブ２０からパケットのロスを示すロス情報を受信すると（ステップＳ３０１肯定）、経路情報記憶部１３ｂのコネクション管理テーブルを検索する（ステップＳ３０２）。そして、マネージャは、経路情報内に欠落パケットが属するＴＣＰコネクションがあるか判定し（ステップＳ３０３）、ＴＣＰコネクションがあると判定した場合には（ステップＳ３０３肯定）、Ｈｏｐ情報から前段プローブ群を抽出する（ステップＳ３０４）。
【００７３】
そして、実施例３に係るマネージャは、コネクションの使用者の優先度が所定の閾値よりも高いか判定する（ステップＳ３０５）。この結果、マネージャは、コネクションの使用者の優先度が所定の閾値よりも高くないと判定した場合には（ステップＳ３０５否定）、受信したロス情報を破棄する（ステップＳ３０６）。また、マネージャは、コネクションの使用者の優先度が所定の閾値よりも高いと判定した場合には（ステップＳ３０５肯定）、Ｈｏｐ情報に前段プローブ群があるか判定する（ステップＳ３０７）。
【００７４】
この結果、プローブは、Ｈｏｐ情報に前段プローブ群がない場合には（ステップＳ３０７否定）、処理を終了する。また、マネージャは、Ｈｏｐ情報に前段プローブ群がある場合には（ステップＳ３０７肯定）、前段プローブへパケットの探索要求を送信し（ステップＳ３０８）、プローブからのパケット探索応答を待つ（ステップＳ３０９）。
【００７５】
その後、マネージャは、前段プローブからのパケット探索応答を受信したか判定し（ステップＳ３１０）、前段プローブからのパケット探索応答を受信していない場合には（ステップＳ３１０否定）、受信するまで待つ。また、マネージャは、前段プローブからのパケット探索応答を受信した場合には（ステップＳ３１０肯定）、応答結果がパケットの探索成功であるか判定する（ステップＳ３１１）。この結果、マネージャは、応答結果がパケットの探索成功である場合には（ステップＳ３１１肯定）、Ｈｏｐ情報から後段プローブ群を抽出し（ステップＳ３１２）、ロスパケットのデータを後段プローブへ送信する（ステップＳ３１３）。
【００７６】
また、マネージャは、応答結果がパケットの探索成功でない場合には（ステップＳ３１１否定）、前段プローブから次候補を選択する（ステップＳ３１４）。そして、マネージャは、次候補の前段プローブがＨｏｐ情報にあるか判定し（ステップＳ３１５）、次候補の前段プローブがある場合には（ステップＳ３１５肯定）、前段プローブへ損失パケットの探索要求を送信する（ステップＳ３１６）。また、マネージャ１０は、次候補の前段プローブがない場合には（ステップＳ３１５否定）、処理を終了する。
【００７７】
つまり、マネージャは、ネットワーク上に存在する各ホストのうち、一部のホストがネットワーク事業者と高優先度の契約を結んでいる場合にのみ、前段プローブへパケットの探索を要求するものとする。また、マネージャは、優先度が低い場合には、前段プローブへパケットの探索を要求せずに、パケットの損失があった旨を利用者に通知する。
【００７８】
このように実施例３によれば、マネージャ１０は、パケットの損失が発生した旨の通知を受信した場合に、パケットが属するコネクションの利用者の優先度を判定し、優先度が所定の閾値より高い場合にのみ、損失に係るパケットを収集する。このため、ネットワークの利用者毎にサービスの差別化を行うことが可能である。
【実施例４】
【００７９】
さて、これまで本実施例について説明したが、本実施例は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例４として本発明に含まれる他の実施例を説明する。
【００８０】
（１）システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、管理部１２ａおよび受信部１２ｂを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８１】
（２）プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図１４を用いて、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１４は、パケットロス復旧処理を実行するコンピュータを示す図である。
【００８２】
同図に示すように、マネージャとしてのコンピュータ６００は、ＨＤＤ６１０、ＲＡＭ６２０、ＲＯＭ６３０およびＣＰＵ６４０をバス６５０で接続して構成される。
【００８３】
そして、ＲＯＭ６３０には、上記の実施例と同様の機能を発揮するパケット通信プログラム、つまり、図１４に示すように、管理プログラム６３１、受信プログラム６３２、収集プログラム６３３および送信プログラム６３４が予め記憶されている。なお、プログラム６３１〜６３４については、図３に示したマネージャ１０の各構成要素と同様、適宜統合または分散してもよい。
【００８４】
そして、ＣＰＵ６４０が、これらのプログラム６３１〜６３４をＲＯＭ６３０から読み出して実行することで、図１４に示すように、各プログラム６３１〜６３４は、管理プロセス６４１、受信プロセス６４２、収集プロセス６４３および送信プロセス６４４として機能するようになる。
【００８５】
また、ＨＤＤ６１０には、図１４に示すように、統計情報管理テーブル６１１および経路情報管理テーブル６１２が設けられる。そして、ＣＰＵ６４０は、統計情報管理テーブル６１１および経路情報管理テーブル６１２に対してデータを登録するとともに、統計情報管理テーブル６１１および経路情報管理テーブル６１２からデータを読み出してＲＡＭ６２０に格納し、ＲＡＭ６２０に格納されたデータに基づいて処理を実行する。
【符号の説明】
【００８６】
１０  マネージャ
１１  通信制御Ｉ／Ｆ
１２  制御部
１２ａ  管理部
１２ｂ  受信部
１２ｃ  収集部
１２ｄ  送信部
１３  記憶部
１３ａ  統計情報記憶部
１３ｂ  経路情報記憶部
２０、２０Ａ〜２０Ｋ  プローブ
２１  マネージャ通信制御Ｉ／Ｆ
２２  ＴＡＰ通信制御Ｉ／Ｆ
２３  受信バッファ
２４  制御部
２４ａ  検出部
２４ｂ  通知部
２４ｃ  再送部
２４ｄ  転送部
３０  ＴＡＰ
４０  送信先ホスト
５０  送信元ホスト
６０、６０Ａ〜６０Ｆ  ルータ
７０  保守リンク
８０  データ用リンク
【図１】
0005621674.tif 000002
【図２】
0005621674.tif 000003
【図３】
0005621674.tif 000004
【図４】
0005621674.tif 000005
【図５】
0005621674.tif 000006
【図６】
0005621674.tif 000007
【図７】
0005621674.tif 000008
【図８】
0005621674.tif 000009
【図９】
0005621674.tif 000010
【図１０】
0005621674.tif 000011
【図１１】
0005621674.tif 000012
【図１２】
0005621674.tif 000013
【図１３】
0005621674.tif 000014
【図１４】
0005621674.tif 000015
【図１５】
0005621674.tif 000016
【図１６】
0005621674.tif 000017
【図１７】
0005621674.tif 000018
【図１８】
0005621674.tif 000019