(57)【要約】【課題】無線区間を含む通信のパケットを特定すること。【解決手段】記憶部１ａは、有線区間９ａで収集された複数のパケットを記憶する。演算部１ｂは、記憶部１ａに記憶された複数のパケットをコネクション毎に分類する。演算部１ｂは、コネクション開始時に、有線区間９ａに接続された情報処理装置２が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、情報処理装置２が送信したパケットの当該期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間８を含む通信のパケットと判定する。【選択図】図１
2015195511.tif 000002
【特許請求の範囲】
【請求項１】
無線区間と有線区間とを含む通信のパケットを前記有線区間で収集してコネクション毎に分類し、
コネクション開始時に、前記有線区間に接続された情報処理装置が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、前記情報処理装置が送信したパケットの前記期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間を含む通信のパケットと判定する、
処理をコンピュータに実行させるパケット解析プログラム。
【請求項２】
前記判定では、前記期間におけるラウンドトリップ時間が単調増加しているとき、前記情報処理装置とパケットの宛先の装置との間の通信経路に、前記有線区間よりも狭い帯域の有線区間があると判定する、請求項１記載のパケット解析プログラム。
【請求項３】
前記判定では、前記期間が複数あり、各期間においてラウンドトリップ時間が単調増加し、かつ、単調増加の各傾きが異なるとき、前記情報処理装置とパケットの宛先の装置との間の通信経路で中継装置によるシェーピングが行われていると判定する、請求項１または２記載のパケット解析プログラム。
【請求項４】
前記判定では、前記期間がないとき、前記情報処理装置とパケットの宛先の装置との間の通信経路の全区間で、前記有線区間の帯域と同じか当該帯域よりも広い帯域が用いられていると判定する、請求項１または３の何れか１項に記載のパケット解析プログラム。
【請求項５】
前記判定では、更に、無線区間を含む通信の複数の確認応答のパケットのうち、順に受信された２つの確認応答のパケットの受信時刻の第１の時間間隔と、当該２つの確認応答のパケットに対応する２つのデータパケットの受信時刻の第２の時間間隔とを算出し、
前記第１および前記第２の時間間隔との差と無線通信規格における再送周期との比較に応じて前記無線区間の回線種別を判定する、
請求項１乃至４の何れか１項に記載のパケット解析プログラム。
【請求項６】
有線区間で収集された複数のパケットを記憶する記憶部と、
前記複数のパケットをコネクション毎に分類し、
コネクション開始時に、前記有線区間に接続された情報処理装置が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、前記情報処理装置が送信したパケットの前記期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間を含む通信のパケットと判定する、演算部と、
を有するパケット解析装置。
【請求項７】
コンピュータが、
無線区間と有線区間とを含む通信のパケットを前記有線区間で収集してコネクション毎に分類し、
コネクション開始時に、前記有線区間に接続された情報処理装置が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、前記情報処理装置が送信したパケットの前記期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間を含む通信のパケットと判定する、
パケット解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパケット解析プログラム、パケット解析装置およびパケット解析方法に関する。
【背景技術】
【０００２】
現在、コンピュータなどの複数の情報処理装置をネットワークに接続し、ネットワークを介した装置間でのデータ通信が行われている。ネットワークの通信経路は、有線で信号を伝送する有線区間や無線で信号を伝送する無線区間を含み得る。また、ネットワーク上でデータを伝送するためのプロトコルとしてＴＣＰ／ＩＰ（Transmission Control Protocol／Internet Protocol）がある。ＴＣＰ／ＩＰを用いてパケット化したデータの送受信が広く行われている。
【０００３】
ところで、ネットワークにおけるデータ通信の状況を分析することがある。データ通信用の設定の改善などに役立てるためである。例えば、無線通信区間を含む通信路のパケット往復時間を測定し、その往復時間の変動の最大値と最小値とから通信速度を推定し、推定値を基に送信データ長に適応した再送タイムアウト時間を計算する提案がある。
【０００４】
また、通信装置が、中継装置を介して相手装置と通信する場合に、中継装置と相手装置との間の通信区間が無線接続であると判定すると、相手装置との通信を、中継装置を経由した間接無線通信から、中継装置を経由しない直接無線通信に切り替える提案もある。この提案では、通信装置と中継装置とが無線接続されており、中継装置と相手装置との通信時間が、通信装置と中継装置との通信時間以上であった場合に、中継装置と相手装置とが無線接続されていると判定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２５３９３４号公報
【特許文献２】特開２０１０−１６１６１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
サーバ装置が複数のクライアント端末にサービスを提供するシステムで、データ通信の状況を分析することがある。特に、通信経路に無線区間を含む通信について無線区間の通信遅延を分析すれば、無線端末に対する通信品質の改善などに役立てることができる。
【０００７】
ここで、ネットワーク内の無線区間は、例えばクライアント端末と無線アクセスポイントとを繋ぐユーザ側のネットワーク末端の区間（下流側）に比較的多く存在する。このため、無線区間毎にパケット収集用の装置を設置すると収集ポイントが増大し、当該装置の設置数も増大する。そこで、サーバ装置が接続された有線区間（上流側）でパケットを収集することが考えられる。サーバ装置と複数のクライアント端末との間で送受信されるパケットを、下流側よりも少ない収集ポイントで効率的に収集できるからである。
【０００８】
この場合、収集されるパケットは、通信経路に無線区間を含む通信のパケットのみとは限らない。例えば、サーバ装置が不特定多数のクライアント端末にサービスを提供していると、収集されるパケットには、サーバ装置とクライアント端末との間の通信経路に無線区間を含まない通信のパケットも混在し得る。このため、収集したパケットから無線区間を含む通信のパケットを選り分ける方法が問題となる。
【０００９】
１つの側面では、本発明は、無線区間を含む通信のパケットを特定できるパケット解析プログラム、パケット解析装置およびパケット解析方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの態様では、パケット解析プログラムが提供される。このパケット解析プログラムは、無線区間と有線区間とを含む通信のパケットを有線区間で収集してコネクション毎に分類し、コネクション開始時に、有線区間に接続された情報処理装置が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、情報処理装置が送信したパケットの当該期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間を含む通信のパケットと判定する、処理をコンピュータに実行させる。
【００１１】
また、１つの態様では、パケット解析装置が提供される。このパケット解析装置は、記憶部と演算部とを有する。記憶部は、有線区間で収集された複数のパケットを記憶する。演算部は、複数のパケットをコネクション毎に分類し、コネクション開始時に、有線区間に接続された情報処理装置が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、情報処理装置が送信したパケットの当該期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間を含む通信のパケットと判定する。
【００１２】
また、１つの態様では、パケット解析方法が提供される。このパケット解析方法では、コンピュータが、無線区間と有線区間とを含む通信のパケットを有線区間で収集してコネクション毎に分類し、コネクション開始時に、有線区間に接続された情報処理装置が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、情報処理装置が送信したパケットの当該期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間を含む通信のパケットと判定する。
【発明の効果】
【００１３】
１つの側面では、無線区間を含む通信のパケットを特定できる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態の情報処理システムを示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】解析装置のハードウェア例を示す図である。
【図４】解析装置の機能例を示す図である。
【図５】回線種別毎のパケットの送信例を示す図である。
【図６】通常ＬＡＮの場合のパケットテーブルの例を示す図である。
【図７】通常ＬＡＮの場合のＲＴＴの計測結果の例を示す図である。
【図８】ＨＳＤＰＡの場合のパケットテーブルの例を示す図である。
【図９】ＨＳＤＰＡの場合のＲＴＴの計測結果の例を示す図である。
【図１０】狭帯域ＬＡＮの場合のパケットテーブルの例を示す図である。
【図１１】狭帯域ＬＡＮの場合のＲＴＴの計測結果の例を示す図である。
【図１２】シェーピングＬＡＮの場合のパケットテーブルの例を示す図である。
【図１３】シェーピングＬＡＮの場合のＲＴＴの計測結果の例を示す図である。
【図１４】パケットを分類する処理の例を示すフローチャートである。
【図１５】回線種別判定処理の例を示すフローチャートである。
【図１６】無線回線種別の判定方法の例を示す図である。
【図１７】無線区間がＨＳＤＰＡの場合の再送による遅延時間の例を示す図である。
【図１８】無線区間を含まない通信に遅延時間の計算を適用した例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理システムを示す図である。第１の実施の形態の情報処理システムは、パケット解析装置１、情報処理装置２、無線端末装置３および端末装置４を含む。パケット解析装置１は、情報処理装置２が送受信するパケットを収集し、解析する。情報処理装置２は、無線端末装置３や端末装置４に所定のサービスを提供する装置（例えば、サーバコンピュータ）である。無線端末装置３および端末装置４は、ユーザによって利用される端末装置（例えば、クライアントコンピュータ、携帯電話機、タブレット端末など）である。装置間の通信には、ＴＣＰ／ＩＰが用いられる。
【００１６】
パケット解析装置１および情報処理装置２は、有線ネットワーク５に有線で接続されている。有線ネットワーク５は無線区間を含まないネットワークである。有線ネットワーク５には、無線通信のアクセスポイント６（例えば、無線基地局でもよい）が接続されている。無線端末装置３は、アクセスポイント６および有線ネットワーク５を介して情報処理装置２と通信する。無線区間８は、無線端末装置３とアクセスポイント６との間の無線通信が行われる区間である。
【００１７】
有線ネットワーク５は、有線ネットワーク７に接続されている。有線ネットワーク７は無線区間を含まないネットワークである。端末装置４は、有線ネットワーク７に有線で接続されている。端末装置４は、有線ネットワーク７，５を介して情報処理装置２と通信する。
【００１８】
有線区間９は、情報処理装置２と端末装置４との間の通信経路のうち有線ネットワーク５，７に属する区間である。有線区間９は、何れの無線区間も含まない。有線区間９ａは、情報処理装置２と端末装置４との間の通信経路のうち、有線ネットワーク５に属する区間である。情報処理装置２とアクセスポイント６との間の区間も有線区間（有線区間９ａを含む）である。
【００１９】
パケット解析装置１は、有線区間９ａに接続されている。パケット解析装置１は、有線区間９ａを介して送受信されるパケットを収集する。例えば、有線区間９ａとパケット解析装置１とを接続するタップやスイッチなどが複製したパケットをパケット解析装置１で受信して収集することが考えられる。収集される各パケットには、収集された時間の情報が付加される。また、収集されるパケットには、情報処理装置２と無線端末装置３との間の通信（無線区間８を含む通信）のパケットおよび情報処理装置２と端末装置４との間の通信（無線区間８を含まない通信）のパケットが混在することになる。
【００２０】
パケット解析装置１は、記憶部１ａと演算部１ｂを有する。記憶部１ａは、ＲＡＭ（Random Access Memory）などの揮発性記憶装置でもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置でもよい。記憶部１ａは、収集されたパケットを記憶する。
【００２１】
演算部１ｂは、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。演算部１ｂはプログラムを実行するプロセッサであってもよい。「プロセッサ」には、複数のプロセッサの集合（マルチプロセッサ）も含まれ得る。
【００２２】
演算部１ｂは、収集された複数のパケットをコネクション毎に分類する。例えば、演算部１ｂは、パケットのＩＰヘッダに含まれる送信元ＩＰアドレスおよび宛先ＩＰアドレスとの組み合わせ、および、ＴＣＰヘッダの送信元ポート番号および宛先ポート番号との組み合わせに基づいて、パケットのコネクション毎の分類を行える。すなわち、演算部１ｂは、送信元／宛先ＩＰアドレス（送信元／宛先を入れ替えたものも含む）が共通するパケットのうち、送信元／宛先ポート番号（送信元／宛先を入れ替えたものも含む）が共通するパケット同士を同一のコネクションに分類する。演算部１ｂは、コネクション毎に分類された各パケットの情報および各パケットを収集した時間に基づいて次の分析を行う。
【００２３】
演算部１ｂは、コネクション開始時に情報処理装置２が送信したパケットのうち確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があるか否かをコネクション毎に判定する。確認応答のパケットをＡＣＫ（ACKnowledgement）パケットまたは単にＡＣＫなどと称することがある。また、情報処理装置２が送信したパケットのうち確認応答のパケットが未到着であるパケットのデータ量の合計を、バイツインフライト（bytes in flight）と称することがある。すなわち、演算部１ｂは、コネクション開始時にバイツインフライトが増加している期間（バイツインフライト増加期間）があるか否かをコネクション毎に判定する。バイツインフライト増加期間があるということは、該当のコネクションに関して通信遅延が発生していることを示す。
【００２４】
演算部１ｂは、バイツインフライト増加期間があるコネクションについて、情報処理装置２が送信したパケットの当該バイツインフライト増加期間におけるラウンドトリップ時間（ＲＴＴ：Round Trip Time）が単調増加しているか否かを判定する。ＲＴＴは、情報処理装置２により所定のデータパケットが送信されてから、データパケットに対する確認応答パケットが情報処理装置２に到着するまでの時間である。例えば、ＲＴＴは、パケット解析装置１において、情報処理装置２が送信したデータパケットを収集した時点と、当該データパケットに対応するＡＣＫを収集した時点との間の時間間隔として計測し得る。そして、演算部１ｂは、バイツインフライト増加期間において、ＲＴＴが単調増加していないコネクションに対応するパケットを、無線区間８を含む通信のパケットと判定する。
【００２５】
図１には、あるコネクションのパケットの分析結果を示すグラフも例示されている。系列Ｘは、時間とバイツインフライトとの関係を示す。系列Ｙは、時間とＲＴＴとの関係を示す。系列Ｘに着目すると、コネクション開始時の期間Ｒにおいて、バイツインフライトは増加している。よって、期間Ｒはバイツインフライト増加期間である。また、系列Ｙに着目すると、期間Ｒにおいて、ＲＴＴは単調増加していない。このため、演算部１ｂは、このグラフに対応するコネクションのパケットを、無線区間８を含む通信のパケットと判定する。
【００２６】
パケット解析装置１によれば、有線区間９ａを含み無線区間８を含む通信のパケットと、有線区間９ａを含み無線区間８を含まない通信のパケットとが混在しており有線区間９ａで収集された複数のパケットが、コネクション毎に分類される。コネクション開始時に、バイツインフライト増加期間Ｒがあり、かつ、情報処理装置２が送信したパケットの当該期間ＲにおけるＲＴＴが単調増加していないコネクションに対応するパケットが、無線区間８を含む通信のパケットと判定される。これにより、無線区間８を含む通信のパケットを特定できる。
【００２７】
ここで、情報処理装置２と無線端末装置３との間で通信遅延がある場合に、無線区間８に起因するものであるかを特定したいことがある。無線区間８の通信品質の改善に役立てることができるからである。通信遅延が無線区間８に起因するかを特定する方法として、例えば、バイツインフライト増加期間があるコネクションについて、無線区間８の通信規格に応じた所定周期のパケット再送が発生しているかを調べることが考えられる。
【００２８】
ところが、情報処理装置２は、不特定多数の端末装置と通信し得る。そのため、パケットを有線区間９ａで収集すると、情報処理装置２の通信に関するパケットを効率的に収集できる半面、無線区間８を含まない通信のパケットも混在して収集されることになる。第１の実施の形態の例では、無線区間８を経由する情報処理装置２と無線端末装置３との通信のパケットおよび有線区間９を経由する情報処理装置２と端末装置４との通信のパケットの両方が収集されることになる。
【００２９】
この場合、通信規格の再送制御の特徴に着目し、パケットの再送の周期性のみを利用して無線区間８に起因する通信遅延を検出しようとすると、無線区間８を含む通信のパケットを、無線区間８を含まない通信のパケットと誤判定するおそれがある。有線ネットワーク５，７でも、データ転送を行う中継装置などの転送制御（例えば、シェーピングなど）に応じた遅延が、無線区間８の再送による遅延と近似することがあるからである。
【００３０】
そこで、パケット解析装置１は、バイツインフライト増加期間において、ＲＴＴが単調増加していないコネクションに対応するパケットを、無線区間８を含む通信のパケットと判定する。これにより、パケット解析装置１は、有線区間９ａで収集されたパケットの中から、無線区間８を含む通信のパケットを選り分ける。
【００３１】
ＲＴＴに関する上記判定は無線区間８および有線区間における通信処理の特徴に基づいている。通信遅延が、主に無線区間８での通信処理に起因するとき、無線区間８で電波干渉などの影響によりパケット・ロスが発生している可能性が高い。パケット・ロスが発生すると、アクセスポイント６はロスしたパケットを一定周期で再送する。アクセスポイント６は、再送時にパケット・ロスが発生すると、再送を繰り返す。無線端末装置３は、パケットを受信すると、情報処理装置２を宛先としたＡＣＫを送信する。
【００３２】
この場合、情報処理装置２から無線端末装置３へ順次送信されたパケットは、アクセスポイント６による再送なしで無線端末装置３に到着したり、アクセスポイント６により１回以上再送された後に無線端末装置３に到着したりする。無線区間８は有線区間に比べて伝送路の安定性が低い。このため、無線区間８における再送有無や再送回数はランダムに変動し得る。すなわち、無線端末装置３に各パケットが到着するまでの時間もランダムに変動し得る。すると、無線端末装置３によるＡＣＫ返信のタイミングも比較的速かったり、遅かったりと様々であり、ＲＴＴがランダムに変動することになる。
【００３３】
一方、無線区間８を含まない通信（例えば、有線区間９の通信）の場合は、バイツインフライトの増加に伴ってＲＴＴは単調増加する傾向にある。有線区間では、無線区間と比べて伝送路におけるランダムな要因の影響を受ける可能性が低く、データ転送を行う中継装置でのシェーピングやシリアル化などのルータによる制御が主な遅延要因と考えられるからである。すなわち、中継装置でパケットが長く滞留するほど、宛先装置にパケットが到着するまでの時間が長引いて、宛先装置によるＡＣＫ返信も遅れる。その結果、ＲＴＴは単調に増加することになる。
【００３４】
このような理由から、パケット解析装置１は、バイツインフライト増加期間において、ＲＴＴが単調増加していないコネクションを、無線区間８を含む通信に対応付けることができ、収集されたパケットの中から無線区間８を含む通信のパケットを適切に特定できる。
【００３５】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、解析装置１００、サーバ２００、携帯電話機３００およびＰＣ（Personal Computer）４００，５００を含む。サーバ２００は、携帯電話機３００およびＰＣ４００，５００とネットワーク１０を介して通信可能である。ネットワーク１０は、例えば、ＷＡＮ（Wide Area Network）やインターネットなどの広域ネットワークである。
【００３６】
ネットワーク１０は、ネットワーク２０と接続されている。サーバ２００は、ネットワーク２０に接続されている。ネットワーク２０には、タップ２１が設けられている。タップ２１は、解析装置１００と接続されている。タップ２１は、パケットを中継するとともに中継するパケットを複製して解析装置１００に送信する。タップ２１に代えて、所定のセットのポートを通過するパケットを複製して他のポート（解析装置１００が接続されたポート）からも出力する機能（ポートミラーリング機能と称することがある）を備えたスイッチなどを用いることもできる。
【００３７】
ネットワーク１０は、基地局３０およびルータ４０，５０と接続されている。基地局３０は、サーバ２００と携帯電話機３００との間の通信を中継する。基地局３０と携帯電話機３００との間の通信には、ＨＳＤＰＡ（High-Speed Downlink Packet Access）やＬＴＥ（Long Term Evolution）などが用いられる。ルータ４０は、サーバ２００とＰＣ４００との間の通信を中継する。ルータ５０は、サーバ２００とＰＣ５００との間の通信を中継する。基地局３０と携帯電話機３００との間は無線区間である。それ以外の装置間の区間はイーサネット（登録商標）による有線区間である。第２の実施の形態の情報処理システムのうち、サーバ２００により近い側を上流側、携帯電話機３００やＰＣ４００，５００により近い側を下流側と称することがある。
【００３８】
解析装置１００は、タップ２１から受信したパケットを記憶し、解析するコンピュータである。サーバ２００は、携帯電話機３００およびＰＣ４００，５００に所定のサービスを提供するサーバコンピュータである。携帯電話機３００は、ユーザによって利用される無線端末装置である。ＰＣ４００，５００はクライアントコンピュータであり、ユーザによって利用される端末装置である。
【００３９】
解析装置１００は、サーバ２００と携帯電話機３００との間で送受信されるパケットおよびサーバ２００とＰＣ４００，５００との間で送受信されるパケットを解析する。そして、解析装置１００は、各種端末装置が下流側の末端でどのような種別の回線を用いて通信を行っているかを特定する。回線の種別としては、無線か有線かが考えられる。また、無線でもＨＳＤＰＡかＬＴＥなのかというように更に細分化できる。また、有線でも下流側で比較的狭い帯域が用いられている（狭帯域ＬＡＮ（Local Area Network））、下流側へのデータ転送時にシェーピングが行われている（シェーピングＬＡＮ）というように更に細分化できる。
【００４０】
図３は、解析装置のハードウェア例を示す図である。解析装置１００は、プロセッサ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、読み取り装置１０６、通信インタフェース１０７を有する。各ユニットが解析装置１００のバスに接続されている。
【００４１】
プロセッサ１０１は、解析装置１００の全体を制御する。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。プロセッサ１０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００４２】
ＲＡＭ１０２は、解析装置１００の主記憶装置である。ＲＡＭ１０２は、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、プロセッサ１０１による処理に用いる各種データを記憶する。
【００４３】
ＨＤＤ１０３は、解析装置１００の補助記憶装置である。ＨＤＤ１０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。解析装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００４４】
画像信号処理部１０４は、プロセッサ１０１からの命令に従って、解析装置１００に接続されたディスプレイ１１に画像を出力する。ディスプレイ１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、有機ＥＬ（Electro-Luminescence）ディスプレイなど各種のディスプレイを用いることができる。
【００４５】
入力信号処理部１０５は、解析装置１００に接続された入力デバイス１２から入力信号を取得し、プロセッサ１０１に出力する。入力デバイス１２としては、マウスやタッチパネルなどのポインティングデバイスやキーボードなどの各種の入力デバイスを用いることができる。解析装置１００には、複数の種類の入力デバイスが接続されてもよい。
【００４６】
読み取り装置１０６は、記録媒体１３に記録されたプログラムやデータを読み取る装置である。記録媒体１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体１３として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置１０６は、例えば、プロセッサ１０１からの命令に従って、記録媒体１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００４７】
通信インタフェース１０７は、タップ２１に接続され、タップ２１からパケットを受信する。
図４は、解析装置の機能例を示す図である。解析装置１００は、記憶部１１０、分類部１２０および解析部１３０を有する。記憶部１１０は、ＲＡＭ１０２やＨＤＤ１０３に確保された記憶領域を用いて実現できる。分類部１２０および解析部１３０は、プロセッサ１０１によって実行されるプログラムのモジュールであってもよい。
【００４８】
記憶部１１０は、分類部１２０によって収集されたパケットを記憶する。なお、パケットを収集することを指して、「パケットキャプチャ」ということがある。
分類部１２０は、タップ２１により出力されたパケットを受信する。第２の実施の形態では、特にサーバ２００により送信されたデータパケットと、データパケットに応じたサーバ２００へのＡＣＫパケットとに着目する。
【００４９】
分類部１２０は、複数のパケットをコネクション毎に分類する。具体的には、パケットのＩＰヘッダの送信元／宛先ＩＰアドレスの組（送信元／宛先の入れ替えたものも含む）が同じで、かつ、ＴＣＰヘッダの送信元／宛先ポートの組（送信元／宛先を入れ替えたものも含む）が同じであるパケットを同一コネクションとする。分類部１２０は、分類したパケットに受信時刻の情報を付加して記憶部１１０に格納する。受信時刻として、解析装置１００のＯＳが管理する時刻を付加してもよい。
【００５０】
解析部１３０は、各コネクションのコネクション開始時におけるパケットの情報に基づいて、各種端末装置が下流側の末端において、どのような回線種別により通信を行っているかを解析する。
【００５１】
なお、以下の説明では、サーバ２００が送信した１つのデータパケットに対して、端末装置により１つのＡＣＫパケットが送信される場合を想定するが、複数のデータパケットに対して１つのＡＣＫパケットが送信されてもよい。複数のデータパケットに対して１つのＡＣＫパケットが送信される場合にも、例えば複数のデータパケットの何個目のデータパケットに着目するかを決定しさえすれば、解析装置１００の機能を適用できる。
【００５２】
図５は、回線種別毎のパケットの送信例を示す図である。図５の例では、基地局３０およびルータ４０，５０が接続される上流側の有線ネットワークの帯域を１００Ｍｂｐｓ（Mega bits per second）とする。図５の「サーバ側」と記している方を上流側（サーバ２００側）、図５の「端末側」と記している方を下流側（携帯電話機３００やＰＣ４００，５００の側）とする。また、１パケットのサイズを１５００バイトとする。更に、図５では、サーバ２００により送信されたパケットに対し、送信された順番に番号“１”、“２”、“３”、“４”、“５”、“６”を付している。
【００５３】
図５（Ａ）は、基地局３０よりも下流側でのパケットの流れの例（ＨＳＤＰＡの場合）を示している。図５（Ａ）では、基地局３０に到着したパケットと基地局３０により送出されたパケットとの両方を図示しているが、同じ番号のパケット同士が対応している。すなわち、基地局３０は、番号“１”のパケットをサーバ側から受信した後に、受信した同パケット（端末側に送出された番号“１”のパケットとして図示）に送出することになる（図５（Ｂ）（Ｃ）も同様）。
【００５４】
図５（Ａ）の例では、無線回線が混雑している影響で、パケット送信に利用可能な帯域が２Ｍｂｐｓと狭まっている。基地局３０は、当該帯域を用いて携帯電話機３００へパケットを送信する。上流側よりも狭い帯域で下流側へ送出するので、１パケットのシリアライズに要する時間（シリアル化遅延）が上流側に比べて長引く。シリアル化遅延は、例えば、６．２５ミリ秒（ｍｓ）である。
【００５５】
基地局３０は、端末側へ送出したパケットのパケット・ロスが発生すると、ロスしたパケットを再送する。例えば、４つ目のパケット（番号“４”のパケット。以下、同様）でパケット・ロスが発生する。すると、基地局３０は、ＨＳＤＰＡで規定された１０ミリ秒後に４つ目のパケットを再送する。同様に、例えば、６つ目のパケットでパケット・ロスが発生する。すると、基地局３０は、１０ミリ秒後に６つ目のパケットを再送する。そのときに再びパケット・ロスが発生すれば、更に１０ミリ秒後に６つ目のパケットを再送する。なお、１つ目、２つ目、３つ目、５つ目のパケットに関しては、再送なしで携帯電話機３００により受信される。
【００５６】
図５（Ｂ）は、ルータ４０よりも下流側でのパケットの流れの例（狭帯域ＬＡＮの場合）を示している。ルータ４０よりも下流側の帯域は２Ｍｂｐｓである（上流側よりも狭い帯域となっている）。この場合、シリアル化遅延によりルータ４０でパケットが滞留する。１パケットのシリアル化遅延は、例えば６．２５ミリ秒である。
【００５７】
図５（Ｃ）は、ルータ５０よりも下流側でのパケットの流れの例（シェーピングＬＡＮの場合）を示している。ルータ５０より下流側の帯域は１００Ｍｂｐｓである（上流側より下流側が狭いこともあるがその場合も同様である）。この場合、シリアル化遅延は１２０マイクロ秒（μ秒）である。ルータ５０はシェーピングを行う。
【００５８】
シェーピングとは、ルータ５０などの中継装置による帯域制御の技術である。シェーピングには、トークンバケットのアルゴリズムが用いられる。例えば、１０ミリ秒毎に２５００バイトのトークン（送出許容量といってもよい）がコネクション（あるいは、ルータ５０内で管理される所定のフロー単位）に追加される。例えば、ルータ５０は次のようにＰＣ５００へパケットを送出する。
【００５９】
ルータ５０は、パケット番号“１”〜“６”のパケットをサーバ２００から受信している。ルータ５０は、ＰＣ５００へのデータ送信に対して２５００バイトのトークンを割り当てる。１パケットのサイズは１５００バイトである。１つ分のパケットは、現在割り当てられている送出許容量２５００バイト以下なので、ルータ５０は、１つの目のパケットを送信する。残りの送出許容量は１０００バイトである。１０００バイトは、１つ分のパケットのサイズ１５００バイトよりも小さい。よって、ルータ５０は、２つ目のパケットの送出を次回以降のトークン割り当てまで待機する。
【００６０】
その後、ルータ５０は、ＰＣ５００へのデータ送信に対して、２５００バイトのトークンを割り当てる。送出許容量は、前回残り分とあわせて３５００バイトである。よって、ルータ５０は、２つ目のパケットと３つ目のパケットとを送出する。残りの送出許容量は５００バイトとなる。以降、ルータ５０は、ＰＣ５００へのデータ送信に対して２５００バイトのトークンが割り当てられる毎に、未送信パケットをＰＣ５００に順次送信する。
【００６１】
図５（Ａ）に示したように、基地局３０と携帯電話機３００との間の無線区間では、パケット・ロスに伴う再送が発生したり、発生しなかったり、複数回発生したりと、その時々の無線環境などに応じてランダムに変化し得る。このため、サーバ２００が送信したデータパケットが携帯電話機３００に到着するまでの時間は、パケット毎にランダムに変動する可能性がある。これは、バイツインフライトが増加しても、ＲＴＴがランダムに変動し得る（バイツインフライトの増加とＲＴＴの変動との相関が弱い、あるいは、相関がない）ことを示唆する。
【００６２】
一方、図５（Ｂ），（Ｃ）に示したように、有線区間では、シリアル化やシェーピングなどのルータの制御による遅延が主である。このため、ルータ４０，５０でパケットが滞留するほど、サーバ２００により送信されたパケットがＰＣ４００，５００に到着するまでの時間が長引くことになる。これは、バイツインフライトの増加に伴って、ＲＴＴが単調に増加する（バイツインフライトの増加とＲＴＴの増加とに比較的強い相関がある）ことを示唆する。
【００６３】
次に、解析装置１００によって収集されるパケットの情報を例示する。まず、ユーザが利用する端末装置が通常ＬＡＮに接続されている場合を示す。ここで、通常ＬＡＮとは、端末装置とサーバ２００とが無線区間を含まない通信経路で通信しており、当該通信経路の間で、帯域が狭まったり、シェーピングが行われたりしていないＬＡＮを示す。また、以下では、収集したパケットをコネクション毎に分類したものを例示する。
【００６４】
図６は、通常ＬＡＮの場合のパケットテーブルの例を示す図である。パケットテーブル１１１は、記憶部１１０に格納される。パケットテーブル１１１は、Ｎｏ．、ＴＩＭＥ、ＳＡ（Source Address）、ＳＰ（Source Port）、ＤＡ（Destination Address）、ＤＰ（Destination Port）、Ｐｒｏｔｏｃｏｌ、ＴＣＰ  ＬＥＮ（lengthの略）、ＩＰ  ＬＥＮ、ｓｅｑ（sequenceの略）、ｎｅｘｔ  ｓｅｑ、ＡＣＫ、ＲＴＴおよびｂｙｔｅｓ  ｉｎ  ｆｌｉｇｈｔの項目を含む。
【００６５】
Ｎｏ．の項目には、レコードを識別するための番号が登録される。ＴＩＭＥの項目には、解析装置１００がパケットを受信した時刻が登録される。ＳＡの項目には、送信元のＩＰアドレスが登録される。ＳＰの項目には、送信元のポート番号が登録される。ＤＡの項目には、宛先のＩＰアドレスが登録される。ＤＰの項目には、宛先のポート番号が登録される。
【００６６】
Ｐｒｏｔｏｃｏｌの項目には、プロトコルの名称が登録される。ＴＣＰ  ＬＥＮの項目には、ＴＣＰヘッダとＴＣＰペイロードとを合わせたデータ長（ＴＣＰセグメント長）が登録される（単位はバイト）。ＩＰ  ＬＥＮの項目には、ＩＰヘッダとＩＰペイロードとを合わせたデータ長（ＩＰパケット長）が登録される（単位はバイト）。
【００６７】
ｓｅｑの項目には、シーケンス番号が登録される。シーケンス番号は、パケットに付与される通し番号である。ｎｅｘｔ  ｓｅｑの項目には、次のパケットのシーケンス番号が登録される。ｎｅｘｔ  ｓｅｑに設定される値は、ＴＣＰ  ＬＥＮの値とｓｅｑの値との和である。
【００６８】
ＡＣＫの項目には、ＡＣＫ番号が登録される。ＡＣＫ番号は、相手の装置に次に送ってほしいデータの先頭のバイト位置を表す。ＡＣＫ番号は、ＡＣＫ番号の１つ前までのデータを受信済みであることを意味している。データパケットとＡＣＫパケットとの対応関係は、データパケットに含まれるｎｅｘｔ  ｓｅｑの値と、ＡＣＫパケットに含まれるＡＣＫ番号とによって判断できる。あるデータパケットに対してＡＣＫパケットが送信されるとき、データパケットのｎｅｘｔ  ｓｅｑの値とＡＣＫパケットのＡＣＫ番号とは一致する。
【００６９】
ＲＴＴの項目には、ＲＴＴの値が登録される（単位は秒）。ＲＴＴはＡＣＫパケットの受信時に算出される。ｂｙｔｅｓ  ｉｎ  ｆｌｉｇｈｔの項目には、該当の時点におけるバイツインフライトの値が登録される（単位はバイト）。バイツインフライトはデータパケットの受信時に算出される。
【００７０】
例えば、パケットテーブル１１１には、Ｎｏ．が“１”、ＴＩＭＥが“１５：５２：０５．４８６５９３”、ＳＡが“ＩＰ１”、ＳＰが“４０９５２”、ＤＡが“ＩＰ２”、ＤＰが“６０４０１”、Ｐｒｏｔｏｃｏｌが“ＴＣＰ”、ＴＣＰ  ＬＥＮが“１４４８”、ＩＰ  ＬＥＮが“１５００”、ｓｅｑが“１４８７２５０８３”、ｎｅｘｔ  ｓｅｑが“１４８７６５３１”、ＡＣＫが“１６３３６７３３９３”、ＲＴＴが“−”（設定なし）、ｂｙｔｅｓ  ｉｎ  ｆｌｉｇｈｔが“２８９６”という情報が登録される。
【００７１】
これは、１５時５２分０５．４８６５９３秒に収集されたデータパケットに関する情報を示している。ここで、ＩＰアドレス“ＩＰ１”はサーバ２００のＩＰアドレスである。このパケットは、サーバ２００が送信したパケットなので、ＲＴＴは設定なしとなる。また、この時点でのバイツインフライトが２８９６バイトであることを示している。
【００７２】
また、パケットテーブル１１１には、Ｎｏ．が“２”、ＴＩＭＥが“１５：５２：０５．４８６６３１”、ＳＡが“ＩＰ２”、ＳＰが“６０４０１”、ＤＡが“ＩＰ１”、ＤＰが“４０９５２”、Ｐｒｏｔｏｃｏｌが“ＴＣＰ”、ＴＣＰ  ＬＥＮが“０”、ＩＰ  ＬＥＮが“５２”、ｓｅｑが“１６３３６７３３９３”、ｎｅｘｔ  ｓｅｑが“−”、ＡＣＫが“１４８７６５３１”、ＲＴＴが“０．００００３８”、ｂｙｔｅｓ  ｉｎ  ｆｌｉｇｈｔが“−”という情報が登録される。
【００７３】
これは、１５時５２分０５．４８６６３１秒に収集されたＡＣＫパケットに関する情報を示している。このＡＣＫパケットは、サーバ２００と通信する端末装置側が送信したパケットであり、上記Ｎｏ．“１”のデータパケットに対応するものである。ＡＣＫ番号“１４８７６５３１”は、Ｎｏ．“１”のデータパケットのｎｅｘｔ  ｓｅｑ“１４８７２６５８１”と一致している。このときのＲＴＴはＮｏ．“１”，“２”のレコードにおけるＴＩＭＥの差として算出でき、ＲＴＴ＝０．００００３８秒である。
【００７４】
図７は、通常ＬＡＮの場合のＲＴＴの計測結果の例を示す図である。図７のグラフの横軸は、シーケンス番号であり時間に対応している。シーケンス番号が大きい程、未来の時間を示し、シーケンス番号が小さい程、過去の時間を示すことになる。縦軸は、ＲＴＴおよびバイツインフライトである。
【００７５】
図７（Ａ）は、ある時間幅における計測結果を示しており、図７（Ｂ）は、そのうちの一部の期間における計測結果を示している。これらのグラフを参照すると、バイツインフライトおよびＲＴＴの何れの系列も、ほとんど増減がない。この結果は、通常ＬＡＮの場合、シェーピングやシリアル化などにより、ルータ上にパケットが滞留する可能性が少ないためであると考えられる。
【００７６】
図８は、ＨＳＤＰＡの場合のパケットテーブルの例を示す図である。パケットテーブル１１２は、記憶部１１０に格納される。パケットテーブル１１２の各項目は、パケットテーブル１１１と同様であるため、説明を省略する。
【００７７】
例えば、パケットテーブル１１２には、Ｎｏ．が“１”、ＴＩＭＥが“０４：１３：２０．６１１１４２”、ＳＡが“ＩＰ１”、ＳＰが“８０”、ＤＡが“ＩＰ３”、ＤＰが“６０６２８”、Ｐｒｏｔｏｃｏｌが“ＴＣＰ”、ＴＣＰ  ＬＥＮが“１４６０”、ＩＰ  ＬＥＮが“１５００”、ｓｅｑが“４６０８１８４９６”、ｎｅｘｔ  ｓｅｑが“４６０８１９９５６”、ＡＣＫが“２０９３４７５５４８”、ＲＴＴが“−”、ｂｙｔｅｓ  ｉｎ  ｆｌｉｇｈｔが“７３００”という情報が登録される。
【００７８】
サーバ２００が送信したＮｏ．“１”のデータパケットに対応するＡＣＫパケットは、Ｎｏ．“１５”のレコードで示されるＡＣＫパケットである。Ｎｏ．“１５”で示されるＡＣＫパケットのＡＣＫ番号“４６８１９９５６”は、Ｎｏ．“１”のデータパケットのｎｅｘｔ  ｓｅｑの値と一致するからである。これらのパケットを用いて計測されたＲＴＴは、０．１４０５９８秒である。
【００７９】
図９は、ＨＳＤＰＡの場合のＲＴＴの計測結果の例を示す図である。図９のグラフの各軸が示す意味は図７と同様である。図９（Ａ）は、ある時間幅における計測結果である。系列Ａ１は、バイツインフライトを示す。系列Ｂ１は、ＲＴＴを示す。図９（Ｂ）は、系列Ａ１，Ｂ１の一部を示している。これらのグラフを参照すると、バイツインフライト増加期間Ｒ１において、ＲＴＴがランダムに変動していることが分かる。
【００８０】
図１０は、狭帯域ＬＡＮの場合のパケットテーブルの例を示す図である。パケットテーブル１１３は、記憶部１１０に格納される。パケットテーブル１１３の項目は、パケットテーブル１１１と同様であるため、説明を省略する。
【００８１】
例えば、パケットテーブル１１３には、Ｎｏ．が“１”、ＴＩＭＥが“１５：５３：１６．１３２６０８”、ＳＡが“ＩＰ１”、ＳＰが“２７５２５”、ＤＡが“ＩＰ４”、ＤＰが“４５３９０”、Ｐｒｏｔｏｃｏｌが“ＴＣＰ”、ＴＣＰ  ＬＥＮが“１４４８”、ＩＰ  ＬＥＮが“１５００”、ｓｅｑが“２４９２６９３０４５”、ｎｅｘｔ  ｓｅｑが“２４９２６９４４９３”、ＡＣＫが“１８８６４１６６３９”、ＲＴＴが“−”、ｂｙｔｅｓ  ｉｎ  ｆｌｉｇｈｔが“１４４８”という情報が登録される。
【００８２】
サーバ２００が送信したＮｏ．“１”のデータパケットに対応するＡＣＫパケットは、Ｎｏ．“９”のレコードで示されるＡＣＫパケットである。Ｎｏ．“９”のＡＣＫパケットのＡＣＫ番号“２４９２６９４４９３”は、Ｎｏ．“１”のデータパケットのｎｅｘｔ  ｓｅｑの値と一致するからである。これらのパケットを用いて計測されたＲＴＴは、０．０００８３０秒である。
【００８３】
図１１は、狭帯域ＬＡＮの場合のＲＴＴの計測結果の例を示す図である。図１１のグラフの各軸が示す意味は図７と同様である。図１１（Ａ）は、ある時間幅における計測結果である。系列Ａ２は、バイツインフライトを示す。系列Ｂ２は、ＲＴＴを示す。図１１（Ｂ）は、系列Ａ２，Ｂ２の一部を示している。これらのグラフを参照すると、バイツインフライト増加期間Ｒ２において、ＲＴＴが単調増加していることが分かる。ＲＴＴの単調増加は、シリアル化に伴う遅延を反映したものと考えることができる。
【００８４】
図１２は、シェーピングＬＡＮの場合のパケットテーブルの例を示す図である。パケットテーブル１１４は、記憶部１１０に格納される。パケットテーブル１１４の項目は、パケットテーブル１１１と同じであるため、説明を省略する。
【００８５】
例えば、パケットテーブル１１４には、Ｎｏ．が“１”、ＴＩＭＥが“１４：３０：３５．２３６６３６”、ＳＡが“ＩＰ１”、ＳＰが“８０”、ＤＡが“ＩＰ５”、ＤＰが“５３６２５”、Ｐｒｏｔｏｃｏｌが“ＨＴＴＰ”、ＴＣＰ  ＬＥＮが“１４６０”、ＩＰ  ＬＥＮが“１５００”、ｓｅｑが“６６４７２９２３５”、ｎｅｘｔ  ｓｅｑが“６６４７３０６９５”、ＡＣＫが“１５５５７７４０２２”、ＲＴＴが“−”、ｂｙｔｅｓ  ｉｎ  ｆｌｉｇｈｔが“２９２０”という情報が登録される。
【００８６】
サーバ２００が送信したＮｏ．“１”のデータパケットに対応するＡＣＫパケットは、Ｎｏ．“３９”のレコードで示されるＡＣＫパケットである。Ｎｏ．“３９”のＡＣＫパケットのＡＣＫ番号“６６４７３０６９５”は、Ｎｏ．“１”のデータパケットのｎｅｘｔ  ｓｅｑの値と一致するからである。これらのパケットを用いて計測されたＲＴＴは、０．００５７９９秒である。
【００８７】
図１３は、シェーピングＬＡＮの場合のＲＴＴの計測結果の例を示す図である。図１３のグラフの各軸が示す意味は図７と同様である。図１３（Ａ）は、ある時間幅における計測結果である。系列Ａ３は、バイツインフライトを示す。系列Ｂ２は、ＲＴＴを示す。図１３（Ｂ）は、系列Ａ３，Ｂ３の一部を示している。これらのグラフを参照すると、期間Ｒ３において、バイツインフライト増加期間が複数存在していることが分かる。また、各バイツインフライト増加期間において、ＲＴＴが単調増加していることが分かる。例えば、図１３（Ｂ）では、バイツインフライト増加期間Ｒ３１，Ｒ３２が例示されている。バイツインフライト増加期間Ｒ３１，Ｒ３２のそれぞれにおいて、ＲＴＴは単調増加している。
【００８８】
なお、期間Ｒ３の前半であるバイツインフライト増加期間Ｒ３１は、シリアル化による遅延を表していると考えられる。一方、期間Ｒ３の後半であるバイツインフライト増加期間Ｒ３２は、シェーピングによる遅延を表していると考えられる。ルータにおいて、まずはシリアル化による遅延が発生し、その後シェーピングによる遅延が発生すると考えられるからである。また、図５で示したように、一般に、シリアル化の所要時間よりもシェーピングによるトークン割り当て間隔の方が長いと考えられ、シリアル化による遅延に比べてシェーピングによる遅延の方がＲＴＴの増加分が大きくなると考えられる。バイツインフライト増加期間Ｒ３１，Ｒ３２では、単位時間当たりのＲＴＴの増加分はバイツインフライト増加期間Ｒ３２の方が大きい。このような理由からも、バイツインフライト増加期間Ｒ３１はシリアル化による遅延を表し、バイツインフライト増加期間Ｒ３２はシェーピングによる遅延を表していると判断できる。
【００８９】
図１４は、パケットを分類する処理の例を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
（Ｓ１１）分類部１２０は、複製されたパケットをタップ２１から受信する。分類部１２０が受信するパケットには、サーバ２００により送信されたデータパケットとデータパケットに応じてサーバ２００に応答されるＡＣＫパケットとが含まれる。
【００９０】
（Ｓ１２）分類部１２０は、受信されたパケットのＩＰヘッダを参照して、上位プロトコルがＴＣＰであるか否かを判定する。ＩＰヘッダのプロトコルフィールドの設定値が“６”の場合はＴＣＰである。それ以外の場合は、ＴＣＰではない。ＴＣＰの場合、処理をステップＳ１３に進める。ＴＣＰでない場合、処理を終了する。
【００９１】
（Ｓ１３）分類部１２０は、受信したパケットのＩＰヘッダを参照し、パケットをコネクション毎に分類する。前述のように、分類部１２０は、宛先／送信元ＩＰアドレスの組および宛先／送信元ポートの組が同じであるパケット同士を同じコネクションとして分類する。分類部１２０は、コネクション毎に分類したパケットの情報をパケットテーブルに登録する。
【００９２】
（Ｓ１４）分類部１２０は、パケットの受信時刻を、当該パケットに対応づけてパケットテーブルに登録する。分類部１２０は、パケットの内容を示す情報もパケットテーブルに登録する。
【００９３】
（Ｓ１５）分類部１２０は、バイツインフライトまたはＲＴＴを計算し、ステップＳ１４で登録した受信時刻に対応付けてパケットテーブルに登録する。具体的には、分類部１２０は、サーバ２００を送信元とするパケットを受信したタイミングで、該当のコネクションにおいてＲＴＴ未受信であるパケットの合計を算出することで、バイツインフライトを求める。また、分類部１２０は、サーバ２００を宛先とするＡＣＫパケットを受信したタイミングで、ＡＣＫパケットの受信時刻とＡＣＫパケットに対応するデータパケットの受信時刻との時間間隔を求めることで、ＲＴＴを計算する。
【００９４】
このように、分類部１２０は、パケットを受信するたびに上記の手順を繰り返し行い、各パケットを受信したタイミングにおけるバイツインフライトやＲＴＴをパケットテーブルに記録していく。解析部１３０は、パケットテーブルに記録された情報に基づいて、ユーザ側の末端において各端末装置が何れの回線種別により通信しているかを判定する。
【００９５】
図１５は、回線種別判定処理の例を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。以下の手順は、コネクション毎に実行される。
（Ｓ２１）解析部１３０は、パケットテーブルを参照し、コネクション開始時にバイツインフライト増加期間があるか否かを判定する。バイツインフライト増加期間がない場合、処理をステップＳ２２に進める。バイツインフライト増加期間がある場合、処理をステップＳ２３に進める。
【００９６】
（Ｓ２２）解析部１３０は、着目しているコネクションにおいて端末装置が利用する通信回線を通常ＬＡＮと特定する。通常ＬＡＮは狭帯域ＬＡＮとは異なり、当該通信回線における帯域は、ネットワーク２０の帯域と同じかそれよりも広い帯域である。また、通常ＬＡＮではシェーピングも行われていないと推定できる。解析部１３０は、当該コネクションに対する特定結果を記憶部１１０に格納する。そして、処理を終了する。
【００９７】
（Ｓ２３）解析部１３０は、バイツインフライト増加期間でＲＴＴが単調増加しているか否かを判定する。バイツインフライト増加期間でＲＴＴが単調増加していない場合、処理をステップＳ２４に進める。バイツインフライト増加期間でＲＴＴが単調増加している場合、処理をステップＳ２６に進める。
【００９８】
（Ｓ２４）解析部１３０は、着目しているコネクションにおいて端末装置が利用する通信回線を無線通信と特定する。無線通信と特定できる理由は、図９で述べた通りである。
（Ｓ２５）解析部１３０は、無線回線の種別を判定する。例えば、基地局などがデータパケットを再送する周期は、通信規格に応じて一定の値に定められているのが一般的である。そこで、解析部１３０は、ＲＴＴの遅延時間が何れの規格の再送周期に合致しているかを検出することで、無線回線の種別を特定できる。詳細については後述する。解析部１３０は、当該コネクションに対する特定結果を記憶部１１０に格納する。そして、処理を終了する。
【００９９】
（Ｓ２６）解析部１３０は、バイツインフライト増加期間で異なる傾きでのＲＴＴの単調増加があるか否かを判定する。バイツインフライト増加期間で異なる傾きでのＲＴＴの単調増加がない場合、処理をステップＳ２７に進める。ここで、「異なる」とは、傾きの差が所定の閾値以上であることを意味すると考えてもよい。例えば、ＲＴＴの複数の傾きがある場合に、最初に表れた傾きａに対して、２ａ以上の傾きをもつＲＴＴの系列があるときに、「異なる」傾きであると判定することが考えられる。
【０１００】
（Ｓ２７）解析部１３０は、着目しているコネクションにおいて端末装置が利用する通信回線を狭帯域ＬＡＮと特定する。解析部１３０は、当該コネクションに対する特定結果を記憶部１１０に格納する。狭帯域ＬＡＮと特定できる理由は、図１１で述べた通りである。
【０１０１】
（Ｓ２８）解析部１３０は、着目しているコネクションにおいて端末装置が利用する通信回線をシェーピングＬＡＮと特定する。解析部１３０は、当該コネクションに対する特定結果を記憶部１１０に格納する。シェーピングＬＡＮと特定できる理由は、図１３で述べた通りである。
【０１０２】
このように、解析装置１００は、バイツインフライト増加期間においてＲＴＴが単調増加しているか否かにより、端末装置側のネットワーク末端で利用されている通信回線の種別を特定できる。なお、解析部１３０は、パケットテーブルに記録されていく情報をリアルタイムに解析してもよいし、所定のタイミング（パケットテーブルにある程度のレコードが蓄積されたタイミング）でパケットテーブルを参照し上記解析を行ってもよい。
【０１０３】
また、ステップＳ２６では、他の方法により狭帯域ＬＡＮとシェーピングＬＡＮとを区別することも考えられる。例えば、狭帯域ＬＡＮでは、パケットサイズに応じてシリアル化に伴う遅延時間が変化するため、パケットサイズに応じてＲＴＴも変化すると考えられる。一方、シェーピングＬＡＮでの主な遅延要因は、トークンの割り当て待ちであり、パケットサイズのＲＴＴへの影響は、狭帯域ＬＡＮに比べて小さいと考えられる。
【０１０４】
そこで、解析部１３０は、着目しているコネクションについて、異なるサイズのパケットがある場合に、ＲＴＴがパケットサイズに応じて変化しているとき、端末装置が狭帯域ＬＡＮを利用していると特定してもよい。一方、着目しているコネクションについて、異なるサイズのパケットがある場合に、ＲＴＴがパケットサイズに応じて変化していないとき、端末装置がシェーピングＬＡＮを利用していると特定してもよい。
【０１０５】
あるいは、ルータ５０などのシェーピングの情報が事前に分かっている場合（例えば、ある企業で導入しているルータのシェーピングにおけるトークン割り当て間隔が全て１０ミリ秒など）もある。ＲＴＴの増加量は、トークン割り当て間隔に依存していると考えられる。そこで、着目するコネクションについて当該トークン割り当て間隔に依存したＲＴＴの増加量が見出されるときは、当該コネクションでは、端末装置がシェーピングＬＡＮに接続されていると特定してもよい。次に、ステップＳ２５における無線通信の回線種別の判定方法を具体的に説明する。
【０１０６】
図１６は、無線回線種別の判定方法の例を示す図である。パケット通信は、サーバと携帯電話機３００との間で行われるものであるが、図１６のシーケンス図では、解析装置１００がパケットを収集する時刻が分かり易いよう、解析装置１００も図示している。
【０１０７】
例えば、次のような一連の通信が行われるとする。サーバ２００は、携帯電話機３００へデータパケットを送信する。解析装置１００は、データパケットを時刻ｔ１に受信する。携帯電話機３００は、基地局３０を介してデータパケットを受信する（ステップＳＴ１０１）。
【０１０８】
携帯電話機３００は、基地局３０を介してサーバ２００へＡＣＫパケットを送信する。解析装置１００は、ＡＣＫパケットを時刻ｔ２に受信する。サーバ２００は、ＡＣＫパケットを受信する（ステップＳＴ１０２）。
【０１０９】
サーバ２００は、携帯電話機３００へ次のデータパケットを送信する。解析装置１００は、データパケットを時刻ｔ３に受信する。基地局３０と携帯電話機３００との間の無線区間でパケット・ロスが発生する（ステップＳＴ１０３）。
【０１１０】
基地局３０は、ステップＳＴ１０３で送信できなかったデータパケットを、無線通信規格に応じた所定の周期で再送する。携帯電話機３００は、再送されたデータパケットを受信する（ステップＳＴ１０４）。
【０１１１】
携帯電話機３００は、基地局３０を介してサーバ２００へＡＣＫパケットを送信する。解析装置１００は、ＡＣＫパケットを時刻ｔ４に受信する。サーバ２００は、ＡＣＫパケットを受信する（ステップＳＴ１０５）。
【０１１２】
ここで、データ間隔Ｔｄ＝ｔ３−ｔ１、ＡＣＫ間隔Ｔａ＝ｔ４−ｔ２、遅延時間ΔＴ＝Ｔａ−Ｔｄとし、無線通信規格で定められている再送周期をＴｓとする。ここで、ＡＣＫ間隔Ｔａは、着目するＡＣＫパケット（ステップＳＴ１０５のＡＣＫパケット）の（解析装置１００における）受信時刻と、それよりも１つ前のＡＣＫパケット（ステップＳＴ１０２のＡＣＫパケット）の受信時刻との時間差を示す。データ間隔Ｔｄは、ＡＣＫ間隔を算出した２つのＡＣＫパケットに対応する２つのデータパケットの受信間隔を示す。すると、ステップＳ２５において、解析部１３０は、ΔＴ＞０となるＡＣＫパケットのペアおよびデータパケットのペアに対して次のような処理を行うことが考えられる。
【０１１３】
解析部１３０は、遅延時間ΔＴを、予め分かっている無線再送周期（例えば、ＨＳＤＰＡでは１０ミリ秒、ＬＴＥでは８ミリ秒など）と一致するか否かを判定する。例えば、１０ミリ秒×Ｎ±２ミリ秒（Ｎは１以上の整数）の範囲に入っていれば（１０Ｎ−２≦ΔＴ≦１０Ｎ＋２（ミリ秒）であれば）ＨＳＤＰＡの再送周期と一致しており、範囲に入っていなければＨＳＤＰＡの再送周期と一致していないと判定する。このように、所定の割合（例えば、２０％）の誤差を含めて、一致するか否かを判定してもよい。ＬＴＥなら、例えば、８Ｎ−１．６≦ΔＴ≦８Ｎ＋１．６（ミリ秒）であれば、ＬＴＥの無線再送周期と一致していると判定し、そうでなければＬＴＥの無線再送周期と一致していないと判定することになる。
【０１１４】
解析部１３０は、ΔＴと無線再送周期とを用いた判定を、コネクション毎に種々のＡＣＫパケットのペアおよびデータパケットのペアに対して行う。例えば、解析部１３０は、遅延時間ΔＴが再送周期１０ミリ秒と一致していると判定された割合が、当該コネクションについて行った判定のうちの所定割合（例えば、８０％）以上であれば、携帯電話機３００が利用している無線回線がＨＳＤＰＡであると判定する。ＬＴＥの場合も同様である。
【０１１５】
この判定の結果、ＨＳＤＰＡとＬＴＥとの両方に該当する可能性がある場合には、一致していると判定された割合がより大きな無線再送周期はどちらか（１０ミリ秒とした場合か８ミリ秒とした場合か）を特定する。そして、特定した無線再送周期に対応する無線回線種別を最終的な特定結果とすることも考えられる。このようにして、解析装置１００は、携帯電話機３００が利用している無線回線種別を特定できる。
【０１１６】
ところで、第２の実施の形態の情報処理システムのように、サーバ２００が接続された有線区間（上流側）でパケットを収集することが考えられる。サーバ２００と種々の端末装置との間で送受信されるパケットを、下流側よりも少ない収集ポイントで効率的に収集できるからである。
【０１１７】
この場合、収集されるパケットは、通信経路に無線区間を含む通信のパケットのみとは限らない。例えば、サーバ２００が不特定多数の端末装置にサービスを提供していると、収集されるパケットには、サーバ２００と端末装置との間の通信経路に無線区間を含まない通信のパケットも混在し得る。第２の実施の形態の例では、解析装置１００は、ＰＣ４００，５００とサーバ２００との通信のパケットも混在して収集することになる。
【０１１８】
不特定多数の端末装置がどのような回線を用いてサーバ２００と通信しているかを解析装置１００が事前に把握することは困難である。この場合、例えば、図１６で説明したように遅延時間ΔＴを用いて無線回線における再送の周期性に基づいて無線回線種別を判断することも考えられる。しかし、この方法だけでは無線区間を含まない通信のパケットも混在して解析される可能性がある。
【０１１９】
図１７は、無線区間がＨＳＤＰＡの場合の再送による遅延時間の例を示す図である。図１７（Ａ），（Ｂ）の何れも携帯電話機３００がＨＳＤＰＡを用いて基地局３０と通信する場合に遅延時間ΔＴを計算した結果である。測定したタイミングによって遅延時間ΔＴは異なるが、何れも再送周期のＮ倍に近似していることが分かる。
【０１２０】
図１８は、無線区間を含まない通信に遅延時間の計算を適用した例を示す図である。ここで、遅延時間ΔＴの計算方法は、図１６で説明した方法と同様の方法を用いている。図１８（Ａ），（Ｂ），（Ｃ），（Ｄ），（Ｅ），（Ｆ）は何れも、無線区間を含まない通信に対して、遅延時間ΔＴの計算をあてはめた結果である。このように、無線区間を含まない通信に対しても、遅延時間ΔＴが１０ミリ秒のＮ倍付近にプロットされる可能性がある。すると、遅延時間ΔＴを無線再送周期と単に比較するのみでは、無線区間を含まない通信のパケットも計算に紛れてしまい、無線区間を含む通信に限定した解析が容易でない。
【０１２１】
このため、収集したパケットから無線区間を含む通信のパケット（すなわち、サーバ２００と携帯電話機３００との通信のパケット）を選り分ける方法が問題となる。
そこで、解析装置１００は、バイツインフライト増加期間において、ＲＴＴが単調増加していないコネクションに対応するパケットを、サーバ２００と携帯電話機３００との通信のパケットと判定する。これにより、解析装置１００は、ネットワーク２０で収集されたパケットの中から、無線区間を含む通信のパケットを選り分けることができる。図１１，１３で説明したように、無線区間を含まない通信（サーバ２００とＰＣ４００，５００との通信）の場合は、バイツインフライトの増加に伴ってＲＴＴは単調増加する傾向にあるからである。
【０１２２】
このように無線区間を含む通信を特定することで、情報処理システムにおける通信品質劣化時の原因切り分け（例えば、通信遅延の原因が無線区間にあることなどの評価）を適切に行える。更に、無線回線種別を特定することで、無線回線種別に応じた品質改善の対策を講じることも可能となる。
【０１２３】
また、解析装置１００によれば、無線区間を含まない通信に対しても、端末装置が通常ＬＡＮ、狭帯域ＬＡＮおよびシェーピングＬＡＮの何れに接続されているかを推定できる。このため、無線区間を含まない通信に対しても、通信品質劣化時の原因切り分け（ユーザ端末側のネットワークで帯域が狭まっている、シェーピングが行われているなどの評価）を適切に行える。
【０１２４】
なお、第１の実施の形態の情報処理は、演算部１ｂとして用いられるプロセッサに、プログラムを実行させることで実現できる。第２の実施の形態の情報処理は、プロセッサ１０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体１３に記録できる。
【０１２５】
例えば、プログラムを記録した記録媒体１３を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体１３に記録されたプログラムまたは他のコンピュータから受信したプログラムを、ＲＡＭ１０２やＨＤＤ１０３などの記憶装置に格納し（インストールし）、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【０１２６】
１  パケット解析装置
１ａ  記憶部
１ｂ  演算部
２  情報処理装置
３  無線端末装置
４  端末装置
５，７  有線ネットワーク
６  アクセスポイント
８  無線区間
９，９ａ  有線区間
Ｘ  バイツインフライトの系列
Ｙ  ＲＴＴの系列
【図１】
2015195511.tif 000003
【図２】
2015195511.tif 000004
【図３】
2015195511.tif 000005
【図４】
2015195511.tif 000006
【図５】
2015195511.tif 000007
【図６】
2015195511.tif 000008
【図７】
2015195511.tif 000009
【図８】
2015195511.tif 000010
【図９】
2015195511.tif 000011
【図１０】
2015195511.tif 000012
【図１１】
2015195511.tif 000013
【図１２】
2015195511.tif 000014
【図１３】
2015195511.tif 000015
【図１４】
2015195511.tif 000016
【図１５】
2015195511.tif 000017
【図１６】
2015195511.tif 000018
【図１７】
2015195511.tif 000019
【図１８】
2015195511.tif 000020