特許第6800933号(P6800933)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

特許6800933ネットワーク評価装置、評価方法およびプログラム
<>
  • 特許6800933-ネットワーク評価装置、評価方法およびプログラム 図000002
  • 特許6800933-ネットワーク評価装置、評価方法およびプログラム 図000003
  • 特許6800933-ネットワーク評価装置、評価方法およびプログラム 図000004
  • 特許6800933-ネットワーク評価装置、評価方法およびプログラム 図000005
  • 特許6800933-ネットワーク評価装置、評価方法およびプログラム 図000006
  • 特許6800933-ネットワーク評価装置、評価方法およびプログラム 図000007
  • 特許6800933-ネットワーク評価装置、評価方法およびプログラム 図000008
  • 特許6800933-ネットワーク評価装置、評価方法およびプログラム 図000009
  • 特許6800933-ネットワーク評価装置、評価方法およびプログラム 図000010
  • 特許6800933-ネットワーク評価装置、評価方法およびプログラム 図000011
  • 特許6800933-ネットワーク評価装置、評価方法およびプログラム 図000012
  • 特許6800933-ネットワーク評価装置、評価方法およびプログラム 図000013
  • 特許6800933-ネットワーク評価装置、評価方法およびプログラム 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6800933
(24)【登録日】2020年11月27日
(45)【発行日】2020年12月16日
(54)【発明の名称】ネットワーク評価装置、評価方法およびプログラム
(51)【国際特許分類】
   H04L 29/14 20060101AFI20201207BHJP
【FI】
   H04L13/00 313
【請求項の数】8
【全頁数】14
(21)【出願番号】特願2018-192456(P2018-192456)
(22)【出願日】2018年10月11日
(65)【公開番号】特開2020-61677(P2020-61677A)
(43)【公開日】2020年4月16日
【審査請求日】2019年10月17日
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】110000154
【氏名又は名称】特許業務法人はるか国際特許事務所
(72)【発明者】
【氏名】島 幸司
(72)【発明者】
【氏名】幾島 誠
(72)【発明者】
【氏名】小巻 賢二郎
【審査官】 宮島 郁美
(56)【参考文献】
【文献】 国際公開第2008/004616(WO,A1)
【文献】 特開2008−219127(JP,A)
【文献】 特開2009−081737(JP,A)
【文献】 米国特許出願公開第2009/0303892(US,A1)
【文献】 中国特許出願公開第107431638(CN,A)
【文献】 特表2018−504050(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00−12/28,12/44−12/955,29/00
H04B7/24−7/26,H04W4/00−99/00
(57)【特許請求の範囲】
【請求項1】
それぞれ送信元からデータが送信される順序を示す識別値を含む複数のパケットを1つずつ受信し、前記受信されるパケットに含まれるデータのうち既にバッファに格納されたデータと位置が重複しないデータを前記バッファに格納する取得手段と、
前記受信された複数のパケットのうちいずれかである第1のパケットに含まれる前記識別値が、前記第1のパケットが当該第1のパケットより前に受信された第2のパケットより前に送信されることを示し、かつ、当該第1のパケットに含まれるデータのうち少なくとも一部が前記バッファに格納された場合に、送受信経路の不安定性を示す評価値を増加させる評価手段と、
を含むネットワーク評価装置。
【請求項2】
請求項1に記載のネットワーク評価装置において、
前記評価手段は、前記送信元との間の接続ごとに前記評価値を算出する、
ネットワーク評価装置。
【請求項3】
請求項2に記載のネットワーク評価装置において、
前記評価手段は、前記接続が終了した場合に、前記評価値を出力する、
ネットワーク評価装置。
【請求項4】
請求項2または3に記載のネットワーク評価装置において、
前記評価手段は、前記接続において所定の数より多いパケットを受信した場合に、前記評価値を出力する、
ネットワーク評価装置。
【請求項5】
請求項2または3に記載のネットワーク評価装置において、
前記評価手段は、前記接続において受信される複数のパケットのうち、先頭から所定の数のパケットを除く複数のパケットについて前記評価値を算出する、
ネットワーク評価装置。
【請求項6】
請求項1から5のいずれかに記載のネットワーク評価装置において、
前記第2のパケットは、前記第1のパケットを受信する前に受信された複数のパケットのうち、順序が最後であることを示す識別値を含み、
前記評価手段は、前記第1のパケットに含まれる前記識別値が、前記第1のパケットが前記第2のパケットより前の順序であることを示す場合に、前記第1のパケットの識別値と前記第2のパケットの識別値との差に応じた値を前記評価値に加算する、
ネットワーク評価装置。
【請求項7】
それぞれ送信元からデータが送信される順序を示す識別値を含む複数のパケットを1つずつ受信し、前記受信されるパケットに含まれるデータのうち既にバッファに格納されたデータと位置が重複しないデータを前記バッファに格納するステップと、
前記受信された複数のパケットのうちいずれかである第1のパケットに含まれる前記識別値が、前記第1のパケットが当該第1のパケットより前に受信された第2のパケットより前に送信されることを示し、かつ、当該第1のパケットに含まれるデータのうち少なくとも一部が前記バッファに格納された場合に、送受信経路の不安定性を示す評価値を増加させるステップと、
を含むネットワーク評価方法。
【請求項8】
それぞれ送信元からデータが送信される順序を示す識別値を含む複数のパケットを1つずつ受信し、前記受信されるパケットに含まれるデータのうち既にバッファに格納されたデータと位置が重複しないデータを前記バッファに格納する取得手段、および、
前記受信された複数のパケットのうちいずれかである第1のパケットに含まれる前記識別値が、前記第1のパケットが当該第1のパケットより前に受信された第2のパケットより前に送信されることを示し、かつ、当該第1のパケットに含まれるデータのうち少なくとも一部が前記バッファに格納された場合に、送受信経路の不安定性を示す評価値を増加させる評価手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はネットワーク評価装置、評価方法およびプログラムに関する。
【背景技術】
【0002】
LAN(Local Area Network)やインターネットなどにおいて、例えばTCPのような通信プロトコルを用いている。TCPなどの通信プロトコルでは、データが分割されたパケットを、通信経路を介して送信している。例えばサーバとクライアントの間の通信における安定性を評価するために、パケットキャプチャで通信のパケットを取得し、パケットロス率を算出する手法がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
パケットロス率を算出するには、パケットロスがあるか否かを検出する必要がある。このためには、送信されたが受信されないパケットを見つけ出す必要があり、送信側の装置と受信側の装置との間での通信経路におけるパケットロス率を計測することは容易でなかった。
【0004】
本発明は上記課題を鑑みてなされたものであり、その目的は、通信経路におけるネットワークの安定性をより容易に評価する技術を提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明にかかるネットワーク評価装置は、それぞれ送信元からデータが送信される順序を示す識別値を含み1つずつ受信される複数のパケットを取得する取得手段と、前記受信された複数のパケットのうちいずれかである第1のパケットに含まれる前記識別値が、前記第1のパケットが当該第1のパケットより前に受信された第2のパケットより前に送信されることを示す場合に、送受信経路の不安定性を示す評価値を増加させる評価手段と、を含む。
【0006】
本発明にかかる評価方法は、それぞれ送信元からデータが送信される順序を示す識別値を含み1つずつ受信される複数のパケットを取得するステップと、前記受信された複数のパケットのうちいずれかである第1のパケットに含まれる前記識別値が、前記第1のパケットが当該第1のパケットより前に受信された第2のパケットより前に送信されることを示す場合に、送受信経路の不安定性を示す評価値を増加させるステップと、を含む。
【0007】
本発明にかかるプログラムは、それぞれ送信元からデータが送信される順序を示す識別値を含み1つずつ受信される複数のパケットを取得する取得手段、および、前記受信された複数のパケットのうちいずれかである第1のパケットに含まれる前記識別値が、前記第1のパケットが当該第1のパケットより前に受信された第2のパケットより前に送信されることを示す場合に、送受信経路の不安定性を示す評価値を増加させる評価手段、としてコンピュータを機能させる。
【0008】
本発明によれば、通信経路におけるネットワークの安定性をより容易に評価することができる。
【0009】
本発明の一形態では、前記評価手段は、前記送信元との間の接続ごとに前記評価値を算出してもよい。
【0010】
本発明の一形態では、前記評価手段は、前記接続が終了した場合に、前記評価値を出力してもよい。
【0011】
本発明の一形態では、前記評価手段は、前記接続において所定の数より多いパケットを受信した場合に、前記評価値を出力してもよい。
【0012】
本発明の一形態では、前記評価手段は、前記接続において受信される複数のパケットのうち、先頭から所定の数のパケットを除く複数のパケットについて前記評価値を算出してもよい。
【0013】
本発明の一形態では、前記第2のパケットは、前記第1のパケットを受信する前に受信された複数のパケットのうち、順序が最後であることを示す識別値を含み、前記評価手段は、前記第1のパケットに含まれる前記識別値が、前記第1のパケットが前記第2のパケットより前の順序であることを示す場合に、前記第1のパケットの識別値と前記第2のパケットの識別値との差に応じた値を前記評価値に加算してもよい。
【図面の簡単な説明】
【0014】
図1】通信システムのハードウェア構成を示す図である。
図2】通信システムが実現する機能を示すブロック図である。
図3】通信の概要を示す図である。
図4】受信処理の一例を示すフローチャートである。
図5】受信処理の一例を示すフローチャートである。
図6】バッファに格納されるパケットのデータの一例を示す図である。
図7】バッファに格納されるデータと受信パケットとの一例を示す図である。
図8】バッファに格納されるデータと受信パケットとの他の一例を示す図である。
図9】バッファに格納されるデータと受信パケットとの他の一例を示す図である。
図10】バッファに格納されるデータと受信パケットとの他の一例を示す図である。
図11】バッファに格納されるデータと受信パケットとの他の一例を示す図である。
図12】バッファに格納されるデータと受信パケットとの他の一例を示す図である。
図13】リオーダー率を出力する処理の一例を示す図である。
【発明を実施するための形態】
【0015】
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。
【0016】
図1は、本発明の実施形態にかかる通信システムのハードウェア構成を示す図である。本発明にかかる通信システムは、第1の装置10と、第2の装置20とを含む。第1の装置10は、プロセッサ11、記憶部12、通信部13、入出力部14を含むコンピュータである。第2の装置20は、プロセッサ21、記憶部22、通信部23、入出力部24を含むコンピュータである。例えば、第1の装置10がサーバコンピュータであり、第2の装置20が家庭内のLANに接続される家庭用ゲーム機であってもよい。
【0017】
プロセッサ11は、記憶部12に格納されているプログラムに従って動作し、通信部13、入出力部14を制御する。プロセッサ21は、記憶部22に格納されているプログラムに従って動作し、通信部23、入出力部24を制御する。上記プログラムは、フラッシュメモリ等のコンピュータで読み取り可能な記憶媒体により供給されてもよいし、インターネット等のネットワークを介して提供されてよい。
【0018】
記憶部12、記憶部22は、DRAMや、フラッシュメモリやハードディスクドライブなどの外部記憶装置によって構成されている。記憶部12,22は、上記プログラムを格納する。また、記憶部12,22は、プロセッサ11,21や通信部13,23等から入力される情報や演算結果を格納する。
【0019】
通信部13,23は他の機器と通信するための集積回路やアンテナなどにより構成されている。通信部13,23は、ネットワークに接続するためのコネクタやチップなどで構成される。通信部13,23は、LANなどのネットワークを介して他の装置へデータを送信し、他の装置から送信されるデータを受信する。
【0020】
入出力部14は、キーボードなどの入力デバイスからの情報を取得する回路と、音声出力デバイスや画像表示デバイスなどの出力デバイスを制御する回路とを含む。入出力部14は、入力デバイスから入力信号を取得し、その入力信号が変換された情報をプロセッサ11や記憶部12に入力する。また入出力部14は、プロセッサ11などの制御に基づいて、音声をスピーカに出力させ、画像を表示デバイスに出力させる。
【0021】
図2は、通信システムが実現する機能を示すブロック図である。第1の装置10は、機能的に、送信部51を含み、第2の装置20は、機能的に、受信部56、ネットワーク評価部57、アプリケーション実行部58を含む。送信部51は、主に、第1の装置10に含まれるプロセッサ11が記憶部12に格納されるプログラムを実行し、通信部13を制御することにより実現される。受信部56は、主に、第2の装置20に含まれるプロセッサ21が記憶部22に格納されるプログラムを実行し、通信部23を制御することにより実現される。ネットワーク評価部57、アプリケーション実行部58は、主に、プロセッサ21が記憶部22に格納されるプログラムを実行し、必要に応じて入出力部14を制御することにより実現される。なお、図2には説明に必要な構成のみを記載しており、実際には第1の装置10にも受信部56に相当する構成が存在し、第2の装置20にも送信部51に相当する構成が存在する。
【0022】
送信部51は、第2の装置20の特定のポートと通信接続し、通信接続されたポートへ複数のパケットPを送信する。送信部51は、パケットPのサイズより大きなデータを複数のパケットPに分割し、分割されたパケットPを送信する。パケットPのそれぞれはデータの本体が送信される順序を示す識別値としてシーケンス番号を含む。シーケンス番号は初めて送信されるパケットPに対して付与され、通信の異常などにより再送信されるパケットPは、初めて送信される際に付与されたシーケンス番号を含む。
【0023】
送信されたパケットPが第2の装置20に到達すると、第2の装置20から第1の装置10へそのパケットPについての確認応答ACKが送信される。送信部51は確認応答ACKを受信し、いずれかの送信済のパケットPについてあらかじめ定められた時間に確認応答ACKを受信できなかった場合には、そのパケットPを再び送信する。
【0024】
受信部56は、第1の装置10と通信接続し、送信部51から通信接続されたポートへ送信される複数のパケットPを1つずつ受信することにより、その受信されたパケットPを取得する。
【0025】
ネットワーク評価部57は、受信されたパケットPのうちいずれかである第1のパケットPに含まれる識別値が、その第1のパケットPより前に受信された第2のパケットPより前にその第1のパケットPが送信されることを示す場合に、送受信経路の不安定性を示す評価値を増加させる。またネットワーク評価部57は、その評価値をアプリケーション実行部58や記憶部12へ出力する。
【0026】
アプリケーション実行部58は、ネットワーク評価部57から出力された評価値に応じた処理を実行する。例えば、アプリケーション実行部58は、ある接続についての評価値が、ネットワークが不安定であることを示す場合には、第1の装置10との接続を終了し、あらたに、第1の装置10と同じ機能を有する他の装置と接続する。また、アプリケーション実行部58は、その評価値を図示しない管理サーバへ送信してもよい。管理サーバは、送信された評価値を統計処理し、ネットワークの構成を動的に変更してもよい。
【0027】
図3は、第1の装置10と第2の装置20との間の通信の概要を示す図である。送信部51は、あらかじめ定められたデータ量(ウインドウサイズ)の送信領域に収まるパケットP1からP4を順に送信する。パケットP1,P2,P4が第2の装置20に受信され、パケットP3は通信が不安定になり、通信経路上で失われたとする。
【0028】
第2の装置20がパケットP1,P2についての確認応答ACK(2)を送信し、送信部51がその確認応答ACK(2)を受信すると、送信部51はパケットP1,P2を送信領域から除外し、除外により送信領域に収めることができる新たなパケットP5,P6を送信する。一方、送信部51は、送信から再送タイムアウトRTを経過しても確認応答ACKを受信しないパケットP3を検出し、その検出されたパケットP3を再送する。図示しないが、第2の装置20は、パケットP5,P6を受信した場合にもパケットP2まで正常に受信している旨の確認応答ACK(2)を送信する。そこで、送信部51は、同一の確認応答ACKを所定の回数受信した場合に、その確認応答ACK(2)が示す正常に受信できたパケットP2の後続のパケットP3を再送してもよい。
【0029】
図3をみると、再送が発生すると、第2の装置20からみて、パケットP3はパケットP6より後に受信しており、元の送信順と異なっている。また、通信の輻輳などにより通信が不安定になると、ルータの動作によりパケットPの受信順が変化することもある。以下では、この現象を利用して通信の安定性を評価する手法について説明する。
【0030】
図4および5は、第2の装置20における受信処理の一例を示すフローチャートであり、受信部56およびネットワーク評価部57の処理の一例を示す図である。受信部56およびネットワーク評価部57のプログラムは、いわゆるTCP層のプロトコルスタックとして実行される。図4および5に示されるフローチャートは、送信部51の送信ポートと受信部56の受信ポートとの間で通信接続が確立されてから切断されるまでの間に、受信部56がパケットPを受信するごとに実行される。
【0031】
はじめに、受信部56は、受信ポートに受信されたパケットPである受信パケットPRを受信順にしたがって1つ取得する(ステップS201)。受信パケットPRは、データを含み、さらに、そのデータの先頭がこの通信接続で送信される一連のデータのうちどの順序にあるかを示す先頭シーケンス番号と、データサイズとを含む。
【0032】
次に、受信パケットPRのシーケンス番号が、受信最終番号TBより大きいか判定する(ステップS202)。ここで、受信最終番号TBは、これまでに受信部56がこの通信接続で受信したパケットPのデータのうち、最もうしろの位置を示すシーケンス番号であり、これまでに受信したパケットPのうち最も後ろに位置するものを示す識別値に相当する。シーケンス番号が、受信最終番号TBより大きい場合は(ステップS202のY)、受信パケットPRの受信順の入れ替わりの可能性がないケースの処理である、ステップS203以降の処理を実行する。シーケンス番号が、受信最終番号TB以下の場合(ステップS202のN)の処理については後述する。
【0033】
ステップS203では、バッファに受信パケットPRを格納し、受信最終番号TBを、受信パケットPRのデータの末尾を示すシーケンス番号に更新する(ステップS203)。バッファは、受信されたパケットPのデータがそのデータのシーケンス番号と紐づけて格納される記憶部12の領域である。
【0034】
図6は、バッファに格納されるデータの一例を示す図である。図6は、シーケンス番号がそれぞれ、1から1024、1025から2048、2049から3072、4097から5120、5121から6144、7169から8192、8193から9216であるデータを含む7つのパケットPが受信され、バッファに格納されるケースを示している。パケットPのデータは例えばバイトやワードといった単位に分割され、その単位ごとにシーケンス番号が対応付けられている。そのため、一つのパケットPにおける先頭シーケンス番号と次のパケットPの先頭シーケンス番号との差はデータサイズに相当する。
【0035】
図6に示されるケースでは、受信最終番号TBは9216である。次期番号RNは、連続して受信できているデータの次の位置を示すシーケンス番号であり、図6の例では、シーケンス番号が3073から4096のデータを受信していないため、次期番号RNは3073となる。
【0036】
受信最終番号TBが更新されると、受信パケットPRの先頭シーケンス番号が次期番号RNと等しい場合には(ステップS205のY)、次期番号RNを受信パケットPRの末尾の次を示すシーケンス番号(末尾のシーケンス番号に1が加算されたシーケンス番号)に更新する(ステップS205)。途中で紛失したパケットPのデータの受信を待つ状態でなく、かつ送信部51からのパケットPを連続的に受信する場合には、次期番号RNと受信パケットPRの先頭シーケンス番号とが一致する。
【0037】
そして、受信部56は確認応答ACKを送信部51にむけて送信する(ステップS206)。
【0038】
図7は、バッファに格納されるデータと受信パケットPRとの一例を示す図である。図7は、図6に示されるバッファの状態に、先頭シーケンス番号が受信最終番号TBより大きい受信パケットPRが受信された場合の例について示している。この場合には、受信最終番号TBが更新され、次期番号RNは更新されない。
【0039】
受信パケットPRの先頭シーケンス番号が次期番号RNと等しくない場合には(ステップS205のN)、データの入れ替わりが起きている可能性があるケースの処理であるステップS210以降の処理を実行する。
【0040】
ステップS210では、受信パケットPRに含まれるデータのうち、バッファにすでに格納されているデータと位置が重複しない領域にあるデータをバッファに格納する(ステップS210)。
【0041】
図8は、バッファに格納されるデータと受信パケットPRとの他の一例を示す図である。図8の例では、受信パケットPRに含まれるデータのシーケンス番号は、3073から5120であり、その一部である4097から5120のデータがバッファにすでに格納されているデータを重複している。この場合には、新たにバッファに格納されるデータは、シーケンス番号3073から5120のデータである。なお、受信パケットPRにより次期番号RNおよびリオーダー数RCが更新されるが、その詳細は後述する。
【0042】
バッファにデータが格納されると、受信部56は、新たにバッファに格納された受信パケットPRのデータが存在するか判定する(ステップS211)。新たにバッファに格納されたデータがない場合には(ステップS211のN)、この受信パケットPRについての処理を終了する。
【0043】
図9は、バッファに格納されるデータと受信パケットPRとの他の一例を示す図である。図9の例では、受信パケットPRに含まれるすべてのデータの位置(シーケンス番号が示す位置)が、すでに受信されバッファに格納されているデータと重複しているため新たにバッファに格納されるデータはなく、受信部56は単に受信パケットPRを破棄し確認応答ACKを送信しない。また、すべてのデータがすでにバッファに格納されているものと重複する受信パケットPRは、ネットワーク評価部57の処理の対象から除外される。
【0044】
新たにバッファに格納されたデータが存在する場合には(ステップS211のY)、受信部56は、受信パケットPRに含まれるデータに対するシーケンス番号が、次期番号RNを含む場合、言い換えれば、次期番号RNが先頭シーケンス番号以上でありかつ受信パケットPRの末尾シーケンス番号(先頭シーケンス番号とデータサイズとの和)未満の場合には(ステップS212)、次期番号RNを更新する(ステップS213)。そして、ステップS212の判定結果に関わらず、受信部56は確認応答ACKを送信部51へ向けて送信する(ステップS214)。
【0045】
図10は、バッファに格納されるデータと受信パケットPRとの他の一例を示す図である。図10の例では、受信パケットPRの先頭シーケンス番号3073と次期番号RNとが等しくステップS211の条件を満たすので、受信部56は次期番号RNを更新する。受信部56は新たな次期番号RNに、バッファに格納されるデータのうち、更新前の次期番号RNから連続的に配置されているデータの終端に対応するシーケンス番号の次の値(図10の例では6145)を設定する。
【0046】
図11は、バッファに格納されるデータと受信パケットPRとの他の一例を示す図である。図11の例では、受信パケットPRのデータがバッファに格納されていたデータと重複しない。そのため受信パケットPRのデータがバッファに格納される。一方、受信パケットPRは次期番号RNの位置に相当するデータを含まないため、次期番号RNが更新されない。
【0047】
図12は、バッファに格納されるデータと受信パケットPRとの他の一例を示す図である。図12の例では、受信パケットPRに含まれるデータにおいて、先頭シーケンス番号が次期番号RNと等しく、末尾シーケンス番号が受信最終番号TBと等しい。このような場合には受信部56は受信パケットPRのデータのうち、バッファに格納されていない領域についてバッファに格納し、さらに次期番号RNを受信最終番号TBに更新する。
【0048】
さらに、新たにバッファに格納されたデータが存在する場合には(ステップS211のY)、ネットワーク評価部57は、新たにバッファに格納されたデータが、受信最終番号TBより小さいシーケンス番号のものを含むか判定する(ステップS215)。この判定は、受信パケットPRの先頭シーケンス番号が示す位置より後ろにある、すでに受信されバッファに格納されたデータが存在するか否かを判定することと等価である。新たにバッファに格納されたデータが、受信最終番号TBより小さいシーケンス番号のものを含む場合には(ステップS215のY)、ネットワーク評価部57はリオーダー数RCを増加させる(ステップS216)。
【0049】
ここで、ネットワーク評価部57は、リオーダー数RCを増加させる際に、リオーダー数RCに1を加算してもよいし、受信最終番号TB(これまでに受信されたパケットPの中で最も後の順序であることを示す識別値に相当する)と受信パケットPRのシーケンス番号との差に応じた値を加算してもよい。後者の場合、受信パケットPRの順序の入れ替わりが大きくなるほど不安定であると評価することが可能になる。
【0050】
図7から12を用いて、リオーダー数RCが増加するか否かについてより具体的に説明する。図7の例では、受信パケットPRのシーケンス番号は受信最終番号TBより後ろにあるため、ネットワーク評価部57はリオーダー数RCをカウントせず、図9のように、新たにバッファに格納されるデータが存在しないケースにおいても、ネットワーク評価部57はリオーダー数RCをカウントしない。一方、図8,10から12のように、受信パケットPRが受信最終番号TBより前のシーケンス番号のデータを含む場合には、ネットワーク評価部57はリオーダー数RCをカウントする。
【0051】
リオーダー数RCがカウントされるケースでは、後から受信される受信パケットPRがその前に受信されたパケットPのうち最後のシーケンス番号のデータを含むものより前に位置し、データの並び順と受信順とが一致していない。このようなケースは通信の不安定が生じるケースであり、パケットロスが生じるケースに近い。リオーダー数RCをカウントすることで、パケットロスに近い特性を有する指標を取得することが可能になる。
【0052】
ステップS216の処理が実行されるか、ステップS215で条件を満たさないと判定された場合には(ステップS215のN)、受信部56は、受信パケットPRが、受信最終番号TBより大きいシーケンス番号のデータを含むか否か、言い換えれば、受信パケットPRの末尾シーケンス番号が受信最終番号TBより大きいか否かを判定する(ステップS217)。受信パケットPRの末尾シーケンス番号が受信最終番号TBより大きい場合には(ステップS217のY)、受信部56は受信最終番号TBを、受信パケットPRの末尾シーケンス番号に更新する(ステップS218)。更新された受信最終番号TBは、後続の受信パケットPRに対して図4,5の処理をする際に用いられる。
【0053】
次に、カウントされたリオーダー数RCからリオーダー率を算出する処理について説明する。図13は、リオーダー率を出力する処理の一例を示す図である。
【0054】
図13に示される処理は、送信部51と受信部56との間の1または複数の通信接続のそれぞれが切断されるごとに実行されるが、後で複数の通信接続のそれぞれについてまとめて実行されてもよい。この場合、受信部56は、切断の際に記憶部12にリオーダー数RC、後述の受信パケット数、通信接続の終了状況を記憶部12に格納し、ネットワーク評価部57が記憶部12に格納された値を用いて図13に示される処理を実行してもよい。
【0055】
はじめに、ネットワーク評価部57は、通信接続が正常に終了したか否かを判定する(ステップS301)。通信接続が異常に終了した場合には(ステップS301のN)、ネットワーク評価部57はリオーダー率の算出をせず処理を終了する。一方、通信接続が正常に終了した場合には(ステップS301のY)、ネットワーク評価部57は、終了した通信接続において受信されたパケットPの数である受信パケット数が閾値(例えば300)以上であるか否かを判定する(ステップS302)。受信パケット数が閾値未満の場合には(ステップS302のN)、ネットワーク評価部57はリオーダー率の算出をせず処理を終了する。一方、受信パケット数が閾値以上の場合には(ステップS302のY)、ネットワーク評価部57はリオーダー数RCを受信パケット数で除算することにより、リオーダー率を算出する(ステップS303)。そして、ネットワーク評価部57は算出されたリオーダー率を記憶部12やアプリケーションへ出力する(ステップS304)。
【0056】
通常のパケットPの送受信では、送信部51および受信部56は通信経路における適正な通信速度を把握することができないため、通信速度が実情に合わせてある程度安定するまでは通信の状態が不安定になりやすい。そこで、受信パケット数が閾値以上の通信接続に限ってリオーダー率を求めることで、異常値が生じる可能性を減らすことができる。
【0057】
ここで、受信パケット数によってリオーダー率を算出するか判断する代わりに、通信接続の開始から受信される所定の数のパケットPを、リオーダー数RCおよびリオーダー率の算出対象から外し、残りのパケットPについてリオーダー数RCおよびリオーダー率を算出してもよい。具体的には、受信パケット数が所定の値以下である場合には、ネットワーク評価部57はステップS215、S216の処理をスキップし、またネットワーク評価部57は、ステップS303においてリオーダー数RCを受信パケット数から所定の値をひいた値で除算することによりリオーダー率を算出する。
【0058】
図13の例では、正常終了した通信接続に限定してリオーダー率を算出している。これについても、通信接続が異常終了するケースでは統計的に異常値が算出されることが多いためである。このケースを除外することで、異常値が生じる可能性を減らすことができる。
【0059】
なお、ネットワーク評価部57がデータを受信する第2の装置20と異なる装置に設けられてもよい。この場合は、受信部56の代わりに、第2の装置20へ送信されるパケットPをキャプチャする機能を設け、ネットワーク評価部57がその機能の一部として実装されてもよいし、ネットワーク評価部57があらかじめ取得され受信された順に記憶部12に格納される複数のパケットPを読み出すツールとして実装されてもよい。
【符号の説明】
【0060】
10 第1の装置、11,21 プロセッサ、12,22 記憶部、13,23 通信部、14,24 入出力部、20 第2の装置、51 送信部、56 受信部、57 ネットワーク評価部、58 アプリケーション実行部、ACK 確認応答、P,P1,P2,P3,P4,P5,P6 パケット、PR 受信パケット、RC リオーダー数、RN 次期番号、TB 受信最終番号、RT 再送タイムアウト、

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13