(57)【特許請求の範囲】
【請求項１】
ＩＰネットワーク上のサーバ−クライアント端末間で確立されたＴＣＰセッションで送受信されるＴＣＰパケットを監視するパケット監視装置を複数備えるとともに、複数の前記パケット監視装置を管理する管理サーバを備え、前記ＩＰネットワーク上のサーバ−クライアント端末間で確立された前記ＴＣＰセッションで送受信される前記ＴＣＰパケットを監視するパケット監視システムであって、
前記パケット監視装置は、
前記ＩＰネットワーク上で送受信される前記ＴＣＰパケットが、いずれの前記ＴＣＰセッションで送受信されたものかを識別するパケットフロー識別部と、
前記ＴＣＰセッションで所定時間内に送受信されるＡＣＫパケットの重複数が、所定の閾値を超えた場合に、前記ＴＣＰセッションを品質監視すべきと判定する品質監視判定部と、
前記品質監視すべきと判定された前記ＴＣＰセッションごとに、前記ＴＣＰセッションで送受信される前記ＴＣＰパケットのキャッシュの要否判定を、前記ＴＣＰパケットの重複数、パケットロス、パケットの遅着、および前記ＴＣＰセッションにおけるラウンドトリップタイム、の少なくとも１つに基づき実行する品質監視部と、
前記パケットの重複数、前記パケットロス、前記パケットの遅着、および前記ラウンドトリップタイムに基づき、前記ＴＣＰセッションにおける劣化区間が、前記サーバと前記パケット監視装置との間の区間または前記クライアント端末と前記パケット監視装置との間のいずれであるかを判定し、前記劣化区間が前記サーバと前記パケット監視装置との間である場合は、前記ＴＣＰパケットのキャッシュを不要と判定し、前記劣化区間が前記クライアント端末と前記パケット監視装置との間である場合は、前記品質監視部がキャッシュを要すると判定した前記ＴＣＰパケットについて、キャッシュを要するとの最終的な判定をする劣化区間判定部と、
前記ＴＣＰパケットを送受信する前記ＴＣＰセッションが、キャッシュを要するとの前記最終的な判定をされた場合に、前記ＴＣＰパケットのキャッシュを行い、再送要求を受信した場合に、前記キャッシュされたＴＣＰパケットを再送するパケットキャッシュ部と、
を備え、
前記パケット監視装置は、
前記ＴＣＰセッションにおける前記劣化区間が前記サーバと当該パケット監視装置との間であると判定した場合に、前記ＴＣＰセッションを識別する識別情報を含む当該劣化区間の判定結果を前記管理サーバに送信し、前記劣化区間が前記クライアント端末と当該パケット監視装置との間であると判定した場合は自装置において前記ＴＣＰパケットのキャッシュを要するとの前記最終的な判定をし、
前記管理サーバは、
前記ＴＣＰパケットの通信経路上にあり、前記判定結果を送信したパケット監視装置よりも前記通信経路において上流となる前記サーバ側に位置するパケット監視装置を特定し、
前記特定したサーバ側に位置するパケット監視装置に、前記判定結果を送信したパケット監視装置から受信した前記識別情報と、前記識別情報で識別される前記ＴＣＰセッションで送受信される前記ＴＣＰパケットのキャッシュの要否判定を要求するキャッシュ要否判定要求とを送信し、
前記サーバ側に位置するパケット監視装置は、
前記識別情報および前記キャッシュ要否判定要求を受信し、前記識別情報に示されるＴＣＰセッションで送受信される前記ＴＣＰパケットのキャッシュの要否判定を行うこと
を特徴とするパケット監視システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（Internet Protocol）ネットワーク上で送受信されるＴＣＰ（Transmission Control Protocol）パケットを監視するパケット監視装置、パケット監視方法およびパケット監視システムに関する。
【背景技術】
【０００２】
インターネットなどで広く利用されているＴＣＰプロトコルは、通信の途中でパケットロスが発生した場合に当該パケットを再送する信頼性の高いプロトコルである。ＴＣＰプロトコルでは、ネットワークの輻輳を回避するための輻輳制御を行っており、サーバ−クライアント端末間のエンドツーエンドにおいてパケットロスが発生しないようウィンドウサイズを制御する。多くのオペレーションシステム（ＯＳ）に標準で実装されているＴＣＰの輻輳制御方式では、３つ以上の重複ＡＣＫパケットの受信やラウンドトリップタイム（ＲＴＴ）によるタイムアウトを検出すると、輻輳が発生していると判断し、ウィンドウサイズを大幅に減少させる。このようなウィンドウサイズの減少が行われると、データ転送速度が著しく低下する。
【０００３】
近年、ＩＰネットワークの広帯域化が進む一方で、ユーザのネットワークアクセス環境は多様化している。従来のユーザネットワークは有線が主流であったため、エンドツーエンドのネットワーク品質においてはＩＰネットワークの品質が支配的であり、ＩＰネットワークの広帯域化・高品質化はユーザが体感する通信品質の向上に大きく寄与していた。
【０００４】
一方で、最近のユーザネットワークは無線ＬＡＮなどの無線が普及しつつある。無線は有線に比べてビットエラー率が高く、データパケットやＡＣＫパケットのロスが生じやすい。そのため、ＩＰネットワークが高品質な場合でも、ユーザネットワークが無線のためビットエラーが頻発する場合は、ＴＣＰの輻輳制御によってデータ転送速度が低下する。これにより、ユーザの通信快適性が低下するとともに、パケット再送によってエンドツーエンド通信経路上のトラヒックおよび装置負荷が増加するという問題点があった。
【０００５】
このような無線ネットワークにおけるＴＣＰ性能の問題点を改善する手法の一例として、無線基地局において、通過するデータパケットをこれに対応するＡＣＫパケットが通過するまでキャッシュし、パケットロスが生じた場合には、ロスしたパケットを無線基地局から再送する手法（スヌープ）が知られている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】H. Balakrishnan, et al., “Improving TCP/IP Performance over Wireless Networks,” Proc. ACM MOBICOM, pp.2-11, Nov. 1995.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、無線基地局でのスヌープにおいて、全てのＴＣＰフローを対象にパケットのキャッシュを行う。このため、無線基地局に大量のメモリを配備する必要があるという問題点がある。一方で、ＩＰネットワークにおけるユーザネットワークは有線および無線のパケットフローが混在しており、全てのフローでパケットロスが発生するとは限らない。
【０００８】
このような背景に鑑みて本発明がなされたのであり、本発明は、ＴＣＰプロトコルを用いた通信において、通信の信頼性を維持しつつ、パケットキャッシュに要するメモリを削減することができる、パケット監視装置、パケット監視方法およびパケット監視システムを提供することを課題とする。
【課題を解決するための手段】
【００１６】
前記した課題を解決するため、請求項１に記載の発明は、ＩＰネットワーク上のサーバ−クライアント端末間で確立されたＴＣＰセッションで送受信されるＴＣＰパケットを監視するパケット監視装置を複数備えるとともに、複数の前記パケット監視装置を管理する管理サーバを備え、前記ＩＰネットワーク上のサーバ−クライアント端末間で確立された前記ＴＣＰセッションで送受信される前記ＴＣＰパケットを監視するパケット監視システムであって、前記パケット監視装置が、前記ＩＰネットワーク上で送受信される前記ＴＣＰパケットが、いずれの前記ＴＣＰセッションで送受信されたものかを識別するパケットフロー識別部と、前記ＴＣＰセッションで所定時間内に送受信されるＡＣＫパケットの重複数が、所定の閾値を超えた場合に、前記ＴＣＰセッションを品質監視すべきと判定する品質監視判定部と、前記品質監視すべきと判定された前記ＴＣＰセッションごとに、前記ＴＣＰセッションで送受信される前記ＴＣＰパケットのキャッシュの要否判定を、前記ＴＣＰパケットの重複数、パケットロス、パケットの遅着、および前記ＴＣＰセッションにおけるラウンドトリップタイム、の少なくとも１つに基づき実行する品質監視部と、前記パケットの重複数、前記パケットロス、前記パケットの遅着、および前記ラウンドトリップタイムに基づき、前記ＴＣＰセッションにおける劣化区間が、前記サーバと前記パケット監視装置との間の区間または前記クライアント端末と前記パケット監視装置との間のいずれであるかを判定し、前記劣化区間が前記サーバと前記パケット監視装置との間である場合は、前記ＴＣＰパケットのキャッシュを不要と判定し、前記劣化区間が前記クライアント端末と前記パケット監視装置との間である場合は、前記品質監視部がキャッシュを要すると判定した前記ＴＣＰパケットについて、キャッシュを要するとの最終的な判定をする劣化区間判定部と、前記ＴＣＰパケットを送受信する前記ＴＣＰセッションが、キャッシュを要するとの前記最終的な判定をされた場合に、前記ＴＣＰパケットのキャッシュを行い、再送要求を受信した場合に、前記キャッシュされたＴＣＰパケットを再送するパケットキャッシュ部と、を備え、前記パケット監視装置が、前記ＴＣＰセッションにおける前記劣化区間が前記サーバと当該パケット監視装置との間であると判定した場合に、前記ＴＣＰセッションを識別する識別情報を含む当該劣化区間の判定結果を前記管理サーバに送信し、前記劣化区間が前記クライアント端末と当該パケット監視装置との間であると判定した場合は自装置において前記ＴＣＰパケットのキャッシュを要するとの前記最終的な判定をし、前記管理サーバが、前記ＴＣＰパケットの通信経路上にあり、前記判定結果を送信したパケット監視装置よりも前記通信経路において上流となる前記サーバ側に位置するパケット監視装置を特定し、前記特定したサーバ側に位置するパケット監視装置に、前記判定結果を送信したパケット監視装置から受信した前記識別情報と、前記識別情報で識別される前記ＴＣＰセッションで送受信される前記ＴＣＰパケットのキャッシュの要否判定を要求するキャッシュ要否判定要求とを送信し、前記サーバ側に位置するパケット監視装置が、前記識別情報および前記キャッシュ要否判定要求を受信し、前記識別情報に示されるＴＣＰセッションで送受信される前記ＴＣＰパケットのキャッシュの要否判定を行うことを特徴とするパケット監視システムとした。
【００１７】
このようにすることで、パケット監視装置は、ＩＰネットワークにおける個々のＴＣＰセッションごとにパケットキャッシュの要否を判定して、ＴＣＰパケットのキャッシュや再送を行うことができる。これにより、パケットキャッシュの必要がないＴＣＰセッションのパケットをキャッシュする必要がなくなり、キャッシュに要するメモリを削減することができる。また、パケット監視装置がＩＰネットワーク上で監視を行うことによって、端末側装置を改変することなく、ＴＣＰ輻輳制御によるデータ転送速度の低下を回避することができる。
さらに、パケットの重複数、パケットロス、パケットの遅着（パケットのシーケンス番号の順序逆転）、およびラウンドトリップタイムの少なくとも１つに基づき、改善効果が高いと推定されるＴＣＰセッションに対してのみ、ＴＣＰパケットのキャッシュや再送を行うことができる。これにより、パケット監視装置のリソースを有効に活用できるとともに、データ送信端末からパケット監視装置までのトラヒックおよび装置負荷を削減することができる。
また、ＩＰネットワーク上の劣化発生区間に近いパケット監視装置でＴＣＰパケットのキャッシュや再送を行うことができる。これにより、パケット監視装置とサーバとの間のトラヒックおよび装置負荷を削減することができる。また、クライアント端末において再送データパケットを受信するまでの時間を短縮することができる。
【発明の効果】
【００１８】
本発明によれば、ＴＣＰプロトコルを用いた通信において、通信の信頼性を維持しつつ、パケットキャッシュに要するメモリを削減することができる、パケット監視装置、パケット監視方法およびパケット監視システムを提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態に係るパケット監視装置を配置したネットワーク構成の一例を示す図である。
【図２】本実施の形態に係るパケット監視装置の機能的構成を示すブロック図である。
【図３】本実施の形態に係るパケットフロー識別部による処理を示すフローチャートである。
【図４】本実施の形態に係る監視フローテーブルのデータ構成の一例を示す図である。
【図５】本実施の形態に係るデータパケット情報テーブルのデータ構成の一例を示す図である。
【図６】本実施の形態に係る品質監視部のデータパケット入力時の処理を示すフローチャートである。
【図７】本実施の形態に係る品質監視部のＡＣＫパケット入力時の処理を示すフローチャートである。
【図８】本実施の形態に係るパケット監視装置を複数配置したパケット監視システムのシステム構成の一例を示す図である。
【発明を実施するための形態】
【００２０】
以下に添付図面を参照して、本発明に係るパケット監視装置１００、パケット監視方法およびパケット監視システム８００の好適な実施の形態を詳細に説明する。
【００２１】
≪ネットワーク構成の概要≫
図１は、本実施の形態に係るパケット監視装置１００を配置したネットワーク構成の一例を示す図である。本実施の形態に係るパケット監視装置１００は、ＩＰネットワーク上の２つの端末である、サーバ１１０およびクライアント端末１２０との間で確立されたＴＣＰセッションで送受信されるＴＣＰパケットを監視する。より詳細には、パケット監視装置１００は、ＩＰネットワーク上のサーバ１１０からクライアント端末１２０へ送信されるＴＣＰデータパケットと、これに対応してクライアント端末１２０からサーバ１１０へ送信されるＡＣＫパケットと、からなるパケットフローを監視対象とする。以下において、送信元アドレス、送信元ポート番号、送信先アドレス、送信先ポート番号が同一のＴＣＰデータパケットおよび対応するＡＣＫパケットによる２つの端末間でのＴＣＰセッションを「フロー」と呼ぶ。また、特に説明しない限り、本実施の形態では、ＡＣＫ番号はＡＣＫパケットのＡＣＫ番号、シーケンス番号はデータパケットのシーケンス番号を指す。
【００２２】
パケット監視装置１００は、ＩＰネットワークのアクセス網側エッジに配備されており、ＩＰネットワークのインターネット側（サーバ１１０側）にはゲートウェイ（ＧＷ）１３０が、アクセス網側（クライアント端末１２０側）にはエッジルータ１４０がそれぞれ配置されている。サーバ１１０とクライアント端末１２０との間のＴＣＰセッションにおいて、パケット監視装置１００とクライアント端末１２０との間（下流区間）を区間Ａ、パケット監視装置１００とサーバ１１０との間（上流区間）を区間Ｂとする。
【００２３】
≪パケット監視装置１００の機能的構成≫
図２は、本実施の形態に係るパケット監視装置１００の機能的構成を示すブロック図である。パケット監視装置１００は、パケットフロー識別部２０１、品質監視判定部２０２、品質監視部２０３、劣化区間判定部２０４、パケットキャッシュ部２０５、テーブル記憶部２１１、データパケット情報テーブル記憶部２１２、および、パケットキャッシュ記憶部２１３を含んで構成される。
【００２４】
パケットフロー識別部２０１は、ＩＰネットワーク上で送受信されるＴＣＰパケットが、いずれのＴＣＰセッション（フロー）で送受信されたものかを識別する。また、パケットフロー識別部２０１は、受信したＴＣＰパケットに対して行う実行処理（品質監視判定、品質監視、キャッシュ、監視中止）を選択し、該当する各機能部に出力する（なお、詳細は後記する図３参照）。
【００２５】
品質監視判定部２０２は、ＴＣＰセッション（フロー）で所定の時間内に送受信されるＡＣＫパケットの重複数をカウントし、所定の閾値を超えた場合に、当該ＴＣＰセッション（フロー）を品質監視すべきと判定する。
【００２６】
品質監視部２０３は、ＩＰネットワーク上で確立されている各ＴＣＰセッション（フロー）ごとに、当該ＴＣＰセッション（フロー）で送受信されるＴＣＰパケットのキャッシュの要否判定を行う。品質監視部２０３は、例えば、ＴＣＰセッション（フロー）で送受信されるパケットの重複数（後記する「重複パケットカウンタ」「重複ＡＣＫカウンタ」）、パケットロス、パケットの遅着数、およびＴＣＰセッション（フロー）におけるラウンドトリップタイム、の少なくとも１つに基づき、そのＴＣＰセッション（フロー）で送受信されるＴＣＰパケットのキャッシュを要すると判定する。なお、本実施の形態における「パケットの遅着」とは、パケットの到着順序の逆転やパケットの再送により、本来先に到着しているはずのパケットが遅れて到着した場合を意味する。つまり、パケットのシーケンス番号が順序逆転をしている場合であり、シーケンス番号が順序逆転していない場合は、遅く到着しても「パケットの遅着」には該当しない。品質監視部２０３は、ＴＣＰパケットのキャッシュを要すると判定した場合に、劣化区間判定部２０４に劣化区間判定要求を送信する。そして、最終的なＴＣＰパケットのキャッシュ要否判断が、劣化区間判定部２０４による劣化区間判定結果に基づいて行われる。
【００２７】
劣化区間判定部２０４は、ＴＣＰセッションにおける劣化区間が、サーバ１１０とパケット監視装置１００との間の区間（図１の区間Ｂ）またはクライアント端末１２０とパケット監視装置１００との間の区間（図１の区間Ａ）のいずれであるかを判定し、劣化区間がサーバ１１０とパケット監視装置１００との間（図１の区間Ｂ）である場合は、ＴＣＰパケットのキャッシュを不要と判定し、劣化区間がクライアント端末１２０とパケット監視装置１００との間（図１の区間Ａ）である場合はＴＣＰパケットのキャッシュを要すると判定する。
【００２８】
パケットキャッシュ部２０５は、ＴＣＰパケットを送受信するＴＣＰセッション（フロー）が、品質監視部２０３でＴＣＰパケットのキャッシュを要すると判定されたＴＣＰセッション（フロー）の場合、ＴＣＰパケットをキャッシュする。また、パケットキャッシュ部２０５は、キャッシュされたＴＣＰパケットの再送要求を受信した場合、再送要求されたＴＣＰパケットを再送する。
【００２９】
テーブル記憶部２１１には、監視フローテーブル４００およびユーザ情報テーブル４５０が記憶され、パケットフロー識別部２０１、品質監視判定部２０２、品質監視部２０３、劣化区間判定部２０４、パケットキャッシュ部２０５のいずれからもアクセス可能である。データパケット情報テーブル記憶部２１２には、品質監視部２０３で使用するデータパケット情報テーブル５００が記憶される。パケットキャッシュ記憶部２１３には、パケットキャッシュ部２０５によってパケットキャッシュが記憶される。
【００３０】
≪各機能部の詳細≫
次に、パケット監視装置１００の各機能部の詳細について説明する。
【００３１】
＜パケットフロー識別部２０１＞
図３は、本実施の形態に係るパケットフロー識別部２０１による処理を示すフローチャートである。また、図４は、本実施の形態に係る監視フローテーブル４００のデータ構成の一例を示す図である。
図３のフローチャートにおいて、パケットフロー識別部２０１は、ＴＣＰパケットが入力されるまで待機して（ステップＳ３０１：Ｎｏ）、ＴＣＰパケットが入力されると（ステップＳ３０１：Ｙｅｓ）、テーブル記憶部２１１に記憶されている監視フローテーブル４００を参照して、当該パケットが監視フローテーブル４００に登録されているフローで送受信されたものであるか否かを判断する（ステップＳ３０２）。
【００３２】
図４に示す監視フローテーブル４００は、フローＩＤ４０１、サーバＩＰアドレス４０２、端末ＩＰアドレス４０３、サーバポート番号４０４、端末ポート番号４０５、ＭＳＳ（Maximum Segment Size）４０６、アプリケーション識別番号４０７、端末識別番号４０８、および、実行処理４０９を含んで構成される。
【００３３】
フローＩＤ４０１は、監視フローテーブル４００に登録されたフローを識別するＩＤである。サーバＩＰアドレス４０２は、当該フローにおいてＴＣＰパケット（データパケット）の送信元となるサーバ１１０のＩＰアドレスである。端末ＩＰアドレス４０３は、当該フローにおいてＴＣＰパケット（データパケット）の送信先となるクライアント端末１２０のＩＰアドレスである。サーバポート番号４０４は、サーバ１１０のポート番号である。端末ポート番号４０５は、クライアント端末１２０のポート番号である。
【００３４】
また、ＭＳＳ４０６は、当該フローにおける最大セグメントサイズである。アプリケーション識別番号４０７は、当該フローにおける通信を利用するアプリケーションの識別番号である。端末識別番号４０８は、クライアント端末１２０が複数ある場合に通信先のクライアント端末を識別する番号である。実行処理４０９は、当該フローのパケットに対して実行する処理内容である。
【００３５】
図３に戻り、パケットフロー識別部２０１は、図３のステップＳ３０１でパケットを受信すると（ステップＳ３０１：Ｙｅｓ）、そのヘッダ情報と図４に示す監視フローテーブル４００の情報（例えば、サーバＩＰアドレス４０２、端末ＩＰアドレス４０３、サーバポート番号４０４、端末ポート番号４０５など）とを照合して、一致するフローが登録されているかを判断する（図３のステップＳ３０２）。
【００３６】
フローが登録されている場合（ステップＳ３０２：Ｙｅｓ）、パケットフロー識別部２０１は、入力されたパケットのヘッダ情報内のフラグを参照して、当該フローの終了を検出したか否かを判断する（ステップＳ３０３）。具体的には、パケットフロー識別部２０１は、パケットのヘッダ情報内のフラグが、コネクション開放またはコネクション強制切断のいずれかを示しているかを判断する。フローの終了を検出した場合は（ステップＳ３０３：Ｙｅｓ）、ステップＳ３１１に移行して、監視対象テーブルから該当フローの情報を削除するとともに（ステップＳ３１１）、入力パケットをＩＰネットワーク上に出力して（ステップＳ３１２）、本フローチャートによる処理を終了する。
【００３７】
一方、フローの終了を検出しなかった場合は（ステップＳ３０３：Ｎｏ）、監視フローテーブル４００（図４）の当該フローに対応する実行処理４０９を参照して、入力されたパケットに対して実行する処理を判定する（ステップＳ３０４）。図４の監視フローテーブル４００には、実行処理４０９として、「品質監視判定」、「品質監視」、「キャッシュ」、「監視中止」の４つの処理が登録されている。実行処理４０９が「品質監視判定」の場合は（ステップＳ３０４：品質監視判定）、入力されたパケットがＡＣＫパケットの場合、該当するフローＩＤ４０１の情報とＡＣＫパケットを品質監視判定部２０２に出力して（ステップＳ３０５）、本フローチャートによる処理を終了する。なお、入力されたパケットがデータパケットの場合は、そのままＩＰネットワーク上に出力する。
【００３８】
実行処理４０９が「品質監視」の場合は（ステップＳ３０４：品質監視）、入力されたパケットを該当するフローＩＤ４０１の情報と共に品質監視部２０３に出力して（ステップＳ３０６）、本フローチャートによる処理を終了する。実行処理４０９が「キャッシュ」の場合は（ステップＳ３０４：キャッシュ）、入力されたパケットを該当するフローＩＤ４０１の情報と共にパケットキャッシュ部２０５に出力して（ステップＳ３０７）、本フローチャートによる処理を終了する。なお、ステップＳ３０６およびＳ３０７では、入力されたパケットがデータパケットおよびＡＣＫパケットのいずれであっても、出力を行う。また、実行処理４０９が「監視中止」の場合は、入力パケットをそのままＩＰネットワークに出力して（ステップＳ３１２）、本フローチャートによる処理を終了する。
【００３９】
また、ステップＳ３０２で、ＴＣＰパケットを送受信したフローが監視フローテーブル４００に登録されていない場合（ステップＳ３０２：Ｎｏ）、パケットフロー識別部２０１は、入力されたパケットを送受信するフローが新規フロー（新たに接続を開始したＴＣＰセッション）であるか否かを判断する（ステップＳ３０８）。新規フローである場合（ステップＳ３０８：Ｙｅｓ）、パケットフロー識別部２０１は、テーブル記憶部２１１のユーザ情報テーブル４５０を参照し、新規フローが監視対象フローであるかを判定する（ステップＳ３０９）。
【００４０】
ここで、ユーザ情報テーブル４５０には、パケット監視装置１００のサービス対象ユーザの識別情報（ＩＰアドレス、ポート番号、アプリケーション情報、端末情報など）が含まれている。パケットフロー識別部２０１は、ユーザ情報テーブル４５０にあるＩＰアドレス、ポート番号などの情報と、新規フローの情報（入力されたパケットのヘッダ情報）とが一致するか否かを判断し、一致する場合には監視対象フローと判定する。なお、ユーザ情報テーブル４５０に、パケットヘッダ情報から識別できないアプリケーション情報や端末情報がある場合は、ＤＰＩ（Deep Packet Inspection）などの機能によって該当フローのアプリケーション情報や端末情報を識別し、監視対象フローであるか否かを判定する。
【００４１】
新規フローが監視対象フローである場合（ステップＳ３０９：Ｙｅｓ）、パケットフロー識別部２０１は、監視フローテーブル４００に新規フローのフロー情報を登録した上で（ステップＳ３１０）、ステップＳ３０４の処理に移行する。ステップＳ３１０では、監視フローテーブル４００の実行処理４０９は初期値である「品質監視判定」に設定する。一方、新規フローが監視対象フローでない場合（ステップＳ３０９：Ｎｏ）、および、ステップＳ３０８で、入力されたパケットを送受信するフローが新規フローでない場合（ステップＳ３０８：Ｎｏ）、パケットフロー識別部２０１は、そのまま入力パケットをＩＰネットワークに出力して（ステップＳ３１２）、本フローチャートによる処理を終了する。
【００４２】
＜品質監視判定部２０２＞
品質監視判定部２０２は、フロー（フローＩＤ）別に重複ＡＣＫを監視することによって、品質監視の実施要否を判定する。品質監視判定部２０２は、フロー（フローＩＤ）別に最新ＡＣＫ番号を保持しており、パケットフロー識別部２０１から入力されたＡＣＫパケットが重複ＡＣＫパケットでない場合は、最新ＡＣＫ番号を更新する。一方、重複ＡＣＫパケットである場合は、そのＡＣＫの最初の重複ＡＣＫパケット検出時のみ、フローＩＤごとに設定された重複ＡＣＫカウンタに「１」を加算する。重複ＡＣＫは短時間に大量に検出される可能性があるため、同じＡＣＫ番号の重複ＡＣＫパケットについては、最初の重複ＡＣＫパケット検出時のみカウンタを「１」加算する。つまり、品質監視判定部２０２は、受信したＡＣＫ番号の異なるＡＣＫパケットごとに重複ＡＣＫを監視し、最初の重複ＡＣＫパケットが検出されるごとに重複ＡＣＫカウンタに「１」を加算する。そして、品質監視判定部２０２は、所定時間Ｔａ単位毎に、Ｔａ以内に重複ＡＣＫカウンタの値が所定の閾値ＴＨａを超えた否かを判定する。さらに、品質監視判定部２０２は、所定時間Ｔａを複数回含んだ第２の所定時間Ｔｂ内で、重複ＡＣＫカウンタの値が所定の閾値ＴＨａを超えたと判定された回数をカウントし、その回数が閾値ＴＨｂを超過した場合、監視フローテーブル４００の該当フローの実行処理を「品質監視」に設定して、該当フローの品質監視判定処理を終了する。ここで、第２の所定時間Ｔｂを設定し、閾値ＴＨａを超えたと判定された回数に、さらに、閾値ＴＨｂを設けた理由は、重複ＡＣＫは一時的に大量に検出される可能性があり、重複ＡＣＫが大量に検出される状態が続いているのか、それとも、短時間で、重複ＡＣＫの検出がなされない状態になったかを判断するためである。この判定により、品質監視判定部２０２は、重複ＡＣＫが検出される状態が続いている場合に、該当フローの実行処理４０９を「品質監視」に設定することができる。
なお、重複ＡＣＫカウンタは、所定時間Ｔａごとに０に初期化する。また、品質監視判定部２０２が保持するフロー別の最新ＡＣＫ番号は、到着したＡＣＫパケットのＡＣＫ番号が、保持しているＡＣＫ番号より小さい場合は更新しない。
【００４３】
＜品質監視部２０３＞
図５は、本実施の形態に係るデータパケット情報テーブル５００のデータ構成の一例を示す図である。データパケット情報テーブル５００は、各フロー（フローＩＤ４０１）ごとに作成され、データ項目として、シーケンス番号５０１、データパケットのＡＣＫ番号５０２、データサイズ５０３、ウィンドウサイズ５０４、パケット到着時刻５０５、ＲＴＴ（Round Trip Time）５０６、重複パケットカウンタ５０７、重複ＡＣＫカウンタ５０８、データロスフラグ５０９、遅着フラグ５１０、および、ＲＴＴフラグ５１１を含んで構成される。データパケット情報テーブル５００の全てのカウンタおよびフラグの初期値は「０」に設定される。
【００４４】
シーケンス番号５０１は、品質監視部２０３に入力されたデータパケットのシーケンス番号である。ＡＣＫ番号５０２は、シーケンス番号５０１のデータパケットのＡＣＫ番号である。データサイズ５０３は、データパケットのデータサイズである。ウィンドウサイズ５０４は、確認応答を待たずに送ることのできるデータ量である。パケット到着時刻５０５は、パケットの到着時刻である。ＲＴＴ５０６は、品質監視部２０３がデータパケットを出力後、対応するＡＣＫパケットを受信するまでの時間である。
【００４５】
また、重複パケットカウンタ５０７は、データパケットの重複数をカウントするカウンタである。重複ＡＣＫカウンタ５０８は、シーケンス番号５０１のデータパケットに対応するＡＣＫパケットの重複数をカウントするカウンタである。データロスフラグ５０９は、データロスが発生したことを示すフラグである。遅着フラグ５１０はデータパケットの遅着（パケットのシーケンス番号の順序逆転）が発生したことを示すフラグである。ＲＴＴフラグ５１１は、ＲＴＴが所定閾値を超えたことを示すフラグである。
【００４６】
品質監視部２０３は、パケットフロー識別部２０１からＴＣＰパケットが入力されると、その入力パケットを用いてデータパケット情報テーブル５００（図５）を更新し、データパケット情報テーブル５００のデータに基づきパケットキャッシュの要否判定を行う。入力パケットに対する処理は、データパケットかＡＣＫパケットかによって異なる。以下、入力パケットがデータパケットの場合の処理は図６、ＡＣＫパケットの場合の処理は図７を用いて、それぞれ説明する。
【００４７】
図６は、本実施の形態に係る品質監視部２０３のデータパケット入力時の処理を示すフローチャートである。品質監視部２０３は、データパケットが入力されたか否かを判定し、データパケットが入力されていない場合には、入力されるまで待機する（ステップＳ６０１：Ｎｏ）。品質監視部２０３は、データパケットが入力されると（ステップＳ６０１：Ｙｅｓ）、データパケットの到着時刻情報を取得する（ステップＳ６０２）。次に、品質監視部２０３は、データパケットのヘッダ情報（シーケンス番号など）およびデータパケット情報テーブル５００を参照して、当該データパケットがデータパケット情報テーブル５００に登録されているか否かを判断する（ステップＳ６０３）。
【００４８】
同一パケットの情報が登録されている場合（ステップＳ６０３：Ｙｅｓ）、品質監視部２０３は、データパケットの重複が生じたものとして、重複パケットカウンタ５０７に「１」を加算して（ステップＳ６０４）、データパケットをＩＰネットワークに出力して（ステップＳ６０９）、本フローチャートによる処理を終了する。一方、パケット情報が登録されていない場合（ステップＳ６０３：Ｎｏ）、品質監視部２０３は、今回到着したデータパケットの情報（シーケンス番号、到着時刻など）をデータパケット情報テーブル５００に登録する（ステップＳ６０５）。
【００４９】
続いて、品質監視部２０３は、データパケット情報テーブル５００に保持されている情報（前回受信したデータパケットのシーケンス番号など）から、今回入力されるべきデータパケットのシーケンス番号Ｅ＿ＳＥＱを算出し、実際に今回入力されたデータパケットのシーケンス番号ＳＥＱと比較する（ステップＳ６０６）。そして、ＳＥＱ＞Ｅ＿ＳＥＱの場合（ステップＳ６０６：ＳＥＱ＞Ｅ＿ＳＥＱ）、品質監視部２０３は、データパケットの損失が生じたものとして、今回到着したデータパケットについてのデータパケット情報テーブル５００のデータロスフラグ５０９を「１」に設定する（ステップＳ６０７）。そして、品質監視部２０３は、データパケットをＩＰネットワークに出力して（ステップＳ６０９）、本フローチャートによる処理を終了する。
【００５０】
ＳＥＱ＜Ｅ＿ＳＥＱの場合（ステップＳ６０６：ＳＥＱ＜Ｅ＿ＳＥＱ）、品質監視部２０３は、データパケットの遅着（パケットのシーケンス番号の順序逆転）が生じたものとして、データパケット情報テーブル５００の遅着フラグ５１０を「１」に設定する（ステップＳ６０８）。そして、品質監視部２０３は、データパケットをＩＰネットワークに出力して（ステップＳ６０９）、本フローチャートによる処理を終了する。
【００５１】
ＳＥＱ＝Ｅ＿ＳＥＱの場合（ステップＳ６０６：ＳＥＱ＝Ｅ＿ＳＥＱ）、正常にデータフローが機能しているものとして、品質監視部２０３は、データパケットを送信先のクライアント端末１２０に出力して（ステップＳ６０９）、本フローチャートによる処理を終了する。
【００５２】
図７は、本実施の形態に係る品質監視部２０３のＡＣＫパケット入力時の処理を示すフローチャートである。図７のフローチャートにおいて、品質監視部２０３は、ＡＣＫパケットが入力されたか否かを判定し、ＡＣＫパケットが入力されていない場合には（ステップＳ７０１：Ｎｏ）、入力されるまで待機する。品質監視部２０３は、ＡＣＫパケットが入力されると（ステップＳ７０１：Ｙｅｓ）、ＡＣＫパケットの到着時刻情報を取得する（ステップＳ７０２）。次に、品質監視部２０３は、フロー（フローＩＤ）別に重複ＡＣＫを監視しており、パケットフロー識別部２０１から入力されたＡＣＫパケットが重複ＡＣＫパケットであるか否かを判断する（ステップＳ７０３）。品質監視部２０３は、フロー（フローＩＤ）別に最新のＡＣＫ番号（最新ＡＣＫ番号）を保持し、パケットフロー識別部２０１から入力されたＡＣＫパケットが重複ＡＣＫパケットでない場合は（ステップＳ７０３：Ｎｏ）、該当するフロー（フローＩＤ）の最新ＡＣＫ番号を更新する（ステップＳ７０５）。なお、品質監視部２０３が保持するフロー別の最新ＡＣＫ番号は、到着したＡＣＫパケットのＡＣＫ番号が、保持しているＡＣＫ番号より小さい場合は更新しない。一方、重複ＡＣＫパケットである場合（ステップＳ７０３：Ｙｅｓ）、品質監視部２０３は、ＡＣＫパケットの重複が生じているものとして、データパケット情報テーブル５００の該当パケットの重複ＡＣＫカウンタ５０８に「１」を加算する（ステップＳ７０４）。そして、ＡＣＫパケットをＩＰネットワークに出力して（ステップＳ７１０）、本フローチャートによる処理を終了する。
【００５３】
続いて、品質監視部２０３は、データパケット情報テーブル５００を参照し、ＡＣＫパケットに対応するデータパケットの遅着フラグ５１０の値が「０」か否かを判断する（ステップＳ７０６）。
【００５４】
ここで、遅着フラグ５１０の値が「０」である場合（ステップＳ７０６：Ｙｅｓ）、品質監視部２０３は、データパケットが出力されてからＡＣＫパケットを受信するまでのＲＴＴを算出する（ステップＳ７０７）。算出されたＲＴＴはデータパケット情報テーブル５００のＲＴＴ５０６に記憶される。そして、品質監視部２０３は、ＲＴＴが所定の閾値を超えているか否かを判断し（ステップＳ７０８）、所定の閾値を超えている場合は（ステップＳ７０８：Ｙｅｓ）、データパケット情報テーブル５００のＲＴＴフラグ５１１を「１」に設定する（ステップＳ７０９）。そして、品質監視部２０３は、ＡＣＫパケットをＩＰネットワークに出力して（ステップＳ７１０）、本フローチャートによる処理を終了する。
【００５５】
一方、ステップＳ７０６において、遅着フラグ５１０の値が「０」でない場合（つまり「１」の場合）（ステップＳ７０５：Ｎｏ）、または、ステップＳ７０８において、ＲＴＴが所定の閾値以下の場合（ステップＳ７０８：Ｎｏ）、品質監視部２０３は、ＡＣＫパケットをＩＰネットワークに出力して（ステップＳ７１０）、本フローチャートによる処理を終了する。
【００５６】
そして、品質監視部２０３は、上記において説明した処理によりデータパケット情報テーブル５００を更新した上で、所定の時間ごとに、データパケット情報テーブル５００のデータに基づき、当該フローにおけるパケットキャッシュの要否判定を行う。なお、ここでのパケットキャッシュの要否判定は、パケットキャッシュを行うべきと判断する可能性が高いフローを抽出するための判定であり、最終的には、劣化区間判定部２０４による劣化区間判定結果に基づいてパケットキャッシュの要否が決定される。
【００５７】
具体的には、品質監視部２０３は、所定の時間ごとに、データパケット情報テーブル５００を参照し、例えば、以下に示す算出値が所定の閾値を超えた場合に、最終的にパケットキャッシュを行うべきと判断される可能性が高いものとして、劣化区間判定部２０４に対し、該当フロー（該当フローＩＤ４０１）の劣化区間判定要求を出力する。
【００５８】
（１）［重複パケットカウンタ５０７の値が所定値を超えているデータパケット数］／［登録されているデータパケット数］
（２）［重複ＡＣＫカウンタ５０８の値が所定値を超えているデータパケット数］／［登録されているデータパケット数］
（３）［データロスフラグの合計値］／［登録されているデータパケット数］
（４）［遅着フラグの合計値］／［登録されているデータパケット数］
（５）［ＲＴＴフラグの合計値］／［登録されている遅着フラグが「０」のデータパケット数］
【００５９】
品質監視部２０３は、データパケット情報テーブル５００を参照して、例えば、上記（１）〜（５）のうち少なくとも１つの算出値が、所定の閾値を超えた場合に、該当フローの劣化区間判定要求を劣化区間判定部２０４に送信する。なお、この判定は、（１）〜（５）の算出値のうち複数が閾値を超えた場合や、（１）〜（５）の算出値のうちのいずれかの組の算出値が閾値を超えた場合などに、該当フローの劣化区間判定要求を劣化区間判定部２０４に送信するようにしてもよい。また、この算出値は、データパケット情報テーブル５００に登録されている全てのデータパケット数について算出するようにしもよいし、所定時間内に追加されたデータパケット数について算出するようにしてもよい。
【００６０】
＜劣化区間判定部２０４＞
劣化区間判定部２０４は、品質監視部２０３から劣化区間判定要求を受信すると、該当フロー（フローＩＤ）のデータパケット情報テーブル５００に登録されているデータから、通信の劣化区間がパケット監視装置１００の下流（図１の区間Ａ）および上流（図１の区間Ｂ）のいずれであるかを判定する。劣化区間判定部２０４は、劣化区間を「下流」と判定した場合は、監視フローテーブル４００の実行処理４０９を「キャッシュ」に設定する。一方、劣化区間を「上流」と判定した場合は、監視フローテーブル４００の実行処理４０９を「監視中止」に設定する。劣化区間判定処理が終了すると、劣化区間判定部２０４は、データパケット情報テーブル５００から該当フローのパケット情報を削除して、処理を終了する。
【００６１】
この劣化区間判定部２０４による通信劣化区間の判定は、例えば、該当フロー（フローＩＤ４０１）のデータパケット情報テーブル５００（図５）について、下記の（Ｎａ）〜（Ｎｄ）を算出して比較することにより、劣化区間を判定する。
【００６２】
・（Ｎａ）＝遅着フラグ５１０の合計
・（Ｎｂ）＝遅着フラグ５１０が「０」、かつ、２つのカウンタ（重複パケットカウンタ５０７、重複ＡＣＫカウンタ５０８）の両方が「１」以上であるデータパケット数
・（Ｎｃ）＝遅着フラグ５１０が「０」、ＲＴＴフラグ５１１が「０」であり、かつ、２つのカウンタ（重複パケットカウンタ５０７、重複ＡＣＫカウンタ５０８）のいずれか一方が「１」以上のデータパケット数
・（Ｎｄ）＝遅着フラグ５１０が「０」、ＲＴＴフラグ５１１が「１」であり、かつ、２つのカウンタ（重複パケットカウンタ５０７、重複ＡＣＫカウンタ５０８）のいずれか一方が「１」以上のデータパケット数
【００６３】
そして、劣化区間判定部２０４は、（Ｎａ）〜（Ｎｄ）を算出し、以下の（式１）に基づき、劣化区間の判定を行う。なお、α、βは係数である。
【００６４】
【数１】
0005723307.tif 000002
【００６５】
ここで、（Ｎａ）は、遅着フラグ５１０が「１」であるものを合計するので、上流でのパケットロスやパケットの到着順序の逆転などの発生に依存する値となる。
（Ｎｂ）は、遅着フラグ５１０が「０」であるので、上流ではパケットロスやパケットの到着順序の逆転などは起きていない。データパケットおよびＡＣＫパケットの再送が起きていることから、下流でのデータパケットの劣化を推定する値となる。
（Ｎｃ）は、遅着フラグ５１０が「０」であるので、上流ではデータパケットのロスやパケットの到着順序の逆転などは起きていない。データパケットの再送またはＡＣＫパケットの再送の一方しか行われておらず、ＲＴＴフラグ５１１が「０」であるため、上流でのＡＣＫパケットの劣化の発生を推定する値となる。
（Ｎｄ）は、（Ｎｃ）とは逆に、ＲＴＴフラグ５１１が「１」であるため、下流での劣化の発生を推定する値となる。
【００６６】
劣化区間判定部２０４は、例えば、この（式１）を劣化区間判定に用いて、（式１）が成立するときに、上流（区間Ｂ）で劣化と判定し、（式１）が不成立のときに、下流（区間Ａ）で劣化と判定する。
【００６７】
＜パケットキャッシュ部２０５＞
パケットキャッシュ部２０５は、パケットフロー識別部２０１から入力されたパケットがデータパケットである場合には、当該データパケットがパケットキャッシュ記憶部２１３にキャッシュされているか否かを判断する。当該データパケットがすでにキャッシュされている場合、パケットキャッシュ部２０５は、当該データパケットのキャッシュは行わず、ＩＰネットワークへ当該データパケットを出力する。一方、当該データパケットがキャッシュされていない場合、パケットキャッシュ部２０５は、パケットキャッシュ記憶部２１３に当該データパケットをキャッシュした後、ＩＰネットワークへ当該データパケットを出力する。
【００６８】
また、パケットキャッシュ部２０５は、フロー（フローＩＤ）別に重複ＡＣＫを監視しており、フロー（フローＩＤ）別に最新のＡＣＫ番号（最新ＡＣＫ番号）を保持し、パケットフロー識別部２０１から入力されたパケットがＡＣＫパケットである場合には、当該ＡＣＫパケットが重複ＡＣＫパケットであるか否かを判断する。重複ＡＣＫパケットでない場合、パケットキャッシュ部２０５は、該当するフロー（フローＩＤ）の最新ＡＣＫ番号を更新し、ＡＣＫパケットをＩＰネットワークへ出力する。なお、パケットキャッシュ部２０５が保持するフロー別の最新ＡＣＫ番号は、到着したＡＣＫパケットのＡＣＫ番号が、保持しているＡＣＫ番号より小さい場合は更新しない。また、パケットキャッシュ部２０５は、当該ＡＣＫパケットによってクライアント端末１２０での受信確認ができたデータパケットをパケットキャッシュ記憶部２１３から削除する。
【００６９】
一方、入力されたＡＣＫパケットが重複ＡＣＫパケットの場合、パケットキャッシュ部２０５は、最初の重複ＡＣＫパケット検出時には、再送要求されたデータパケットをパケットキャッシュ記憶部２１３から読み出してクライアント端末１２０に送信するとともに、受信したＡＣＫパケットを廃棄する。その後、パケットキャッシュ部２０５は、再送要求されたデータパケットがパケットキャッシュ記憶部２１３に記憶されている場合には、最初の重複ＡＣＫパケット検出時以外でも、受信したＡＣＫパケットを廃棄するとともに、重複ＡＣＫパケットを所定数受信するごとに、再送要求されたデータパケットをパケットキャッシュ記憶部２１３から読み出してクライアント端末１２０に送信する。例えば、所定数＝５とすると、同一のＡＣＫパケットを２回目に受信したとき（１番目の重複ＡＣＫ）、７番目に受信したとき、１２番目に受信したときのように、再送要求されたデータパケットを送信する。なお、パケットキャッシュ部２０５は、再送要求されたデータパケットがパケットキャッシュ記憶部２１３に記憶されていないときは、重複ＡＣＫパケットをネットワークに出力する。
【００７０】
また、パケットキャッシュ部２０５は、所定時間内に重複ＡＣＫパケットが検出されないフローについては、監視フローテーブル４００の実行処理４０９を「品質監視判定」に設定する。これにより、フローの劣化要因が解決した場合にはＴＣＰパケットのキャッシュを終了することができる。
【００７１】
≪複数のパケット監視装置１００を用いたパケット監視システム８００の一例≫
本実施の形態に係るパケット監視装置１００を複数配置することによって、より効率的にパケットのキャッシュおよび再送を行うことが可能となる。以下に、パケット監視装置１００を複数配置したパケット監視システム８００の一例を示す。
【００７２】
図８は、本実施の形態に係るパケット監視装置１００を複数配置したパケット監視システム８００のシステム構成の一例を示す図である。パケット監視システム８００は、図１と同様に、サーバ１１０からクライアント端末１２０へ送信されるＴＣＰデータパケットと、それに対応してクライアント端末１２０からサーバ１１０へ送信されるＡＣＫパケットと、からなるパケットフローを監視対象としている。パケット監視システム８００において、ＩＰネットワーク上のインターネット側エッジにはパケット監視装置８１０が、アクセス網側エッジにはパケット監視装置８２０が配置されている。また、パケット監視システム８００には、ＩＰネットワーク上のパケット監視装置８１０，８２０を管理する管理サーバ８３０が設けられている。
【００７３】
ＩＰネットワークのインターネット側（サーバ１１０側）にはゲートウェイ（ＧＷ）１３０が、アクセス網側（クライアント端末１２０側）にはエッジルータ１４０がそれぞれ配置されている。また、パケット監視装置８１０およびパケット監視装置８２０との間にはルータ８０５が配置されている。サーバ１１０とクライアント端末１２０との間のＴＣＰセッションにおいて、パケット監視装置８２０とクライアント端末１２０との間を区間Ｃ、パケット監視装置８１０およびパケット監視装置８２０との間を区間Ｄ、パケット監視装置８１０とサーバ１１０との間を区間Ｅとする。
【００７４】
まず、パケット監視システム８００では、クライアント端末１２０側のエッジに設置されたパケット監視装置８２０で前記したパケット監視を行う。パケット監視の結果、通信の劣化が検知され、パケット監視装置８２０の劣化区間判定部２０４によって劣化区間が「下流」（図８の区間Ｃ）と判定された場合、パケット監視装置８２０でデータパケットのキャッシュ、ロスパケットの再送、重複ＡＣＫパケットの削除などを適宜行う。また、このとき、パケット監視装置８２０は、管理サーバ８３０とは通信しない。
【００７５】
一方、劣化区間が「上流」（図８の区間ＤまたはＥ）と判定された場合、パケット監視装置８２０の劣化区間判定部２０４は、実行処理を「監視中止」に設定し、監視フローテーブル４００に登録されている該当フローの識別情報（フローＩＤやＩＰアドレスなどの情報）を含む劣化区間判定結果を管理サーバ８３０に送信する。
【００７６】
管理サーバ８３０は、パケット監視装置８２０から受信した該当フローの識別情報に基づいて、該当フローの経路情報をＩＰネットワーク内の装置から収集し、該当フローの通信経路上にあり、パケット監視装置８２０よりも上流にあるパケット監視装置８１０を特定する。管理サーバ８３０は該当フローの識別情報を、パケット監視装置８１０の監視フローテーブル４００に登録する。すなわち、管理サーバ８３０は、該当フローの識別情報と、この識別情報で識別されるＴＣＰセッションで送受信されるＴＣＰパケットのキャッシュの要否判定を要求するキャッシュ要否判定要求とを送信する。このとき、監視フローテーブル４００の実行処理４０９は「品質監視」として登録する。
【００７７】
管理サーバ８３０からのキャッシュ要否判定要求を受けたパケット監視装置８１０は、ＴＣＰパケットが入力されると監視フローテーブル４００を参照して品質監視を実施する。パケット監視装置８１０の劣化区間判定部２０４で劣化区間を「下流」（図８の区間Ｄ）と判定した場合は、監視フローテーブル４００の実行処理４０９を「キャッシュ」に設定し、データパケットのキャッシュ、ロスパケットの再送、重複ＡＣＫパケットの削除などをパケット監視装置８１０で適宜行うとともに、劣化区間判定結果を管理サーバ８３０へ送信する。一方、劣化区間を「上流」（図８の区間Ｅ）と判定した場合は、監視フローテーブル４００の実行処理４０９を「監視中止」に設定して、該当フローの識別情報と劣化区間判定結果を管理サーバ８３０へ送信する。
【００７８】
管理サーバ８３０は、パケット監視装置８１０から受信した劣化区間判定結果が「上流」（図８の区間Ｅ）の場合は、パケット監視装置８１０の監視フローテーブル４００から該当フローの情報を削除するように要請する。一方、劣化区間が「下流」（図８の区間Ｄ）の場合、管理サーバ８３０は、パケット監視装置８２０の監視フローテーブル４００から該当フローの情報を削除するように要請する。
【００７９】
このように、パケット監視システム８００では、ＩＰネットワーク上の劣化発生区間に近い監視点（パケット監視装置）で、スヌープ（データパケットのキャッシュ、ロスパケットの再送、重複ＡＣＫの適宜削除など）を行うことができる。このため、パケット監視システム８００によれば、パケット監視装置−サーバ間のトラヒックおよび装置負荷を削減することができる。また、パケット監視システム８００によれば、クライアント端末１２０で再送データパケットを受信するまでの時間を短縮させることができる。
【００８０】
以上説明したように、実施の形態に係るパケット監視装置１００によれば、ＩＰネットワークにおける個々のＴＣＰセッション（フロー）ごとにパケットキャッシュの要否を判定して、スヌープ（データパケットのキャッシュ、ロスパケットの再送、重複ＡＣＫの適宜削除など）を行うことができる。これにより、パケットキャッシュの必要がないＴＣＰセッションのパケットをキャッシュする必要がなくなり、キャッシュに要するメモリを削減することができる。また、パケット監視装置１００がＩＰネットワーク上で監視を行うことによって、端末側装置（サーバ１１０やクライアント端末１２０）を改変することなく、ＴＣＰ輻輳制御によるデータ転送速度の低下を回避することができる。
【００８１】
また、パケット監視装置１００によれば、パケットの重複数、パケットロス、パケットの遅着数、およびラウンドトリップタイムに基づき、改善効果が高いと推定されるフローにおいてのみ、スヌープを行う。また、劣化区間を判定することにより、パケットキャッシュの必要がないＴＣＰセッションのパケットをキャッシュする必要をなくすことができる。これにより、パケット監視装置１００のリソースを有効に活用できるとともに、サーバ１１０からパケット監視装置１００までのトラヒックおよび装置負荷を削減することができる。
【００８２】
また、パケット監視装置１００によれば、キャッシュ要否判定に先立って、比較的処理量の少ない重複ＡＣＫ監視のみを実施し、パケットロスが多く発生しているフローのみキャッシュ要否判定を行う。これにより、パケット監視装置１００のリソースを有効に活用することができる。
【００８３】
なお、本実施の形態においては、アクセス網側エッジにパケット監視装置１００（８２０）を、そして、インターネット側エッジにパケット監視装置８１０を配置するようにした（図１および図８参照）。しかしながら、本発明は、このような配置には限定されず、パケット監視装置１００が備える機能を、エッジルータ１４０やゲートウェイ（ＧＷ）１３０、ルータ８０５などが備え、パケットを監視するようにしてもよい。
【符号の説明】
【００８４】
１００，８１０，８２０  パケット監視装置
１１０  サーバ
１２０  クライアント端末
１３０  ゲートウェイ（ＧＷ）
１４０  エッジルータ
２０１  パケットフロー識別部
２０２  品質監視判定部
２０３  品質監視部
２０４  劣化区間判定部
２０５  パケットキャッシュ部
２１１  テーブル記憶部
２１２  データパケット情報テーブル記憶部
２１３  パケットキャッシュ記憶部
４００  監視フローテーブル
４５０  ユーザ情報テーブル
５００  データパケット情報テーブル
８３０  管理サーバ
【図１】
0005723307.tif 000003
【図２】
0005723307.tif 000004
【図３】
0005723307.tif 000005
【図４】
0005723307.tif 000006
【図５】
0005723307.tif 000007
【図６】
0005723307.tif 000008
【図７】
0005723307.tif 000009
【図８】
0005723307.tif 000010