JP5292444B2 - パケットロス率推定装置及び方法及びプログラム - Google Patents

パケットロス率推定装置及び方法及びプログラム Download PDF

Info

Publication number
JP5292444B2
JP5292444B2 JP2011167681A JP2011167681A JP5292444B2 JP 5292444 B2 JP5292444 B2 JP 5292444B2 JP 2011167681 A JP2011167681 A JP 2011167681A JP 2011167681 A JP2011167681 A JP 2011167681A JP 5292444 B2 JP5292444 B2 JP 5292444B2
Authority
JP
Japan
Prior art keywords
packet
flow
network
sequence number
storage means
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.)
Active
Application number
JP2011167681A
Other languages
English (en)
Other versions
JP2012186780A (ja
Inventor
琢也 東條
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011167681A priority Critical patent/JP5292444B2/ja
Publication of JP2012186780A publication Critical patent/JP2012186780A/ja
Application granted granted Critical
Publication of JP5292444B2 publication Critical patent/JP5292444B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、パケットロス率推定装置及び方法及びプログラムに係り、特に、TCP(Transmission Control Protocol)を用いて通信を行うIP(Internet Protocol)ネットワークにおいて、ネットワークのパケットロス率を推定するためのパケットロス率推定装置及び方法及びプログラムに関する。
IPネットワークのパケットロス率を測定する方法は、大きく分けてパッシブ型とアクティブ型の二つに分けられる。パッシブ型は、ネットワークを流れるパケットの情報から測定する方法で、アクティブ型はネットワークに試験パケットを流すことで測定する方法である。
アクティブ型とパッシブ型の測定には、それぞれ様々な方法が提案されているが、特にパッシブ型の測定方法の一つとして、TCPのシーケンス番号の情報を元にネットワークのパケットロス率を推定する方法がある。TCPは双方向の通信プロトコルであり、データパケットと受信確認のためのACKパケットから構成される。パッシブ型の測定方法として、TCPのデータパケットに着目し、データパケットのシーケンス番号を監視し、シーケンス番号の重複、番号飛びを検出し、独自の補正(再送パケットはパケットロスのカウントの母数に加えない等)を加えることによって、測定ポイントの前後のネットワーク(TCP送信端末〜測定ポイント、測定ポイント〜TCP受信端末)のパケットロス率を推定する方法がある(例えば、非特許文献1参照)。
"A Passive Method for Estimating End-to-End TCP Packet Loss", Peter Benko and Andras Veres, IEEE GLOBECOM 2002, vol.3, p.2609-2613.
パケットロス率の推定精度は、上記の非特許文献1の評価によると、分析に用いるデータ量とネットワークの実際のパケットロス率に依存する特徴がある。測定ポイント〜TCP受信端末の推定においては、パケットロス率10-3程度のネットワークにおいては、測定誤差が0.2〜0.6(20〜60%)になることが文献の中で示されている(非特許文献1中のFig4・右下の図)。また、文献1「Dynamic Performance Limits of the Benko-Veres Passive TCP Packet Loss Estimation Algorithm", Claudio Favi and Grenville Armitage, ATNAC 2004, p.336-340.」において同じアルゴリズムで評価した結果があるが、非特許文献1の評価結果と同様に、10-3のパケットロス率では10,000パケットのデータ量を用いても約50%程度の誤差が出ることが示されている(同文献1中のFig5・0.001のグラフ)。国内のインターネットにおいては、パケットロス率が10-3程度であると言われており、非特許文献1のアルゴリズムを用いて推定した場合、最大で60%程度の誤差が出ることになる。誤差60%は非常に大きく、精度の向上が必要である。
非特許文献1の方法では、TCPのデータパケットの情報のみを用いて推定を行っているが、データパケットから得られる情報は限られており、同じ方法で大幅な精度向上を行うのは困難であると考えられる。TCPは双方向の通信プロトコルであり、受信端末から送信端末に送られるACKパケットには正常に受信できたパケットのシーケンス番号の情報が含まれる。非特許文献1の方法において誤差が大きいのは、測定ポイント〜TCP受信端末の推定であり、誤差を大きくしている要因の一つがTCP送信端末のタイムアウト処理と考えられている。非特許文献1の方法では、同じシーケンス番号を持つデータパケットが複数回転送されてきた場合、ネットワークにおけるパケットロスが原因で再送されたものであると考える。しかし、実際には、TCPの送信端末は、データパケットの送信後一定の条件を満たすと、タイムアウト処理として、同じパケットの再送を行う。この再送によって、ネットワークでパケットロスが起きていないにも関わらず、パケットロスとカウントしてしまい、誤差を大きくする原因になっていると考えられている。
本発明は、上記の点に鑑みなされたもので、タイムアウトによるパケットロスの誤判定を改善し、パケットロス率の推定精度を向上させることが可能なパケットロス率推定装置及び方法及びプログラムを提供することを目的とする。
上記の課題を解決するために、本発明は、端末群がネットワークA及びネットワークBを介して、TCP通信を行うIPネットワークにおいて、該ネットワークのパケットロス率を推定するパケットロス率推定装置であって、
前記ネットワークAと前記ネットワークB間を流れるフローと該フローの受信データパケットが流れる方向を検出し、フロー記憶手段に格納すると共に、該受信データパケットから受信データパケット情報とACKパケット情報を取り出して出力するフロー処理手段と、
前記ACKパケット情報に受信確認済みであるSACKパケットが含まれている場合には、SACKパケットのシーケンス番号をSACK番号記憶手段に格納するACKパケット処理手段と、
前記データパケット情報、前記フロー記憶手段、前記SACK番号記憶手段を参照することにより、当該受信データパケットのシーケンス番号の順序がシーケンスになっているか否かの判定、当該パケットが再送パケットか否かの判定、当該受信パケットが重複パケットか否か、及び、重複パケットである場合に送信端末がタイムアウトにより再送されたパケットか否かを判定し、判定結果に基づいてフロー方向に対応するネットワークのパケットロスをカウントするデータパケット処理手段と、を有する。
また、前記データパケット処理手段は、
前記データパケット情報から当該受信パケットのシーケンス番号の順序がシーケンスになっているか否かを判定し、欠落しているシーケンス番号がある場合は、欠落しているシーケンス番号をギャップ記憶手段に格納するギャップ検出手段と、
前記ギャップ記憶手段を参照して該ギャップ記憶手段に前記受信データパケットのシーケンス番号がある場合は、該受信データパケットが再送パケットと判定して、前記フロー記憶手段を参照してフロー方向に対応させてパケットロス数記憶手段のカウント値をカウントアップする再送パケットチェック手段と、
前記受信パケットのシーケンス番号が、前記フロー記憶手段に格納されているフローの最終シーケンス番号以下で、かつ、前記ギャップ記憶手段に含まれておらず、かつ、前記SACK番号記憶手段に含まれていない場合のみ、重複パケットと判定して、前記パケットロス数記憶手段のフロー方向に対応するカウント値をカウントアップする重複チェック手段と、を含む。
また、前記フロー処理手段は、
前記ネットワークAと前記ネットワークB間を流れるフローと該フローの受信データパケットが流れる方向に加え、該ネットワークBの片道の遅延時間を取得して前記フロー記憶手段に格納する手段を含み、
前記データパケット処理手段は、
前記フロー処理手段から、データパケット情報を取得すると、TCPシーケンス番号分析を行い、再送パケットを検出した場合には、再送パケット記憶手段に該パケットのシーケンス番号のLeft Edge、Right Edge、タイムスタンプを記録する手段を含み、
前記ACKパケット処理手段は、
ACKパケットが属するフローIDに基づいて前記再送パケット記憶手段を検索し、該ACKパケットもしくはSACKパケットに含まれる受信確認済みのシーケンス番号がある場合には、現在時刻、前記フロー記憶手段の前記ネットワークBの片道の遅延時間、該再送パケット記憶手段の前記タイムスタンプを取得して、
(現在時刻−ネットワークBの片道遅延時間)<タイムスタンプ
が成立するとき、前記パケットロス数記憶手段の前記カウント値から1減算する手段を含む。
上記のように、本発明によれば、ACKパケットを用い、ACKパケットによって受信確認されたパケットが再度送られてきた場合(SACK番号記憶手段に受信パケットのシーケンス番号が存在する場合)には、TCP送信端末がタイムアウトで再送したパケットであり、パケットロスではないと判断することにより、パケットロス率の推定精度が向上する。
本発明で想定するネットワークの構成図である。 本発明の第1の実施の形態におけるパケットロス率推定装置のブロック構成図である。 本発明の第1の実施の形態におけるフローテーブルの例である。 本発明の第1の実施の形態におけるデータパケット情報の例である。 本発明の第1の実施の形態におけるACKパケット情報の例である。 本発明の第1の実施の形態におけるTCPデータパケット処理部の処理のフローチャートである。 本発明の第1の実施の形態におけるパケットロス数テーブルの例である。 本発明の第1の実施の形態におけるギャップ番号テーブルの例である。 本発明の第1の実施の形態におけるSACK番号テーブルの例である。 本発明の第1の実施の形態におけるTCP ACKパケット処理部の処理のフローチャートである。 本発明の第1の実施の形態における測定ポイントの両側のパケットロス率を推定するアルゴリズムである。 本発明の第1の実施の形態と第2の実施の形態の差異を示す図である。 本発明の第2の実施の形態におけるTCPの3wayハンドシェイクの例である。 本発明の第2の実施の形態におけるフローテーブルの例である。 本発明の第2の実施の形態におけるパケットロス率推定装置のブロック構成図である。 本発明の第2の実施の形態における再送パケットテーブルの例である。 本発明の第2の実施の形態におけるTCP ACKパケット処理部の処理のフローチャートである。
以下図面と共に、本発明の実施の形態を説明する。
従来、IPネットワークのパケットロス率を測定する方法において、パッシブ型としてTCPのデータパケットのシーケンス番号を監視し、重複、番号飛びを検出し、測定ポイントの前後のネットワークのパケットロス率を推定していたが、誤差が非常に大きくなるという問題があった。それは、TCPの送信端末は、データパケット送信後一定の条件を満たすとタイムアウト処理として同じパケットの再送を行うため、パケットロスが発生していないも関わらず、パケットロスとカウントしてしまうことが原因になっていると考えられる。
そこで、本発明では、上記の問題を解決するために、TCPのACKパケットの情報を用いる。ACKパケットには、TCP受信端末が正常に受信できたパケットの情報が含まれており、ACKパケットによって受信確認されたパケットが後から再度送られてきた場合には、TCP送信端末がタイムアウトで再送したパケットであり、ネットワークにおけるパケットロスではないと判断することができる。この考え方を取り入れることで、非特許文献1に比べてパケットロス率の推定精度の向上が見込める。ACKパケットに含まれる情報としては、TCPの標準仕様(RFC793)で規定されている" Acknowledgment Number"と、オプションとしてRFC2018にて規定されている" SACK option"がある。いずれも正常に受信できたパケットのシーケンス番号を伝達するための規定であり、タイムアウトによるパケットロスの誤判定の改善に用いることができる。
図1は、本発明で想定するネットワークの構成を示したものである。
同図に示すシステムは、複数の端末群100、200がネットワークA、及びネットワークBを介してTCP通信を行う。ネットワークAとネットワークB間に通信データをコピーする装置(ネットワークスイッチのポートミラーリング機能、タップ装置等)を置き、端末100と端末200の間でやり取りされるパケットのコピーがパケットロス率推定装置300に転送されるように接続する。パケットロス率推定装置300では、ネットワークAとネットワークBの間を流れるパケットを分析することにより、ネットワークAとネットワークBのパケットロス率の推定を行う。
[第1の実施の形態]
図2は、本発明の第1の実施の形態におけるパケットロス率推定装置の構成を示す。
同図に示すパケットロス率推定装置300Aは、フロー処理部11、TCPデータパケット処理部12、TCP ACKパケット処理部13、ギャップ番号テーブル14、SACK番号テーブル15、パケットロス数テーブル16、フローテーブル17を有する。このうち、ギャップ番号テーブル14、SACK番号テーブル15、パケットロス数テーブル16、フローテーブル17は、メモリやハードディスク等の記憶媒体である。
以下の説明において、ネットワークAからネットワークBへ流れるパケット、ネットワークBからネットワークAへ流れるパケットは、それぞれパケットが流れる方向が識別できるように、例えば別回線で接続する等して、フロー処理部11に転送されるものとする。
フロー処理部11では、受信したパケットのIPヘッダ、及びTCPヘッダから、下記の情報で一意に識別できるものをフローとして検出し、フローテーブル17を参照し、当該フローテーブル17に既に登録されているフローであれば、フローIDを取得し、登録されていなければユニークなフローIDを新たに付与して、図3に示すように、フローテーブル17に登録する。
・送信元IPアドレス(Source Address)
・送信先IPアドレス(Destination Address)
・送信元TCPポート番号(Source Port)
・送信先TCPポート番号(Destination Port)
・フローの方向
上記のフローの方向は、例えば、データパケットが流れる方向を基準にして、ネットワークAからネットワークBに流れる場合は"1"、ネットワークBからネットワークAに流れる場合は"0"というような識別番号を設定する。
TCPは双方向の通信プロトコルであるため、一つのパケットに、データパケットとしてのシーケンス番号と受信確認のためのACKシーケンス番号の両方が含まれる。
フロー処理部11は、ネットワークAからネットワークBへの受信パケットから図4に示すデータパケット情報を取り出して、TCPデータパケット処理部12に渡す。また、ネットワークBからネットワークAへのパケットから、図5に示すACKパケット情報を取り出して、TCP ACKパケット処理部13に渡す。
TCPデータパケット処理部12は、
a)パケットシーケンス番号が欠落しているかのチェック;
b)受信パケットが再送パケットか否かのチェック;
c)受信パケットが重複パケットか否かのチェック;
を行う。
a)のパケットシーケンス番号が飛んでいるか否かのチェックは、フローの最終シーケンス番号と受信パケットのシーケンス番号が連続しているかをチェックする。具体的には、前のパケットが"1〜999"、到着パケットが"2000〜2999"である場合には、"1000〜1999"が欠落していることになる。この場合、欠落している"1000〜1999"をギャップ番号テーブル14に格納する。この場合は、左端を"1000"、右端を"1999"としてギャップ番号テーブル14に設定する。
b)の受信パケットが再送パケットか否かのチェックは、受信パケットのシーケンス番号が未受信の番号かをチェックする。具体的には、ギャップ番号テーブル14に記録されていれば欠落(未受信)と判定する。未受信であれば、観測ポイント(当該パケットロス率推定装置300Aを設置している地点)よりも前でパケットロスが発生し、そのパケットが再送されてきたものと見做す。例えば、ネットワークA⇒ネットワークBのフローであれば、ネットワークAのパケットロスと見做し、ネットワークB⇒ネットワークAのフローであれば、ネットワークBのパケットロスと見做してカウントし、パケットロス数テーブル16に格納する。
c)の受信パケットが重複パケットか否かのチェックは、既に受信済みのシ−ケンス番号のパケットが再度送られてきたかをチェックし、再度送られてきたら重複パケットと判断する。判断の具体的な方法としては、フローテーブル17のフローの最終シーケンス番号(受信済みパケットで最も大きいシーケンス番号)よりも小さく(=古い番号のパケットである)、ギャップ番号テーブル14に含まれていないもの(=未受信パケットではない)を重複パケットと見做す。重複パケットであるということは、観測ポイントよりも後でパケットロスが起きたと見做し、ネットワークA⇒ネットワークBのフローであれば、ネットワークBのパケットロス、ネットワークB⇒ネットワークAのフローであれば、ネットワークAのパケットロスとしてカウントし、パケットロス数テーブル16に格納する。但し、重複パケットであっても、既に受信端末によってパケットの受信確認がされている場合(ACKまたはSACKパケットが送信され、観測ポイントに届いている場合)は、観測ポイントよりも後でパケットロスが起きたことによる再送ではなく、送信端末がTCPのタイムアウト等により再送されたパケットであるため、ネットワークのパケットロスとしてはカウントしないようにする。
具体的には、TCP データパケット処理部12では以下に示す手順でデータパケット情報を処理する。
図6は、本発明の第1の実施の形態におけるTCPデータパケット処理部の処理のフローチャートである。
ステップ101) TCPデータパケット処理部12は、フロー処理部11からデータパケット情報を取得する。データパケット情報に含まれるフローIDに基づいて、フローテーブル17を検索し、フロー情報を取得する。
ステップ102) フローIDに基づいて、図7に示すパケットロステーブル16を検索し、該当するフローIDの転送パケット数に1加える。
ステップ103) データパケット情報に含まれるシーケンス番号(受信シーケンス番号)が、フローテーブル16の最終シーケンス番号より大きく、かつ、最終シーケンス番号に1を加算した値と受信シーケンス番号が等しい場合には、シーケンス番号が欠落しているものとしてステップ104に移行し、等しくない場合はステップ105に移行する。
ステップ104) 図8に示すギャップ番号テーブル14にステップ103の欠落している番号(ギャップ)を記録する。ギャップ番号テーブル14の「Left Edge」には、最終シーケンス番号に1加えた値を、「Right Edge」には受信シーケンス番号から1を引いた値を記録する。
ステップ105) ギャップ番号テーブル14に受信パケットのシーケンス番号が含まれるかを判定し、含まれる場合はステップ106に移行し、含まれない場合はステップ108に移行する。
ステップ106) ステップ105において含まれると判定された場合はパケットロスと見做し、当該パケットロスをパケットロス数テーブル16に記録する。具体的には、フロー方向が、ネットワークAからネットワークBであれば(識別番号"1")、パケットロス数テーブル17のフローIDに対応するネットワークAのパケットロス数に1を加算する。一方、フロー方向がネットワークBからネットワークAであれば(識別番号"0")、パケットロス数テーブル17のフローIDに対応するネットワークBのパケットロス数に1を加算する。
ステップ107) ギャップ番号テーブル14から区間(受信パケットのシーケンス番号〜受信パケットのシーケンス番号+データ長−1)を除く。具体的には、ギャップ番号テーブル14のLeft Edgeもしくは、Right Edgeの修正による除去、または、該当エントリを削除して、除去区間を含まないように新たに2つのエントリを作成し、処理を終了する。
ステップ108) ステップ105において、ギャップ番号テーブル14に受信パケットのシーケンス番号が存在しない場合には、パケットロスではないと見做し、パケットの重複受信のチェックを行う。具体的には、受信パケットのシーケンス番号が最終シーケンス番号(フローテーブル)以下、かつ、受信パケットのシーケンス番号が最終ACKシーケンス番号(フローテーブル)より大きく、かつ、受信パケットのシーケンス番号が図9に示すSACK番号テーブル15に登録されていない場合は、ステップ109に移行し、登録されている場合には受信端末からの受信確認パケット(SACKパケット)を受信しているため、ステップ110に移行する。
ステップ109) パケットロスをパケットロス数テーブル16に記録する。具体的には、フロー方向がネットワークAからネットワークBであれば、パケットロス数テーブル16の該当フローIDのネットワークBのパケットロス数に1加算する。フロー方向が根とワークBからネットワークAであれば、パケットロス数テーブル16の該当フローIDのネットワークAのパケットロス数に1加算し、処理を終了する。
ステップ110) フローテーブル14の最終シーケンス番号を更新する。具体的には、フローテーブル14の該当号フローIDの最終シーケンス番号を、シーケンス番号+データ長−1として更新し、パケットカウンタ数をカウントアップせずに処理を終了する。
TCP ACKパケット処理部13は、ACKパケット、SACKパケットの受信が確認されると、確認されたACKパケットのシーケンス番号をフローテーブル17に格納し、その中にSACKパケットが含まれている場合はSACKの情報をSACK番号テーブル15に格納する。
次に、TCP ACKパケット処理部13がフロー処理部11から、ネットワークBからネットワークAへのパケット取り出されたACKパケット情報を取得した場合の処理を説明する。
図10は、本発明の第1の実施の形態におけるTCK ACKパケット処理部の処理のフローチャートである。
ステップ201) TCK ACKパケット処理部13は、フロー処理部11から取得したACKパケット情報のフローIDに基づいて、フローテーブル17のACKシーケンス番号をACKパケット情報として取得したACKシーケンス番号で更新する。
ステップ202) 取得したACKパケット情報にSACKの情報が含まれているかを判定し、含まれている場合にはステップ203に移行し、含まれていない場合は当該処理を終了する。
ステップ203) SACK情報が含まれている場合には当該SACK情報をSACK番号テーブル15に記録する。具体的には、ACKパケット情報のフローID、SACK Left Edge(N),SACK Right (n)の情報をそれぞれSACK番号テーブル15のフローID、Left Edge、Right Edgeとして追加する(n=1〜4)。
ステップ204) 古いSACK情報をSACK番号テーブル15から削除する。具体的には、ACKパケット情報のACKシーケンス番号より小さい番号のLeft Edge、及び、Right Edgeを持つエントリをSACK番号テーブル15から削除する。
上記の処理により、TCPのデータパケットがTCPデータパケット処理部12で処理される毎に、フローがネットワークA、ネットワークBにおいてロスしたと想定されるパケット数とパケットロス率(=パケットロス数/転送パケット数)を算出することができる。
本実施の形態では、図11に示すように、TCP受信端末から送られるACKパケットのシーケンス番号を記録しておき、重複パケットが既にACKパケットにより受信確認されているパケットであることが確認できれば、ネットワークBにおいてパケットロスが発生していないことが明らかであるため、TCP送信端末による誤再送と見做し、ネットワークBのパケットロスとしてはカウントしない。
[第2の実施の形態]
前述の第1の実施の形態では、図12(A)に示すように、測定ポイントを通過したACKパケットを記録し、再送パケットと記録済みのACKパケットを照合するため、ACKパケットが再送パケットより先に通過することが条件であった。これに対し、本実施の形態では、図12(B)に示すように、測定ポイントとTCP受信端末の遅延時間を予め測定しておき、再送パケットより後にACKパケットが到着した場合でも、遅延時間からACKパケットの送信時刻を推定し、再送パケットの通過時刻とACKパケットの送信時刻の比較で順序関係を決める。再送パケットよりACKパケットの方が早く送信されたとみなした場合には、ACKパケットをロス率の補正に用いる。つまり、再送パケットはタイムアウト等による誤送信とみなし、ネットワークBのパケットロスとしてカウントしない。
したがって、本発明では、測定端末とTCP受信端末の遅延時間に基づいて、パケットの順序関係を補正するため、遅延時間の測定が必要になる。遅延時間の測定方法の一つとして、TCP3wayハンドシェイクの例を示す。
TCPは双方向の通信プロトコルであるため、1つのコネクションに2つ(双方向)のフローが含まれる。このため、TCP端末pからpに対してTCPコネクション接続を開始した場合、図13に示すように、SYNとSYN+ACKのパケットのタイムスタンプTs,Teを用いて、測定ポイントとTCP端末pの片道遅延時間を(Te−Ts)/2として算出し、p→pのフローにおけるネットワークBの片道遅延時間として用いる。なお、測定ポイントとTCP端末間の遅延時間は対称であるものとする。
→pのフローにおけるネットワークBの片道遅延時間は、SYN+ACKとACKのタイムスタンプから同様に(Te−Ts)/2にて算出する。算出した片道遅延時間は、フロー処理部11により図14に示すようにフローテーブル17に格納される。同図に示すフローテーブル27は、図3のフローテーブルにネットワークBの片道遅延時間のデータ項目を追加した構成である。
フローテーブル27の片道遅延時間を用いてパケットの順序関係を補正するために、本実施の形態では、再送パケットに対してタイムスタンプを記録する。タイムスタンプ記録ため、図15に示すように、パケットロス率推定装置300Bに再送パケットテーブル28を備える。
TCP データパケット処理部12は、フロー処理部11からデータパケット情報を取得すると、TCPシーケンス番号分析を行う。これにより、再送パケットを検出した場合には、図16に示すように、再送パケットテーブル28にパケットのシーケンス番号のLeft Edge、Right Edge、現在時刻(タイムスタンプ)を記録する。再送パケットの検出方法としては、受信パケットが重複パケットか否かのチェックは、既に受信済みのシ−ケンス番号のパケットが再度送られてきたかをチェックし、再度送られてきたら重複パケットと判断する。判断の具体的な方法としては、フローテーブル27のフローの最終シーケンス番号(受信済みパケットで最も大きいシーケンス番号)よりも小さく(=古い番号のパケットである)、ギャップ番号テーブル14に含まれていないもの(=未受信パケットではない)を重複パケットと見做す。重複パケットであるということは、観測ポイントよりも後でパケットロスが起きたと見做し、ネットワークA⇒ネットワークBのフローであれば、ネットワークBのパケットロス、ネットワークB⇒ネットワークAのフローであれば、ネットワークAのパケットロスとしてカウントする。
ここで、パケットの順序関係の補正により、ACKが再送パケットの後に到着した場合に対応できるようにするため、本実施の形態では、TCP ACKパケット処理部13では、図10の処理に加えて、以下の処理を行う。
図17は、本発明の第2の実施の形態におけるTCP ACKパケット処理部の処理のフローチャートである。同図において、図10と同一の処理部分には図10と同一のステップ番号を付し、その説明を省略する。
TCP ACKパケット処理部13では、フロー処理部11からACKパケット情報を取得すると、ACKパケットが属するフローIDから、再送パケットテーブル28を検索し、SACKパケットに含まれるシーケンス番号をチェックする(ステップ301)。当該チェックにおいて、(SACKのLeft Edge≦再送パケットテーブルのLeft Edge) and (再送パケットテーブルのRight Edge≦ SACKのRight Edge)であれば(ステップ302、Yes)、パケットの順序関係を補正する(ステップ303)。次に、ACKパケットが属するフローIDから再送パケットテーブル28を検索してACKパケットに含まれるシーケンス番号をチェックする(ステップ304)。当該チェックにおいて、再送パケットテーブルのRight Edge < ACKシーケンス番号であるとき(ステップ305,Yes)、以下に示すパケットの順序関係の補正を行う(ステップ306)。なお、前述の図10のステップ202において、ACKパケット情報にSACKの情報が含まれていない場合(ステップ202,No)は、ステップ304の処理に移行するものとする。
パケットの順序関係の補正を以下の式で行う。
(現在時刻−フローテーブルのネットワークBの片道遅延時間)<再送パケットテーブルのタイムスタンプ
上記の式が成り立つならば、再送パケットが測定ポイントを通過する前に、ACKパケットが送信されたと見做し(=最初のパケットは受信端末に届いており、ネットワークでパケットロスは発生していない)、既にパケットロスとしてカウントされている分を補正するため、パケットロス数テーブル16の該当フローIDの行において、ネットワークBのパケットロス数から1を減算する。
<評価>
本発明をネットワークシミュレータNS-2(http://www.isi.edu/nsnam/ns/)を用いて評価した結果を示す。評価では、2台の端末が2つのネットワークA・Bを経由してTCP通信を行い、ネットワークA・Bでパケットロスがランダムに発生するシミュレーション環境を構築した。シミュレーションでは、
端末1→ネットワークA→ネットワークB→端末2
の経路でTCPのデータパケットを流し、ネットワークA・Bの間を流れるパケットに対して、本発明のアルゴリズムを用いてネットワークBにおけるパケットロス率を推定した。また、シミュレーションは同一の条件で10回行い、推定誤差の最大値を結果とした。分析対象のパケットは約10,000パケットになるようにした。以下に評価結果を示す。
Figure 0005292444
非特許文献2では、分析対象パケット数10,000、ネットワークのパケットロス率10-3の条件において約50%程度の推定誤差が出ていたのに対して、本発明のアルゴリズムでは最大でも誤差が2%程度である結果が得られ、ACK及びSACKの情報を用いることで大幅な精度向上を達成することが確認できた。
なお、上記の実施の形態におけるパケットロス率推定装置の各構成要素の動作をプログラムとして構築し、パケットロス率推定装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用可能である。
11 フロー処理部
12 TCPデータパケット処理部
13 TCP ACKパケット処理部
14 ギャップ番号テーブル
15 SACK番号テーブル
16 パケットロス数テーブル
17 フローテーブル
27 フローテーブル
28 再送パケットテーブル
100,200 端末
300 パケットロス率推定装置

Claims (7)

  1. 端末群がネットワークA及びネットワークBを介して、TCP(Transmission Control Protocol)通信を行うIP(Internet Protocol)ネットワークにおいて、該ネットワークのパケットロス率を推定するパケットロス率推定装置であって、
    前記ネットワークAと前記ネットワークB間を流れるフローと該フローの受信データパケットが流れる方向を検出し、フロー記憶手段に格納すると共に、該受信データパケットから受信データパケット情報とACKパケット情報を取り出して出力するフロー処理手段と、
    前記ACKパケット情報に受信確認済みであるSACKパケットが含まれている場合には、該SACKパケットのシーケンス番号をSACK番号記憶手段に格納するACKパケット処理手段と、
    前記データパケット情報、前記フロー記憶手段、前記SACK番号記憶手段を参照することにより、前記データパケット情報から当該受信データパケットのシーケンス番号の順序がシーケンスになっているか否か、当該パケットが再送パケットか否か、当該受信パケットが重複パケットか否か、及び、重複パケットである場合に送信端末がタイムアウトにより再送されたパケットか否かを判定し、判定結果に基づいてフロー方向に対応するネットワークのパケットロスをカウントするデータパケット処理手段と、
    を有することを特徴とするパケットロス率推定装置。
  2. 前記データパケット処理手段は、
    前記データパケット情報から当該受信パケットのシーケンス番号の順序がシーケンスになっているか否かを判定し、欠落しているシーケンス番号がある場合は、欠落しているシーケンス番号をギャップ記憶手段に格納するギャップ検出手段と、
    前記ギャップ記憶手段を参照して該ギャップ記憶手段に前記受信データパケットのシーケンス番号がある場合は、該受信データパケットが再送パケットと判定して、前記フロー記憶手段を参照してフロー方向に対応させてパケットロス数記憶手段のカウント値をカウントアップする再送パケットチェック手段と、
    前記受信パケットのシーケンス番号が、前記フロー記憶手段に格納されているフローの最終シーケンス番号以下で、かつ、前記ギャップ記憶手段に含まれておらず、かつ、前記SACK番号記憶手段に含まれていない場合のみ、重複パケットと判定して、前記パケットロス数記憶手段のフロー方向に対応するカウント値をカウントアップする重複チェック手段と、を含む
    請求項1記載のパケットロス率推定装置。
  3. 前記フロー処理手段は、
    前記ネットワークAと前記ネットワークB間を流れるフローと該フローの受信データパケットが流れる方向に加え、該ネットワークBの片道の遅延時間を取得して前記フロー記憶手段に格納する手段を含み、
    前記データパケット処理手段は、
    前記フロー処理手段から、データパケット情報を取得すると、TCPシーケンス番号分析を行い、再送パケットを検出した場合には、再送パケット記憶手段に該パケットのシーケンス番号のLeft Edge、Right Edge、タイムスタンプを記録する手段を含み、
    前記ACKパケット処理手段は、
    ACKパケットが属するフローIDに基づいて前記再送パケット記憶手段を検索し、該ACKパケットもしくはSACKパケットに含まれる受信確認済みのシーケンス番号がある場合には、現在時刻、前記フロー記憶手段の前記ネットワークBの片道の遅延時間、該再送パケット記憶手段の前記タイムスタンプを取得して、
    (現在時刻−ネットワークBの片道遅延時間)<タイムスタンプ
    が成立するとき、前記パケットロス数記憶手段の前記カウント値から1減算する手段を含む請求項1または2記載のパケットロス率推定装置。
  4. 端末群がネットワークA及びネットワークBを介して、TCP(Transmission Control Protocol)通信を行うIP(Internet Protocol)ネットワークにおいて、該ネットワークのパケットロス率を推定するパケットロス率推定方法であって、
    フロー処理手段が、前記ネットワークAと前記ネットワークB間を流れるフローと該フローの受信データパケットが流れる方向を検出し、フロー記憶手段に格納すると共に、該受信データパケットから受信データパケット情報とACKパケット情報を取り出して出力するフロー処理ステップと、
    ACKパケット処理手段が、前記ACKパケット情報に受信確認済みであるSACKパケットが含まれている場合には、該SACKパケットのシーケンス番号を対応付けてSACK番号記憶手段に格納するACKパケット処理ステップと、
    データパケット処理手段が、前記データパケット情報、前記フロー記憶手段、前記SACK番号記憶手段を参照することにより、前記データパケット情報から当該受信データパケットのシーケンス番号の順序がシーケンスになっているか否か、当該パケットが再送パケットか否か、当該受信パケットが重複パケットか否か、及び、重複パケットである場合に送信端末がタイムアウトにより再送されたパケットか否かを判定し、判定結果に基づいてフロー方向に対応するネットワークのパケットロスをカウントするデータパケット処理ステップと、
    を行うことを特徴とするパケットロス率推定方法。
  5. 前記データパケット処理ステップにおいて、
    前記データパケット情報から当該受信パケットのシーケンス番号の順序がシーケンスになっているか否かを判定し、欠落しているシーケンス番号がある場合は、欠落しているシーケンス番号をギャップ記憶手段に格納するギャップ検出ステップと
    前記ギャップ記憶手段を参照して該ギャップ記憶手段に前記受信データパケットのシーケンス番号がある場合は、該受信データパケットが再送パケットと判定して、前記フロー記憶手段を参照してフロー方向に対応させてパケットロス数記憶手段のカウント値をカウントアップする再送パケットチェックステップと、
    前記受信パケットのシーケンス番号が、前記フロー記憶手段に格納されているフローの最終シーケンス番号以下で、かつ、前記ギャップ記憶手段に含まれておらず、かつ、前記SACK番号記憶手段に含まれていない場合のみ、重複パケットと判定して、前記パケットロス数記憶手段のフロー方向に対応するカウント値をカウントアップする重複チェックステップと、
    を行う請求項4記載のパケットロス率推定方法。
  6. 前記フロー処理ステップにおいて、
    前記ネットワークAと前記ネットワークB間を流れるフローと該フローの受信データパケットが流れる方向に加え、該ネットワークBの片道の遅延時間を取得して前記フロー記憶手段に格納し、
    前記データパケット処理ステップにおいて、
    前記フロー処理手段から、データパケット情報を取得すると、TCPシーケンス番号分析を行い、再送パケットを検出した場合には、再送パケット記憶手段に該パケットのシーケンス番号のLeft Edge、Right Edge、タイムスタンプを記録する手段を含み、
    前記ACKパケット処理ステップにおいて、
    ACKパケットが属するフローIDに基づいて前記再送パケット記憶手段を検索し、該ACKパケットもしくはSACKパケットに含まれる受信確認済みのシーケンス番号がある場合には、現在時刻、前記フロー記憶手段の前記ネットワークBの片道の遅延時間、該再送パケット記憶手段の前記タイムスタンプを取得して、
    (現在時刻−ネットワークBの片道遅延時間)<タイムスタンプ
    が成立するとき、前記パケットロス数記憶手段の前記カウント値から1減算する
    請求項4または5記載のパケットロス率推定方法。
  7. 請求項1乃至3のいずれか1項に記載のパケットロス率推定装置を構成する各手段としてコンピュータを機能させるためのパケットロス率推定プログラム。
JP2011167681A 2011-02-17 2011-07-29 パケットロス率推定装置及び方法及びプログラム Active JP5292444B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011167681A JP5292444B2 (ja) 2011-02-17 2011-07-29 パケットロス率推定装置及び方法及びプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011032656 2011-02-17
JP2011032656 2011-02-17
JP2011167681A JP5292444B2 (ja) 2011-02-17 2011-07-29 パケットロス率推定装置及び方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2012186780A JP2012186780A (ja) 2012-09-27
JP5292444B2 true JP5292444B2 (ja) 2013-09-18

Family

ID=47016418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011167681A Active JP5292444B2 (ja) 2011-02-17 2011-07-29 パケットロス率推定装置及び方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5292444B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11032449B2 (en) 2015-12-18 2021-06-08 Christina Schannath Glove-like device with ergonomically advantageously activatable camera integrated therein

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103796228B (zh) 2012-10-31 2018-09-11 中兴通讯股份有限公司 一种无线网络毛细管道性能评估方法及装置
JP5941853B2 (ja) * 2013-02-12 2016-06-29 株式会社日立製作所 パケット通信方法及び装置
CN104038845B (zh) * 2014-06-30 2017-10-17 新华三技术有限公司 报文传输方法及装置
CN113132171A (zh) * 2019-12-31 2021-07-16 华为技术有限公司 通信方法及终端设备、网络设备、采集器
CN112491871B (zh) * 2020-11-25 2023-07-28 北京宝兰德软件股份有限公司 一种tcp重组方法、装置、电子设备及存储介质
US20220417303A1 (en) 2021-06-28 2022-12-29 Tencent America LLC Techniques for monitoring encrypted streaming traffic using underlying transport metrics

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4254555B2 (ja) * 2004-01-23 2009-04-15 日本電信電話株式会社 ネットワーク品質の一点観測型測定方法及び装置
JP3931988B2 (ja) * 2004-08-26 2007-06-20 日本電気株式会社 ネットワーク品質計測方法、及び計測装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11032449B2 (en) 2015-12-18 2021-06-08 Christina Schannath Glove-like device with ergonomically advantageously activatable camera integrated therein

Also Published As

Publication number Publication date
JP2012186780A (ja) 2012-09-27

Similar Documents

Publication Publication Date Title
JP5292444B2 (ja) パケットロス率推定装置及び方法及びプログラム
US8493875B2 (en) System and method for estimation of round trip times within a TCP based data network
US7945661B2 (en) Real time monitoring of TCP flows
JP6015509B2 (ja) パケット解析プログラム、パケット解析方法、パケット解析装置、およびパケット解析システム
JP4924503B2 (ja) 輻輳検出方法、輻輳検出装置及び輻輳検出プログラム
JP4583312B2 (ja) 通信状況判定方法、通信状況判定システム及び判定装置
WO2017133014A1 (zh) Tcp传输流中基于接收端的网络性能检测方法及***
CN110391953B (zh) 提高tcp kpi计算准确度的方法
JP4311675B2 (ja) 品質劣化切り分け方法、及びその装置
JP5199224B2 (ja) フロー通信品質推定方法と装置およびプログラム
JP2015023463A (ja) パケット解析装置、パケット解析方法、及びパケット解析プログラム
JP5192451B2 (ja) ネットワーク品質算出システムと方法およびプログラム
Siekkinen et al. Root cause analysis for long-lived TCP connections
JP2015195511A (ja) パケット解析プログラム、パケット解析装置およびパケット解析方法
JP2019022052A (ja) パケット分類プログラム、パケット分類方法およびパケット分類装置
EP3100413B1 (en) Reliable network probing session
JP5557869B2 (ja) パケットロス数測定装置及び方法及びプログラム
JP2004140596A (ja) Tcp上のデータ転送における品質を推定する方法およびシステム
CN106341289B (zh) 一种网络包抓包过程的丢包比率估计方法及装置
Alcock et al. Passive detection of TCP congestion events
Lan et al. Passive overall packet loss estimation at the border of an ISP
JP6920835B2 (ja) 設備監視装置
Schulte et al. On detecting TCP path saturation in LTE networks
CN110401575A (zh) 一种tcp时延计算方法及提高tcp kpi计算准确度的方法
JP5537692B1 (ja) 品質劣化原因推定装置、品質劣化原因推定方法、品質劣化原因推定プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130529

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130610

R150 Certificate of patent or registration of utility model

Ref document number: 5292444

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350