JP4924503B2 - 輻輳検出方法、輻輳検出装置及び輻輳検出プログラム - Google Patents

輻輳検出方法、輻輳検出装置及び輻輳検出プログラム Download PDF

Info

Publication number
JP4924503B2
JP4924503B2 JP2008076954A JP2008076954A JP4924503B2 JP 4924503 B2 JP4924503 B2 JP 4924503B2 JP 2008076954 A JP2008076954 A JP 2008076954A JP 2008076954 A JP2008076954 A JP 2008076954A JP 4924503 B2 JP4924503 B2 JP 4924503B2
Authority
JP
Japan
Prior art keywords
packet
congestion
packets
group
loss
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
JP2008076954A
Other languages
English (en)
Other versions
JP2009232300A (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.)
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 JP2008076954A priority Critical patent/JP4924503B2/ja
Priority to US12/410,099 priority patent/US8593947B2/en
Publication of JP2009232300A publication Critical patent/JP2009232300A/ja
Application granted granted Critical
Publication of JP4924503B2 publication Critical patent/JP4924503B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • 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/12Discovery or management of network topologies
    • 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/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、輻輳を検出するための輻輳検出方法、輻輳検出装置及び輻輳検出プログラムに関する。
ネットワークサービスの安定運用のため、ネットワーク障害の要因の検出が求められている。ここで、ネットワーク障害の一つとして輻輳がある。輻輳とは、ネットワークの処理量以上の大量のトラヒックが流入することにより、例えばトラヒックの廃棄などが生じる状態を言う。この輻輳を検出するための方法の一つとして、Pingなどの計測パケットをネットワークに送出する方法がある。例えば、端末に計測パケットを送信して端末から応答があるかどうか、また端末からの応答時間など、計測パケットに対する応答を解析し、輻輳の有無を検出する。
また、特許文献1には、輻輳が発生した場合にはパケットの廃棄が行われることに基づいて、輻輳の有無や重輻輳、軽輻輳など輻輳の程度を判断する方法が開示されている。例えば、パケットロスの数やパケットロスが発生している区間の発生回数などを解析し、輻輳の程度を判断している。
特開2007-208571
しかし、計測パケットを送出する方法では、輻輳が発生しているかを検出するために計測パケットを送出することが、かえって輻輳を招いてしまう。
また、パケットロスの原因としては、輻輳以外にもネットワーク装置の設定ミス、回線や装置の故障などが挙げられる。単にパケットロスの数などにより輻輳か否かや輻輳の程度を検出する特許文献1の方法では、パケットロスの原因が輻輳であることを特定することができない。そのため、輻輳ではない場合でも輻輳が発生していると誤検出してしまう。
そこで、ネットワークに負荷を与えることなく精度良く輻輳を検出することができる技術を提供することを目的とする。
輻輳検出方法は、以下のステップを含む。
・ネットワーク上のパケットを取得するパケット取得ステップ。
・取得したパケットに基づいて、一連のパケットにより構成されるパケット群を抽出するパケット群抽出ステップ。
・前記パケット群におけるパケットロスを検出し、前記パケット群における前記パケットロスの発生箇所を特定するパケットロス検出ステップ。
・前記パケット群における前記パケットロスの発生箇所に基づいて、輻輳が発生しているか否かを判定する輻輳判定ステップ。
ネットワーク上に送出されているパケットを検出することで輻輳判定を行うため、輻輳を検出するための計測パケットを別途送出する必要が無い。よって、計測パケットの送出によるネットワークの混雑などネットワークに負荷を与えること無く輻輳判定を行うことができる。
ここで、輻輳とは通信量が増加してネットワークが混雑する状態を言い、輻輳が発生した場合には輻輳を回避するためにパケットが廃棄される。パケットが送信端末から受信端末に一連で送出される場合、その一連のパケット群の後方で輻輳が発生し易く、またその後方のパケットが廃棄され易い。上記輻輳検出方法では、輻輳が発生しているか否かを判定するにあたって、パケット群におけるパケットロスの発生箇所を参照するため、輻輳をより精度良く検出し誤検出を抑制することができる。
一連のパケット群が送信される区間の長さは、例えばTCP(Transmission Control Protocol)の場合はRTT(Round Trip Time)より短く設定される。輻輳検出方法では、このようなパケット群が連送される区間を用いて輻輳が発生しているか否かの判定を行うので、輻輳判定をリアルタイムに行うことができる。
なお、パケット群の抽出及びパケットロスの検出は順不同である。つまり、パケット群を抽出した後、パケット群内のパケットロスを検出しても良い。あるいは、まずパケットロスを検出した後、パケットロスを含むパケット群を抽出しても良い。
前述した輻輳検出方法を実行する輻輳検出装置、前記輻輳検出方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM(Compact Disc−Read Only Memory)、MO(Magneto Optical disk)、DVD(Digital Video Disc)、DVD−ROM、DVD−RAM(DVD−Random Access Memory)、BD(Blue-ray Disc)、半導体メモリを挙げることができる。前記コンピュータプログラムは、前記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
本発明によれば、ネットワークに負荷を与えることなく精度良く輻輳を検出することができる技術を提供するができる。
<第1実施形態例>
(1)全体構成
図1は、本発明の実施形態例に係る輻輳検出装置を含むネットワーク構成図の一例である。端末A、B、C、Dはネットワーク10に接続され、端末E、F、Gはネットワーク20に接続され、サーバA、B・・・は中継装置Aを介してネットワーク30に接続されている。ネットワーク10、20はネットワーク30を介して接続されており、端末A、B、C、D、E、F、GとサーバA又はB・・・間で通信を行う。輻輳検出装置40は中継装置Aを介してサーバA、B・・・に接続されており、端末A、B、C、D、E、F、GとサーバA、B・・・との間で送受信されるパケットを取得し、輻輳の有無を判定する。具体的には、輻輳検出装置40は、例えばスイッチ及びTAPなどの中継装置Aに接続され、端末間に流れるパケットを取得できるように設計されている。以下では、端末A〜GとサーバAとの間で送受信されるパケットに着目して説明する。
上記の各端末のアドレスはネットワーク部分及びホスト部分を含み、同一ネットワークに属する端末に割り当てられるアドレスは、ネットワーク部分が同一である。例えば、端末A、B、C、Dのアドレスのネットワーク部分は10.10.10であり、ホスト部分が10、11、12、13と変化する。また、端末E、F、Gのアドレスのネットワーク部分は20.20.20であり、ホスト部分が20、21、22と変化する。
(2)輻輳検出装置の機能構成
図2は輻輳検出装置の機能構成を示すブロック図である。輻輳検出装置40は輻輳判定を行うために、パケット取得部41、パケット情報取得部42、パケット情報DB43、パケットロス検出部44、パケット群抽出部45及び輻輳判定部46を含む。
パケット取得部41は、サーバAを介して送受信されるパケットを取得する。本実施形態では、端末A、B、C、D、E、F、GとサーバAとの間で送受信されるパケットを取得する。
パケット情報取得部42はパケットの種類を特定する。パケット情報取得部42は、パケット取得部41がパケットを取得した時刻を取得する。また、パケット情報取得部42は、パケットの種類に応じて、パケットの送信元アドレス及び送信先アドレスなどのパケット情報を取得する。パケット情報DB43は、パケット情報取得部42が取得したパケット情報を記憶する。
パケット群抽出部45は、パケット情報DB43のパケット情報を参照してパケット群を抽出する。パケット群とは、送信端末から一連で送信されるパケットにより構成されるグループである。
パケットロス検出部44は、パケット情報DB43のパケット情報を参照してパケットロスを検出する。
ここで、端末どうしが通信を行うためのプロトコルは種々存在しており、プロトコルの違いにより送受信されるパケットのパケット構成が異なる。よって、プロトコルの違いにより取得可能なパケット情報も異なり、パケットロスの検出方法及びパケット群の抽出方法も異なる。パケットロスの検出方法及びパケット群の抽出方法については後述する。
輻輳判定部46は、パケット群におけるパケットロスの発生箇所に基づいて、輻輳が発生しているか否かを判定する。ここで、輻輳とは通信量が増加してネットワークが混雑する状態を言い、輻輳が発生した場合には輻輳を回避するためにパケットが廃棄される。パケットが送信端末から受信端末に一連で送出される場合、その一連のパケット群の後方で輻輳が発生し易く、またその後方のパケットが廃棄され易い。輻輳判定部46は、パケットロスの発生箇所がパケット群の所定箇所よりも時間的に後方であることに基づいて輻輳であると判定する。輻輳の判定方法についても後述する。
(3)パケットロスの検出方法及びパケット群の抽出方法
プロトコルとしてIP(Internet Protocol)、RTP(Real-time Transport Protocol)、TCP(Transmission Control Protocol)を例に挙げて、各プロトコルでのパケットロスの検出方法及びパケット群の抽出方法を以下に説明する。
(3−1)IPの場合
(i)IPパケットの送信
元データがIPパケットの最大バイト数を超える場合は、元データは各IPパケットに分割されて送信される。図3は元データが分割されて複数のIPパケットが形成される様子を示す説明図であり、図4は複数のIPパケットが一連で送信される様子を示す説明図である。図3に示すように元データのサイズは14000バイトであり、各IPパケットが送信可能なデータの最大バイト数は1500バイトである。よって、元データは10個のIPパケットに分割されて送信される。このとき、IPパケットP1〜P9には1500バイトが格納され、IPパケットP10には500バイトが格納される。また、各IPパケットP1〜P10はIPヘッダを有している。例えば、送信端末である端末Aは、IPパケットP1〜P10を受信端末であるサーバAに送信している。このとき、図4に示すように、IPパケットP1〜P10は、端末AからサーバAに送信される。ここで、IPパケットP1〜P10は一連で送信されて一連のパケット群Gを構成しており、例えばパケットP8及びP9がロスしているものとする。
(ii)パケット情報の取得
端末AからサーバAにIPパケットが送信されると、輻輳検出装置40のパケット取得部41はIPパケットを取得する。パケット情報取得部42は、各IPパケットを取得した時刻を検出し、パケットの種類を特定する。このとき、各IPパケットはイーサネット(登録商標)フレームに乗せて送信されており、イーサーフレームのイーサヘッダに含まれる「タイプ」フィールド値が“0x0800”である場合はIPパケットであると特定される。
図5はIPヘッダの構造図である。「識別子」は分割されたIPパケットに付される識別値を記述するためのフィールドであり、同一の元データを構成することを示す場合には同一の識別値が付される。「フラグ」は、元データを構成する最後のIPパケットであるかを示すフィールドであり、“more fragment”は途中のIPパケットであることを示し、“no more fragment”は最後のIPパケットであることを示す。「フラグメントオフセット」は各IPパケットが元データのどの部分を構成するのかを示すフィールドである。「パケット長」は各パケットの長さを示すフィールドであり、ヘッダ長とデータ長との合計の長さが記述される。「送信元IPアドレス」は送信元のIPアドレスを示すフィールドであり、「宛先IPアドレス」は送信先のIPアドレスを示すフィールドである。
パケット情報取得部42は、まずフラグ及びフラグメントオフセットを見て、IPパケットがフラグメント化されているかを検出する。フラグが“more fragment”であるか、あるいはフラグメントオフセットが“0”でない場合はフラグメント化されていると判断し、必要な情報をIPヘッダから取得する。例えば、送信元IPアドレス、識別子、フラグ、フラグメントオフセット、パケット長を取得する。
パケット情報DB43は、各IPパケットを取得した時刻及びIPヘッダから抽出した情報などのパケット情報を記憶する。図6は、パケット情報DB43に記憶されているパケット情報の一例である。パケットNoごとに、送信元IPアドレス、識別子、フラグ、フラグメントオフセット、パケット長及びパケットを取得した時刻が1レコードに記憶されている。端末Aが送信端末であるので、送信元IPアドレスは10.10.10.10である。
(iii)パケットロスの検出
パケットロス検出部44は、パケット情報DB43のパケット情報を、パケットNoで特定されるレコードごとに参照してパケットロスを検出する。まず、パケットロス検出部44は、各IPパケットのフラグメントオフセット(パケットNoがkのオフセット値をoffset(k)で表す)とパケット長(パケットNoがkのパケット長をlength(k)であらわす)とを合計した合計値(offset(k)+length(k))を求める。次に、隣接するIPパケットのうち前のIPパケットの合計値(offset(k)+length(k))と、後のIPパケットのフラグメントオフセット(offset(k+1))と、を比較する。パケットロス検出部44は、前のIPパケットの合計値が後のIPパケットのフラグメントオフセットよりも小さくなる場合、つまり下記式(1)を満たす場合に、パケットロスが発生していると判断する。
offset(k)+length(k)<offset(k+1) ・・・(1)
例えば図6を参照すると、IPパケットP6の合計値(offset(k)+length(k))は“7500+1500=9000”であり、IPパケットP7のoffset(k+1)は“9000”である。よって、上記式(1)を満たさず、パケットロス検出部44は、IPパケットP7はロスしていないと判断する。一方、IPパケットP7の合計値(offset(k)+length(k))は“9000+1500=10500”である。IPパケットP7の次にパケット情報が取得されているIPパケットP10のoffset(k+1)は“13500”である。よって、上記式(1)を満たしており、パケットロス検出部44は、パケットロスが発生していると判断する。ここで、パケットロス検出部44は、例えばパケットP1〜P7のパケット長が“1500”であることに基づいて、パケットの最大バイト長が“1500”であることを取得する。IPパケットP7の合計値“10500”と、IPパケットP10のoffset(k+1)の“13500”と、の差が“3000”であることから、2パケットがロスしていると判断する。
以上より、パケットロス検出部44は、パケットP7及びP10の間に2パケットのロスが発生していることを検出する。
(iv)パケット群の抽出
パケット群抽出部45は、パケット情報DB43のパケット情報を参照して、一連のパケット群を抽出する。図6によると、IPパケットP1〜P7、P10の識別子が同じ“100”であり、IPパケットP1のフラグメントオフセットが“0”であり、IPパケットP10のフラグが“no more fragment”である。パケット群抽出部45は、これらのことから、IPパケットP1から始まりIPパケットP10で終わる一連のパケット群をパケット群Gとして抽出する。
その他、IPパケットP11のフラグメントオフセットが“0”であること、IPパケットP11からは識別子が“200”に変わっていること、IPパケットP11のフラグが“more fragment”であることから、IPパケットP11から別のパケット群が始まっていることが分かる。よって、このことからも一連のパケット群GがIPパケットP10までであることが分かる。
なお、パケット群の終了は、IPパケットのフラグが“no more fragment”である場合だけでなく、IPパケットのパケット長が最大バイト長に満たない場合に基づいて把握可能である。また、前のIPパケットを取得してから所定時間経過しても次のIPパケットを取得できない場合は、前のパケット群のIPパケットの送信は終了したものとみなす。
これらの判断方法は、フラグが“no more fragment”のIPパケットがロスした場合にパケット群の終了を判定するのに有効である。
また、パケット群Gの始まりは、パケット群の中から1のIPパケットを抽出し、抽出したIPパケットのフラグメントオフセットと、パケットの最大バイト長とに基づいて、そのIPパケットの前に何パケットあるかにより把握しても良い。例えば、IPパケットP7のフラグメントオフセットが“9000”であり、最大バイト長は“1500”であるので、パケット群Gの始まりは、IPパケットP7から6パケット前のIPパケットP1であることが分かる。
以上より、パケット群抽出部45の取得したパケット群及びパケットロス検出部44の検出結果に基づけば、IPパケットP1〜P10のパケット群のうち、7番目と8番目のIPパケットP8、P9がロスしていることが特定される。
なお、パケット群のうち最後のパケットがロスしている場合には、パケット群を抽出せず、輻輳判定を行わない方が好ましい。例えば、前述のIPパケットP1〜P10において、IPパケットP8、P9に加えて一連のパケット群Gの最後のIPパケットP10もロスしている場合には輻輳判定を行わないのが好ましい。この場合、パケット取得部41は、一連のパケット群GのうちIPパケットP1〜P7までしか検出することができない。そのため、パケット群抽出部45は、一連のパケット群GがIPパケットP1〜P10までであることを把握できない。このような場合に輻輳判定を行っても正確に輻輳が発生しているか否かを判定することができない。よって、一連のパケット群の最後のパケットがロスしている場合には、パケット群を抽出せず、輻輳判定も行わないのが好ましい。
(3−2)RTPの場合
次に、RTPでのパケットロスの検出方法及びパケット群の抽出方法を説明する。
(i)RTPパケットの送信
RTPにおいてもIPと同様に、元データがRTPパケットの最大バイト数を超える場合は、元データは各RTPパケットに分割されて送信される。元データが分割されて複数のRTPパケットが形成される構成は、IPパケットの説明で用いた図3及び図4と同様であるので説明を省略する。
(ii)パケット情報の取得
図3、図4と同様に端末AからサーバAにRTPパケットP1〜P10が送信される。このとき、図4に示すように、RTPパケットP1〜P10が端末AからサーバAに送信されると、輻輳検出装置40のパケット取得部41はRTPパケットP1〜P10を取得する。パケット情報取得部42は、各RTPパケットを取得した時刻を検出し、パケットの種類を特定する。このとき、例えば、イーサヘッダの「タイプ」フィールド値が“0x0800”であり、IPヘッダの「プロトコル」フィールド値が“17”であり、データの先頭2ビットが“0x2”である場合はRTPパケットであると特定される。パケット情報取得部42は、各RTPパケットから必要な情報を抽出する。
RTPパケットにはIPヘッダ、UDP(User Datagram Protocol)ヘッダ及びRTPヘッダが含まれる。図7の(a)はUDPヘッダの構造図であり、(b)はRTPヘッダの構造図である。UDPヘッダの「発信元ポート番号」は発信元のポート番号を示すフィールドであり、「宛先ポート番号」は送信先のポート番号を示すフィールドである。RTPヘッダの「シーケンス番号」は、1パケット毎に増加する番号が付されるフィールドであり、パケットの順番を表している。「タイムスタンプ」は、パケットに含まれる最も古いデータが発生した時刻を示すフィールドであり、同一の元データを構成することを示す場合には同一のタイムスタンプ値が付される。
パケット情報取得部42は、例えば、IPヘッダから送信元IPアドレス及びパケット長を取得し、UDPヘッダから発信元ポート番号を取得し、RTPヘッダからタイムスタンプ及びシーケンス番号を取得する。
パケット情報DB43は、各RTPパケットを取得した時刻及び各ヘッダから抽出した情報などのパケット情報を記憶する。図8は、パケット情報DB43に記憶されているパケット情報の一例である。パケットNoごとに、送信元IPアドレス、ポート番号、タイムスタンプ、シーケンス番号、パケット長及びパケットを取得した時刻が1レコードに記憶されている。
(iii)パケットロスの検出
パケットロス検出部44は、パケット情報DB43のパケット情報について、パケットNoで特定されるレコードごとにシーケンス番号の抜けを見てパケットロスを検出する。パケットロス検出部44は、図8を参照して、シーケンス番号S8、S9が抜けていることから、RTPパケットP8、P9がロスしていることを検出する。
(iv)パケット群の抽出
パケット群抽出部45は、パケット情報DB43のパケット情報を参照してパケット群を抽出する。図8によると、RTPパケットP0のタイムスタンプは“50”であり、RTPパケットP1〜P7、P10のタイムスタンプが“100”であり、RTPパケットP11からはタイムスタンプが“200”に変わっている。つまり、RTPパケットP0とRTPパケットP1とでタイムスタンプが異なり、RTPパケットP10とRTPパケットP11とでタイムスタンプが異なる。また、RTPパケットP0、P1のシーケンス番号がS0、S1と連続し、かつRTPパケットP10、P11のシーケンス番号がS10、S11と連続しており抜けが無い。これらのことから、パケット群抽出部45は、RTPパケットP1〜P10が一連で送信されているとみなし、RTPパケットP1〜P10を一連のパケット群として抽出する。
なお、パケット群において、最後のRTPパケット又は最初のRTPパケットがロスした場合、ロスしたRTPパケットのタイムスタンプを参照することができない。よって、ロスしたRTPパケットが、隣接するパケット群のうち前のパケット群に属するのか、後続のパケット群に属するのかは次のようにして把握する。ロスが検出されたRTPパケットの直前のRTPパケットのパケット長が、パケットの最大バイト長に満たない場合は、ロスが検出されたRTPパケットは、後続のパケット群の最初のRTPパケットであると判断する。逆に、ロスが検出されたRTPパケットの直前のRTPパケットのパケット長が、パケットの最大バイト長である場合は、ロスが検出されたRTPパケットは、前のパケット群の最後のRTPパケットであると判断する。例えば、図8においてRTPパケットP11がロスしていると仮定する。この場合、RTPパケット10のパケット長が“500”であり最大バイト長“1500”に満たないため、RTPパケット11は、RTPパケットP10が属する一連のパケット群Gには属さないと判断する。よって、パケット群抽出部45は、RTPパケット11は、パケット群Gに後続のパケット群において、最初のRTPパケットであると判断する。一方、RTPパケットP10がロスしていると仮定する。この場合、RTPパケットP7のパケット長が“1500”であり最大バイト長である。よって、パケット群抽出部45は、RTPパケット10は、一連のパケット群Gの最後のRTPパケットであると判断する。
(3−3)TCPの場合
次に、TCPでのパケットロスの検出方法及びパケット群の抽出方法を説明する。TCPでは、送信端末は、RTT(Round Trip Time)間隔で所定数のTCPパケットを一連で送信する。受信端末は、TCPパケットを受信すると、どのTCPパケットまで受信したのかを示すACKを返信する。受信端末からACKが返信されると、次のRTT期間で送信するパケット数が例えば1つ増加する。
前述のIPやRTPでは、輻輳検出装置40に到達する前にパケットがロスしている場合に、パケットロスを検出可能である。言い換えれば、輻輳検出装置40に到達後にパケットがロスした場合にはパケットロスを検出することができない。しかし、TCPでは、前述の通り、受信端末がTCPパケットを受信するとACKが返信される。よって、TCPパケットが輻輳検出装置で検出された後にロスしたとしても、ACKを解析することによりパケットロスを検出することができる。このような特徴を有するTCPでは、(a)輻輳検出装置40に到達する前にTCPパケットがロスする場合と、(b)輻輳検出装置40に到達後にTCPパケットがロスする場合とで、パケットロスの検出方法及びパケット群の抽出方法が異なる。以下に、まずTCPヘッダの構造を説明し、次に前記(a)、(b)について説明する。
TCPパケットにはIPヘッダ、TCPヘッダが含まれる。図9はTCPヘッダの構造図である。「送信元ポート番号」は送信元のポート番号を示すフィールドであり、「宛先ポート番号」は送信先のポート番号を示すフィールドである。「シーケンス番号」は1パケット毎に増加する番号が付されるフィールドであり、パケットの順番を表している。「ACK番号」は、受信端末が受信を確認したTCPパケットのシーケンス番号を示すフィールドである。
次に、前記(a)、(b)それぞれについてパケットロスの検出方法及びパケット群の抽出方法について説明する。
(a)輻輳検出装置に到達する前にTCPパケットがロスする場合
(i)TCPパケットの送信
まず、輻輳検出装置40に到達する前にTCPパケットがロスする場合について説明する。図10は、輻輳検出装置40に到達する前にTCPパケットがロスする場合を示す説明図である。送信端末である端末Aから受信端末であるサーバAにTCPパケットが送信される。このとき、このとき、図10に示すように、端末AからサーバAにTCPパケットが送信されている。RTT(0)期間では、9個のTCPパケットP1〜P9を含む一連のパケット群G0が送信されている。9個のTCPパケットP1〜P9はロスすることなくサーバAに送信されている。次に、RTT(0)期間に続くRTT(1)期間では、RTT(0)期間よりも1個多い10個のTCPパケットP10〜P19を含む一連のパケット群G1が送信されている。TCPパケットP10〜P16、P19はロスすることなくサーバAに送信されているが、TCPパケットP17、P18はロスしている。受信端末であるサーバAは、TCPパケットの受信に応じてACKを端末Aに送信する。なお、ACKについては説明に必要な部分のみを記載している。
(a)の場合、図10に示すように、TCPパケットP17、P18は輻輳検出装置40に到達する前にロスしているため、輻輳検出装置40はTCPパケットP17、P18のロスを検出することができる。
(ii)パケット情報の取得
輻輳検出装置40のパケット取得部41は、端末AからサーバAに送信されるTCPパケットを検出するとともに、サーバAから端末Aに送信されるACKを検出する。パケット情報取得部42は、各TCPパケットを取得した時刻を検出し、パケットの種類を特定する。このとき、例えば、イーサヘッダに含まれる「タイプ」フィールド値が“0x0800”であり、IPヘッダの「プロトコル」フィールド値が“6”である場合はTCPパケットであると特定される。
パケット情報取得部42は、TCPパケットにデータが格納されている場合、つまりデータ長>0の場合は、例えば、IPヘッダから送信元IPアドレス及び宛先IPアドレスを取得し、TCPヘッダから送信元ポート番号、宛先ポート番号及びシーケンス番号を取得する。また、パケット情報取得部42は、TCPパケットを取得した時刻からパケット間隔を算出するともに、パケット間隔の平均値及び標準偏差を算出する。パケット情報DB43はこれらのパケット情報を記憶する。図11及び図12は、データを含むパケットについて、パケット情報DB43に記憶されているパケット情報の一例である。図11では、パケットNoごとに、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、宛先ポート番号、シーケンス番号、パケットを取得した時刻及びパケット間隔が1レコードに記憶されている。図12では、パケット間隔の平均値及び標準偏差が、送信元IPアドレスごとに随時更新されて記憶されている。
一方、パケット情報取得部42は、TCPパケットにデータが格納されていない場合、つまりデータ長=0であるACKの場合は、例えば、IPヘッダから送信元IPアドレス及び宛先IPアドレスを取得し、TCPヘッダから送信元ポート番号、宛先ポート番号及びACK番号を取得する。このとき、パケット情報取得部42は各ACK番号の取得回数をカウントする。TCPパケットがACKパケットである場合は、パケット情報DB43はこれらのパケット情報を記憶する。図13は、ACKパケットについて、パケット情報DB43に記憶されているパケット情報の一例である。パケットNoごとに、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、宛先ポート番号、ACK番号及び各ACK番号のカウント値が1レコードに記憶されている。
(iii)パケットロスの検出
パケットロス検出部44は、パケット情報DB43のパケット情報について、パケットNoで特定されるレコードごとにシーケンス番号の抜けを見てパケットロスを検出する。図11のシーケンス番号を順に参照すると、シーケンス番号S16の次にS19が記憶されており、シーケンス番号S17、S18が抜けている。このことから、パケットロス検出部44は、シーケンス番号S17、S18のTCPパケットP17、P18がロスしていることを検出する。
その他、次のことからもパケットロスを検出できる。図11において、シーケンス番号S17、S18は、それぞれシーケンス番号S20及びS22の後に、番号順とは異なる順序で記憶されている。これに基づいて、TCPパケットP17、P18が再送されておりロスしていたと判断する。また、ACK番号のカウント値が所定値以上であることに基づいてパケットロスを検出することもできる。ACK番号は、受信端末がどのTCPパケットまで受信したかを送信端末に知らせる情報であり、パケットロスが発生している場合は同じACK番号のACKが受信端末から送信される。ここで、前述のパケットロスを判断するための所定値が“3”であるとする。図13を参照すると、ACK16、ACK17のカウント値が“3”となっていることから、TCPパケットP17、P18がロスしていることを検出することができる。
(iv)パケット群の抽出
パケット群抽出部45は、パケットロス検出部44から、パケットNoがP16及びP19で特定されるレコードの間において、TCPパケットP17、P18の2パケットのロスが発生していることを取得する。パケット群抽出部45は、パケット情報DB43のパケット情報を参照して、検出されたパケットロスが発生しているパケット群を抽出する。
パケットロスが発生しているパケット群では、パケットロスによりパケットの連送が途切れている。しかし、パケット群におけるパケットロスの発生箇所に基づいて輻輳判定を行うためには、パケットロスを含む一連のパケット群全体を抽出する必要がある。ここで、パケットロスが発生していないパケット群は、例えばパケット間隔と所定値との比較によりパケット群の切れ目を探すことで容易に抽出できる。そこで、パケットロスが発生しているパケット群のパケット数を、パケットロスが発生していないパケット群のパケット数と所定の変化ルールとに基づいて推測することで、パケットロスが発生しているパケット群を抽出する。
まず、パケット群抽出部45は、隣接するパケット群間でのパケット数の変化について、所定の変化ルールを予め保持しているものとする。変化ルールが、例えば、前のRTT間隔でパケットがロスすることなく送信された場合、次のRTT間隔で送信されるパケットの数は、前のRTT間隔で送信されたパケットの数に“1”を加算したものになるというものであるとする。パケット群抽出部45は、最初にパケットロスが発生した箇所から時間的に遡って、パケット間隔と所定値とを順に比較する。次に、パケット間隔が所定値よりも大きい箇所を見つけると、そこをパケットロスが発生したパケット群G1の始まり及び前のパケット群G0の終わりとみなす。さらに、時間的に遡ってパケット間隔と所定値とを順に比較して、再度パケット間隔が所定値よりも大きい箇所を見つけると、そこを前のパケット群G0の始まりとみなす。そして、前のパケット群G0に含まれるパケット数を取得する。パケット群抽出部45は、前述の変化ルールに基づいて、取得した前のパケット群のパケット数に“1”を加算することで、パケットロスが発生したパケット群G1のパケット数を求める。最後に、先に取得したパケット群G1の始まりと、パケット群G1のパケット数と、に基づいてパケット群G1を抽出する。
ここで、パケット間隔は一定ではなく分布を有するため、前記所定値はこの分布を考慮した値とする。所定値とは、例えば、(パケット間隔の平均値)+1.96×(パケット間隔の標準偏差)である。パケット間隔が、その分布を考慮した所定値より小さい場合は、パケットが一連で送信されていると判断する。一方、パケット間隔が所定値より大きい場合はパケット群の切れ目と判断し、パケット群G1を抽出する。
また、前記所定値は、パケット間隔の平均値を所定倍した値など、パケット間隔の平均値に基づいて決定された値であっても良い。例えば、所定値はパケット間隔の平均値の2倍である。パケット間隔が平均値の2倍より小さい場合は、パケットは一連で送信されていると判断する。一方、パケット間隔が平均値の2倍より大きい場合は、パケット群の切れ目である判断し、パケット群G1を抽出する。
パケット群の抽出について図10〜図12を用いて説明する。図10及び図11によれば、送信元IPアドレスは10.10.10.10である。パケット群抽出部45は、このIPアドレスに基づいて、図12から、パケット間隔の平均値“1.2ms”及び標準偏差“0.2ms”を取得する。よって、所定値は、1.2ms+1.96×0.2ms=1.592msとなる。
図10及び図11によれば、パケット群G1においてTCPパケットP17、P18がロスしていることから、パケット群G1では最初にTCPパケットP17がロスしていることが分かる。よって、パケット群抽出部45は、TCPパケットP17から時間的に遡って、TCPパケットP16とTCPパケットP15とのパケット間隔Δt16を取得する。パケット間隔Δt16は1.2msであり、所定値の1.592msより小さい。さらに遡って比較を行うと、TCPパケットP10とTCPパケットP9とのパケット間隔Δt10が10.0msであり、所定値の1.592msより大きいことが検出される。パケット群抽出部45は、その検出結果に基づいて、パケット群G1の始まりがTCPパケットP10であり、パケット群G0の終わりがTCPパケットP9であることを取得する。さらに同様の処理を繰り返すと、TCPパケットP1とTCPパケットP0とのパケット間隔Δt1が5.0msであり、所定値の1.592msより大きいことが検出される。パケット群抽出部45は、その検出結果に基づいて、パケット群G0の始まりがTCPパケットP1であることを取得する。これにより、前のパケット群G0はTCPパケットP1〜P9までの9個のパケットから構成されることが分かる。よって、パケット群抽出部45は、前のパケット群G0のパケット数に1を加算して、パケットロスの発生したパケット群G1のパケット数を10と算出する。以上より、パケット群G1は、TCPパケットP10からTCPパケットP19により構成されることを抽出することができる。このように、パケットロスの発生したパケット群G1のパケット数を、パケットロスが発生しておらず、かつパケット群G1の前のパケット群G0のパケット数に基づいて取得することができる。
(b)輻輳検出装置に到達後にTCPパケットがロスする場合
(i)TCPパケットの送信
次に、輻輳検出装置40に到達後にTCPパケットがロスする場合について説明する。図14は、輻輳検出装置40に到達後にTCPパケットがロスする場合を示す説明図である。送信端末の端末Aと受信端末のサーバAとの間で送受信されるTCPパケットについては、図10と同様であるので説明を省略する。ただし、(a)の場合はTCPパケットP17、P18は輻輳検出装置40に到達する前にロスしているが、(b)の場合はTCPパケットP17、P18は輻輳検出装置40に到達後にロスしている。
(ii)パケット情報の取得
パケット情報の取得方法は、前述の(a)と同様であるので説明を省略する。パケット情報DB43はパケット情報取得部42が取得したパケット情報を記憶する。図15は、データを含むパケットについて、パケット情報DB43に記憶されているパケット情報の一例である。図15では、パケットNoごとに、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、宛先ポート番号、シーケンス番号、パケットを取得した時刻及びパケット間隔が1レコードに記憶されている。パケット間隔の平均値及び標準偏差も前述の図12と同様に記憶しており、ACKパケットについても前述の図13と同様に記憶している。
(iii)パケットロスの検出
(b)の場合、輻輳検出装置40に到達後にTCPパケットがロスしているため、パケットロス検出部44は、TCPパケットが再送されていることに基づいてパケットロスを検出する。パケットロス検出部44は、図15のパケット情報DB43のパケット情報について、パケットNoで特定されるレコードごとにシーケンス番号を参照する。パケット群G1において、シーケンス番号S10〜S19までは順番に並んでいることから、これらのデータからはパケットロスは検出できない。図15をさらに参照すると、シーケンス番号S17、S18が再度記憶されている。これに基づいて、パケットロス検出部44は、TCPパケットP17、P18が再送されており、パケットロスしていると判断する。
その他、(a)において前述したように、ACK番号のカウント値が例えば“3”以上であることに基づいて、TCPパケットP17、P18がロスしていることを検出できる。また、TCPパケットP17、P18がシーケンス番号20及びS22の後に番号順とは異なる順序で記憶されていることに基づいて、TCPパケットP17、P18がパケットロスしていることを検出できる。
(iv)パケット群の抽出
パケット群抽出部45は、パケットロス検出部44からTCPパケットP17、P18がロスしていることを取得し、TCPパケットP17、P18が含まれるパケット群を抽出する。ここで、(b)の場合、輻輳検出装置40に到達後にTCPパケットP17、P18がロスするため、図14、図15に示すパケット群G1において、シーケンス番号S10〜S19までは順番に並んでいる。このため、(b)の場合は、パケットロスが発生しているパケット群G1のデータに基づいてパケット群G1を抽出可能である。
具体的に、パケット群抽出部45は、パケットロスが発生した箇所から時間的に遡って及び時間経過に沿って、それぞれパケット間隔と所定値とを順に比較する。これにより、パケットロスが発生した箇所の前後において、パケット間隔が所定値よりも大きい箇所をそれぞれ見つけ、パケットロスが発生したパケット群G1の始まり及び終わりを見つける。
パケット群G1の抽出について図12、図14及び図15を用いて説明する。前述と同様に、図12に基づいて、パケット間隔の平均値及び標準偏差を考慮した所定値を算出する。ロスしているTCPパケットP17、P18のうち、例えばTCPパケットP17に着目する。パケット群抽出部45は、TCPパケットP17の前後において、パケット間隔が所定値よりも大きい箇所を見つける。TCPパケットP10とTCPパケットP9とのパケット間隔Δt10が10.0msであり、所定値の1.592msより大きい。また、TCPパケットP19とTCPパケットP20とのパケット間隔Δt20が7.0msであり、所定値の1.592msより大きい。以上より、TCPパケットP10からP19により構成されるパケット群G1を抽出することができる。
なお、(b)の場合であっても(a)と同様に、パケットロスの発生しているパケット群のパケット数を、パケットロスの発生していないパケット群のパケット数から算出しても良い。
(4)輻輳の判定方法
次に、輻輳判定部46が行う輻輳の判定方法について説明する。
基本的には、パケットロスの発生箇所が、パケット群の所定箇所よりも時間的に後方に位置する場合、輻輳が発生していると判定する。ここで、所定箇所とは、パケット群において時間的に中央部分から後半部分までのいずれかの位置であり得る。所定箇所は、輻輳判定の精度に応じて前述の範囲で適宜設定可能である。輻輳はパケット群の後方で発生し易く、それに伴いパケット群の後方でパケットロスが生じやすい。輻輳検出方法では、このような傾向に基づいて輻輳が発生しているか否かを判定するため、輻輳をより正確に検出し誤検出を抑制することができる。
輻輳の判定方法の具体例として、前述のTCPパケットのパケット群G1を採りあげて、以下の3つの方法を説明する。なお、輻輳の判定方法は様々考えられるため、輻輳検出装置40は、システムが求める輻輳判定の精度やネットワークの特性等を考慮し、選択した1の輻輳判定に基づいて輻輳が発生しているか否かを判定する。また、判定結果のぶれをなくすため、全ての輻輳判定は選択した1つの判定方法で行うのが良い。
(4−1)判定方法1
判定方法1では、パケット群の所定箇所よりも時間的に後方でのパケットロス数が、前記所定箇所よりも時間的に前方でのパケットロス数より大きいことに基づいて、輻輳が発生していると判定する。
図16は判定方法1を説明するための説明図である。図16に示すように、前述のTCPパケットの例では、一連のパケット群G1はTCPパケットP10〜P19で構成され、TCPパケットP17、P18がロスしている。ここで、所定箇所を、例えばパケット群G1のパケット数を半分に分ける箇所とする。図16の場合、パケット群G1は、所定箇所の前後で、前半のTCPパケットP10〜P14と、後半のTCPパケットP15〜P19との2つに分かれる。次に、前半のロス数“0”と後半のロス数“2”とを比較する。後半のロス数が前半のロス数より大きいため、パケット群の後方でパケットロスが発生しており、輻輳が発生していると判定する。
前半のロス率と後半のロス率とを比較し、後半のロス率が前半のロス率より大きい場合は輻輳が発生していると判定しても良い。例えば、全体のパケット数に対する後半及び前半のパケットロス数からそれぞれ前半及び後半のパケットロス率を算出して比較する。
(4−2)判定方法2
図17は判定方法2を説明するための説明図である。判定方法2では、まず、パケット群の所定箇所よりも時間的に前方でのパケットロス率及びパケット数を用いて、ロス率の母平均のB%信頼区間を統計的に推定し、前記推定した信頼区間の上限値を閾値Aとして求める。パケット群の所定箇所よりも時間的に後方でのパケットロス率が閾値Aよりも大きい場合、輻輳が発生していると判定する。
この方法によれば、輻輳が発生していると判断するための閾値Aは、前方でのパケットロス率及びパケット数から推定する。
ここで、Bは例えばB=95であり、図17に示すようにいわゆる信頼区間を定義する値である。この信頼区間の上限値が閾値Aとなり、閾値Aは、下記式(2)又は(3)により表される。
Figure 0004924503
ここで、Lfは前方のパケットロス率である。Nはパケット群において所定箇所よりも前方でのパケット数である。
前述のTCPパケットの例では、一連のパケット群G1において、所定箇所を、例えばパケット群G1のパケット数を半分に分ける箇所とする。TCPパケットP17、P18のみがロスしているので、前半のパケットロス率Lfは0%であり、後半のパケットロス率は40%である。Lf=0、N=5を前記式(3)に導入し、閾値A=54.9を得る。後半のパケットロス率40%は閾値Aより小さいので、輻輳は発生していないと判定される。
逆に、例えば一連のパケット群G1において、前半のTCPパケットP11がさらにロスしているとする。この場合、前半のパケットロス率Lfは20%であり、前記式(2)から閾値A=36.3を得る。後半のパケットロス率40%は閾値Aより大きいので、輻輳が発生していると判定される。
(4−3)判定方法3
図18、図19は判定方法3を説明するための説明図である。図18に示すように、一連のパケット群G1を構成するTCPパケットP10〜P19について、パケット群G1の先頭から順に番号RNo.1〜10を付与する。ロスしたTCPパケットP17、P18のRNo.8、RNo.9に基づいて、RNo.の値の平均値Mを“(8+9)/2=8.5”と算出する。
ここで、パケット群G1のパケット数は“10”であり、パケットロス数は“2”である。これらに基づいて、パケット数が“10”の仮想のパケット群において、2個のパケットがランダムにロスする場合について検討する。仮想のパケット群では、先頭のパケットから順にパケット位置番号1〜10を付す。このとき、パケットロスした2個のパケットのパケット位置番号の平均値ついて、図19に示す分布を求める。そして、上位所定%以内に入るときの平均値の閾値Wを求め、算出したRNo.の平均値Mと比較する。RNo.の平均値Mが閾値Wよりも大きければ、パケット群の後方でロスが発生しており、輻輳が発生していると判定する。例えば、上位5%以内に入るときの平均値の閾値Wは8.5であり、算出したRNo.の平均値M“8.5”が閾値以上であることから、輻輳が発生していると判定する。
前述の判定方法は、下記式(4)により表すことができる。
実際のパケットロスの発生箇所がパケット群の最初から何番目のパケットであるかを示すパケット位置番号をNとする。ここで、下記式(4)において、i=x、x−1・・・と順に変化させた場合、前記パケットロスの発生箇所における前記パケット位置番号Nの平均値Mが、に下記式(4)を最初に満たすiの値である閾値Wよりも大きいことに基づいて輻輳と判定する。
Figure 0004924503
F(a,b,c)は「1〜aの数字からb個抜き出した合計値がcという数字になる回数」をあらわし、
xは、パケット群のパケット数であり、
yは、パケット群におけるパケットロス数であり、
Zは、輻輳が発生していると判定するための所定の下限値である。
Figure 0004924503
は、前記平均値Mがi〜xまでの値をとるパターン数であり、
Figure 0004924503
は、パケット数xの前記仮想のパケット群においてy個のパケットがランダムにパケットロスする場合に、パケットロスが発生した前記パケット位置番号についての全パターン数でを示し、式(4)は全パターン数のうちで平均値Mがi以上を取る確率を示す。
ここで、Zは、例えば、5%を設定する。
なお、x、y、iは1以上の整数である。
(5)輻輳判定の結果
図20は、輻輳判定部46が行った輻輳判定の結果の一例であり、輻輳判定の結果をパケット群毎に示している。(a)は輻輳検出装置40に到達する前にTCPパケットがロスする場合の結果である。つまり、送信端末からサーバにTCPパケットが送信されている場合の輻輳判定であり、送信元IPアドレス毎に輻輳判定の結果が集計されている。一方、(b)は輻輳検出装置40に到達後にTCPパケットがロスする場合の結果である。つまり、サーバから受信端末にTCPパケットが送信されている場合の輻輳判定であり、送信先IPアドレス毎に輻輳判定の結果が集計されている。具体的に、図20では、パケットロスが発生したパケット群のNo、そのパケット群での連送数、パケットのロス数、ロスパケットのシーケンス番号及び輻輳判定を、送信元IPアドレス又は送信先IPアドレスで集計している。これにより、端末ごとの輻輳状況を判断することができる。なお、RTPパケット及びIPパケットについては、輻輳検出装置40に到達する前のパケットロスを検出するため、送信元IPアドレス毎に輻輳判定の結果を集計する。
さらに、輻輳判定部46は、後方でのロス数及び全ロス数を、パケット群を超えて送受信された全てのパケットについて集計し、後方でのロス数の全ロス数に対する割合から輻輳を判断するようにしても良い。図21は、輻輳判定の集計結果の一例である。図21では、当該送信端末から送信されたパケットの全取得数、全取得数のうちの全ロス数、後方でのロス数及び輻輳判定を、各IPアドレスで特定される送信端末ごとに集計している。後方でのロスとは、ロスの発生位置がパケット群の所定位置よりも後方であるところの数である。このように、送信元IPアドレスごとに輻輳判定の結果を集計し、アドレスの階層毎に輻輳の有無を解析する。図21の集計結果から、アドレスのネットワーク部分が10.10.10であるサブネットにおいて、通信を行っている3つの端末で輻輳が発生しており、輻輳の影響を受けていることが分かる。一方、アドレスのネットワーク部分が20.20.20であるサブネットでは輻輳の影響が無いことが分かる。よって、ネットワーク部分が10.10.10であるサブネットのルータにアクセスが集中して輻輳が発生していると特定できる。輻輳検出装置40は所定の端末等に輻輳の発生箇所をメール等で通知する。通知を受けた管理者は、対応が必要なルータのMIB確認を行ったり、回線増強などの適切な処置を行うことができる。なお、各端末のアドレス単位でしか輻輳が発生していない場合には、輻輳の発生箇所はルータではなく各端末であると特定することができる。
なお、パケットの送信数が少ない端末の場合には、確率的にパケットロスが発生せず輻輳判定を行うことができない。よって、輻輳の発生箇所の特定を行う際には、少なくとも一定の計測期間中(例えば1分)に所定数以上のパケット数を送信している送信端末のみに着目する。例えば、パケットのロス率が1%で300パケットの送信を行う場合、95%以上の確率で1個のパケットロスが発生するので、300パケット以上の送信端末にのみ着目する。
また、サブネット内で所定数以上のパケットを送信している送信端末のうち、例えば7割以上など所定の割合以上で輻輳が発生している場合には、そのサブネットのルータで輻輳が発生していると特定する。逆に、輻輳が発生している端末が所定の割合より少ない場合には、各端末で障害が発生していると特定する。
(6)処理の流れ
次に、輻輳検出装置40での処理の流れの一例について、図22〜図25を用いて説明する。
図22は、輻輳検出装置40での処理全体の流れを示すフローチャートの一例である。
サーバAと端末間とでパケットの送受信が行われると、サーバAの手前に配置された輻輳検出装置40は以下の処理を行う。
ステップS1:パケット取得部41は、送受信されるパケットをネットワーク上から取得する。パケット情報取得部42は、各IPパケットを取得した時刻を検出する。
ステップS2:パケット情報取得部42は、各パケットのイーサヘッダに含まれる「タイプ」フィールド値、IPヘッダの「プロトコル」フィールド値及びデータの先頭2ビットなどの値を参考にしてパケットの種類を特定する。
ステップS3〜S5:TCPパケットである場合はステップS8に進み、RTPパケットである場合はステップS7に進み、TCPパケットでもRTPパケットでも無いが、IPパケットである場合はステップS6に進む。TCPパケットでもRTPパケットでもIPパケットでもない場合は、ステップS1に戻る。
ステップS6〜S8:TCPパケットの場合にはTCPパケット用の輻輳判定処理が行われ(S8)、RTPパケットの場合にはRTPパケット用の輻輳判定処理が行われる(S7)。TCPパケットでもRTPパケットでも無いが、IPパケットである場合にIPパケット用の輻輳判定処理が行われる(S6)。
図23は、IPパケット用の輻輳判定処理の流れを示すフローチャートの一例である。
ステップS11:パケット情報取得部42は、IPヘッダから必要な情報を取得する。
ステップS12、S13:パケット情報DB43は、フラグ及びフラグメントオフセットを見て、IPパケットがフラグメント化されているかを検出する(S12)。IPパケットがフラグメント化されていれば、各IPパケットを取得した時刻、送信元IPアドレス、識別子、フラグ、フラグメントオフセット、パケット長などのパケット情報を記憶する(S13)。
ステップS14:パケット群抽出部45は、同じ識別子のIPパケットにおいて、フラグメントオフセットが“0”のIPパケットからフラグが“no more fragment”のIPパケットまでを一連のパケット群として抽出する。パケット群の最後までIPパケットを取得していれば、ステップS15に進む。そうでなければ、ステップS11に戻り次のパケットのIPヘッダを取得する。パケット群の最後か否かは、IPパケットのフラグが“no more fragment”であること、パケット長が最大バイト長に満たないこと、前のIPパケットを取得してから所定時間経過しても次のIPパケットを取得していないことなどにより判断できる。
ステップS15:パケットロス検出部44は、パケット情報DB43内を参照し、前のIPパケットの合計値(offset(k)+length(k))と後のIPパケットのフラグメントオフセット(offset(k+1))と、を比較しパケットロスの有無を判定する。
ステップS16:抽出したパケット群内でパケットロスがあればステップS17に進み、パケットロスが無ければステップS11に戻る。
ステップS17:輻輳判定部46はいずれかの判定方法に基づいて輻輳判定を行い、輻輳が発生している場所を特定する。
図24は、RTPパケット用の輻輳判定処理の流れを示すフローチャートの一例である。
ステップS21:パケット情報取得部42は、例えば、送信元IPアドレス、パケット長、発信元ポート番号、タイムスタンプ及びシーケンス番号をヘッダから取得する。
ステップS22:パケット情報DB43は、各RTPパケットを取得した時刻及びヘッダから抽出した情報などのパケット情報を記憶する。
ステップS23:パケット群抽出部45は、同じタイムスタンプを有していること、シーケンス番号が連続していることなどに基づいてパケット群を抽出する。パケット群の最後までRTPパケットを取得していれば、ステップS24に進む。そうでなければ、ステップS21に戻り次のパケットのヘッダを取得する。パケット群の最後か否かは、異なるタイムスタンプのパケットを取得したこと等により判断できる。
ステップS24:パケットロス検出部44は、パケット情報DB43内を参照し、シーケンス番号の抜けの有無に基づいてパケットロスを検出する。
ステップS25、S26:パケットロスがあればステップS26に進み、輻輳判定部46が輻輳判定を行う。パケットロスが無ければステップS21に戻る。
図25は、TCPパケット用の輻輳判定処理の流れを示すフローチャートの一例である。
ステップS31、S32:パケット情報取得部42は、データを含むTCPパケットから、例えば送信元及び宛先IPアドレス、送信元及び宛先ポート番号、シーケンス番号を取得する。また、パケット情報取得部42は、ACKのTCPパケットから、送信元及び宛先IPアドレス、送信元及び宛先ポート番号、ACK番号を取得し、ACK番号の取得回数をカウントする(S31)。パケット情報DB43は、各TCPパケットを取得した時刻及びヘッダから抽出した情報などのパケット情報を記憶する(S32)。
ステップS33:パケットロス検出部44は、パケット情報DB43内を参照し、シーケンス番号の抜けの有無を検出する。シーケンス番号の抜けがあればパケットロスがあると判断してステップS36に進み、抜けが無ければステップS34進む。この処理により、輻輳検出装置40に到達前にTCPパケットがロスしたか否かを検出する。
ステップS34:パケットロス検出部44は、シーケンス番号の抜けはないものの、再送処理が行われていないかを判定する。再送処理が行われたか否かは、同じシーケンス番号が重複して記憶されていること、ACK番号のカウント値が所定値以上であることに基づいて判定する。この処理により、輻輳検出装置40に到達後にTCPパケットがロスした場合でも、パケットロスを検出することができる。再送処理が行われていればパケットロスがあると判断してステップS36に進み、再送処理が行われていなければステップS35に進む。
ステップS35:パケットロスが無いため、パケット情報取得部42は、TCPパケットを取得した時刻からパケット間隔を算出するともに、パケット間隔の平均値及び標準偏差を算出する。
ステップS36、S37:パケット群の抽出が完了していない場合はステップS37に進み、パケットロスの発生箇所に基づいてパケット群を抽出する。一方、すでにパケット群の抽出が完了している場合にはステップS38に進む。
ステップS33においてシーケンス番号の抜けがあった場合は、輻輳検出装置40に到達前にTCPパケットがロスしている。よって、まず、パケットロスの発生したパケット群G1のパケット数を、パケット群G1の前のパケット群G0のパケット数に基づいて取得する。そして、取得したパケット数に基づいてパケット群G1のパケット構成を取得する。なお、パケット群G0ではパケットロスが発生していないことが好ましい。
ステップS34において再送処理によりパケットロスが検出された場合は、輻輳検出装置40に到達後にTCPパケットがロスしている。よって、パケットロスの発生したパケット群G1でのパケット間隔に基づいてパケット群G1のパケット構成を取得する。
ステップS38:パケット群の最後までTCPパケットを取得していれば、ステップS39に進む。そうでなければ、ステップS31に戻り次のTCPパケットのヘッダを取得する。
ステップS39、S40:パケット群内でパケットロスがあればステップS40に進み、輻輳判定部46が輻輳判定を行う。パケットロスが無ければステップS31に戻る。
上記本実施形態によれば、ネットワーク上に送出されているパケットを検出することで輻輳判定を行うため、輻輳を検出するための計測パケットを別途送出する必要が無い。よって、計測パケットの送出によるネットワークの混雑などネットワークに負荷を与えること無く輻輳判定を行うことができる。
ここで、輻輳とは通信量が増加してネットワークが混雑する状態を言い、輻輳が発生した場合には輻輳を回避するためにパケットが廃棄される。パケットが送信端末から受信端末に一連で送出される場合、その一連のパケット群の後方で輻輳が発生し易く、またその後方のパケットが廃棄され易い。上記輻輳検出方法では、輻輳が発生しているか否かを判定するにあたって、パケット群におけるパケットロスの発生箇所を参照するため、輻輳をより精度良く検出し誤検出を抑制することができる。
一連のパケット群が送信される区間の長さは、例えばTCPの場合はRTTより短く設定される。輻輳検出方法では、このようなパケット群が連送される区間を用いて輻輳が発生しているか否かの判定を行うので、輻輳判定をリアルタイムに行うことができる。
なお、パケット群の抽出及びパケットロスの検出は順不同である。つまり、取得したパケットに基づいて前記パケット群を抽出し、その後、前記パケット群におけるパケットロスの発生箇所を特定しても良い。あるいは、まずパケットロスの発生箇所を特定し、その後、前記パケットロスの発生箇所を含む前記パケット群を、取得したパケットに基づいて抽出しても良い。
<その他の実施形態>
(a)変形例1
上記のIPパケット及びRTPパケット用の輻輳判定処理では、図23及び図24に示すように、一連のパケット群を抽出した後に、そのパケット群におけるパケットロスの検出を行っている。しかし、本変形例では、パケットロスを検出した後、パケットロスの発生箇所を含むパケット群のみを抽出するようにしても良い。
例えば、上記実施形態のIPパケットの例では、パケットロス検出部44は、図6に示すパケット情報DB43のパケット情報に基づいて、IPパケットP7及びP10の間に2パケットのロスが発生していることを検出する。本変形例1では、パケット群抽出部45は、検出結果をパケットロス検出部44から受け取り、ロスしているパケットと同じ識別子を有するIPパケットを、一連のパケット群として抽出する。例えば、IPパケットP7及びP10は、ロスしているパケットの前後のパケットであり、図6によると識別子が“100”である。また、IPパケットP1〜P6の識別子も“100”であり、IPパケットP1のフラグメントオフセットが“0”であり、IPパケットP10のフラグが“no more fragment”である。パケット群抽出部45は、これらのことから、IPパケットP1〜P10が一連で送信されているとみなし、IPパケットP1〜P10をパケット群Gとして抽出する。
このように、パケットロスの発生しているパケット群のみを抽出することで、パケット群の抽出処理を減らすことができ、輻輳検出装置での処理量を少なくすることができる。
上記実施形態のRTPパケットの例でも同様の処理を適用することができる。パケット群抽出部45は、パケットロス検出部44によるパケットロスの検出結果と、図8に示すパケット情報DB43のパケット情報と、に基づいて、ロスしているパケットと同じタイムスタンプを有するRTPパケットを、一連のパケット群として抽出する。例えば、RTPパケットP7及びP10は、ロスしているパケットの前後のパケットであり、図8によると、タイムスタンプが“100”である。RTPパケットP1〜P6のタイムスタンプも“100”である。一方、RTPパケットP0のタイムスタンプは“50”であるが、RTPパケットP0、P1のシーケンス番号がS0、S1と連続しており抜けが無い。また、RTPパケットP11からはタイムスタンプが“200”に変わるが、RTPパケットP10、P11のシーケンス番号がS10、S11と連続しており抜けが無い。これらのことから、RTPパケットP1〜P10が一連で送信されているとみなし、RTPパケットP1〜P10をパケット群Gとして抽出する。
逆に、上記のTCPパケット用の輻輳判定処理では、図25に示すように、パケットロスを検出した後に、パケットロスが発生しているパケット群を抽出している。しかし、パケット群をまず抽出した後、パケット群内のパケットロスを検出するようにしても良い。つまり、パケットロスの有無に関わらず、パケット間隔を取得する度に所定値と比較し、所定値より大きい場合にパケット群の切れ目と判断してパケット群を常に抽出する。そして、1のパケット群を抽出するたびに、そのパケット群でのパケットロスを検出する。
(b)変形例2
上記実施形態では、パケット群抽出部45は、パケットロスが発生していない場合における、パケット群間でのパケット数の変化ルールのみを保持している。よって、隣接するパケット群のうち前のパケット群でパケットロスが発生している場合は、次のパケット群で何個のパケットが送信されるのかが不明である。このようにパケット群を抽出することができない場合は、パケットロスの発生位置を正確に特定することができず輻輳か否かを正確に判定できないので、輻輳判定を行わないようにしても良い。
(c)変形例3
上記実施形態においてTCPパケットからパケット群を抽出する場合、パケット群抽出部45は、隣接するパケット群間でのパケット数の変化ルールを予め保持している。しかし、パケット群抽出部45は、パケット情報DB43のパケット情報を参照して、送信端末が決定しているパケット群間でのパケット数の変化ルールを取得しても良い。例えば、前のパケット群でパケットロスが発生していない場合、次のパケット群では前のパケット群よりも何パケット増加させているかを検出する。また、前のパケット群でパケットロスが発生している場合、次のパケット群では前のパケット群よりも何パケット減少させているかを検出する。パケット群抽出部45は、この変化ルールに基づいてパケット群を抽出する。
(d)変形例4
上記実施形態ではサーバAとは別に輻輳検出装置40を設けているが、輻輳検出装置40をサーバAに組み込むことも可能である。また、各端末及び中継装置などに輻輳検出装置40を組み込むことも可能である。
(e)変形例5
前述した輻輳検出方法を実行するシステム、前記輻輳検出方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM(Compact Disc−Read Only Memory)、MO(Magneto Optical disk)、DVD(Digital Video Disc)、DVD−ROM、DVD−RAM(DVD−Random Access Memory)、BD(Blue-ray Disc)、半導体メモリを挙げることができる。前記コンピュータプログラムは、前記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
以上の実施形態及及びその他の実施形態に関し、更に以下の付記を開示する。
<付記>
(付記1)
ネットワーク上のパケットを取得するパケット取得ステップと、
取得したパケットに基づいて、一連のパケットにより構成されるパケット群を抽出するパケット群抽出ステップと、
前記パケット群におけるパケットロスを検出し、前記パケット群における前記パケットロスの発生箇所を特定するパケットロス検出ステップと、
前記パケット群における前記パケットロスの発生箇所に基づいて、輻輳が発生しているか否かを判定する輻輳判定ステップと、
を含む輻輳検出方法。
ネットワーク上に送出されているパケットを検出することで輻輳判定を行うため、輻輳を検出するための計測パケットを別途送出する必要が無い。よって、計測パケットの送出によるネットワークの混雑などネットワークに負荷を与えること無く輻輳判定を行うことができる。
ここで、輻輳とは通信量が増加してネットワークが混雑する状態を言い、輻輳が発生した場合には輻輳を回避するためにパケットが廃棄される。パケットが送信端末から受信端末に一連で送出される場合、その一連のパケット群の後方で輻輳が発生し易く、またその後方のパケットが廃棄され易い。上記輻輳検出方法では、輻輳が発生しているか否かを判定するにあたって、パケット群におけるパケットロスの発生箇所を参照するため、輻輳をより精度良く検出し誤検出を抑制することができる。
一連のパケット群が送信される区間の長さは、例えばTCP(Transmission Control Protocol)の場合はRTT(Round Trip Time)より短く設定される。輻輳検出方法では、このようなパケット群が連送される区間を用いて輻輳が発生しているか否かの判定を行うので、輻輳判定をリアルタイムに行うことができる。
なお、パケット群の抽出及びパケットロスの検出は順不同である。つまり、パケット群を抽出した後、パケット群内のパケットロスを検出しても良い。あるいは、まずパケットロスを検出した後、パケットロスを含むパケット群を抽出しても良い。
(付記2)
前記輻輳判定ステップでは、前記パケットロスの発生箇所が、前記パケット群の所定箇所よりも時間的に後方に位置する場合、輻輳が発生していると判定し、
前記所定箇所は、前記パケット群において時間的に中央部分から後半部分までのいずれかの位置である、付記1に記載の輻輳検出方法。
輻輳はパケット群の後方で発生し易く、それに伴いパケット群の後方でパケットロスが生じやすい。輻輳検出方法では、このような傾向に基づいて輻輳が発生しているか否かを判定するため、輻輳をより正確に検出し誤検出を抑制することができる。
(付記3)
前記輻輳判定ステップでは、前記パケット群の所定箇所よりも時間的に後方でのパケットロス数が、前記所定箇所よりも時間的に前方でのパケットロス数より大きいことに基づいて、輻輳が発生していると判定する、付記2に記載の輻輳検出方法。
パケット群の所定箇所から前半及び後半での各パケットロス数を検出し比較する。後半のパケットロス数が前半のパケットロス数よりも多い場合には、パケット群の後方でパケットロスが発生しており、輻輳が発生していると判断できる。なお、前半及び後半のパケットロス率を比較しても良い。例えば、全体のパケットロス数に対する前半及び後半のパケットロス数からそれぞれ前半及び後半のパケットロス率を算出して比較する。
(付記4)
前記輻輳判定ステップでは、
前記パケット群の所定箇所よりも時間的に前方でのパケットロス率及びパケット数を用いて、ロス率の母平均の信頼区間を統計的に推定し、前記推定した信頼区間の上限値を閾値Aとして設定し、前記パケット群の所定箇所よりも時間的に後方でのパケットロス率が前記閾値Aよりも大きい場合に、輻輳が発生していると判定する、付記2に記載の輻輳検出方法。
この方法によれば、輻輳が発生していると判断するための閾値Aは、前方でのパケットロス率から推定する。よって、輻輳の傾向を判断するためにパケットロスの発生箇所を統計的に集計し分析するなど多くの時間を要することが無い。そのため、輻輳が発生しているか否かを容易かつ迅速に判定することができ、輻輳判定をリアルタイムに行うことができる。
(付記5)
前記輻輳判定ステップでは、前記閾値Aを下記式(2)又は(3)に基づいて算出する、付記4に記載の輻輳検出方法
Figure 0004924503
ここで、Lfは前記前方のパケットロス率であり、Nは前記パケット群において所定箇所よりも前方でのパケット数である。
(付記6)
前記輻輳判定ステップでは、
前記パケット群のうちの最初から何番目のパケットであるかを示すパケット位置番号Nで表したときに、前記パケットロスの発生箇所における前記パケット位置番号Nの平均値Mが、i=x、x−1・・・と順に変化させたときに下記式(4)を最初に満たすiの値である閾値Wよりも大きいことに基づいて輻輳と判定する、付記1に記載の輻輳検出方法
Figure 0004924503
F(a,b,c)は「1〜aの数字からb個抜き出した合計値がcという数字になる回数」をあらわし、
xはパケット群のパケット数であり、
yは前記パケット群におけるパケットロス数であり、
Zは、輻輳が発生していると判定するための所定の下限値である
(付記7)
前記パケット群抽出ステップでは、元データが複数のパケットに分割されていることを検出すると、前記複数のパケットを前記パケット群として抽出する、付記1に記載の輻輳検出方法。
元データがパケットの最大バイト数を超える場合は、複数のパケットに分割されて送信される。この場合、IPでは、複数のIPパケットが同一の元データを構成することを示す場合、各IPパケットには同一の識別子が付され、フラグ及びフラグメントオフセットが記述される。また、RTPでは、複数のRTPパケットが同一の元データを構成することを示す場合、各RTPパケットには同一のタイムスタンプが付され、順番にシーケンス番号が記述される。よって、パケット群抽出ステップでは、パケットがIPパケットである場合には、同一の識別子が付された複数のIPパケットをパケット群として抽出する。また、パケットがRTPパケットである場合には、同一のタイムスタンプが付されている複数のRTPパケットをパケット群として抽出する。このようにして、元データが複数のパケットに分割されて連送されることに基づいてパケット群を抽出することができる。
(付記8)
前記パケット群抽出ステップでは、各パケットを取得した時間間隔であるパケット間隔と所定値とを比較し、比較結果に基づいて前記パケット群を抽出する、付記1に記載の輻輳検出方法。
例えば、パケット間隔が所定値よりも長い場合、パケット群の切れ目と判断することにより、各パケット群を抽出することができる。
(付記9)
前記所定値は、パケット間隔の平均値に基づいて決定された値である、付記8に記載の輻輳検出方法。
例えば、所定値はパケット間隔の平均値の2倍である。パケット間隔が平均値の2倍より小さい場合は、パケットは一連で送信されていると判断する。一方、パケット間隔が平均値の2倍より大きい場合は、パケットが一連で送信されておらず、パケット群の切れ目であると判断する。これらにより、一連のパケット群を抽出することができる。
(付記10)
前記所定値は、前記パケット間隔の平均値及び前記パケット間隔の標準偏差に基づいて決定された値である、付記9に記載の輻輳検出方法。
パケット間隔は一定ではなく分布を有するため、所定値をこの分布を考慮した値とする。所定値とは、例えば、(パケット間隔の平均値)+1.96×(パケット間隔の標準偏差)である。パケット間隔が、その分布を考慮した所定値より小さい場合は、パケットが一連で送信されていると判断する。一方、パケット間隔が所定値より大きい場合はパケット群の切れ目と判断する。これらにより、一連のパケット群を抽出することができる。
(付記11)
前記パケット群抽出ステップでは、
前記パケット群のパケット数の変化について、変化ルールを記憶し、
パケットロスが発生しているパケット群のパケット数を、パケットロスが発生していないパケット群のパケット数と前記変化ルールとに基づいて決定し、
前記決定したパケット数に基づいて、パケットロスが発生しているパケット群を抽出する、付記1に記載の輻輳検出方法。
パケットロスが発生しているパケット群では、パケットロスによりパケットの連送が途切れている。しかし、パケット群におけるパケットロスの発生箇所に基づいて輻輳判定を行うためには、パケットロスを含む一連のパケット群全体を抽出する必要がある。パケットロスが発生していないパケット群は、例えばパケット間隔と所定値との比較によりパケット群の切れ目を探すことで容易に抽出できる。そこで、パケットロスが発生しているパケット群のパケット数を、パケットロスが発生していないパケット群のパケット数と所定の変化ルールとに基づいて推測することで、パケットロスが発生しているパケット群を抽出する。例えばTCPではRTT間隔ごとに所定数のパケットが一連で送信されている。パケットロスの発生が無くパケットが一連で送信できた場合には、次のRTTでは送信するパケット数を例えば1個増加させる。パケットロスが発生していないパケット群のパケット数が4パケットである場合、次のパケット群で送信されるパケット数は5パケットとなる。上述のようにしてパケットロスが発生しているパケット群を容易に抽出することができる。
(付記12)
前記輻輳判定ステップでは、前記パケットの送信元端末のアドレスごとに輻輳判定の結果を集計し、前記アドレスの階層毎に輻輳の有無を解析することで、前記ネットワーク上での輻輳の発生箇所を特定する、付記1に記載の輻輳検出方法。
例えば、あるサブネット単位で輻輳が発生している場合には、そのサブネットのルータにアクセスが集中して輻輳が発生していると特定できる。逆に、各端末のアドレス単位でしか輻輳が発生していない場合には、輻輳の発生箇所はルータではなく各端末であると特定することができる。このように輻輳の発生箇所を特定することで、対応が必要な場所に回線増強などの適切な処置を行うことができる。
(付記13)
ネットワーク上のパケットを取得するパケット取得手段と、
取得したパケットに基づいて、一連のパケットにより構成されるパケット群を抽出するパケット群抽出手段と、
前記パケット群におけるパケットロスを検出し、前記パケット群における前記パケットロスの発生箇所を特定するパケットロス検出手段と、
前記パケット群における前記パケットロスの発生箇所に基づいて、輻輳が発生しているか否かを判定する輻輳判定手段と、
を含む輻輳検出装置。
(付記14)
ネットワーク上のパケットを取得するパケット取得ステップと、
取得したパケットに基づいて、一連のパケットにより構成されるパケット群を抽出するパケット群抽出ステップと、
前記パケット群におけるパケットロスを検出し、前記パケット群における前記パケットロスの発生箇所を特定するパケットロス検出ステップと、
前記パケット群における前記パケットロスの発生箇所に基づいて、輻輳が発生しているか否かを判定する輻輳判定ステップと、
を含む輻輳検出方法をコンピュータに実行させるための輻輳検出プログラム。
本発明の実施形態例に係る輻輳検出装置を含むネットワーク構成図の一例。 輻輳検出装置の機能構成を示すブロック図。 元データが分割されて複数のIPパケットが形成される様子を示す説明図。 複数のIPパケットが一連で送信される様子を示す説明図。 IPヘッダの構造図。 パケット情報DB43に記憶されているパケット情報の一例。 (a)はUDPヘッダの構造図。(b)はRTPヘッダの構造図。 パケット情報DB43に記憶されているパケット情報の一例。 TCPヘッダの構造図。 輻輳検出装置40に到達する前にTCPパケットがロスする場合を示す説明図。 データを含むパケットについて、パケット情報DB43に記憶されているパケット情報の一例。 データを含むパケットについて、パケット情報DB43に記憶されているパケット情報の一例。 ACKパケットについて、パケット情報DB43に記憶されているパケット情報の一例。 輻輳検出装置40に到達後にTCPパケットがロスする場合を示す説明図。 データを含むパケットについて、パケット情報DB43に記憶されているパケット情報の一例。 判定方法1を説明するための説明図。 判定方法2を説明するための説明図。 判定方法3を説明するための説明図。 判定方法3を説明するための説明図。 輻輳判定部46が行った輻輳判定の結果の一例。 輻輳判定の集計結果の一例。 輻輳検出装置40での処理全体の流れを示すフローチャートの一例。 IPパケット用の輻輳判定処理の流れを示すフローチャートの一例。 RTPパケット用の輻輳判定処理の流れを示すフローチャートの一例。 TCPパケット用の輻輳判定処理の流れを示すフローチャートの一例。
符号の説明
40:輻輳検出装置
41:パケット取得部
42:パケット情報取得部
43:パケット情報DB
44:パケットロス検出部
45:パケット群抽出部
46:輻輳判定部

Claims (10)

  1. ネットワーク上のパケットを取得するパケット取得ステップと、
    取得したパケットに基づいて、一連のパケットにより構成されるパケット群を抽出するパケット群抽出ステップと、
    前記パケット群におけるパケットロスを検出し、前記パケット群における前記パケットロスの発生箇所を特定するパケットロス検出ステップと、
    前記パケット群における前記パケットロスの発生箇所に基づいて、輻輳が発生しているか否かを判定する輻輳判定ステップと、
    を含む輻輳検出方法。
  2. 前記輻輳判定ステップでは、前記パケットロスの発生箇所が、前記パケット群の所定箇所よりも時間的に後方に位置する場合、輻輳が発生していると判定し、
    前記所定箇所は、前記パケット群において時間的に中央部分から後半部分までのいずれかの位置である、請求項1に記載の輻輳検出方法。
  3. 前記輻輳判定ステップでは、前記パケット群の所定箇所よりも時間的に後方でのパケットロス数が、前記所定箇所よりも時間的に前方でのパケットロス数より大きいことに基づいて、輻輳が発生していると判定する、請求項2に記載の輻輳検出方法。
  4. 前記輻輳判定ステップでは、
    前記パケット群の所定箇所よりも時間的に前方でのパケットロス率及びパケット数を用いて、ロス率の母平均の信頼区間を統計的に推定し、前記推定した信頼区間の上限値を閾値Aとして設定し、前記パケット群の所定箇所よりも時間的に後方でのパケットロス率が前記閾値Aよりも大きい場合に、輻輳が発生していると判定する、請求項2に記載の輻輳検出方法。
  5. 前記輻輳判定ステップでは、
    前記パケット群のうちの最初から何番目のパケットであるかを示すパケット位置番号をNで表したときに、前記パケットロスの発生箇所における前記パケット位置番号Nの平均値Mが、i=x、x−1・・・と順に変化させたときに下記式(4)を最初に満たすiの値である閾値Wよりも大きいことに基づいて輻輳と判定する、請求項1に記載の輻輳検出方法
    Figure 0004924503
    F(a,b,c)は「1〜aの数字からb個抜き出した合計値がcという数字になる回数」をあらわし、
    xは、前記パケット群のパケット数であり、
    yは、前記パケット群におけるパケットロス数であり、
    Zは、輻輳が発生していると判定するための所定の下限値である。
  6. 前記パケット群抽出ステップでは、元データが複数のパケットに分割されていることを検出すると、前記複数のパケットを前記パケット群として抽出する、請求項1に記載の輻輳検出方法。
  7. 前記パケット群抽出ステップでは、各パケットを取得した時間間隔であるパケット間隔と所定値とを比較し、比較結果に基づいて前記パケット群を抽出する、請求項1に記載の輻輳検出方法。
  8. 前記輻輳判定ステップでは、前記パケットの送信元端末のアドレスごとに輻輳判定の結果を集計し、前記アドレスの階層毎に輻輳の有無を解析することで、前記ネットワーク上での輻輳の発生箇所を特定する、請求項1に記載の輻輳検出方法。
  9. ネットワーク上のパケットを取得するパケット取得手段と、
    取得したパケットに基づいて、一連のパケットにより構成されるパケット群を抽出するパケット群抽出手段と、
    前記パケット群におけるパケットロスを検出し、前記パケット群における前記パケットロスの発生箇所を特定するパケットロス検出手段と、
    前記パケット群における前記パケットロスの発生箇所に基づいて、輻輳が発生しているか否かを判定する輻輳判定手段と、
    を含む輻輳検出装置。
  10. ネットワーク上のパケットを取得するパケット取得ステップと、
    取得したパケットに基づいて、一連のパケットにより構成されるパケット群を抽出するパケット群抽出ステップと、
    前記パケット群におけるパケットロスを検出し、前記パケット群における前記パケットロスの発生箇所を特定するパケットロス検出ステップと、
    前記パケット群における前記パケットロスの発生箇所に基づいて、輻輳が発生しているか否かを判定する輻輳判定ステップと、
    を含む輻輳検出方法をコンピュータに実行させるための輻輳検出プログラム。
JP2008076954A 2008-03-25 2008-03-25 輻輳検出方法、輻輳検出装置及び輻輳検出プログラム Active JP4924503B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008076954A JP4924503B2 (ja) 2008-03-25 2008-03-25 輻輳検出方法、輻輳検出装置及び輻輳検出プログラム
US12/410,099 US8593947B2 (en) 2008-03-25 2009-03-24 Congestion detection method, congestion detection apparatus, and recording medium storing congestion detection program recorded thereon

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008076954A JP4924503B2 (ja) 2008-03-25 2008-03-25 輻輳検出方法、輻輳検出装置及び輻輳検出プログラム

Publications (2)

Publication Number Publication Date
JP2009232300A JP2009232300A (ja) 2009-10-08
JP4924503B2 true JP4924503B2 (ja) 2012-04-25

Family

ID=41117045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008076954A Active JP4924503B2 (ja) 2008-03-25 2008-03-25 輻輳検出方法、輻輳検出装置及び輻輳検出プログラム

Country Status (2)

Country Link
US (1) US8593947B2 (ja)
JP (1) JP4924503B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9270477B2 (en) * 2008-05-28 2016-02-23 Airmagnet, Inc. Method and apparatus of measuring and reporting data gap from within an analysis tool
US20090296592A1 (en) * 2008-05-28 2009-12-03 Fluke Corporation Method and apparatus of measuring and reporting data gap from within an analysis tool
JP5958325B2 (ja) * 2012-12-20 2016-07-27 富士通株式会社 ネットワーク分析方法、情報処理装置およびプログラム
KR102025757B1 (ko) 2013-07-10 2019-09-27 삼성전자주식회사 데이터 전송 방법 및 장치, 데이터 수신 방법 및 장치 및 기록 매체
EP3958512A1 (en) * 2013-07-31 2022-02-23 Assia Spe, Llc Method and apparatus for continuous access network monitoring and packet loss estimation
DE102014208500A1 (de) * 2014-05-07 2015-11-12 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zur Schätzung einer zu erwartenden Empfangsqualität
JP6641819B2 (ja) * 2015-09-15 2020-02-05 富士通株式会社 ネットワーク監視装置、ネットワーク監視方法及びネットワーク監視プログラム
CN105791008B (zh) * 2016-03-02 2019-10-22 华为技术有限公司 确定丢包位置和原因的方法和装置
US10153980B2 (en) * 2016-07-19 2018-12-11 Coco Communications Corp Systems and methods for managing network congestion
JP6308313B2 (ja) * 2017-01-30 2018-04-11 ソニー株式会社 通信装置、通信装置の通信方法、および通信システム、並びに、半導体、半導体の通信方法、およびプログラム
CN113708985B (zh) 2020-05-20 2023-01-06 华为技术有限公司 一种流量的检测方法、装置及系统
CN111865716B (zh) * 2020-06-30 2023-07-18 新华三信息技术有限公司 一种端口拥塞检测方法、装置、设备及机器可读存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3343054B2 (ja) 1997-07-01 2002-11-11 ケイディーディーアイ株式会社 インターネット対応リンクモニタ方法
JP3163479B2 (ja) * 1997-10-09 2001-05-08 株式会社超高速ネットワーク・コンピュータ技術研究所 帯域制御方法
JP3527111B2 (ja) 1998-11-18 2004-05-17 Kddi株式会社 データ転送制御方法
JP2005033556A (ja) * 2003-07-14 2005-02-03 Toshiba Corp データ送信装置、データ送信方法、データ受信装置、データ受信方法
JP3953999B2 (ja) 2003-09-30 2007-08-08 Kddi株式会社 輻輳検知装置、tcpトラヒックの輻輳検知方法およびプログラム
JP2005136546A (ja) * 2003-10-29 2005-05-26 Sony Corp 送信装置および方法、記録媒体、並びにプログラム
US7898954B2 (en) * 2004-10-20 2011-03-01 Qualcomm Incorporated Power-efficient data reception in a communication system with variable delay
KR100843073B1 (ko) * 2005-06-10 2008-07-03 삼성전자주식회사 오류 정정 패킷을 이용한 전송률 제어 방법 및 이를 이용한통신 장치
KR100739710B1 (ko) * 2005-06-14 2007-07-13 삼성전자주식회사 패킷의 손실 타입을 판별하는 방법 및 장치
US7788568B1 (en) * 2006-01-23 2010-08-31 Sprint Communications Company L.P. System and method for characterizing error correction performance for digital data transport over an IP network
JP4654926B2 (ja) 2006-02-01 2011-03-23 日本電気株式会社 通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラム
US8194539B2 (en) * 2007-06-27 2012-06-05 Motorola Solutions, Inc. System and method for monitoring congestion in communication systems

Also Published As

Publication number Publication date
US20090245103A1 (en) 2009-10-01
JP2009232300A (ja) 2009-10-08
US8593947B2 (en) 2013-11-26

Similar Documents

Publication Publication Date Title
JP4924503B2 (ja) 輻輳検出方法、輻輳検出装置及び輻輳検出プログラム
US10305928B2 (en) Detection of malware and malicious applications
CN106471778B (zh) 攻击检测装置和攻击检测方法
EP1746768A2 (en) Method and apparatus for data network sampling
US10735326B2 (en) Information processing apparatus, method and non-transitory computer-readable storage medium
EP3369213B1 (en) Performance measurement in a packet-switched communication network
CN110535888B (zh) 端口扫描攻击检测方法及相关装置
JP4583312B2 (ja) 通信状況判定方法、通信状況判定システム及び判定装置
CN114584485B (zh) 检测边缘网络质量的方法、装置、设备和计算机可读存储介质
JP6578999B2 (ja) パケット解析プログラム、パケット解析方法およびパケット解析装置
JP5292444B2 (ja) パケットロス率推定装置及び方法及びプログラム
US20200136944A1 (en) Data Transmission Performance Detection
CN111756713A (zh) 网络攻击识别方法、装置、计算机设备及介质
JP2015023463A (ja) パケット解析装置、パケット解析方法、及びパケット解析プログラム
CN113364698A (zh) 带宽估计方法、系统、电子设备与存储介质
US10749765B2 (en) Method and system for monitoring communication in a network
EP2704362A2 (en) Method, apparatus and system for analyzing network transmission characteristics
JP2019022052A (ja) パケット分類プログラム、パケット分類方法およびパケット分類装置
US20160234344A1 (en) Message log removal apparatus and message log removal method
JP4282556B2 (ja) フローレベル通信品質管理装置と方法およびプログラム
CN116582507B (zh) 基于可编程交换机的网络微突发流检测方法及相关设备
WO2023112173A1 (ja) トラフィック監視装置、トラフィック監視方法、及びプログラム
US20210385173A1 (en) Communications method, apparatus, and system
JP2006013876A (ja) トラフィック行列生成装置並びにそのコンピュータプログラム及び通信装置並びにそのコンピュータプログラム
JP6228262B2 (ja) 攻撃検出装置、攻撃検出方法、および攻撃検出プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111226

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: 20120110

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120123

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4924503

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150