(57)【要約】【課題】通信経路におけるネットワークの安定性をより容易に評価すること【解決手段】ネットワーク評価装置は、それぞれ送信元からデータが送信される順序を示す識別値を含み１つずつ受信される複数のパケットを取得し、受信された複数のパケットのうちいずれかである第１のパケットに含まれる識別値が、第１のパケットが、その前に受信された第２のパケットより前に送信されることを示す場合に、送受信経路の不安定性を示す評価値を増加させる。【選択図】図５
2020061677.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ送信元からデータが送信される順序を示す識別値を含み１つずつ受信される複数のパケットを取得する取得手段と、
前記受信された複数のパケットのうちいずれかである第１のパケットに含まれる前記識別値が、前記第１のパケットが当該第１のパケットより前に受信された第２のパケットより前に送信されることを示す場合に、送受信経路の不安定性を示す評価値を増加させる評価手段と、
を含むネットワーク評価装置。
【請求項２】
請求項１に記載のネットワーク評価装置において、
前記評価手段は、前記送信元との間の接続ごとに前記評価値を算出する、
ネットワーク評価装置。
【請求項３】
請求項２に記載のネットワーク評価装置において、
前記評価手段は、前記接続が終了した場合に、前記評価値を出力する、
ネットワーク評価装置。
【請求項４】
請求項２または３に記載のネットワーク評価装置において、
前記評価手段は、前記接続において所定の数より多いパケットを受信した場合に、前記評価値を出力する、
ネットワーク評価装置。
【請求項５】
請求項２または３に記載のネットワーク評価装置において、
前記評価手段は、前記接続において受信される複数のパケットのうち、先頭から所定の数のパケットを除く複数のパケットについて前記評価値を算出する、
ネットワーク評価装置。
【請求項６】
請求項１から５のいずれかに記載のネットワーク評価装置において、
前記第２のパケットは、前記第１のパケットを受信する前に受信された複数のパケットのうち、順序が最後であることを示す識別値を含み、
前記評価手段は、前記第１のパケットに含まれる前記識別値が、前記第１のパケットが前記第２のパケットより前の順序であることを示す場合に、前記第１のパケットの識別値と前記第２のパケットの識別値との差に応じた値を前記評価値に加算する、
ネットワーク評価装置。
【請求項７】
それぞれ送信元からデータが送信される順序を示す識別値を含み１つずつ受信される複数のパケットを取得するステップと、
前記受信された複数のパケットのうちいずれかである第１のパケットに含まれる前記識別値が、前記第１のパケットが当該第１のパケットより前に受信された第２のパケットより前に送信されることを示す場合に、送受信経路の不安定性を示す評価値を増加させるステップと、
を含むネットワーク評価方法。
【請求項８】
それぞれ送信元からデータが送信される順序を示す識別値を含み１つずつ受信される複数のパケットを取得する取得手段、および、
前記受信された複数のパケットのうちいずれかである第１のパケットに含まれる前記識別値が、前記第１のパケットが当該第１のパケットより前に受信された第２のパケットより前に送信されることを示す場合に、送受信経路の不安定性を示す評価値を増加させる評価手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク評価装置、評価方法およびプログラムに関する。
【背景技術】
【０００２】
ＬＡＮ（Local Area Network）やインターネットなどにおいて、例えばＴＣＰのような通信プロトコルを用いている。ＴＣＰなどの通信プロトコルでは、データが分割されたパケットを、通信経路を介して送信している。例えばサーバとクライアントの間の通信における安定性を評価するために、パケットキャプチャで通信のパケットを取得し、パケットロス率を算出する手法がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
パケットロス率を算出するには、パケットロスがあるか否かを検出する必要がある。このためには、送信されたが受信されないパケットを見つけ出す必要があり、送信側の装置と受信側の装置との間での通信経路におけるパケットロス率を計測することは容易でなかった。
【０００４】
本発明は上記課題を鑑みてなされたものであり、その目的は、通信経路におけるネットワークの安定性をより容易に評価する技術を提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明にかかるネットワーク評価装置は、それぞれ送信元からデータが送信される順序を示す識別値を含み１つずつ受信される複数のパケットを取得する取得手段と、前記受信された複数のパケットのうちいずれかである第１のパケットに含まれる前記識別値が、前記第１のパケットが当該第１のパケットより前に受信された第２のパケットより前に送信されることを示す場合に、送受信経路の不安定性を示す評価値を増加させる評価手段と、を含む。
【０００６】
本発明にかかる評価方法は、それぞれ送信元からデータが送信される順序を示す識別値を含み１つずつ受信される複数のパケットを取得するステップと、前記受信された複数のパケットのうちいずれかである第１のパケットに含まれる前記識別値が、前記第１のパケットが当該第１のパケットより前に受信された第２のパケットより前に送信されることを示す場合に、送受信経路の不安定性を示す評価値を増加させるステップと、を含む。
【０００７】
本発明にかかるプログラムは、それぞれ送信元からデータが送信される順序を示す識別値を含み１つずつ受信される複数のパケットを取得する取得手段、および、前記受信された複数のパケットのうちいずれかである第１のパケットに含まれる前記識別値が、前記第１のパケットが当該第１のパケットより前に受信された第２のパケットより前に送信されることを示す場合に、送受信経路の不安定性を示す評価値を増加させる評価手段、としてコンピュータを機能させる。
【０００８】
本発明によれば、通信経路におけるネットワークの安定性をより容易に評価することができる。
【０００９】
本発明の一形態では、前記評価手段は、前記送信元との間の接続ごとに前記評価値を算出してもよい。
【００１０】
本発明の一形態では、前記評価手段は、前記接続が終了した場合に、前記評価値を出力してもよい。
【００１１】
本発明の一形態では、前記評価手段は、前記接続において所定の数より多いパケットを受信した場合に、前記評価値を出力してもよい。
【００１２】
本発明の一形態では、前記評価手段は、前記接続において受信される複数のパケットのうち、先頭から所定の数のパケットを除く複数のパケットについて前記評価値を算出してもよい。
【００１３】
本発明の一形態では、前記第２のパケットは、前記第１のパケットを受信する前に受信された複数のパケットのうち、順序が最後であることを示す識別値を含み、前記評価手段は、前記第１のパケットに含まれる前記識別値が、前記第１のパケットが前記第２のパケットより前の順序であることを示す場合に、前記第１のパケットの識別値と前記第２のパケットの識別値との差に応じた値を前記評価値に加算してもよい。
【図面の簡単な説明】
【００１４】
【図１】通信システムのハードウェア構成を示す図である。
【図２】通信システムが実現する機能を示すブロック図である。
【図３】通信の概要を示す図である。
【図４】受信処理の一例を示すフローチャートである。
【図５】受信処理の一例を示すフローチャートである。
【図６】バッファに格納されるパケットのデータの一例を示す図である。
【図７】バッファに格納されるデータと受信パケットとの一例を示す図である。
【図８】バッファに格納されるデータと受信パケットとの他の一例を示す図である。
【図９】バッファに格納されるデータと受信パケットとの他の一例を示す図である。
【図１０】バッファに格納されるデータと受信パケットとの他の一例を示す図である。
【図１１】バッファに格納されるデータと受信パケットとの他の一例を示す図である。
【図１２】バッファに格納されるデータと受信パケットとの他の一例を示す図である。
【図１３】リオーダー率を出力する処理の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。
【００１６】
図１は、本発明の実施形態にかかる通信システムのハードウェア構成を示す図である。本発明にかかる通信システムは、第１の装置１０と、第２の装置２０とを含む。第１の装置１０は、プロセッサ１１、記憶部１２、通信部１３、入出力部１４を含むコンピュータである。第２の装置２０は、プロセッサ２１、記憶部２２、通信部２３、入出力部２４を含むコンピュータである。例えば、第１の装置１０がサーバコンピュータであり、第２の装置２０が家庭内のＬＡＮに接続される家庭用ゲーム機であってもよい。
【００１７】
プロセッサ１１は、記憶部１２に格納されているプログラムに従って動作し、通信部１３、入出力部１４を制御する。プロセッサ２１は、記憶部２２に格納されているプログラムに従って動作し、通信部２３、入出力部２４を制御する。上記プログラムは、フラッシュメモリ等のコンピュータで読み取り可能な記憶媒体により供給されてもよいし、インターネット等のネットワークを介して提供されてよい。
【００１８】
記憶部１２、記憶部２２は、ＤＲＡＭや、フラッシュメモリやハードディスクドライブなどの外部記憶装置によって構成されている。記憶部１２，２２は、上記プログラムを格納する。また、記憶部１２，２２は、プロセッサ１１，２１や通信部１３，２３等から入力される情報や演算結果を格納する。
【００１９】
通信部１３，２３は他の機器と通信するための集積回路やアンテナなどにより構成されている。通信部１３，２３は、ネットワークに接続するためのコネクタやチップなどで構成される。通信部１３，２３は、ＬＡＮなどのネットワークを介して他の装置へデータを送信し、他の装置から送信されるデータを受信する。
【００２０】
入出力部１４は、キーボードなどの入力デバイスからの情報を取得する回路と、音声出力デバイスや画像表示デバイスなどの出力デバイスを制御する回路とを含む。入出力部１４は、入力デバイスから入力信号を取得し、その入力信号が変換された情報をプロセッサ１１や記憶部１２に入力する。また入出力部１４は、プロセッサ１１などの制御に基づいて、音声をスピーカに出力させ、画像を表示デバイスに出力させる。
【００２１】
図２は、通信システムが実現する機能を示すブロック図である。第１の装置１０は、機能的に、送信部５１を含み、第２の装置２０は、機能的に、受信部５６、ネットワーク評価部５７、アプリケーション実行部５８を含む。送信部５１は、主に、第１の装置１０に含まれるプロセッサ１１が記憶部１２に格納されるプログラムを実行し、通信部１３を制御することにより実現される。受信部５６は、主に、第２の装置２０に含まれるプロセッサ２１が記憶部２２に格納されるプログラムを実行し、通信部２３を制御することにより実現される。ネットワーク評価部５７、アプリケーション実行部５８は、主に、プロセッサ２１が記憶部２２に格納されるプログラムを実行し、必要に応じて入出力部１４を制御することにより実現される。なお、図２には説明に必要な構成のみを記載しており、実際には第１の装置１０にも受信部５６に相当する構成が存在し、第２の装置２０にも送信部５１に相当する構成が存在する。
【００２２】
送信部５１は、第２の装置２０の特定のポートと通信接続し、通信接続されたポートへ複数のパケットＰを送信する。送信部５１は、パケットＰのサイズより大きなデータを複数のパケットＰに分割し、分割されたパケットＰを送信する。パケットＰのそれぞれはデータの本体が送信される順序を示す識別値としてシーケンス番号を含む。シーケンス番号は初めて送信されるパケットＰに対して付与され、通信の異常などにより再送信されるパケットＰは、初めて送信される際に付与されたシーケンス番号を含む。
【００２３】
送信されたパケットＰが第２の装置２０に到達すると、第２の装置２０から第１の装置１０へそのパケットＰについての確認応答ＡＣＫが送信される。送信部５１は確認応答ＡＣＫを受信し、いずれかの送信済のパケットＰについてあらかじめ定められた時間に確認応答ＡＣＫを受信できなかった場合には、そのパケットＰを再び送信する。
【００２４】
受信部５６は、第１の装置１０と通信接続し、送信部５１から通信接続されたポートへ送信される複数のパケットＰを１つずつ受信することにより、その受信されたパケットＰを取得する。
【００２５】
ネットワーク評価部５７は、受信されたパケットＰのうちいずれかである第１のパケットＰに含まれる識別値が、その第１のパケットＰより前に受信された第２のパケットＰより前にその第１のパケットＰが送信されることを示す場合に、送受信経路の不安定性を示す評価値を増加させる。またネットワーク評価部５７は、その評価値をアプリケーション実行部５８や記憶部１２へ出力する。
【００２６】
アプリケーション実行部５８は、ネットワーク評価部５７から出力された評価値に応じた処理を実行する。例えば、アプリケーション実行部５８は、ある接続についての評価値が、ネットワークが不安定であることを示す場合には、第１の装置１０との接続を終了し、あらたに、第１の装置１０と同じ機能を有する他の装置と接続する。また、アプリケーション実行部５８は、その評価値を図示しない管理サーバへ送信してもよい。管理サーバは、送信された評価値を統計処理し、ネットワークの構成を動的に変更してもよい。
【００２７】
図３は、第１の装置１０と第２の装置２０との間の通信の概要を示す図である。送信部５１は、あらかじめ定められたデータ量（ウインドウサイズ）の送信領域に収まるパケットＰ１からＰ４を順に送信する。パケットＰ１，Ｐ２，Ｐ４が第２の装置２０に受信され、パケットＰ３は通信が不安定になり、通信経路上で失われたとする。
【００２８】
第２の装置２０がパケットＰ１，Ｐ２についての確認応答ＡＣＫ（２）を送信し、送信部５１がその確認応答ＡＣＫ（２）を受信すると、送信部５１はパケットＰ１，Ｐ２を送信領域から除外し、除外により送信領域に収めることができる新たなパケットＰ５，Ｐ６を送信する。一方、送信部５１は、送信から再送タイムアウトＲＴを経過しても確認応答ＡＣＫを受信しないパケットＰ３を検出し、その検出されたパケットＰ３を再送する。図示しないが、第２の装置２０は、パケットＰ５，Ｐ６を受信した場合にもパケットＰ２まで正常に受信している旨の確認応答ＡＣＫ（２）を送信する。そこで、送信部５１は、同一の確認応答ＡＣＫを所定の回数受信した場合に、その確認応答ＡＣＫ（２）が示す正常に受信できたパケットＰ２の後続のパケットＰ３を再送してもよい。
【００２９】
図３をみると、再送が発生すると、第２の装置２０からみて、パケットＰ３はパケットＰ６より後に受信しており、元の送信順と異なっている。また、通信の輻輳などにより通信が不安定になると、ルータの動作によりパケットＰの受信順が変化することもある。以下では、この現象を利用して通信の安定性を評価する手法について説明する。
【００３０】
図４および５は、第２の装置２０における受信処理の一例を示すフローチャートであり、受信部５６およびネットワーク評価部５７の処理の一例を示す図である。受信部５６およびネットワーク評価部５７のプログラムは、いわゆるＴＣＰ層のプロトコルスタックとして実行される。図４および５に示されるフローチャートは、送信部５１の送信ポートと受信部５６の受信ポートとの間で通信接続が確立されてから切断されるまでの間に、受信部５６がパケットＰを受信するごとに実行される。
【００３１】
はじめに、受信部５６は、受信ポートに受信されたパケットＰである受信パケットＰＲを受信順にしたがって１つ取得する（ステップＳ２０１）。受信パケットＰＲは、データを含み、さらに、そのデータの先頭がこの通信接続で送信される一連のデータのうちどの順序にあるかを示す先頭シーケンス番号と、データサイズとを含む。
【００３２】
次に、受信パケットＰＲのシーケンス番号が、受信最終番号ＴＢより大きいか判定する（ステップＳ２０２）。ここで、受信最終番号ＴＢは、これまでに受信部５６がこの通信接続で受信したパケットＰのデータのうち、最もうしろの位置を示すシーケンス番号であり、これまでに受信したパケットＰのうち最も後ろに位置するものを示す識別値に相当する。シーケンス番号が、受信最終番号ＴＢより大きい場合は（ステップＳ２０２のＹ）、受信パケットＰＲの受信順の入れ替わりの可能性がないケースの処理である、ステップＳ２０３以降の処理を実行する。シーケンス番号が、受信最終番号ＴＢ以下の場合（ステップＳ２０２のＮ）の処理については後述する。
【００３３】
ステップＳ２０３では、バッファに受信パケットＰＲを格納し、受信最終番号ＴＢを、受信パケットＰＲのデータの末尾を示すシーケンス番号に更新する（ステップＳ２０３）。バッファは、受信されたパケットＰのデータがそのデータのシーケンス番号と紐づけて格納される記憶部１２の領域である。
【００３４】
図６は、バッファに格納されるデータの一例を示す図である。図６は、シーケンス番号がそれぞれ、１から１０２４、１０２５から２０４８、２０４９から３０７２、４０９７から５１２０、５１２１から６１４４、７１６９から８１９２、８１９３から９２１６であるデータを含む７つのパケットＰが受信され、バッファに格納されるケースを示している。パケットＰのデータは例えばバイトやワードといった単位に分割され、その単位ごとにシーケンス番号が対応付けられている。そのため、一つのパケットＰにおける先頭シーケンス番号と次のパケットＰの先頭シーケンス番号との差はデータサイズに相当する。
【００３５】
図６に示されるケースでは、受信最終番号ＴＢは９２１６である。次期番号ＲＮは、連続して受信できているデータの次の位置を示すシーケンス番号であり、図６の例では、シーケンス番号が３０７３から４０９６のデータを受信していないため、次期番号ＲＮは３０７３となる。
【００３６】
受信最終番号ＴＢが更新されると、受信パケットＰＲの先頭シーケンス番号が次期番号ＲＮと等しい場合には（ステップＳ２０５のＹ）、次期番号ＲＮを受信パケットＰＲの末尾の次を示すシーケンス番号（末尾のシーケンス番号に１が加算されたシーケンス番号）に更新する（ステップＳ２０５）。途中で紛失したパケットＰのデータの受信を待つ状態でなく、かつ送信部５１からのパケットＰを連続的に受信する場合には、次期番号ＲＮと受信パケットＰＲの先頭シーケンス番号とが一致する。
【００３７】
そして、受信部５６は確認応答ＡＣＫを送信部５１にむけて送信する（ステップＳ２０６）。
【００３８】
図７は、バッファに格納されるデータと受信パケットＰＲとの一例を示す図である。図７は、図６に示されるバッファの状態に、先頭シーケンス番号が受信最終番号ＴＢより大きい受信パケットＰＲが受信された場合の例について示している。この場合には、受信最終番号ＴＢが更新され、次期番号ＲＮは更新されない。
【００３９】
受信パケットＰＲの先頭シーケンス番号が次期番号ＲＮと等しくない場合には（ステップＳ２０５のＮ）、データの入れ替わりが起きている可能性があるケースの処理であるステップＳ２１０以降の処理を実行する。
【００４０】
ステップＳ２１０では、受信パケットＰＲに含まれるデータのうち、バッファにすでに格納されているデータと位置が重複しない領域にあるデータをバッファに格納する（ステップＳ２１０）。
【００４１】
図８は、バッファに格納されるデータと受信パケットＰＲとの他の一例を示す図である。図８の例では、受信パケットＰＲに含まれるデータのシーケンス番号は、３０７３から５１２０であり、その一部である４０９７から５１２０のデータがバッファにすでに格納されているデータを重複している。この場合には、新たにバッファに格納されるデータは、シーケンス番号３０７３から５１２０のデータである。なお、受信パケットＰＲにより次期番号ＲＮおよびリオーダー数ＲＣが更新されるが、その詳細は後述する。
【００４２】
バッファにデータが格納されると、受信部５６は、新たにバッファに格納された受信パケットＰＲのデータが存在するか判定する（ステップＳ２１１）。新たにバッファに格納されたデータがない場合には（ステップＳ２１１のＮ）、この受信パケットＰＲについての処理を終了する。
【００４３】
図９は、バッファに格納されるデータと受信パケットＰＲとの他の一例を示す図である。図９の例では、受信パケットＰＲに含まれるすべてのデータの位置（シーケンス番号が示す位置）が、すでに受信されバッファに格納されているデータと重複しているため新たにバッファに格納されるデータはなく、受信部５６は単に受信パケットＰＲを破棄し確認応答ＡＣＫを送信しない。また、すべてのデータがすでにバッファに格納されているものと重複する受信パケットＰＲは、ネットワーク評価部５７の処理の対象から除外される。
【００４４】
新たにバッファに格納されたデータが存在する場合には（ステップＳ２１１のＹ）、受信部５６は、受信パケットＰＲに含まれるデータに対するシーケンス番号が、次期番号ＲＮを含む場合、言い換えれば、次期番号ＲＮが先頭シーケンス番号以上でありかつ受信パケットＰＲの末尾シーケンス番号（先頭シーケンス番号とデータサイズとの和）未満の場合には（ステップＳ２１２）、次期番号ＲＮを更新する（ステップＳ２１３）。そして、ステップＳ２１２の判定結果に関わらず、受信部５６は確認応答ＡＣＫを送信部５１へ向けて送信する（ステップＳ２１４）。
【００４５】
図１０は、バッファに格納されるデータと受信パケットＰＲとの他の一例を示す図である。図１０の例では、受信パケットＰＲの先頭シーケンス番号３０７３と次期番号ＲＮとが等しくステップＳ２１１の条件を満たすので、受信部５６は次期番号ＲＮを更新する。受信部５６は新たな次期番号ＲＮに、バッファに格納されるデータのうち、更新前の次期番号ＲＮから連続的に配置されているデータの終端に対応するシーケンス番号の次の値（図１０の例では６１４５）を設定する。
【００４６】
図１１は、バッファに格納されるデータと受信パケットＰＲとの他の一例を示す図である。図１１の例では、受信パケットＰＲのデータがバッファに格納されていたデータと重複しない。そのため受信パケットＰＲのデータがバッファに格納される。一方、受信パケットＰＲは次期番号ＲＮの位置に相当するデータを含まないため、次期番号ＲＮが更新されない。
【００４７】
図１２は、バッファに格納されるデータと受信パケットＰＲとの他の一例を示す図である。図１２の例では、受信パケットＰＲに含まれるデータにおいて、先頭シーケンス番号が次期番号ＲＮと等しく、末尾シーケンス番号が受信最終番号ＴＢと等しい。このような場合には受信部５６は受信パケットＰＲのデータのうち、バッファに格納されていない領域についてバッファに格納し、さらに次期番号ＲＮを受信最終番号ＴＢに更新する。
【００４８】
さらに、新たにバッファに格納されたデータが存在する場合には（ステップＳ２１１のＹ）、ネットワーク評価部５７は、新たにバッファに格納されたデータが、受信最終番号ＴＢより小さいシーケンス番号のものを含むか判定する（ステップＳ２１５）。この判定は、受信パケットＰＲの先頭シーケンス番号が示す位置より後ろにある、すでに受信されバッファに格納されたデータが存在するか否かを判定することと等価である。新たにバッファに格納されたデータが、受信最終番号ＴＢより小さいシーケンス番号のものを含む場合には（ステップＳ２１５のＹ）、ネットワーク評価部５７はリオーダー数ＲＣを増加させる（ステップＳ２１６）。
【００４９】
ここで、ネットワーク評価部５７は、リオーダー数ＲＣを増加させる際に、リオーダー数ＲＣに１を加算してもよいし、受信最終番号ＴＢ（これまでに受信されたパケットＰの中で最も後の順序であることを示す識別値に相当する）と受信パケットＰＲのシーケンス番号との差に応じた値を加算してもよい。後者の場合、受信パケットＰＲの順序の入れ替わりが大きくなるほど不安定であると評価することが可能になる。
【００５０】
図７から１２を用いて、リオーダー数ＲＣが増加するか否かについてより具体的に説明する。図７の例では、受信パケットＰＲのシーケンス番号は受信最終番号ＴＢより後ろにあるため、ネットワーク評価部５７はリオーダー数ＲＣをカウントせず、図９のように、新たにバッファに格納されるデータが存在しないケースにおいても、ネットワーク評価部５７はリオーダー数ＲＣをカウントしない。一方、図８，１０から１２のように、受信パケットＰＲが受信最終番号ＴＢより前のシーケンス番号のデータを含む場合には、ネットワーク評価部５７はリオーダー数ＲＣをカウントする。
【００５１】
リオーダー数ＲＣがカウントされるケースでは、後から受信される受信パケットＰＲがその前に受信されたパケットＰのうち最後のシーケンス番号のデータを含むものより前に位置し、データの並び順と受信順とが一致していない。このようなケースは通信の不安定が生じるケースであり、パケットロスが生じるケースに近い。リオーダー数ＲＣをカウントすることで、パケットロスに近い特性を有する指標を取得することが可能になる。
【００５２】
ステップＳ２１６の処理が実行されるか、ステップＳ２１５で条件を満たさないと判定された場合には（ステップＳ２１５のＮ）、受信部５６は、受信パケットＰＲが、受信最終番号ＴＢより大きいシーケンス番号のデータを含むか否か、言い換えれば、受信パケットＰＲの末尾シーケンス番号が受信最終番号ＴＢより大きいか否かを判定する（ステップＳ２１７）。受信パケットＰＲの末尾シーケンス番号が受信最終番号ＴＢより大きい場合には（ステップＳ２１７のＹ）、受信部５６は受信最終番号ＴＢを、受信パケットＰＲの末尾シーケンス番号に更新する（ステップＳ２１８）。更新された受信最終番号ＴＢは、後続の受信パケットＰＲに対して図４，５の処理をする際に用いられる。
【００５３】
次に、カウントされたリオーダー数ＲＣからリオーダー率を算出する処理について説明する。図１３は、リオーダー率を出力する処理の一例を示す図である。
【００５４】
図１３に示される処理は、送信部５１と受信部５６との間の１または複数の通信接続のそれぞれが切断されるごとに実行されるが、後で複数の通信接続のそれぞれについてまとめて実行されてもよい。この場合、受信部５６は、切断の際に記憶部１２にリオーダー数ＲＣ、後述の受信パケット数、通信接続の終了状況を記憶部１２に格納し、ネットワーク評価部５７が記憶部１２に格納された値を用いて図１３に示される処理を実行してもよい。
【００５５】
はじめに、ネットワーク評価部５７は、通信接続が正常に終了したか否かを判定する（ステップＳ３０１）。通信接続が異常に終了した場合には（ステップＳ３０１のＮ）、ネットワーク評価部５７はリオーダー率の算出をせず処理を終了する。一方、通信接続が正常に終了した場合には（ステップＳ３０１のＹ）、ネットワーク評価部５７は、終了した通信接続において受信されたパケットＰの数である受信パケット数が閾値（例えば３００）以上であるか否かを判定する（ステップＳ３０２）。受信パケット数が閾値未満の場合には（ステップＳ３０２のＮ）、ネットワーク評価部５７はリオーダー率の算出をせず処理を終了する。一方、受信パケット数が閾値以上の場合には（ステップＳ３０２のＹ）、ネットワーク評価部５７はリオーダー数ＲＣを受信パケット数で除算することにより、リオーダー率を算出する（ステップＳ３０３）。そして、ネットワーク評価部５７は算出されたリオーダー率を記憶部１２やアプリケーションへ出力する（ステップＳ３０４）。
【００５６】
通常のパケットＰの送受信では、送信部５１および受信部５６は通信経路における適正な通信速度を把握することができないため、通信速度が実情に合わせてある程度安定するまでは通信の状態が不安定になりやすい。そこで、受信パケット数が閾値以上の通信接続に限ってリオーダー率を求めることで、異常値が生じる可能性を減らすことができる。
【００５７】
ここで、受信パケット数によってリオーダー率を算出するか判断する代わりに、通信接続の開始から受信される所定の数のパケットＰを、リオーダー数ＲＣおよびリオーダー率の算出対象から外し、残りのパケットＰについてリオーダー数ＲＣおよびリオーダー率を算出してもよい。具体的には、受信パケット数が所定の値以下である場合には、ネットワーク評価部５７はステップＳ２１５、Ｓ２１６の処理をスキップし、またネットワーク評価部５７は、ステップＳ３０３においてリオーダー数ＲＣを受信パケット数から所定の値をひいた値で除算することによりリオーダー率を算出する。
【００５８】
図１３の例では、正常終了した通信接続に限定してリオーダー率を算出している。これについても、通信接続が異常終了するケースでは統計的に異常値が算出されることが多いためである。このケースを除外することで、異常値が生じる可能性を減らすことができる。
【００５９】
なお、ネットワーク評価部５７がデータを受信する第２の装置２０と異なる装置に設けられてもよい。この場合は、受信部５６の代わりに、第２の装置２０へ送信されるパケットＰをキャプチャする機能を設け、ネットワーク評価部５７がその機能の一部として実装されてもよいし、ネットワーク評価部５７があらかじめ取得され受信された順に記憶部１２に格納される複数のパケットＰを読み出すツールとして実装されてもよい。
【符号の説明】
【００６０】
１０  第１の装置、１１，２１  プロセッサ、１２，２２  記憶部、１３，２３  通信部、１４，２４  入出力部、２０  第２の装置、５１  送信部、５６  受信部、５７  ネットワーク評価部、５８  アプリケーション実行部、ＡＣＫ  確認応答、Ｐ，Ｐ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６  パケット、ＰＲ  受信パケット、ＲＣ  リオーダー数、ＲＮ  次期番号、ＴＢ  受信最終番号、ＲＴ  再送タイムアウト、
【図１】
2020061677.tif 000003
【図２】
2020061677.tif 000004
【図３】
2020061677.tif 000005
【図４】
2020061677.tif 000006
【図５】
2020061677.tif 000007
【図６】
2020061677.tif 000008
【図７】
2020061677.tif 000009
【図８】
2020061677.tif 000010
【図９】
2020061677.tif 000011
【図１０】
2020061677.tif 000012
【図１１】
2020061677.tif 000013
【図１２】
2020061677.tif 000014
【図１３】
2020061677.tif 000015