JP2015195511A - パケット解析プログラム、パケット解析装置およびパケット解析方法 - Google Patents

パケット解析プログラム、パケット解析装置およびパケット解析方法 Download PDF

Info

Publication number
JP2015195511A
JP2015195511A JP2014072660A JP2014072660A JP2015195511A JP 2015195511 A JP2015195511 A JP 2015195511A JP 2014072660 A JP2014072660 A JP 2014072660A JP 2014072660 A JP2014072660 A JP 2014072660A JP 2015195511 A JP2015195511 A JP 2015195511A
Authority
JP
Japan
Prior art keywords
packet
packets
communication
wireless
section
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
JP2014072660A
Other languages
English (en)
Inventor
岡田 純代
Sumiyo Okada
純代 岡田
祐士 野村
Yuji Nomura
祐士 野村
飯塚 史之
Fumiyuki Iizuka
史之 飯塚
尚義 大川
Naoyoshi Okawa
尚義 大川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014072660A priority Critical patent/JP2015195511A/ja
Priority to US14/672,367 priority patent/US9749203B2/en
Publication of JP2015195511A publication Critical patent/JP2015195511A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/067Generation of reports using time frame reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/127Avoiding congestion; Recovering from congestion by using congestion prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】無線区間を含む通信のパケットを特定すること。【解決手段】記憶部1aは、有線区間9aで収集された複数のパケットを記憶する。演算部1bは、記憶部1aに記憶された複数のパケットをコネクション毎に分類する。演算部1bは、コネクション開始時に、有線区間9aに接続された情報処理装置2が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、情報処理装置2が送信したパケットの当該期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間8を含む通信のパケットと判定する。【選択図】図1

Description

本発明はパケット解析プログラム、パケット解析装置およびパケット解析方法に関する。
現在、コンピュータなどの複数の情報処理装置をネットワークに接続し、ネットワークを介した装置間でのデータ通信が行われている。ネットワークの通信経路は、有線で信号を伝送する有線区間や無線で信号を伝送する無線区間を含み得る。また、ネットワーク上でデータを伝送するためのプロトコルとしてTCP/IP(Transmission Control Protocol/Internet Protocol)がある。TCP/IPを用いてパケット化したデータの送受信が広く行われている。
ところで、ネットワークにおけるデータ通信の状況を分析することがある。データ通信用の設定の改善などに役立てるためである。例えば、無線通信区間を含む通信路のパケット往復時間を測定し、その往復時間の変動の最大値と最小値とから通信速度を推定し、推定値を基に送信データ長に適応した再送タイムアウト時間を計算する提案がある。
また、通信装置が、中継装置を介して相手装置と通信する場合に、中継装置と相手装置との間の通信区間が無線接続であると判定すると、相手装置との通信を、中継装置を経由した間接無線通信から、中継装置を経由しない直接無線通信に切り替える提案もある。この提案では、通信装置と中継装置とが無線接続されており、中継装置と相手装置との通信時間が、通信装置と中継装置との通信時間以上であった場合に、中継装置と相手装置とが無線接続されていると判定する。
特開2004−253934号公報 特開2010−161616号公報
サーバ装置が複数のクライアント端末にサービスを提供するシステムで、データ通信の状況を分析することがある。特に、通信経路に無線区間を含む通信について無線区間の通信遅延を分析すれば、無線端末に対する通信品質の改善などに役立てることができる。
ここで、ネットワーク内の無線区間は、例えばクライアント端末と無線アクセスポイントとを繋ぐユーザ側のネットワーク末端の区間(下流側)に比較的多く存在する。このため、無線区間毎にパケット収集用の装置を設置すると収集ポイントが増大し、当該装置の設置数も増大する。そこで、サーバ装置が接続された有線区間(上流側)でパケットを収集することが考えられる。サーバ装置と複数のクライアント端末との間で送受信されるパケットを、下流側よりも少ない収集ポイントで効率的に収集できるからである。
この場合、収集されるパケットは、通信経路に無線区間を含む通信のパケットのみとは限らない。例えば、サーバ装置が不特定多数のクライアント端末にサービスを提供していると、収集されるパケットには、サーバ装置とクライアント端末との間の通信経路に無線区間を含まない通信のパケットも混在し得る。このため、収集したパケットから無線区間を含む通信のパケットを選り分ける方法が問題となる。
1つの側面では、本発明は、無線区間を含む通信のパケットを特定できるパケット解析プログラム、パケット解析装置およびパケット解析方法を提供することを目的とする。
1つの態様では、パケット解析プログラムが提供される。このパケット解析プログラムは、無線区間と有線区間とを含む通信のパケットを有線区間で収集してコネクション毎に分類し、コネクション開始時に、有線区間に接続された情報処理装置が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、情報処理装置が送信したパケットの当該期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間を含む通信のパケットと判定する、処理をコンピュータに実行させる。
また、1つの態様では、パケット解析装置が提供される。このパケット解析装置は、記憶部と演算部とを有する。記憶部は、有線区間で収集された複数のパケットを記憶する。演算部は、複数のパケットをコネクション毎に分類し、コネクション開始時に、有線区間に接続された情報処理装置が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、情報処理装置が送信したパケットの当該期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間を含む通信のパケットと判定する。
また、1つの態様では、パケット解析方法が提供される。このパケット解析方法では、コンピュータが、無線区間と有線区間とを含む通信のパケットを有線区間で収集してコネクション毎に分類し、コネクション開始時に、有線区間に接続された情報処理装置が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、情報処理装置が送信したパケットの当該期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間を含む通信のパケットと判定する。
1つの側面では、無線区間を含む通信のパケットを特定できる。
第1の実施の形態の情報処理システムを示す図である。 第2の実施の形態の情報処理システムを示す図である。 解析装置のハードウェア例を示す図である。 解析装置の機能例を示す図である。 回線種別毎のパケットの送信例を示す図である。 通常LANの場合のパケットテーブルの例を示す図である。 通常LANの場合のRTTの計測結果の例を示す図である。 HSDPAの場合のパケットテーブルの例を示す図である。 HSDPAの場合のRTTの計測結果の例を示す図である。 狭帯域LANの場合のパケットテーブルの例を示す図である。 狭帯域LANの場合のRTTの計測結果の例を示す図である。 シェーピングLANの場合のパケットテーブルの例を示す図である。 シェーピングLANの場合のRTTの計測結果の例を示す図である。 パケットを分類する処理の例を示すフローチャートである。 回線種別判定処理の例を示すフローチャートである。 無線回線種別の判定方法の例を示す図である。 無線区間がHSDPAの場合の再送による遅延時間の例を示す図である。 無線区間を含まない通信に遅延時間の計算を適用した例を示す図である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。第1の実施の形態の情報処理システムは、パケット解析装置1、情報処理装置2、無線端末装置3および端末装置4を含む。パケット解析装置1は、情報処理装置2が送受信するパケットを収集し、解析する。情報処理装置2は、無線端末装置3や端末装置4に所定のサービスを提供する装置(例えば、サーバコンピュータ)である。無線端末装置3および端末装置4は、ユーザによって利用される端末装置(例えば、クライアントコンピュータ、携帯電話機、タブレット端末など)である。装置間の通信には、TCP/IPが用いられる。
パケット解析装置1および情報処理装置2は、有線ネットワーク5に有線で接続されている。有線ネットワーク5は無線区間を含まないネットワークである。有線ネットワーク5には、無線通信のアクセスポイント6(例えば、無線基地局でもよい)が接続されている。無線端末装置3は、アクセスポイント6および有線ネットワーク5を介して情報処理装置2と通信する。無線区間8は、無線端末装置3とアクセスポイント6との間の無線通信が行われる区間である。
有線ネットワーク5は、有線ネットワーク7に接続されている。有線ネットワーク7は無線区間を含まないネットワークである。端末装置4は、有線ネットワーク7に有線で接続されている。端末装置4は、有線ネットワーク7,5を介して情報処理装置2と通信する。
有線区間9は、情報処理装置2と端末装置4との間の通信経路のうち有線ネットワーク5,7に属する区間である。有線区間9は、何れの無線区間も含まない。有線区間9aは、情報処理装置2と端末装置4との間の通信経路のうち、有線ネットワーク5に属する区間である。情報処理装置2とアクセスポイント6との間の区間も有線区間(有線区間9aを含む)である。
パケット解析装置1は、有線区間9aに接続されている。パケット解析装置1は、有線区間9aを介して送受信されるパケットを収集する。例えば、有線区間9aとパケット解析装置1とを接続するタップやスイッチなどが複製したパケットをパケット解析装置1で受信して収集することが考えられる。収集される各パケットには、収集された時間の情報が付加される。また、収集されるパケットには、情報処理装置2と無線端末装置3との間の通信(無線区間8を含む通信)のパケットおよび情報処理装置2と端末装置4との間の通信(無線区間8を含まない通信)のパケットが混在することになる。
パケット解析装置1は、記憶部1aと演算部1bを有する。記憶部1aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。記憶部1aは、収集されたパケットを記憶する。
演算部1bは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。演算部1bはプログラムを実行するプロセッサであってもよい。「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
演算部1bは、収集された複数のパケットをコネクション毎に分類する。例えば、演算部1bは、パケットのIPヘッダに含まれる送信元IPアドレスおよび宛先IPアドレスとの組み合わせ、および、TCPヘッダの送信元ポート番号および宛先ポート番号との組み合わせに基づいて、パケットのコネクション毎の分類を行える。すなわち、演算部1bは、送信元/宛先IPアドレス(送信元/宛先を入れ替えたものも含む)が共通するパケットのうち、送信元/宛先ポート番号(送信元/宛先を入れ替えたものも含む)が共通するパケット同士を同一のコネクションに分類する。演算部1bは、コネクション毎に分類された各パケットの情報および各パケットを収集した時間に基づいて次の分析を行う。
演算部1bは、コネクション開始時に情報処理装置2が送信したパケットのうち確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があるか否かをコネクション毎に判定する。確認応答のパケットをACK(ACKnowledgement)パケットまたは単にACKなどと称することがある。また、情報処理装置2が送信したパケットのうち確認応答のパケットが未到着であるパケットのデータ量の合計を、バイツインフライト(bytes in flight)と称することがある。すなわち、演算部1bは、コネクション開始時にバイツインフライトが増加している期間(バイツインフライト増加期間)があるか否かをコネクション毎に判定する。バイツインフライト増加期間があるということは、該当のコネクションに関して通信遅延が発生していることを示す。
演算部1bは、バイツインフライト増加期間があるコネクションについて、情報処理装置2が送信したパケットの当該バイツインフライト増加期間におけるラウンドトリップ時間(RTT:Round Trip Time)が単調増加しているか否かを判定する。RTTは、情報処理装置2により所定のデータパケットが送信されてから、データパケットに対する確認応答パケットが情報処理装置2に到着するまでの時間である。例えば、RTTは、パケット解析装置1において、情報処理装置2が送信したデータパケットを収集した時点と、当該データパケットに対応するACKを収集した時点との間の時間間隔として計測し得る。そして、演算部1bは、バイツインフライト増加期間において、RTTが単調増加していないコネクションに対応するパケットを、無線区間8を含む通信のパケットと判定する。
図1には、あるコネクションのパケットの分析結果を示すグラフも例示されている。系列Xは、時間とバイツインフライトとの関係を示す。系列Yは、時間とRTTとの関係を示す。系列Xに着目すると、コネクション開始時の期間Rにおいて、バイツインフライトは増加している。よって、期間Rはバイツインフライト増加期間である。また、系列Yに着目すると、期間Rにおいて、RTTは単調増加していない。このため、演算部1bは、このグラフに対応するコネクションのパケットを、無線区間8を含む通信のパケットと判定する。
パケット解析装置1によれば、有線区間9aを含み無線区間8を含む通信のパケットと、有線区間9aを含み無線区間8を含まない通信のパケットとが混在しており有線区間9aで収集された複数のパケットが、コネクション毎に分類される。コネクション開始時に、バイツインフライト増加期間Rがあり、かつ、情報処理装置2が送信したパケットの当該期間RにおけるRTTが単調増加していないコネクションに対応するパケットが、無線区間8を含む通信のパケットと判定される。これにより、無線区間8を含む通信のパケットを特定できる。
ここで、情報処理装置2と無線端末装置3との間で通信遅延がある場合に、無線区間8に起因するものであるかを特定したいことがある。無線区間8の通信品質の改善に役立てることができるからである。通信遅延が無線区間8に起因するかを特定する方法として、例えば、バイツインフライト増加期間があるコネクションについて、無線区間8の通信規格に応じた所定周期のパケット再送が発生しているかを調べることが考えられる。
ところが、情報処理装置2は、不特定多数の端末装置と通信し得る。そのため、パケットを有線区間9aで収集すると、情報処理装置2の通信に関するパケットを効率的に収集できる半面、無線区間8を含まない通信のパケットも混在して収集されることになる。第1の実施の形態の例では、無線区間8を経由する情報処理装置2と無線端末装置3との通信のパケットおよび有線区間9を経由する情報処理装置2と端末装置4との通信のパケットの両方が収集されることになる。
この場合、通信規格の再送制御の特徴に着目し、パケットの再送の周期性のみを利用して無線区間8に起因する通信遅延を検出しようとすると、無線区間8を含む通信のパケットを、無線区間8を含まない通信のパケットと誤判定するおそれがある。有線ネットワーク5,7でも、データ転送を行う中継装置などの転送制御(例えば、シェーピングなど)に応じた遅延が、無線区間8の再送による遅延と近似することがあるからである。
そこで、パケット解析装置1は、バイツインフライト増加期間において、RTTが単調増加していないコネクションに対応するパケットを、無線区間8を含む通信のパケットと判定する。これにより、パケット解析装置1は、有線区間9aで収集されたパケットの中から、無線区間8を含む通信のパケットを選り分ける。
RTTに関する上記判定は無線区間8および有線区間における通信処理の特徴に基づいている。通信遅延が、主に無線区間8での通信処理に起因するとき、無線区間8で電波干渉などの影響によりパケット・ロスが発生している可能性が高い。パケット・ロスが発生すると、アクセスポイント6はロスしたパケットを一定周期で再送する。アクセスポイント6は、再送時にパケット・ロスが発生すると、再送を繰り返す。無線端末装置3は、パケットを受信すると、情報処理装置2を宛先としたACKを送信する。
この場合、情報処理装置2から無線端末装置3へ順次送信されたパケットは、アクセスポイント6による再送なしで無線端末装置3に到着したり、アクセスポイント6により1回以上再送された後に無線端末装置3に到着したりする。無線区間8は有線区間に比べて伝送路の安定性が低い。このため、無線区間8における再送有無や再送回数はランダムに変動し得る。すなわち、無線端末装置3に各パケットが到着するまでの時間もランダムに変動し得る。すると、無線端末装置3によるACK返信のタイミングも比較的速かったり、遅かったりと様々であり、RTTがランダムに変動することになる。
一方、無線区間8を含まない通信(例えば、有線区間9の通信)の場合は、バイツインフライトの増加に伴ってRTTは単調増加する傾向にある。有線区間では、無線区間と比べて伝送路におけるランダムな要因の影響を受ける可能性が低く、データ転送を行う中継装置でのシェーピングやシリアル化などのルータによる制御が主な遅延要因と考えられるからである。すなわち、中継装置でパケットが長く滞留するほど、宛先装置にパケットが到着するまでの時間が長引いて、宛先装置によるACK返信も遅れる。その結果、RTTは単調に増加することになる。
このような理由から、パケット解析装置1は、バイツインフライト増加期間において、RTTが単調増加していないコネクションを、無線区間8を含む通信に対応付けることができ、収集されたパケットの中から無線区間8を含む通信のパケットを適切に特定できる。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、解析装置100、サーバ200、携帯電話機300およびPC(Personal Computer)400,500を含む。サーバ200は、携帯電話機300およびPC400,500とネットワーク10を介して通信可能である。ネットワーク10は、例えば、WAN(Wide Area Network)やインターネットなどの広域ネットワークである。
ネットワーク10は、ネットワーク20と接続されている。サーバ200は、ネットワーク20に接続されている。ネットワーク20には、タップ21が設けられている。タップ21は、解析装置100と接続されている。タップ21は、パケットを中継するとともに中継するパケットを複製して解析装置100に送信する。タップ21に代えて、所定のセットのポートを通過するパケットを複製して他のポート(解析装置100が接続されたポート)からも出力する機能(ポートミラーリング機能と称することがある)を備えたスイッチなどを用いることもできる。
ネットワーク10は、基地局30およびルータ40,50と接続されている。基地局30は、サーバ200と携帯電話機300との間の通信を中継する。基地局30と携帯電話機300との間の通信には、HSDPA(High-Speed Downlink Packet Access)やLTE(Long Term Evolution)などが用いられる。ルータ40は、サーバ200とPC400との間の通信を中継する。ルータ50は、サーバ200とPC500との間の通信を中継する。基地局30と携帯電話機300との間は無線区間である。それ以外の装置間の区間はイーサネット(登録商標)による有線区間である。第2の実施の形態の情報処理システムのうち、サーバ200により近い側を上流側、携帯電話機300やPC400,500により近い側を下流側と称することがある。
解析装置100は、タップ21から受信したパケットを記憶し、解析するコンピュータである。サーバ200は、携帯電話機300およびPC400,500に所定のサービスを提供するサーバコンピュータである。携帯電話機300は、ユーザによって利用される無線端末装置である。PC400,500はクライアントコンピュータであり、ユーザによって利用される端末装置である。
解析装置100は、サーバ200と携帯電話機300との間で送受信されるパケットおよびサーバ200とPC400,500との間で送受信されるパケットを解析する。そして、解析装置100は、各種端末装置が下流側の末端でどのような種別の回線を用いて通信を行っているかを特定する。回線の種別としては、無線か有線かが考えられる。また、無線でもHSDPAかLTEなのかというように更に細分化できる。また、有線でも下流側で比較的狭い帯域が用いられている(狭帯域LAN(Local Area Network))、下流側へのデータ転送時にシェーピングが行われている(シェーピングLAN)というように更に細分化できる。
図3は、解析装置のハードウェア例を示す図である。解析装置100は、プロセッサ101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、読み取り装置106、通信インタフェース107を有する。各ユニットが解析装置100のバスに接続されている。
プロセッサ101は、解析装置100の全体を制御する。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM102は、解析装置100の主記憶装置である。RAM102は、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
HDD103は、解析装置100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。解析装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
画像信号処理部104は、プロセッサ101からの命令に従って、解析装置100に接続されたディスプレイ11に画像を出力する。ディスプレイ11としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(Electro-Luminescence)ディスプレイなど各種のディスプレイを用いることができる。
入力信号処理部105は、解析装置100に接続された入力デバイス12から入力信号を取得し、プロセッサ101に出力する。入力デバイス12としては、マウスやタッチパネルなどのポインティングデバイスやキーボードなどの各種の入力デバイスを用いることができる。解析装置100には、複数の種類の入力デバイスが接続されてもよい。
読み取り装置106は、記録媒体13に記録されたプログラムやデータを読み取る装置である。記録媒体13として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体13として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置106は、例えば、プロセッサ101からの命令に従って、記録媒体13から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、タップ21に接続され、タップ21からパケットを受信する。
図4は、解析装置の機能例を示す図である。解析装置100は、記憶部110、分類部120および解析部130を有する。記憶部110は、RAM102やHDD103に確保された記憶領域を用いて実現できる。分類部120および解析部130は、プロセッサ101によって実行されるプログラムのモジュールであってもよい。
記憶部110は、分類部120によって収集されたパケットを記憶する。なお、パケットを収集することを指して、「パケットキャプチャ」ということがある。
分類部120は、タップ21により出力されたパケットを受信する。第2の実施の形態では、特にサーバ200により送信されたデータパケットと、データパケットに応じたサーバ200へのACKパケットとに着目する。
分類部120は、複数のパケットをコネクション毎に分類する。具体的には、パケットのIPヘッダの送信元/宛先IPアドレスの組(送信元/宛先の入れ替えたものも含む)が同じで、かつ、TCPヘッダの送信元/宛先ポートの組(送信元/宛先を入れ替えたものも含む)が同じであるパケットを同一コネクションとする。分類部120は、分類したパケットに受信時刻の情報を付加して記憶部110に格納する。受信時刻として、解析装置100のOSが管理する時刻を付加してもよい。
解析部130は、各コネクションのコネクション開始時におけるパケットの情報に基づいて、各種端末装置が下流側の末端において、どのような回線種別により通信を行っているかを解析する。
なお、以下の説明では、サーバ200が送信した1つのデータパケットに対して、端末装置により1つのACKパケットが送信される場合を想定するが、複数のデータパケットに対して1つのACKパケットが送信されてもよい。複数のデータパケットに対して1つのACKパケットが送信される場合にも、例えば複数のデータパケットの何個目のデータパケットに着目するかを決定しさえすれば、解析装置100の機能を適用できる。
図5は、回線種別毎のパケットの送信例を示す図である。図5の例では、基地局30およびルータ40,50が接続される上流側の有線ネットワークの帯域を100Mbps(Mega bits per second)とする。図5の「サーバ側」と記している方を上流側(サーバ200側)、図5の「端末側」と記している方を下流側(携帯電話機300やPC400,500の側)とする。また、1パケットのサイズを1500バイトとする。更に、図5では、サーバ200により送信されたパケットに対し、送信された順番に番号“1”、“2”、“3”、“4”、“5”、“6”を付している。
図5(A)は、基地局30よりも下流側でのパケットの流れの例(HSDPAの場合)を示している。図5(A)では、基地局30に到着したパケットと基地局30により送出されたパケットとの両方を図示しているが、同じ番号のパケット同士が対応している。すなわち、基地局30は、番号“1”のパケットをサーバ側から受信した後に、受信した同パケット(端末側に送出された番号“1”のパケットとして図示)に送出することになる(図5(B)(C)も同様)。
図5(A)の例では、無線回線が混雑している影響で、パケット送信に利用可能な帯域が2Mbpsと狭まっている。基地局30は、当該帯域を用いて携帯電話機300へパケットを送信する。上流側よりも狭い帯域で下流側へ送出するので、1パケットのシリアライズに要する時間(シリアル化遅延)が上流側に比べて長引く。シリアル化遅延は、例えば、6.25ミリ秒(ms)である。
基地局30は、端末側へ送出したパケットのパケット・ロスが発生すると、ロスしたパケットを再送する。例えば、4つ目のパケット(番号“4”のパケット。以下、同様)でパケット・ロスが発生する。すると、基地局30は、HSDPAで規定された10ミリ秒後に4つ目のパケットを再送する。同様に、例えば、6つ目のパケットでパケット・ロスが発生する。すると、基地局30は、10ミリ秒後に6つ目のパケットを再送する。そのときに再びパケット・ロスが発生すれば、更に10ミリ秒後に6つ目のパケットを再送する。なお、1つ目、2つ目、3つ目、5つ目のパケットに関しては、再送なしで携帯電話機300により受信される。
図5(B)は、ルータ40よりも下流側でのパケットの流れの例(狭帯域LANの場合)を示している。ルータ40よりも下流側の帯域は2Mbpsである(上流側よりも狭い帯域となっている)。この場合、シリアル化遅延によりルータ40でパケットが滞留する。1パケットのシリアル化遅延は、例えば6.25ミリ秒である。
図5(C)は、ルータ50よりも下流側でのパケットの流れの例(シェーピングLANの場合)を示している。ルータ50より下流側の帯域は100Mbpsである(上流側より下流側が狭いこともあるがその場合も同様である)。この場合、シリアル化遅延は120マイクロ秒(μ秒)である。ルータ50はシェーピングを行う。
シェーピングとは、ルータ50などの中継装置による帯域制御の技術である。シェーピングには、トークンバケットのアルゴリズムが用いられる。例えば、10ミリ秒毎に2500バイトのトークン(送出許容量といってもよい)がコネクション(あるいは、ルータ50内で管理される所定のフロー単位)に追加される。例えば、ルータ50は次のようにPC500へパケットを送出する。
ルータ50は、パケット番号“1”〜“6”のパケットをサーバ200から受信している。ルータ50は、PC500へのデータ送信に対して2500バイトのトークンを割り当てる。1パケットのサイズは1500バイトである。1つ分のパケットは、現在割り当てられている送出許容量2500バイト以下なので、ルータ50は、1つの目のパケットを送信する。残りの送出許容量は1000バイトである。1000バイトは、1つ分のパケットのサイズ1500バイトよりも小さい。よって、ルータ50は、2つ目のパケットの送出を次回以降のトークン割り当てまで待機する。
その後、ルータ50は、PC500へのデータ送信に対して、2500バイトのトークンを割り当てる。送出許容量は、前回残り分とあわせて3500バイトである。よって、ルータ50は、2つ目のパケットと3つ目のパケットとを送出する。残りの送出許容量は500バイトとなる。以降、ルータ50は、PC500へのデータ送信に対して2500バイトのトークンが割り当てられる毎に、未送信パケットをPC500に順次送信する。
図5(A)に示したように、基地局30と携帯電話機300との間の無線区間では、パケット・ロスに伴う再送が発生したり、発生しなかったり、複数回発生したりと、その時々の無線環境などに応じてランダムに変化し得る。このため、サーバ200が送信したデータパケットが携帯電話機300に到着するまでの時間は、パケット毎にランダムに変動する可能性がある。これは、バイツインフライトが増加しても、RTTがランダムに変動し得る(バイツインフライトの増加とRTTの変動との相関が弱い、あるいは、相関がない)ことを示唆する。
一方、図5(B),(C)に示したように、有線区間では、シリアル化やシェーピングなどのルータの制御による遅延が主である。このため、ルータ40,50でパケットが滞留するほど、サーバ200により送信されたパケットがPC400,500に到着するまでの時間が長引くことになる。これは、バイツインフライトの増加に伴って、RTTが単調に増加する(バイツインフライトの増加とRTTの増加とに比較的強い相関がある)ことを示唆する。
次に、解析装置100によって収集されるパケットの情報を例示する。まず、ユーザが利用する端末装置が通常LANに接続されている場合を示す。ここで、通常LANとは、端末装置とサーバ200とが無線区間を含まない通信経路で通信しており、当該通信経路の間で、帯域が狭まったり、シェーピングが行われたりしていないLANを示す。また、以下では、収集したパケットをコネクション毎に分類したものを例示する。
図6は、通常LANの場合のパケットテーブルの例を示す図である。パケットテーブル111は、記憶部110に格納される。パケットテーブル111は、No.、TIME、SA(Source Address)、SP(Source Port)、DA(Destination Address)、DP(Destination Port)、Protocol、TCP LEN(lengthの略)、IP LEN、seq(sequenceの略)、next seq、ACK、RTTおよびbytes in flightの項目を含む。
No.の項目には、レコードを識別するための番号が登録される。TIMEの項目には、解析装置100がパケットを受信した時刻が登録される。SAの項目には、送信元のIPアドレスが登録される。SPの項目には、送信元のポート番号が登録される。DAの項目には、宛先のIPアドレスが登録される。DPの項目には、宛先のポート番号が登録される。
Protocolの項目には、プロトコルの名称が登録される。TCP LENの項目には、TCPヘッダとTCPペイロードとを合わせたデータ長(TCPセグメント長)が登録される(単位はバイト)。IP LENの項目には、IPヘッダとIPペイロードとを合わせたデータ長(IPパケット長)が登録される(単位はバイト)。
seqの項目には、シーケンス番号が登録される。シーケンス番号は、パケットに付与される通し番号である。next seqの項目には、次のパケットのシーケンス番号が登録される。next seqに設定される値は、TCP LENの値とseqの値との和である。
ACKの項目には、ACK番号が登録される。ACK番号は、相手の装置に次に送ってほしいデータの先頭のバイト位置を表す。ACK番号は、ACK番号の1つ前までのデータを受信済みであることを意味している。データパケットとACKパケットとの対応関係は、データパケットに含まれるnext seqの値と、ACKパケットに含まれるACK番号とによって判断できる。あるデータパケットに対してACKパケットが送信されるとき、データパケットのnext seqの値とACKパケットのACK番号とは一致する。
RTTの項目には、RTTの値が登録される(単位は秒)。RTTはACKパケットの受信時に算出される。bytes in flightの項目には、該当の時点におけるバイツインフライトの値が登録される(単位はバイト)。バイツインフライトはデータパケットの受信時に算出される。
例えば、パケットテーブル111には、No.が“1”、TIMEが“15:52:05.486593”、SAが“IP1”、SPが“40952”、DAが“IP2”、DPが“60401”、Protocolが“TCP”、TCP LENが“1448”、IP LENが“1500”、seqが“148725083”、next seqが“14876531”、ACKが“1633673393”、RTTが“−”(設定なし)、bytes in flightが“2896”という情報が登録される。
これは、15時52分05.486593秒に収集されたデータパケットに関する情報を示している。ここで、IPアドレス“IP1”はサーバ200のIPアドレスである。このパケットは、サーバ200が送信したパケットなので、RTTは設定なしとなる。また、この時点でのバイツインフライトが2896バイトであることを示している。
また、パケットテーブル111には、No.が“2”、TIMEが“15:52:05.486631”、SAが“IP2”、SPが“60401”、DAが“IP1”、DPが“40952”、Protocolが“TCP”、TCP LENが“0”、IP LENが“52”、seqが“1633673393”、next seqが“−”、ACKが“14876531”、RTTが“0.000038”、bytes in flightが“−”という情報が登録される。
これは、15時52分05.486631秒に収集されたACKパケットに関する情報を示している。このACKパケットは、サーバ200と通信する端末装置側が送信したパケットであり、上記No.“1”のデータパケットに対応するものである。ACK番号“14876531”は、No.“1”のデータパケットのnext seq“148726581”と一致している。このときのRTTはNo.“1”,“2”のレコードにおけるTIMEの差として算出でき、RTT=0.000038秒である。
図7は、通常LANの場合のRTTの計測結果の例を示す図である。図7のグラフの横軸は、シーケンス番号であり時間に対応している。シーケンス番号が大きい程、未来の時間を示し、シーケンス番号が小さい程、過去の時間を示すことになる。縦軸は、RTTおよびバイツインフライトである。
図7(A)は、ある時間幅における計測結果を示しており、図7(B)は、そのうちの一部の期間における計測結果を示している。これらのグラフを参照すると、バイツインフライトおよびRTTの何れの系列も、ほとんど増減がない。この結果は、通常LANの場合、シェーピングやシリアル化などにより、ルータ上にパケットが滞留する可能性が少ないためであると考えられる。
図8は、HSDPAの場合のパケットテーブルの例を示す図である。パケットテーブル112は、記憶部110に格納される。パケットテーブル112の各項目は、パケットテーブル111と同様であるため、説明を省略する。
例えば、パケットテーブル112には、No.が“1”、TIMEが“04:13:20.611142”、SAが“IP1”、SPが“80”、DAが“IP3”、DPが“60628”、Protocolが“TCP”、TCP LENが“1460”、IP LENが“1500”、seqが“460818496”、next seqが“460819956”、ACKが“2093475548”、RTTが“−”、bytes in flightが“7300”という情報が登録される。
サーバ200が送信したNo.“1”のデータパケットに対応するACKパケットは、No.“15”のレコードで示されるACKパケットである。No.“15”で示されるACKパケットのACK番号“46819956”は、No.“1”のデータパケットのnext seqの値と一致するからである。これらのパケットを用いて計測されたRTTは、0.140598秒である。
図9は、HSDPAの場合のRTTの計測結果の例を示す図である。図9のグラフの各軸が示す意味は図7と同様である。図9(A)は、ある時間幅における計測結果である。系列A1は、バイツインフライトを示す。系列B1は、RTTを示す。図9(B)は、系列A1,B1の一部を示している。これらのグラフを参照すると、バイツインフライト増加期間R1において、RTTがランダムに変動していることが分かる。
図10は、狭帯域LANの場合のパケットテーブルの例を示す図である。パケットテーブル113は、記憶部110に格納される。パケットテーブル113の項目は、パケットテーブル111と同様であるため、説明を省略する。
例えば、パケットテーブル113には、No.が“1”、TIMEが“15:53:16.132608”、SAが“IP1”、SPが“27525”、DAが“IP4”、DPが“45390”、Protocolが“TCP”、TCP LENが“1448”、IP LENが“1500”、seqが“2492693045”、next seqが“2492694493”、ACKが“1886416639”、RTTが“−”、bytes in flightが“1448”という情報が登録される。
サーバ200が送信したNo.“1”のデータパケットに対応するACKパケットは、No.“9”のレコードで示されるACKパケットである。No.“9”のACKパケットのACK番号“2492694493”は、No.“1”のデータパケットのnext seqの値と一致するからである。これらのパケットを用いて計測されたRTTは、0.000830秒である。
図11は、狭帯域LANの場合のRTTの計測結果の例を示す図である。図11のグラフの各軸が示す意味は図7と同様である。図11(A)は、ある時間幅における計測結果である。系列A2は、バイツインフライトを示す。系列B2は、RTTを示す。図11(B)は、系列A2,B2の一部を示している。これらのグラフを参照すると、バイツインフライト増加期間R2において、RTTが単調増加していることが分かる。RTTの単調増加は、シリアル化に伴う遅延を反映したものと考えることができる。
図12は、シェーピングLANの場合のパケットテーブルの例を示す図である。パケットテーブル114は、記憶部110に格納される。パケットテーブル114の項目は、パケットテーブル111と同じであるため、説明を省略する。
例えば、パケットテーブル114には、No.が“1”、TIMEが“14:30:35.236636”、SAが“IP1”、SPが“80”、DAが“IP5”、DPが“53625”、Protocolが“HTTP”、TCP LENが“1460”、IP LENが“1500”、seqが“664729235”、next seqが“664730695”、ACKが“1555774022”、RTTが“−”、bytes in flightが“2920”という情報が登録される。
サーバ200が送信したNo.“1”のデータパケットに対応するACKパケットは、No.“39”のレコードで示されるACKパケットである。No.“39”のACKパケットのACK番号“664730695”は、No.“1”のデータパケットのnext seqの値と一致するからである。これらのパケットを用いて計測されたRTTは、0.005799秒である。
図13は、シェーピングLANの場合のRTTの計測結果の例を示す図である。図13のグラフの各軸が示す意味は図7と同様である。図13(A)は、ある時間幅における計測結果である。系列A3は、バイツインフライトを示す。系列B2は、RTTを示す。図13(B)は、系列A3,B3の一部を示している。これらのグラフを参照すると、期間R3において、バイツインフライト増加期間が複数存在していることが分かる。また、各バイツインフライト増加期間において、RTTが単調増加していることが分かる。例えば、図13(B)では、バイツインフライト増加期間R31,R32が例示されている。バイツインフライト増加期間R31,R32のそれぞれにおいて、RTTは単調増加している。
なお、期間R3の前半であるバイツインフライト増加期間R31は、シリアル化による遅延を表していると考えられる。一方、期間R3の後半であるバイツインフライト増加期間R32は、シェーピングによる遅延を表していると考えられる。ルータにおいて、まずはシリアル化による遅延が発生し、その後シェーピングによる遅延が発生すると考えられるからである。また、図5で示したように、一般に、シリアル化の所要時間よりもシェーピングによるトークン割り当て間隔の方が長いと考えられ、シリアル化による遅延に比べてシェーピングによる遅延の方がRTTの増加分が大きくなると考えられる。バイツインフライト増加期間R31,R32では、単位時間当たりのRTTの増加分はバイツインフライト増加期間R32の方が大きい。このような理由からも、バイツインフライト増加期間R31はシリアル化による遅延を表し、バイツインフライト増加期間R32はシェーピングによる遅延を表していると判断できる。
図14は、パケットを分類する処理の例を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
(S11)分類部120は、複製されたパケットをタップ21から受信する。分類部120が受信するパケットには、サーバ200により送信されたデータパケットとデータパケットに応じてサーバ200に応答されるACKパケットとが含まれる。
(S12)分類部120は、受信されたパケットのIPヘッダを参照して、上位プロトコルがTCPであるか否かを判定する。IPヘッダのプロトコルフィールドの設定値が“6”の場合はTCPである。それ以外の場合は、TCPではない。TCPの場合、処理をステップS13に進める。TCPでない場合、処理を終了する。
(S13)分類部120は、受信したパケットのIPヘッダを参照し、パケットをコネクション毎に分類する。前述のように、分類部120は、宛先/送信元IPアドレスの組および宛先/送信元ポートの組が同じであるパケット同士を同じコネクションとして分類する。分類部120は、コネクション毎に分類したパケットの情報をパケットテーブルに登録する。
(S14)分類部120は、パケットの受信時刻を、当該パケットに対応づけてパケットテーブルに登録する。分類部120は、パケットの内容を示す情報もパケットテーブルに登録する。
(S15)分類部120は、バイツインフライトまたはRTTを計算し、ステップS14で登録した受信時刻に対応付けてパケットテーブルに登録する。具体的には、分類部120は、サーバ200を送信元とするパケットを受信したタイミングで、該当のコネクションにおいてRTT未受信であるパケットの合計を算出することで、バイツインフライトを求める。また、分類部120は、サーバ200を宛先とするACKパケットを受信したタイミングで、ACKパケットの受信時刻とACKパケットに対応するデータパケットの受信時刻との時間間隔を求めることで、RTTを計算する。
このように、分類部120は、パケットを受信するたびに上記の手順を繰り返し行い、各パケットを受信したタイミングにおけるバイツインフライトやRTTをパケットテーブルに記録していく。解析部130は、パケットテーブルに記録された情報に基づいて、ユーザ側の末端において各端末装置が何れの回線種別により通信しているかを判定する。
図15は、回線種別判定処理の例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。以下の手順は、コネクション毎に実行される。
(S21)解析部130は、パケットテーブルを参照し、コネクション開始時にバイツインフライト増加期間があるか否かを判定する。バイツインフライト増加期間がない場合、処理をステップS22に進める。バイツインフライト増加期間がある場合、処理をステップS23に進める。
(S22)解析部130は、着目しているコネクションにおいて端末装置が利用する通信回線を通常LANと特定する。通常LANは狭帯域LANとは異なり、当該通信回線における帯域は、ネットワーク20の帯域と同じかそれよりも広い帯域である。また、通常LANではシェーピングも行われていないと推定できる。解析部130は、当該コネクションに対する特定結果を記憶部110に格納する。そして、処理を終了する。
(S23)解析部130は、バイツインフライト増加期間でRTTが単調増加しているか否かを判定する。バイツインフライト増加期間でRTTが単調増加していない場合、処理をステップS24に進める。バイツインフライト増加期間でRTTが単調増加している場合、処理をステップS26に進める。
(S24)解析部130は、着目しているコネクションにおいて端末装置が利用する通信回線を無線通信と特定する。無線通信と特定できる理由は、図9で述べた通りである。
(S25)解析部130は、無線回線の種別を判定する。例えば、基地局などがデータパケットを再送する周期は、通信規格に応じて一定の値に定められているのが一般的である。そこで、解析部130は、RTTの遅延時間が何れの規格の再送周期に合致しているかを検出することで、無線回線の種別を特定できる。詳細については後述する。解析部130は、当該コネクションに対する特定結果を記憶部110に格納する。そして、処理を終了する。
(S26)解析部130は、バイツインフライト増加期間で異なる傾きでのRTTの単調増加があるか否かを判定する。バイツインフライト増加期間で異なる傾きでのRTTの単調増加がない場合、処理をステップS27に進める。ここで、「異なる」とは、傾きの差が所定の閾値以上であることを意味すると考えてもよい。例えば、RTTの複数の傾きがある場合に、最初に表れた傾きaに対して、2a以上の傾きをもつRTTの系列があるときに、「異なる」傾きであると判定することが考えられる。
(S27)解析部130は、着目しているコネクションにおいて端末装置が利用する通信回線を狭帯域LANと特定する。解析部130は、当該コネクションに対する特定結果を記憶部110に格納する。狭帯域LANと特定できる理由は、図11で述べた通りである。
(S28)解析部130は、着目しているコネクションにおいて端末装置が利用する通信回線をシェーピングLANと特定する。解析部130は、当該コネクションに対する特定結果を記憶部110に格納する。シェーピングLANと特定できる理由は、図13で述べた通りである。
このように、解析装置100は、バイツインフライト増加期間においてRTTが単調増加しているか否かにより、端末装置側のネットワーク末端で利用されている通信回線の種別を特定できる。なお、解析部130は、パケットテーブルに記録されていく情報をリアルタイムに解析してもよいし、所定のタイミング(パケットテーブルにある程度のレコードが蓄積されたタイミング)でパケットテーブルを参照し上記解析を行ってもよい。
また、ステップS26では、他の方法により狭帯域LANとシェーピングLANとを区別することも考えられる。例えば、狭帯域LANでは、パケットサイズに応じてシリアル化に伴う遅延時間が変化するため、パケットサイズに応じてRTTも変化すると考えられる。一方、シェーピングLANでの主な遅延要因は、トークンの割り当て待ちであり、パケットサイズのRTTへの影響は、狭帯域LANに比べて小さいと考えられる。
そこで、解析部130は、着目しているコネクションについて、異なるサイズのパケットがある場合に、RTTがパケットサイズに応じて変化しているとき、端末装置が狭帯域LANを利用していると特定してもよい。一方、着目しているコネクションについて、異なるサイズのパケットがある場合に、RTTがパケットサイズに応じて変化していないとき、端末装置がシェーピングLANを利用していると特定してもよい。
あるいは、ルータ50などのシェーピングの情報が事前に分かっている場合(例えば、ある企業で導入しているルータのシェーピングにおけるトークン割り当て間隔が全て10ミリ秒など)もある。RTTの増加量は、トークン割り当て間隔に依存していると考えられる。そこで、着目するコネクションについて当該トークン割り当て間隔に依存したRTTの増加量が見出されるときは、当該コネクションでは、端末装置がシェーピングLANに接続されていると特定してもよい。次に、ステップS25における無線通信の回線種別の判定方法を具体的に説明する。
図16は、無線回線種別の判定方法の例を示す図である。パケット通信は、サーバと携帯電話機300との間で行われるものであるが、図16のシーケンス図では、解析装置100がパケットを収集する時刻が分かり易いよう、解析装置100も図示している。
例えば、次のような一連の通信が行われるとする。サーバ200は、携帯電話機300へデータパケットを送信する。解析装置100は、データパケットを時刻t1に受信する。携帯電話機300は、基地局30を介してデータパケットを受信する(ステップST101)。
携帯電話機300は、基地局30を介してサーバ200へACKパケットを送信する。解析装置100は、ACKパケットを時刻t2に受信する。サーバ200は、ACKパケットを受信する(ステップST102)。
サーバ200は、携帯電話機300へ次のデータパケットを送信する。解析装置100は、データパケットを時刻t3に受信する。基地局30と携帯電話機300との間の無線区間でパケット・ロスが発生する(ステップST103)。
基地局30は、ステップST103で送信できなかったデータパケットを、無線通信規格に応じた所定の周期で再送する。携帯電話機300は、再送されたデータパケットを受信する(ステップST104)。
携帯電話機300は、基地局30を介してサーバ200へACKパケットを送信する。解析装置100は、ACKパケットを時刻t4に受信する。サーバ200は、ACKパケットを受信する(ステップST105)。
ここで、データ間隔Td=t3−t1、ACK間隔Ta=t4−t2、遅延時間ΔT=Ta−Tdとし、無線通信規格で定められている再送周期をTsとする。ここで、ACK間隔Taは、着目するACKパケット(ステップST105のACKパケット)の(解析装置100における)受信時刻と、それよりも1つ前のACKパケット(ステップST102のACKパケット)の受信時刻との時間差を示す。データ間隔Tdは、ACK間隔を算出した2つのACKパケットに対応する2つのデータパケットの受信間隔を示す。すると、ステップS25において、解析部130は、ΔT>0となるACKパケットのペアおよびデータパケットのペアに対して次のような処理を行うことが考えられる。
解析部130は、遅延時間ΔTを、予め分かっている無線再送周期(例えば、HSDPAでは10ミリ秒、LTEでは8ミリ秒など)と一致するか否かを判定する。例えば、10ミリ秒×N±2ミリ秒(Nは1以上の整数)の範囲に入っていれば(10N−2≦ΔT≦10N+2(ミリ秒)であれば)HSDPAの再送周期と一致しており、範囲に入っていなければHSDPAの再送周期と一致していないと判定する。このように、所定の割合(例えば、20%)の誤差を含めて、一致するか否かを判定してもよい。LTEなら、例えば、8N−1.6≦ΔT≦8N+1.6(ミリ秒)であれば、LTEの無線再送周期と一致していると判定し、そうでなければLTEの無線再送周期と一致していないと判定することになる。
解析部130は、ΔTと無線再送周期とを用いた判定を、コネクション毎に種々のACKパケットのペアおよびデータパケットのペアに対して行う。例えば、解析部130は、遅延時間ΔTが再送周期10ミリ秒と一致していると判定された割合が、当該コネクションについて行った判定のうちの所定割合(例えば、80%)以上であれば、携帯電話機300が利用している無線回線がHSDPAであると判定する。LTEの場合も同様である。
この判定の結果、HSDPAとLTEとの両方に該当する可能性がある場合には、一致していると判定された割合がより大きな無線再送周期はどちらか(10ミリ秒とした場合か8ミリ秒とした場合か)を特定する。そして、特定した無線再送周期に対応する無線回線種別を最終的な特定結果とすることも考えられる。このようにして、解析装置100は、携帯電話機300が利用している無線回線種別を特定できる。
ところで、第2の実施の形態の情報処理システムのように、サーバ200が接続された有線区間(上流側)でパケットを収集することが考えられる。サーバ200と種々の端末装置との間で送受信されるパケットを、下流側よりも少ない収集ポイントで効率的に収集できるからである。
この場合、収集されるパケットは、通信経路に無線区間を含む通信のパケットのみとは限らない。例えば、サーバ200が不特定多数の端末装置にサービスを提供していると、収集されるパケットには、サーバ200と端末装置との間の通信経路に無線区間を含まない通信のパケットも混在し得る。第2の実施の形態の例では、解析装置100は、PC400,500とサーバ200との通信のパケットも混在して収集することになる。
不特定多数の端末装置がどのような回線を用いてサーバ200と通信しているかを解析装置100が事前に把握することは困難である。この場合、例えば、図16で説明したように遅延時間ΔTを用いて無線回線における再送の周期性に基づいて無線回線種別を判断することも考えられる。しかし、この方法だけでは無線区間を含まない通信のパケットも混在して解析される可能性がある。
図17は、無線区間がHSDPAの場合の再送による遅延時間の例を示す図である。図17(A),(B)の何れも携帯電話機300がHSDPAを用いて基地局30と通信する場合に遅延時間ΔTを計算した結果である。測定したタイミングによって遅延時間ΔTは異なるが、何れも再送周期のN倍に近似していることが分かる。
図18は、無線区間を含まない通信に遅延時間の計算を適用した例を示す図である。ここで、遅延時間ΔTの計算方法は、図16で説明した方法と同様の方法を用いている。図18(A),(B),(C),(D),(E),(F)は何れも、無線区間を含まない通信に対して、遅延時間ΔTの計算をあてはめた結果である。このように、無線区間を含まない通信に対しても、遅延時間ΔTが10ミリ秒のN倍付近にプロットされる可能性がある。すると、遅延時間ΔTを無線再送周期と単に比較するのみでは、無線区間を含まない通信のパケットも計算に紛れてしまい、無線区間を含む通信に限定した解析が容易でない。
このため、収集したパケットから無線区間を含む通信のパケット(すなわち、サーバ200と携帯電話機300との通信のパケット)を選り分ける方法が問題となる。
そこで、解析装置100は、バイツインフライト増加期間において、RTTが単調増加していないコネクションに対応するパケットを、サーバ200と携帯電話機300との通信のパケットと判定する。これにより、解析装置100は、ネットワーク20で収集されたパケットの中から、無線区間を含む通信のパケットを選り分けることができる。図11,13で説明したように、無線区間を含まない通信(サーバ200とPC400,500との通信)の場合は、バイツインフライトの増加に伴ってRTTは単調増加する傾向にあるからである。
このように無線区間を含む通信を特定することで、情報処理システムにおける通信品質劣化時の原因切り分け(例えば、通信遅延の原因が無線区間にあることなどの評価)を適切に行える。更に、無線回線種別を特定することで、無線回線種別に応じた品質改善の対策を講じることも可能となる。
また、解析装置100によれば、無線区間を含まない通信に対しても、端末装置が通常LAN、狭帯域LANおよびシェーピングLANの何れに接続されているかを推定できる。このため、無線区間を含まない通信に対しても、通信品質劣化時の原因切り分け(ユーザ端末側のネットワークで帯域が狭まっている、シェーピングが行われているなどの評価)を適切に行える。
なお、第1の実施の形態の情報処理は、演算部1bとして用いられるプロセッサに、プログラムを実行させることで実現できる。第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体13に記録できる。
例えば、プログラムを記録した記録媒体13を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体13に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
1 パケット解析装置
1a 記憶部
1b 演算部
2 情報処理装置
3 無線端末装置
4 端末装置
5,7 有線ネットワーク
6 アクセスポイント
8 無線区間
9,9a 有線区間
X バイツインフライトの系列
Y RTTの系列

Claims (7)

  1. 無線区間と有線区間とを含む通信のパケットを前記有線区間で収集してコネクション毎に分類し、
    コネクション開始時に、前記有線区間に接続された情報処理装置が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、前記情報処理装置が送信したパケットの前記期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間を含む通信のパケットと判定する、
    処理をコンピュータに実行させるパケット解析プログラム。
  2. 前記判定では、前記期間におけるラウンドトリップ時間が単調増加しているとき、前記情報処理装置とパケットの宛先の装置との間の通信経路に、前記有線区間よりも狭い帯域の有線区間があると判定する、請求項1記載のパケット解析プログラム。
  3. 前記判定では、前記期間が複数あり、各期間においてラウンドトリップ時間が単調増加し、かつ、単調増加の各傾きが異なるとき、前記情報処理装置とパケットの宛先の装置との間の通信経路で中継装置によるシェーピングが行われていると判定する、請求項1または2記載のパケット解析プログラム。
  4. 前記判定では、前記期間がないとき、前記情報処理装置とパケットの宛先の装置との間の通信経路の全区間で、前記有線区間の帯域と同じか当該帯域よりも広い帯域が用いられていると判定する、請求項1または3の何れか1項に記載のパケット解析プログラム。
  5. 前記判定では、更に、無線区間を含む通信の複数の確認応答のパケットのうち、順に受信された2つの確認応答のパケットの受信時刻の第1の時間間隔と、当該2つの確認応答のパケットに対応する2つのデータパケットの受信時刻の第2の時間間隔とを算出し、
    前記第1および前記第2の時間間隔との差と無線通信規格における再送周期との比較に応じて前記無線区間の回線種別を判定する、
    請求項1乃至4の何れか1項に記載のパケット解析プログラム。
  6. 有線区間で収集された複数のパケットを記憶する記憶部と、
    前記複数のパケットをコネクション毎に分類し、
    コネクション開始時に、前記有線区間に接続された情報処理装置が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、前記情報処理装置が送信したパケットの前記期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間を含む通信のパケットと判定する、演算部と、
    を有するパケット解析装置。
  7. コンピュータが、
    無線区間と有線区間とを含む通信のパケットを前記有線区間で収集してコネクション毎に分類し、
    コネクション開始時に、前記有線区間に接続された情報処理装置が送信したパケットのうち宛先の装置からの確認応答のパケットが未到着であるパケットのデータ量の合計が増加している期間があり、かつ、前記情報処理装置が送信したパケットの前記期間におけるラウンドトリップ時間が単調増加していないコネクションに対応するパケットを、無線区間を含む通信のパケットと判定する、
    パケット解析方法。
JP2014072660A 2014-03-31 2014-03-31 パケット解析プログラム、パケット解析装置およびパケット解析方法 Ceased JP2015195511A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014072660A JP2015195511A (ja) 2014-03-31 2014-03-31 パケット解析プログラム、パケット解析装置およびパケット解析方法
US14/672,367 US9749203B2 (en) 2014-03-31 2015-03-30 Packet analysis apparatus and packet analysis method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014072660A JP2015195511A (ja) 2014-03-31 2014-03-31 パケット解析プログラム、パケット解析装置およびパケット解析方法

Publications (1)

Publication Number Publication Date
JP2015195511A true JP2015195511A (ja) 2015-11-05

Family

ID=54191907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014072660A Ceased JP2015195511A (ja) 2014-03-31 2014-03-31 パケット解析プログラム、パケット解析装置およびパケット解析方法

Country Status (2)

Country Link
US (1) US9749203B2 (ja)
JP (1) JP2015195511A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10305812B1 (en) * 2017-11-05 2019-05-28 Vasona Networks, Inc. Tracking flows having encrypted sequence and acknowledgement numbers
CN108011780B (zh) * 2017-12-01 2019-01-22 北京百度网讯科技有限公司 一种数据传输速率测量方法、装置、设备和计算机可读介质
US20220345914A1 (en) * 2019-09-09 2022-10-27 Magdata Inc. Method, device, and system for diaganosing performance of 5g mobile communication-based network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005286751A (ja) * 2004-03-30 2005-10-13 Matsushita Electric Ind Co Ltd 通信制御方法及び通信制御装置
JP2009141466A (ja) * 2007-12-04 2009-06-25 Panasonic Corp 映像ストリーム受信機

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4214793B2 (ja) 2003-02-19 2009-01-28 日本電気株式会社 無線通信システム、サーバ、基地局、移動端末及びそれらに用いる再送タイムアウト時間決定方法
US7796517B2 (en) * 2004-06-28 2010-09-14 Minghua Chen Optimization of streaming data throughput in unreliable networks
JP5121738B2 (ja) 2009-01-08 2013-01-16 パナソニック株式会社 通信装置、通信システム、通信方法、プログラム、及び集積回路
EP2642702B1 (en) * 2010-11-16 2019-04-03 Hitachi, Ltd. Communication apparatus and communication system
US8452871B2 (en) * 2011-08-27 2013-05-28 At&T Intellectual Property I, L.P. Passive and comprehensive hierarchical anomaly detection system and method
EP2819353A4 (en) * 2012-02-24 2015-05-20 Hitachi Ltd COMMUNICATION DEVICE

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005286751A (ja) * 2004-03-30 2005-10-13 Matsushita Electric Ind Co Ltd 通信制御方法及び通信制御装置
JP2009141466A (ja) * 2007-12-04 2009-06-25 Panasonic Corp 映像ストリーム受信機

Also Published As

Publication number Publication date
US9749203B2 (en) 2017-08-29
US20150281014A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
CA2973991C (en) Determining link conditions of a client lan/wan from measurement point to client devices and application servers of interest
JP6015509B2 (ja) パケット解析プログラム、パケット解析方法、パケット解析装置、およびパケット解析システム
US7945661B2 (en) Real time monitoring of TCP flows
US10178204B2 (en) Information processing method and device
US9253669B2 (en) Network analysis method, information processing device, and computer-readable recording medium
CN114584485B (zh) 检测边缘网络质量的方法、装置、设备和计算机可读存储介质
Piratla et al. Metrics for packet reordering—a comparative analysis
JP6455135B2 (ja) パケット抽出装置、パケット抽出プログラムおよびパケット抽出方法
JP2015195511A (ja) パケット解析プログラム、パケット解析装置およびパケット解析方法
TWI658715B (zh) 通信裝置、可用頻寬計算系統、可用頻寬計算方法及程式
JP2015023463A (ja) パケット解析装置、パケット解析方法、及びパケット解析プログラム
JP4204053B2 (ja) パケット交換網の品質劣化箇所の切り分け方法およびその装置、ならびにそのプログラムと記録媒体
JP5958355B2 (ja) 分析装置、分析方法及び分析プログラム
JP7003467B2 (ja) パケット分類プログラム、パケット分類方法およびパケット分類装置
EP3100413B1 (en) Reliable network probing session
Mathis et al. Model-Based Metrics for Bulk Transport Capacity
US10880414B2 (en) Packet analysis method and information processing apparatus
Schulte et al. I'll be a bit late—packet reordering in mobile networks
Piratla et al. A comparative analysis of packet reordering metrics
Bąk et al. Analysis of TCP Connection Performance Using Emulation of TCP State
KR100870619B1 (ko) 무선 네트워크에서 패킷 손상 정보를 사용하는 tcp혼잡제어방법
Schulte et al. On detecting TCP path saturation in LTE networks
LAL et al. Packet Loss Detection Using Constant Packet Rearranging
JP2003209574A (ja) Tcpスループット算出方法及びその装置、tcpスループット算出プログラム
Hurtig et al. Emulation Support for Advanced Packet Reordering Models

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171017

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171208

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180417

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20180828