ユーザ待ち時間推定装置、ユーザ待ち時間推定方法、及びプログラム
【課題】取得データのサイズを軽減し、アプリケーション層等に対して暗号化を行うプロトコルが使用された場合でも、ユーザ待ち時間を推定することを可能とする。
【解決手段】ユーザ待ち時間推定装置において、TCPベースのサービスを提供するサーバからユーザ端末に向けて送信された各パケットを取得し、時刻の情報とともに記憶手段に格納する手段と、タイムスロット毎のパケット数を算出する手段と、パケット数が予め定めた検知閾値以上であるタイムスロット群を、抽出タイムスロット群として抽出する手段と、所定のウィンドウ時間長を有するスライディングウィンドウに含まれる抽出タイムスロットの合計時間と前記ウィンドウ時間長とに基づき、ウィンドウを時間進行方向にずらしながら、パケットが連続して出現した時間区間である連続区間を識別する手段と、識別された連続区間を、推定されたユーザ待ち時間として出力する手段と、を備える。
【解決手段】ユーザ待ち時間推定装置において、TCPベースのサービスを提供するサーバからユーザ端末に向けて送信された各パケットを取得し、時刻の情報とともに記憶手段に格納する手段と、タイムスロット毎のパケット数を算出する手段と、パケット数が予め定めた検知閾値以上であるタイムスロット群を、抽出タイムスロット群として抽出する手段と、所定のウィンドウ時間長を有するスライディングウィンドウに含まれる抽出タイムスロットの合計時間と前記ウィンドウ時間長とに基づき、ウィンドウを時間進行方向にずらしながら、パケットが連続して出現した時間区間である連続区間を識別する手段と、識別された連続区間を、推定されたユーザ待ち時間として出力する手段と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアント/サーバ型のTCPベースアプリケーションを利用するユーザが、ユーザ端末上で体感する待ち時間を推定するための技術に関するものである。
【背景技術】
【0002】
クライアント/サーバ型のTCPベースのアプリケーションが広く普及している。当該アプリケーションをユーザが快適に使用するためには、ユーザがユーザ端末に対する操作を行ってから、当該操作に対する結果がユーザ端末の画面上に表示されるまでの時間である待ち時間(以下、これをユーザ待ち時間と呼ぶ)が短いことが好ましい。そのため、アプリケーションの品質を評価するにあたって、ユーザ待ち時間は重要な指標の一つであり、ユーザ待ち時間を適切に推定することが求められている。
【0003】
ユーザ待ち時間を推定する従来技術としては、事前評価型とインサービス評価型がある。
【0004】
事前評価型の技術は、実際の利用環境ではなく、擬似的な利用環境を用いて、被験者にアプリケーションを利用してもらい、待ち時間を計測するものである。また、擬似的な利用環境で、擬似クライアントを用いて待ち時間を計測する技術もある。
【0005】
インサービス評価型の技術としては、サーバに蓄積されたログを解析することによりユーザ待ち時間を推定する技術、サーバとユーザ端末間で送受信される情報を収集、解析し、解析結果からユーザ待ち時間を推定する技術、実際の利用環境で擬似クライアントプログラムをユーザ端末で実行させることにより待ち時間を計測する技術等がある。
【0006】
なお、先行技術文献として、TCP上でのデータ転送における遅延等の品質を推定する技術を開示した特許文献1がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−140596号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、従来の事前評価型の技術では、実際にユーザがアプリケーションを利用しているときのユーザ待ち時間を推定することができない。従って、通信ネットワークの状況等に応じて変化する場合があるユーザ待ち時間を適切に推定できない。また、事前評価型の技術では、通信ネットワークの状況等によりユーザ待ち時間が悪化した場合等に、それに対する対応をとるといったことができない。
【0009】
インサービス評価型の技術を用いることにより、事前評価型の問題を解決できる。しかし、従来のインサービス評価型の技術には次のような問題がある。
サーバに蓄積されたログを解析することによりユーザ待ち時間を推定する技術では、サーバでの処理時間に関わる時間しか推定できず、通信ネットワークに起因するユーザ待ち時間の変化等を把握することができない。
【0010】
また、擬似クライアントプログラムを用いる技術では、サーバ及び通信ネットワークに測定用のオーバヘッドを生じさせることになり、測定に起因してアプリケーションの品質劣化等が生じてしまう可能性があるという問題がある。
【0011】
また、サーバとユーザ端末間で送受信される情報を収集、解析する従来の技術では、ユーザ待ち時間を推定するために、ユーザ端末とサーバ間で双方向に送受信される全てのデータを取得する必要があり、取得するべきデータのサイズが非常に大きくなってしまうという問題がある。更に、従来技術では、トランスポート層よりも上位の層までの情報を解析する必要があるため、HTTPSのようなトランスポート層よりも上位の層に対して暗号化を行うプロトコルが使用された場合、取得した情報の解析が不可能となり、ユーザ待ち時間の算出が行えないという問題がある。
【0012】
本発明は上記の点に鑑みてなされたものであり、ユーザ端末とサーバ間で送受信されるデータを取得することによりユーザ待ち時間を推定する技術において、取得するべきデータのサイズを軽減し、トランスポート層よりも上位の層に対して暗号化を行うプロトコルが使用された場合でも、ユーザ待ち時間を推定することを可能とした技術を提供することを目的とする。
【課題を解決するための手段】
【0013】
上記の課題を解決するために、本発明は、TCPベースのアプリケーションサービスを提供するアプリケーションサーバに通信ネットワークを介して接続され、前記アプリケーションサービスを利用するユーザ端末におけるユーザ待ち時間を推定するユーザ待ち時間推定装置であって、前記アプリケーションサーバから前記ユーザ端末に向けて送信された各パケットを取得し、当該パケットを取得した時刻の情報とともに、当該パケットを記憶手段に格納するパケット取得手段と、前記パケット取得手段により取得されたパケット群から、予め定めた時間幅を有するタイムスロット毎のパケット数を算出するパケット数集計手段と、前記パケット数集計手段により算出されたタイムスロット毎のパケット数に基づき、パケット数が予め定めた検知閾値以上であるタイムスロット群を、抽出タイムスロット群として抽出する抽出手段と、所定のウィンドウ時間長を有するスライディングウィンドウを定め、スライディングウィンドウに含まれる抽出タイムスロットの合計時間と前記ウィンドウ時間長とに基づき、スライディングウィンドウを時間進行方向にずらしながら、パケットが連続して出現した時間区間である連続区間を識別する連続区間識別手段と、前記連続区間識別手段により識別された連続区間を、推定されたユーザ待ち時間として出力する出力手段とを備えることを特徴とするユーザ待ち時間推定装置として構成される。
【0014】
前記連続区間識別手段は、ある抽出タイムスロットに対応する連続性判定開始位置から時間進行方向に伸びるスライディングウィンドウに含まれる抽出タイムスロットの合計時間を算出し、前記ウィンドウ時間長に対する前記合計時間の割合が予め定めた閾値以上であるか否かを判定する判定手段と、前記判定手段により、前記ウィンドウ時間長に対する前記合計時間の割合が前記予め定めた閾値以上であると判定された場合に、連続性判定開始位置を次の抽出タイムスロットにずらし、当該ずらした連続性判定開始位置に基づき前記判定手段による処理を行うスライディング手段と、前記判定手段と前記スライディング手段による処理を、前記ウィンドウ時間長に対する前記合計時間の割合が前記予め定めた閾値未満であると判定されるまで繰り返し行い、最初の連続性判定開始位置から、最後に前記合計時間の割合が前記閾値以上であると判定されたスライディングウィンドウの末尾までの時間を前記パケットが連続して出現した時間区間であると決定する手段とを備えて構成することができる。
【発明の効果】
【0015】
本発明によれば、アプリケーションサーバからユーザ端末に向けて送信されたパケットを取得することによりユーザ待ち時間を推定できるので、ユーザ端末とサーバ間で双方向に送受信されるパケットを取得しなければならない従来技術に比べて、取得すべきデータ量を削減できる。また、本発明では、トランスポート層よりも上位の層のプロトコルに係るヘッダの内容等を参照する必要がないので、トランスポート層よりも上位の層に対して暗号化を行うプロトコルが使用された場合でも、ユーザ待ち時間を推定することが可能になる。
【図面の簡単な説明】
【0016】
【図1】本発明の実施の形態に係るシステムの全体構成図である。
【図2】「ユーザ待ち時間」を説明するための図である。
【図3】ユーザ待ち時間推定装置1の機能構成図である。
【図4】ユーザ待ち時間推定装置1の動作を説明するためのフローチャートである。
【図5】パケット格納部12に格納されるパケットの例を示す図である。
【図6】パケット格納部12に格納されるパケットの例を示す図である。
【図7】トラヒック分類部13により分類されたパケットの例を示す図である。
【図8】パケット数集計部14により得られた集計結果を示すヒストグラムである。
【図9】連続区間識別部15が実行する処理を説明するためのフローチャートである。
【図10】連続区間識別部15が実行する処理を説明するための概念図である。
【図11】連続区間識別部15が実行する処理を説明するためのフローチャートである。
【図12】連続区間識別部15が実行する処理を説明するための概念図である。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の実施の形態を説明する。
【0018】
(システム構成)
図1に、本発明の実施の形態に係るユーザ待ち時間推定装置1を含むシステムの全体構成図を示す。
【0019】
図1に示すように、本実施の形態に係るシステムは、ユーザ待ち時間推定装置1、アプリケーションサーバ2、ユーザ端末3を備え、これらが通信ネットワーク4に接続されて構成されている。
【0020】
アプリケーションサーバ2は、アプリケーションサービスをユーザ端末3に対して提供するサーバである。アプリケーションサーバ2が提供するアプリケーションサービスは、例えば、Webページ提供サービス等である。
【0021】
ユーザ待ち時間推定装置1は、アプリケーションサーバ2と通信を行うユーザ端末3を操作するユーザが体感する待ち時間を推定する装置である。また、ユーザ端末3は、Webブラウザ等を備えた一般的なPC端末である。通信ネットワーク4は、インターネットやLAN等を含むIP(Internet Protocol)によるデータ通信可能なネットワークである。
【0022】
また、アプリケーションサーバ2とユーザ端末3間で送受信される全てのパケット(IPパケット)をユーザ待ち時間推定装置1が受信できるように通信ネットワーク4が構成されているものとする。例えば、ユーザ待ち時間推定装置1は、通信ネットワーク4内で、アプリケーションサーバ2を接続するLANスイッチのミラーポートに接続される。
【0023】
ただし、ユーザ待ち時間推定装置1は、必ずしも通信ネットワーク4から直接にパケットを取得しなくてもよい。例えば、通信ネットワーク4から他の装置により取得されたパケットを、当該装置からユーザ待ち時間推定装置1に入力する構成としてもよい。
【0024】
なお、本実施の形態では、ユーザ端末3とアプリケーションサーバ2間におけるデータ通信のトランスポート層のプロトコルとしてTCP(Transmission Control Protocol)を用いることを前提としている。TCPは、フロー制御等の制御のための通信が頻繁に発生するとともに、要求に対応する応答が必ず発生するので、本発明に係る技術に適しているからである。また、図1では、アプリケーションサーバ2とユーザ端末3がそれぞれ1つづつ示されているが、それぞれ複数台備えられてよいことはいうまでもない。
【0025】
次に、図2を参照して、本実施の形態に係る"ユーザ待ち時間"について説明する。図2は、アプリケーションサーバ2とユーザ端末3間でのTCPの通信シーケンスの概要を表している図である。
【0026】
図2に示すように、ユーザがユーザ端末3上で、所望の表示結果を得るための所定の操作(例えば、ブラウザ画面上に表示された特定のボタンをクリックする操作)を行うと、パケットがアプリケーションサーバ2とユーザ端末3間で送受信され、上記操作に対応する結果(例えば、表示されることを期待していたWebページ画面)がユーザ端末3上に表示される。
【0027】
本明細書及び特許請求の範囲では、上記のように所定の操作を行った時刻から、当該所定の操作に対応する結果が表示される時刻までをユーザ待ち時間としている。
【0028】
図3に、本実施の形態に係るユーザ待ち時間推定装置1の機能構成図を示す。図3に示すように、ユーザ待ち時間推定装置1は、入力部11、パケット格納部12、トラヒック分類部13、パケット数集計部14、連続区間識別部15、RTT(Round Trip Time)提供部16、及び出力部17を有する。
【0029】
各機能部の処理の内容については、後述するシステムの動作説明のところで詳細に説明することとし、以下では各機能部の機能の概要を説明する。
【0030】
入力部11は、ユーザ端末3とアプリケーションサーバ2間で送受信されるパケットのうち、アプリケーションサーバ2からユーザ端末3に向かうパケットを通信ネットワーク4等から取得し、各パケットにタイムスタンプ(現在時刻、パケットを取得した時刻)を付してパケット格納部12に格納する機能部である。
【0031】
トラヒック分類部13は、アプリケーションサーバ2からユーザ端末3に向かうパケットを宛先毎に分類する機能部である。パケット数集計部14は、特定のユーザ端末宛であると識別されたパケット群毎に、予め定めた時間幅(タイムスロット)毎のパケット数を算出する処理を行う機能部である。
【0032】
連続区間識別部15は、パケット数集計部14により得られた予め定めた時間幅毎のパケット数を用いて、所定の時間幅内に一定量以上のパケットが連続して出現しているか否かを識別することにより、ユーザによる待ち時間が継続していると推定できる時間区間を求める機能部である。
【0033】
また、RTT提供部16は、RTT(Round Trip Time:ユーザ端末3からアプリケーションサーバ2にパケットを送信して、確認応答パケットがアプリケーションサーバ2からユーザ端末3に返されるまでの時間)を取得し、それを連続区間識別部15に提供する機能部である。出力部17は、連続区間識別部15により得られた時間区間を、推定されたユーザ待ち時間の情報として出力する機能部である。
【0034】
ユーザ待ち時間推定装置1は、メモリやハードディスク等の記憶手段及びCPUを備える一般的なコンピュータに、各機能部に対応する処理を行うためのプログラムを搭載することにより実現できる。当該プログラムは、可搬メモリやディスク等の記録媒体から上記コンピュータにインストールしてもよいし、ネットワーク上のサーバから上記コンピュータにダウンロードし、インストールすることとしてもよい。
【0035】
(システムの動作)
次に、ユーザ待ち時間推定装置1の動作の例を、図4のフローチャートに沿って説明する。まず、ユーザ待ち時間推定装置1の入力部11は、通信ネットワーク4から、アプリケーションサーバ2を送信元とするパケットを順次取得し、取得した時刻の情報であるタイムスタンプを付してパケット格納部12に格納する(図4のステップ1)。
【0036】
ユーザ待ち時間推定装置1は、特定のアプリケーションサーバ2から送信されるパケットを常にパケット格納部12に格納し、当該アプリケーションサーバ2に関するユーザ待ち時間推定の必要が生じたときに、特定の時間区間に取得されたパケットを解析の対象としてもよいし、ユーザ指示等により特定の時間区間だけパケット収集を行い、そこで収集されたパケットを解析の対象としてもよい。また、常にパケットをパケット格納部12に格納し、一定時間毎に特定のアプリケーションサーバに関するユーザ待ち時間推定処理を実行することとしてもよい。もちろん、その他の形態を用いてもよい。
【0037】
パケット格納部12に格納されるパケットの例を図5(a)に示す。例えば、図5(a)の第1行目は、送信元IPアドレスがIPアドレス1、送信元ポート番号がポート番号1、宛先IPアドレスがIPアドレス3、宛先ポート番号がポート番号1であるIPパケットが、時刻1に取得され、格納されたことを示している。他の行も同様である。
【0038】
なお、図5(a)では、宛先IPアドレスがIPアドレス3であるIPパケットのみを示しているが、一般には、種々の宛先IPアドレスのIPパケットが取得される。また、パケット格納部12に格納する対象となるパケットの送信元IPアドレスと宛先IPアドレスとを予め決めている場合には、取得したパケットからIPヘッダを除き、TCPヘッダが付されたTCPパケットの形式でパケット格納部12に格納することとしてもよい。
【0039】
続いて、図4のステップ2において、トラヒック分類部13が、パケット格納部12に格納されたパケットを、宛先ユーザ端末毎に分類する処理を行う。分類にあたって、本実施の形態では、宛先IPアドレスと宛先ポート番号の1つの組が1つの宛先ユーザ端末に対応するものとし、宛先IPアドレスと宛先ポート番号の組毎にパケットを分類する処理を行う。
【0040】
ただし、NAT経由の通信等の場合に、1つの宛先ユーザ端末に対して、1つの宛先IPアドレスと、連続する複数の宛先ポート番号が割り当てられる場合があることを考慮して、同じ宛先IPアドレスの複数のパケットであって、連続するポート番号を有する複数のパケットが所定の短い時間(例えば0.5秒)内に現れた場合は、それらのパケットは1つのユーザ端末宛のパケットであるとみなしている。
【0041】
例えば、パケット格納部12に格納されたパケットが図5(a)に示すとおりのものであった場合、宛先IPアドレスは同一なので、トラヒック分類部13は、図5(b)に示すようにパケットを分類(ソート)する。図5(b)の例において、宛先ポート番号1のIPパケットはユーザ端末A宛てのパケット、宛先ポート番号8のパケットはユーザ端末Aと異なるユーザ端末B宛てのパケットなどとみなすことができる。
【0042】
また、例えば、パケット格納部12に格納されたパケットが図6(a)に示すようなものであり、時刻1から時刻4までの時間及び時刻5から時刻7までの時間のそれぞれが所定の時間より短い場合、トラヒック分類部13は、パケットを図6(b)に示すように分類する。図6(b)の例において、宛先ポート番号1〜4のパケットはユーザ端末X宛てのパケット、宛先ポート番号10〜12のパケットはユーザ端末Xと異なるユーザ端末Y宛てのパケットとみなすことができる。
【0043】
なお、以下で説明する処理は、分類されたパケット群のうち、特定の1つのユーザ端末宛のパケットに対する処理であるものとする。また、分類がなされたパケットは、パケット格納部12に格納してもよいし、パケット格納部12以外のメモリ等の記憶手段に格納してもよい。
【0044】
また、宛先ユーザ端末毎に分類されたパケットを取得する方法は、上記の方法に限られるわけではなく、結果として、宛先ユーザ端末毎に分類されたパケットを取得できるのであればどのような手段を用いてもよい。
【0045】
次に、図4のステップ3において、ユーザ待ち時間推定装置1のパケット数集計部14は、分類されたパケットについて、予め定めた時間幅(Wで表し、タイムスロットとも呼ぶ)毎の個数を算出する処理を行う。
【0046】
例えば、トラヒック分類部13により、図7に示すパケットが、アプリケーションサーバ2からユーザ端末3宛(IPアドレス3及び宛先ポート番号10で識別されるユーザ端末)のパケットとして抽出されたものとする。また、例えば、タイムスロットの大きさWとして0.1秒(以下、時間の単位は秒であるとする)を使用するものとする。
【0047】
この場合、パケット数集計部14は、時刻0から時刻0.1の間のタイムスロットのパケット数を3として求め、時刻0.1から時刻0.2の間のタイムスロットのパケット数を4として求める。他のタイムスロットでも同様である。このようにして算出した結果から、図8に示すヒストグラムが得られる。
【0048】
続いて、図4のステップ4において、連続区間識別部15が、パケット数集計部14により得られたタイムスロット毎のパケット数に基づき、ユーザ待ち時間であると推定することができるパケットの連続区間を識別する処理を行う。
【0049】
本実施の形態では、連続区間識別部15は、ユーザ端末3からアプリケーションサーバ2にパケットが送信されてから、確認応答パケットがアプリケーションサーバ2からユーザ端末3に返されるまでの時間であるRTTを利用して連続区間を識別することもできるし、RTTを利用しないで連続区間を識別することもできる。RTTを利用するかしないかは、例えば、アプリケーションサーバ2の位置(国内か外国か等)や、通信ネットワーク4の状態等で判断し、ユーザによりRTTを利用するかしないかを設定することができる。
【0050】
<RTTを利用しない場合>
まず、RTTを利用しない場合の処理について、図9のフローチャート、及び、図10に示す処理の概念図を用いて説明する。
【0051】
なお、以下の処理の前提として、タイムスロットにおけるパケット数の閾値である検知閾値と、スライディングウィンドウの時間長さLと、連続性判定閾値Sとが予め連続区間識別部15に入力され、メモリ等に保持されているものとする。
【0052】
まず、図9のステップ10において、連続区間識別部15は、パケット数が検知閾値以上の全てのタイムスロットを抽出する。ここで、検知閾値は、0以上の整数である。検知閾値は、対象とする通信(ユーザによる操作に起因する通信)以外の通信に係るパケットを、ユーザ待ち時間推定において検知しないようにするために設けられるものである。
また、各タイムスロットは、その開始時間位置と終了時間位置で識別される情報である。ステップ10の処理は、図10において、パケット数が点線と重なるか、点線を越えているタイムスロットを抽出する処理に相当する。以下、ここで抽出されたタイムスロットを、抽出タイムスロットと呼ぶ。
【0053】
次に、図9のステップ20において、連続区間識別部15は、複数の抽出タイムスロットのうちの、後述する連続性判定開始位置になったことがない抽出タイムスロットの中で、時間的に最初に位置する抽出タイムスロットの開始位置(時刻Tとする)を特定する。
【0054】
そして、連続区間識別部15は、連続区間識別のためにスライディングウィンドウをずらす時間長さを示す変数であるCを初期化(C=0とする)する(ステップ30)。続いて、連続区間識別部15は、上記抽出タイムスロットの開始位置である時刻Tから始まるスライディングウィンドウに含まれる抽出タイムスロットの合計の時間長さを求め、スライディングウィンドウの時間長さLに対する当該抽出タイムスロットの合計の時間長さの割合Rを求める(ステップ40)。以下では、スライディングウィンドウの開始位置を連続性判定開始位置と呼ぶことにする。
【0055】
ステップ40において、タイムスロットの時間幅がWであり、連続性判定開始位置から始まるスライディングウィンドウの時間長さLの中に、抽出タイムスロット(パケット数が検知閾値以上のタイムスロット)がM個含まれるとした場合、抽出タイムスロットの合計の時間長さはW×Mであるから、R=W×M/Lとなる。また、図10の場合について、タイムスロットの幅を0.1、各スライディングウィンドウの長さを1とすると、スライディングウィンドウAの中に、8個の抽出タイムスロットが含まれるから、R=0.1×8/1=0.8となる。
【0056】
続いて、連続区間識別部15は、Rが連続性判定閾値S以上であるか否かを判定する(ステップ50)。本実施の形態において、Sは、0から1の間の定数であり、例えばS=0.5である。
【0057】
ステップ50において、Rが連続性判定閾値S以上であると判定された場合、連続区間識別部15は、連続性判定開始位置を、時間進行方向において次に位置する抽出タイムスロットの開始位置とする。また、連続性判定開始位置をずらした長さ(前の連続性判定開始位置から次の連続性判定開始位置までの時間)をKとし、C=C+Kとする(ステップ60)。その後、ステップ40に戻る。
【0058】
また、ステップ50において、Rが連続性判定閾値S以上でないと判定された場合、連続区間識別部15は、ステップ70に進み、C=C−Kとするとともに、TからT+C+Lの区間を連続区間としてメモリ等の記憶手段に記録し、ステップ20に戻る。ただし、ステップ50の判定処理において、一度もYesの判定がされずに最初からNoと判定された場合には、ステップ70を経ずにステップ20に戻る。ステップ20において、現在の連続性開始判定位置の次の抽出タイムスロットの開始位置がTとなり、それ以降の処理が繰り返される。ここで、次の抽出タイムスロットが存在しなければ処理を終了する(ステップ80)。
【0059】
上記の処理の概念を図10を参照して説明する。図10の例では、スライディングウィンドウの時間長さがタイムスロット10個分の長さであり、連続性判定閾値S=1/2=0.5であるものとする。つまり、この場合、スライディングウィンドウ内に、5個以上の抽出タイムスロットが含まれる場合に、ステップ50においてYESと判定される。
【0060】
図10の例では、点線よりパケット数の多いタイムスロットがまず抽出される。そして、スライディングウィンドウAの開始位置Tが最初の連続性判定開始位置となり、スライディングウィンドウAには、8個の抽出タイムスロットが含まれるので、ステップ50においてYESと判定され、連続性判定開始位置がスライディングウィンドウBの開始位置までずらされ、同様の判定処理及び連続性判定開始位置をずらす処理等が繰り返される。
【0061】
図10の例では、スライディングウィンドウEには、5個の抽出タイムスロットが含まれるが、スライディングウィンドウFには、4個の抽出タイムスロットしか含まれず、ここではステップ50の判定はNoになる。従って、スライディングウィンドウAの開始位置Tから、スライディングウィンドウEの終了位置(T+C+L)までの時間区間が、ユーザ待ち時間に対応する連続区間であるとして記憶手段に記録されることになる。
【0062】
ステップ80において、処理が終了すると、記憶手段に格納されている連続区間情報(=ユーザ待ち時間情報)が、出力部17に渡され、出力される(図4のステップ5)。例えば、出力部17は、ユーザ待ち時間情報として、対象となっているアプリケーションサーバ2のIPアドレス及びポート番号、ユーザ端末3に対応するIPアドレス及びポート番号、及び、ユーザ待ち時間(連続区間)の開始時刻と終了時刻を出力する。また、ユーザ端末3に対応するIPアドレス及びポート番号から、ユーザ端末もしくはユーザの名前を識別可能である場合には、ユーザ端末もしくはユーザの名前を出力してもよい。
【0063】
出力部17から出力された情報は、例えば、ネットワーク管理者の端末に転送され、表示される。
【0064】
上述した本実施の形態における技術を用いることにより、安定したネットワーク環境において、ユーザ待ち時間を適切に推定することが可能となる。TCPパケットを用いる場合において、TCPヘッダの中の情報から、データ転送開始及び終了を判定することにより、ユーザ待ち時間を推定することも考えられるが、ユーザ待ち時間の中で、TCP上でのデータ転送開始及び終了が連続的に複数回発生する場合があるので、TCPヘッダの中の情報からでは、適切にユーザ待ち時間を推定することはできない。
【0065】
本実施の形態のように、TCPベースのアプリケーションサーバ2からユーザ端末3に送信されるパケットが、ある程度の短い時間間隔で連続的に発生している場合はユーザの待ちが継続していると判定する手法により、より適切にユーザ待ち時間を推定することが可能になる。なお、本実施の形態における技術は、アプリケーションサーバ2側において、ユーザ端末3に対してTCPパケットを送出せずにデータ処理(データのハードディスクへの書き込み処理等)を行う時間が比較的短い場合に適している。
【0066】
上記の例において、タイムスロットの時間幅W、スライディングウィンドウの時間長さL、及び、連続性判定閾値Sについては、実験等により適切な値を定めればよいが、安定したネットワーク環境での一例として、タイムスロットの時間幅Wとして0.1を用い、スライディングウィンドウの時間長さLとしてタイムスロット10個分である1を用い、連続性判定閾値Sとして1/2を用いることにより、良好な結果が得られている。
【0067】
<RTTを利用する場合>
次に、RTTを利用する場合の連続区間の識別処理のフローチャートを図11に示す。以下では、RTTを利用しない場合との相違点を中心に説明する。
【0068】
RTTを利用しない場合は、スライディングウィンドウの時間長さLとして予め定めた長さを用いていたのに対し、RTTを利用する場合の処理は、図11のステップ35において、スライディングウィンドウの長さLをRTTに基づき算出し、それ以降の処理において、RTTに基づき求めたLを用いて連続区間を判定している。その他の処理については図9の場合と同じである。より詳細には以下のとおりである。
【0069】
本実施の形態では、入力部11は、RTTを求めるためのデータとして、アプリケーションサーバ2からユーザ端末3に向かうパケットの他に、ユーザ端末3からプリケーションサーバ2に向かうパケットのうちの一部のパケットを取得してパケット格納部12に格納することができる。RTT提供部16は、パケット格納部12に格納されたデータを参照することにより、例えば、シーケンス番号で送信パケットとそれに対応する応答パケットを識別し、所定の時間毎のRTTを算出することができる。なお、TCPパケットからRTTを算出すること自体は従来技術である。もちろん、RTT提供部16は、その他の方法でRTTを算出することとしてもよい。例えば、ユーザ待ち時間推定装置1の外部にある装置でRTTを取得し、その装置からRTTを受信することとしてもよい。
【0070】
ステップ35において、連続区間識別部15は、RTT提供部16から、連続性判定開始位置に最も近い時刻に対応するRTTを取得する。ここでRTTをTRと表すと、連続区間識別部15は、L=(TR+W)×N(Nは自然数)としてLを求める。例えば、TR=0.01、W=0.1、N=10であるとすると、L=0.11×10=1.1となる。また、例えば、R=0.05、W=0.1、N=10であるとすると、L=0.15×10=1.5となる。
【0071】
RTTを用いる場合の処理の概念を図12を用いて説明する。図12において、(A)で示される部分は、L=1.1の場合であり、(B)で示される部分は、L=1.5の場合を示している。図12に示すとおり、スライディングウィンドウの長さLをRTTに応じて伸ばすことにより、RTTの影響でパケットの出現間隔が間延びする場合であっても、適切に連続区間(ユーザ待ち時間であると推定できる区間)を識別できる。
【0072】
(実施の形態の効果について)
上記のように、本実施の形態で説明した技術によれば、アプリケーションサーバ2からユーザ端末3に向けて送信されたパケットを取得することによりユーザ待ち時間を推定できるので、ユーザ端末とサーバ間で双方向に送受信されるパケットを取得しなければならない従来技術に比べて、取得すべきデータ量を削減できる。また、本実施の形態の技術では、トランスポート層よりも上位の層のプロトコルに係るヘッダの内容等を参照する必要がないので、トランスポート層よりも上位の層に対して暗号化を行うプロトコルが使用された場合でも、ユーザ待ち時間を推定することが可能になる。
【0073】
また、本実施の形態の技術では、RTTに応じてスライディングウィンドウの時間長さを変更することが可能なので、通信ネットワークの状況に応じたユーザ待ち時間を推定できる。
【0074】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【0075】
1 ユーザ待ち時間推定装置
2 アプリケーションサーバ
3 ユーザ端末
4 通信ネットワーク
11 入力部
12 パケット格納部
13 トラヒック分類部
14 パケット数集計部
15 連続区間識別部
16 RTT提供部
17 出力部
【技術分野】
【0001】
本発明は、クライアント/サーバ型のTCPベースアプリケーションを利用するユーザが、ユーザ端末上で体感する待ち時間を推定するための技術に関するものである。
【背景技術】
【0002】
クライアント/サーバ型のTCPベースのアプリケーションが広く普及している。当該アプリケーションをユーザが快適に使用するためには、ユーザがユーザ端末に対する操作を行ってから、当該操作に対する結果がユーザ端末の画面上に表示されるまでの時間である待ち時間(以下、これをユーザ待ち時間と呼ぶ)が短いことが好ましい。そのため、アプリケーションの品質を評価するにあたって、ユーザ待ち時間は重要な指標の一つであり、ユーザ待ち時間を適切に推定することが求められている。
【0003】
ユーザ待ち時間を推定する従来技術としては、事前評価型とインサービス評価型がある。
【0004】
事前評価型の技術は、実際の利用環境ではなく、擬似的な利用環境を用いて、被験者にアプリケーションを利用してもらい、待ち時間を計測するものである。また、擬似的な利用環境で、擬似クライアントを用いて待ち時間を計測する技術もある。
【0005】
インサービス評価型の技術としては、サーバに蓄積されたログを解析することによりユーザ待ち時間を推定する技術、サーバとユーザ端末間で送受信される情報を収集、解析し、解析結果からユーザ待ち時間を推定する技術、実際の利用環境で擬似クライアントプログラムをユーザ端末で実行させることにより待ち時間を計測する技術等がある。
【0006】
なお、先行技術文献として、TCP上でのデータ転送における遅延等の品質を推定する技術を開示した特許文献1がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−140596号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、従来の事前評価型の技術では、実際にユーザがアプリケーションを利用しているときのユーザ待ち時間を推定することができない。従って、通信ネットワークの状況等に応じて変化する場合があるユーザ待ち時間を適切に推定できない。また、事前評価型の技術では、通信ネットワークの状況等によりユーザ待ち時間が悪化した場合等に、それに対する対応をとるといったことができない。
【0009】
インサービス評価型の技術を用いることにより、事前評価型の問題を解決できる。しかし、従来のインサービス評価型の技術には次のような問題がある。
サーバに蓄積されたログを解析することによりユーザ待ち時間を推定する技術では、サーバでの処理時間に関わる時間しか推定できず、通信ネットワークに起因するユーザ待ち時間の変化等を把握することができない。
【0010】
また、擬似クライアントプログラムを用いる技術では、サーバ及び通信ネットワークに測定用のオーバヘッドを生じさせることになり、測定に起因してアプリケーションの品質劣化等が生じてしまう可能性があるという問題がある。
【0011】
また、サーバとユーザ端末間で送受信される情報を収集、解析する従来の技術では、ユーザ待ち時間を推定するために、ユーザ端末とサーバ間で双方向に送受信される全てのデータを取得する必要があり、取得するべきデータのサイズが非常に大きくなってしまうという問題がある。更に、従来技術では、トランスポート層よりも上位の層までの情報を解析する必要があるため、HTTPSのようなトランスポート層よりも上位の層に対して暗号化を行うプロトコルが使用された場合、取得した情報の解析が不可能となり、ユーザ待ち時間の算出が行えないという問題がある。
【0012】
本発明は上記の点に鑑みてなされたものであり、ユーザ端末とサーバ間で送受信されるデータを取得することによりユーザ待ち時間を推定する技術において、取得するべきデータのサイズを軽減し、トランスポート層よりも上位の層に対して暗号化を行うプロトコルが使用された場合でも、ユーザ待ち時間を推定することを可能とした技術を提供することを目的とする。
【課題を解決するための手段】
【0013】
上記の課題を解決するために、本発明は、TCPベースのアプリケーションサービスを提供するアプリケーションサーバに通信ネットワークを介して接続され、前記アプリケーションサービスを利用するユーザ端末におけるユーザ待ち時間を推定するユーザ待ち時間推定装置であって、前記アプリケーションサーバから前記ユーザ端末に向けて送信された各パケットを取得し、当該パケットを取得した時刻の情報とともに、当該パケットを記憶手段に格納するパケット取得手段と、前記パケット取得手段により取得されたパケット群から、予め定めた時間幅を有するタイムスロット毎のパケット数を算出するパケット数集計手段と、前記パケット数集計手段により算出されたタイムスロット毎のパケット数に基づき、パケット数が予め定めた検知閾値以上であるタイムスロット群を、抽出タイムスロット群として抽出する抽出手段と、所定のウィンドウ時間長を有するスライディングウィンドウを定め、スライディングウィンドウに含まれる抽出タイムスロットの合計時間と前記ウィンドウ時間長とに基づき、スライディングウィンドウを時間進行方向にずらしながら、パケットが連続して出現した時間区間である連続区間を識別する連続区間識別手段と、前記連続区間識別手段により識別された連続区間を、推定されたユーザ待ち時間として出力する出力手段とを備えることを特徴とするユーザ待ち時間推定装置として構成される。
【0014】
前記連続区間識別手段は、ある抽出タイムスロットに対応する連続性判定開始位置から時間進行方向に伸びるスライディングウィンドウに含まれる抽出タイムスロットの合計時間を算出し、前記ウィンドウ時間長に対する前記合計時間の割合が予め定めた閾値以上であるか否かを判定する判定手段と、前記判定手段により、前記ウィンドウ時間長に対する前記合計時間の割合が前記予め定めた閾値以上であると判定された場合に、連続性判定開始位置を次の抽出タイムスロットにずらし、当該ずらした連続性判定開始位置に基づき前記判定手段による処理を行うスライディング手段と、前記判定手段と前記スライディング手段による処理を、前記ウィンドウ時間長に対する前記合計時間の割合が前記予め定めた閾値未満であると判定されるまで繰り返し行い、最初の連続性判定開始位置から、最後に前記合計時間の割合が前記閾値以上であると判定されたスライディングウィンドウの末尾までの時間を前記パケットが連続して出現した時間区間であると決定する手段とを備えて構成することができる。
【発明の効果】
【0015】
本発明によれば、アプリケーションサーバからユーザ端末に向けて送信されたパケットを取得することによりユーザ待ち時間を推定できるので、ユーザ端末とサーバ間で双方向に送受信されるパケットを取得しなければならない従来技術に比べて、取得すべきデータ量を削減できる。また、本発明では、トランスポート層よりも上位の層のプロトコルに係るヘッダの内容等を参照する必要がないので、トランスポート層よりも上位の層に対して暗号化を行うプロトコルが使用された場合でも、ユーザ待ち時間を推定することが可能になる。
【図面の簡単な説明】
【0016】
【図1】本発明の実施の形態に係るシステムの全体構成図である。
【図2】「ユーザ待ち時間」を説明するための図である。
【図3】ユーザ待ち時間推定装置1の機能構成図である。
【図4】ユーザ待ち時間推定装置1の動作を説明するためのフローチャートである。
【図5】パケット格納部12に格納されるパケットの例を示す図である。
【図6】パケット格納部12に格納されるパケットの例を示す図である。
【図7】トラヒック分類部13により分類されたパケットの例を示す図である。
【図8】パケット数集計部14により得られた集計結果を示すヒストグラムである。
【図9】連続区間識別部15が実行する処理を説明するためのフローチャートである。
【図10】連続区間識別部15が実行する処理を説明するための概念図である。
【図11】連続区間識別部15が実行する処理を説明するためのフローチャートである。
【図12】連続区間識別部15が実行する処理を説明するための概念図である。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の実施の形態を説明する。
【0018】
(システム構成)
図1に、本発明の実施の形態に係るユーザ待ち時間推定装置1を含むシステムの全体構成図を示す。
【0019】
図1に示すように、本実施の形態に係るシステムは、ユーザ待ち時間推定装置1、アプリケーションサーバ2、ユーザ端末3を備え、これらが通信ネットワーク4に接続されて構成されている。
【0020】
アプリケーションサーバ2は、アプリケーションサービスをユーザ端末3に対して提供するサーバである。アプリケーションサーバ2が提供するアプリケーションサービスは、例えば、Webページ提供サービス等である。
【0021】
ユーザ待ち時間推定装置1は、アプリケーションサーバ2と通信を行うユーザ端末3を操作するユーザが体感する待ち時間を推定する装置である。また、ユーザ端末3は、Webブラウザ等を備えた一般的なPC端末である。通信ネットワーク4は、インターネットやLAN等を含むIP(Internet Protocol)によるデータ通信可能なネットワークである。
【0022】
また、アプリケーションサーバ2とユーザ端末3間で送受信される全てのパケット(IPパケット)をユーザ待ち時間推定装置1が受信できるように通信ネットワーク4が構成されているものとする。例えば、ユーザ待ち時間推定装置1は、通信ネットワーク4内で、アプリケーションサーバ2を接続するLANスイッチのミラーポートに接続される。
【0023】
ただし、ユーザ待ち時間推定装置1は、必ずしも通信ネットワーク4から直接にパケットを取得しなくてもよい。例えば、通信ネットワーク4から他の装置により取得されたパケットを、当該装置からユーザ待ち時間推定装置1に入力する構成としてもよい。
【0024】
なお、本実施の形態では、ユーザ端末3とアプリケーションサーバ2間におけるデータ通信のトランスポート層のプロトコルとしてTCP(Transmission Control Protocol)を用いることを前提としている。TCPは、フロー制御等の制御のための通信が頻繁に発生するとともに、要求に対応する応答が必ず発生するので、本発明に係る技術に適しているからである。また、図1では、アプリケーションサーバ2とユーザ端末3がそれぞれ1つづつ示されているが、それぞれ複数台備えられてよいことはいうまでもない。
【0025】
次に、図2を参照して、本実施の形態に係る"ユーザ待ち時間"について説明する。図2は、アプリケーションサーバ2とユーザ端末3間でのTCPの通信シーケンスの概要を表している図である。
【0026】
図2に示すように、ユーザがユーザ端末3上で、所望の表示結果を得るための所定の操作(例えば、ブラウザ画面上に表示された特定のボタンをクリックする操作)を行うと、パケットがアプリケーションサーバ2とユーザ端末3間で送受信され、上記操作に対応する結果(例えば、表示されることを期待していたWebページ画面)がユーザ端末3上に表示される。
【0027】
本明細書及び特許請求の範囲では、上記のように所定の操作を行った時刻から、当該所定の操作に対応する結果が表示される時刻までをユーザ待ち時間としている。
【0028】
図3に、本実施の形態に係るユーザ待ち時間推定装置1の機能構成図を示す。図3に示すように、ユーザ待ち時間推定装置1は、入力部11、パケット格納部12、トラヒック分類部13、パケット数集計部14、連続区間識別部15、RTT(Round Trip Time)提供部16、及び出力部17を有する。
【0029】
各機能部の処理の内容については、後述するシステムの動作説明のところで詳細に説明することとし、以下では各機能部の機能の概要を説明する。
【0030】
入力部11は、ユーザ端末3とアプリケーションサーバ2間で送受信されるパケットのうち、アプリケーションサーバ2からユーザ端末3に向かうパケットを通信ネットワーク4等から取得し、各パケットにタイムスタンプ(現在時刻、パケットを取得した時刻)を付してパケット格納部12に格納する機能部である。
【0031】
トラヒック分類部13は、アプリケーションサーバ2からユーザ端末3に向かうパケットを宛先毎に分類する機能部である。パケット数集計部14は、特定のユーザ端末宛であると識別されたパケット群毎に、予め定めた時間幅(タイムスロット)毎のパケット数を算出する処理を行う機能部である。
【0032】
連続区間識別部15は、パケット数集計部14により得られた予め定めた時間幅毎のパケット数を用いて、所定の時間幅内に一定量以上のパケットが連続して出現しているか否かを識別することにより、ユーザによる待ち時間が継続していると推定できる時間区間を求める機能部である。
【0033】
また、RTT提供部16は、RTT(Round Trip Time:ユーザ端末3からアプリケーションサーバ2にパケットを送信して、確認応答パケットがアプリケーションサーバ2からユーザ端末3に返されるまでの時間)を取得し、それを連続区間識別部15に提供する機能部である。出力部17は、連続区間識別部15により得られた時間区間を、推定されたユーザ待ち時間の情報として出力する機能部である。
【0034】
ユーザ待ち時間推定装置1は、メモリやハードディスク等の記憶手段及びCPUを備える一般的なコンピュータに、各機能部に対応する処理を行うためのプログラムを搭載することにより実現できる。当該プログラムは、可搬メモリやディスク等の記録媒体から上記コンピュータにインストールしてもよいし、ネットワーク上のサーバから上記コンピュータにダウンロードし、インストールすることとしてもよい。
【0035】
(システムの動作)
次に、ユーザ待ち時間推定装置1の動作の例を、図4のフローチャートに沿って説明する。まず、ユーザ待ち時間推定装置1の入力部11は、通信ネットワーク4から、アプリケーションサーバ2を送信元とするパケットを順次取得し、取得した時刻の情報であるタイムスタンプを付してパケット格納部12に格納する(図4のステップ1)。
【0036】
ユーザ待ち時間推定装置1は、特定のアプリケーションサーバ2から送信されるパケットを常にパケット格納部12に格納し、当該アプリケーションサーバ2に関するユーザ待ち時間推定の必要が生じたときに、特定の時間区間に取得されたパケットを解析の対象としてもよいし、ユーザ指示等により特定の時間区間だけパケット収集を行い、そこで収集されたパケットを解析の対象としてもよい。また、常にパケットをパケット格納部12に格納し、一定時間毎に特定のアプリケーションサーバに関するユーザ待ち時間推定処理を実行することとしてもよい。もちろん、その他の形態を用いてもよい。
【0037】
パケット格納部12に格納されるパケットの例を図5(a)に示す。例えば、図5(a)の第1行目は、送信元IPアドレスがIPアドレス1、送信元ポート番号がポート番号1、宛先IPアドレスがIPアドレス3、宛先ポート番号がポート番号1であるIPパケットが、時刻1に取得され、格納されたことを示している。他の行も同様である。
【0038】
なお、図5(a)では、宛先IPアドレスがIPアドレス3であるIPパケットのみを示しているが、一般には、種々の宛先IPアドレスのIPパケットが取得される。また、パケット格納部12に格納する対象となるパケットの送信元IPアドレスと宛先IPアドレスとを予め決めている場合には、取得したパケットからIPヘッダを除き、TCPヘッダが付されたTCPパケットの形式でパケット格納部12に格納することとしてもよい。
【0039】
続いて、図4のステップ2において、トラヒック分類部13が、パケット格納部12に格納されたパケットを、宛先ユーザ端末毎に分類する処理を行う。分類にあたって、本実施の形態では、宛先IPアドレスと宛先ポート番号の1つの組が1つの宛先ユーザ端末に対応するものとし、宛先IPアドレスと宛先ポート番号の組毎にパケットを分類する処理を行う。
【0040】
ただし、NAT経由の通信等の場合に、1つの宛先ユーザ端末に対して、1つの宛先IPアドレスと、連続する複数の宛先ポート番号が割り当てられる場合があることを考慮して、同じ宛先IPアドレスの複数のパケットであって、連続するポート番号を有する複数のパケットが所定の短い時間(例えば0.5秒)内に現れた場合は、それらのパケットは1つのユーザ端末宛のパケットであるとみなしている。
【0041】
例えば、パケット格納部12に格納されたパケットが図5(a)に示すとおりのものであった場合、宛先IPアドレスは同一なので、トラヒック分類部13は、図5(b)に示すようにパケットを分類(ソート)する。図5(b)の例において、宛先ポート番号1のIPパケットはユーザ端末A宛てのパケット、宛先ポート番号8のパケットはユーザ端末Aと異なるユーザ端末B宛てのパケットなどとみなすことができる。
【0042】
また、例えば、パケット格納部12に格納されたパケットが図6(a)に示すようなものであり、時刻1から時刻4までの時間及び時刻5から時刻7までの時間のそれぞれが所定の時間より短い場合、トラヒック分類部13は、パケットを図6(b)に示すように分類する。図6(b)の例において、宛先ポート番号1〜4のパケットはユーザ端末X宛てのパケット、宛先ポート番号10〜12のパケットはユーザ端末Xと異なるユーザ端末Y宛てのパケットとみなすことができる。
【0043】
なお、以下で説明する処理は、分類されたパケット群のうち、特定の1つのユーザ端末宛のパケットに対する処理であるものとする。また、分類がなされたパケットは、パケット格納部12に格納してもよいし、パケット格納部12以外のメモリ等の記憶手段に格納してもよい。
【0044】
また、宛先ユーザ端末毎に分類されたパケットを取得する方法は、上記の方法に限られるわけではなく、結果として、宛先ユーザ端末毎に分類されたパケットを取得できるのであればどのような手段を用いてもよい。
【0045】
次に、図4のステップ3において、ユーザ待ち時間推定装置1のパケット数集計部14は、分類されたパケットについて、予め定めた時間幅(Wで表し、タイムスロットとも呼ぶ)毎の個数を算出する処理を行う。
【0046】
例えば、トラヒック分類部13により、図7に示すパケットが、アプリケーションサーバ2からユーザ端末3宛(IPアドレス3及び宛先ポート番号10で識別されるユーザ端末)のパケットとして抽出されたものとする。また、例えば、タイムスロットの大きさWとして0.1秒(以下、時間の単位は秒であるとする)を使用するものとする。
【0047】
この場合、パケット数集計部14は、時刻0から時刻0.1の間のタイムスロットのパケット数を3として求め、時刻0.1から時刻0.2の間のタイムスロットのパケット数を4として求める。他のタイムスロットでも同様である。このようにして算出した結果から、図8に示すヒストグラムが得られる。
【0048】
続いて、図4のステップ4において、連続区間識別部15が、パケット数集計部14により得られたタイムスロット毎のパケット数に基づき、ユーザ待ち時間であると推定することができるパケットの連続区間を識別する処理を行う。
【0049】
本実施の形態では、連続区間識別部15は、ユーザ端末3からアプリケーションサーバ2にパケットが送信されてから、確認応答パケットがアプリケーションサーバ2からユーザ端末3に返されるまでの時間であるRTTを利用して連続区間を識別することもできるし、RTTを利用しないで連続区間を識別することもできる。RTTを利用するかしないかは、例えば、アプリケーションサーバ2の位置(国内か外国か等)や、通信ネットワーク4の状態等で判断し、ユーザによりRTTを利用するかしないかを設定することができる。
【0050】
<RTTを利用しない場合>
まず、RTTを利用しない場合の処理について、図9のフローチャート、及び、図10に示す処理の概念図を用いて説明する。
【0051】
なお、以下の処理の前提として、タイムスロットにおけるパケット数の閾値である検知閾値と、スライディングウィンドウの時間長さLと、連続性判定閾値Sとが予め連続区間識別部15に入力され、メモリ等に保持されているものとする。
【0052】
まず、図9のステップ10において、連続区間識別部15は、パケット数が検知閾値以上の全てのタイムスロットを抽出する。ここで、検知閾値は、0以上の整数である。検知閾値は、対象とする通信(ユーザによる操作に起因する通信)以外の通信に係るパケットを、ユーザ待ち時間推定において検知しないようにするために設けられるものである。
また、各タイムスロットは、その開始時間位置と終了時間位置で識別される情報である。ステップ10の処理は、図10において、パケット数が点線と重なるか、点線を越えているタイムスロットを抽出する処理に相当する。以下、ここで抽出されたタイムスロットを、抽出タイムスロットと呼ぶ。
【0053】
次に、図9のステップ20において、連続区間識別部15は、複数の抽出タイムスロットのうちの、後述する連続性判定開始位置になったことがない抽出タイムスロットの中で、時間的に最初に位置する抽出タイムスロットの開始位置(時刻Tとする)を特定する。
【0054】
そして、連続区間識別部15は、連続区間識別のためにスライディングウィンドウをずらす時間長さを示す変数であるCを初期化(C=0とする)する(ステップ30)。続いて、連続区間識別部15は、上記抽出タイムスロットの開始位置である時刻Tから始まるスライディングウィンドウに含まれる抽出タイムスロットの合計の時間長さを求め、スライディングウィンドウの時間長さLに対する当該抽出タイムスロットの合計の時間長さの割合Rを求める(ステップ40)。以下では、スライディングウィンドウの開始位置を連続性判定開始位置と呼ぶことにする。
【0055】
ステップ40において、タイムスロットの時間幅がWであり、連続性判定開始位置から始まるスライディングウィンドウの時間長さLの中に、抽出タイムスロット(パケット数が検知閾値以上のタイムスロット)がM個含まれるとした場合、抽出タイムスロットの合計の時間長さはW×Mであるから、R=W×M/Lとなる。また、図10の場合について、タイムスロットの幅を0.1、各スライディングウィンドウの長さを1とすると、スライディングウィンドウAの中に、8個の抽出タイムスロットが含まれるから、R=0.1×8/1=0.8となる。
【0056】
続いて、連続区間識別部15は、Rが連続性判定閾値S以上であるか否かを判定する(ステップ50)。本実施の形態において、Sは、0から1の間の定数であり、例えばS=0.5である。
【0057】
ステップ50において、Rが連続性判定閾値S以上であると判定された場合、連続区間識別部15は、連続性判定開始位置を、時間進行方向において次に位置する抽出タイムスロットの開始位置とする。また、連続性判定開始位置をずらした長さ(前の連続性判定開始位置から次の連続性判定開始位置までの時間)をKとし、C=C+Kとする(ステップ60)。その後、ステップ40に戻る。
【0058】
また、ステップ50において、Rが連続性判定閾値S以上でないと判定された場合、連続区間識別部15は、ステップ70に進み、C=C−Kとするとともに、TからT+C+Lの区間を連続区間としてメモリ等の記憶手段に記録し、ステップ20に戻る。ただし、ステップ50の判定処理において、一度もYesの判定がされずに最初からNoと判定された場合には、ステップ70を経ずにステップ20に戻る。ステップ20において、現在の連続性開始判定位置の次の抽出タイムスロットの開始位置がTとなり、それ以降の処理が繰り返される。ここで、次の抽出タイムスロットが存在しなければ処理を終了する(ステップ80)。
【0059】
上記の処理の概念を図10を参照して説明する。図10の例では、スライディングウィンドウの時間長さがタイムスロット10個分の長さであり、連続性判定閾値S=1/2=0.5であるものとする。つまり、この場合、スライディングウィンドウ内に、5個以上の抽出タイムスロットが含まれる場合に、ステップ50においてYESと判定される。
【0060】
図10の例では、点線よりパケット数の多いタイムスロットがまず抽出される。そして、スライディングウィンドウAの開始位置Tが最初の連続性判定開始位置となり、スライディングウィンドウAには、8個の抽出タイムスロットが含まれるので、ステップ50においてYESと判定され、連続性判定開始位置がスライディングウィンドウBの開始位置までずらされ、同様の判定処理及び連続性判定開始位置をずらす処理等が繰り返される。
【0061】
図10の例では、スライディングウィンドウEには、5個の抽出タイムスロットが含まれるが、スライディングウィンドウFには、4個の抽出タイムスロットしか含まれず、ここではステップ50の判定はNoになる。従って、スライディングウィンドウAの開始位置Tから、スライディングウィンドウEの終了位置(T+C+L)までの時間区間が、ユーザ待ち時間に対応する連続区間であるとして記憶手段に記録されることになる。
【0062】
ステップ80において、処理が終了すると、記憶手段に格納されている連続区間情報(=ユーザ待ち時間情報)が、出力部17に渡され、出力される(図4のステップ5)。例えば、出力部17は、ユーザ待ち時間情報として、対象となっているアプリケーションサーバ2のIPアドレス及びポート番号、ユーザ端末3に対応するIPアドレス及びポート番号、及び、ユーザ待ち時間(連続区間)の開始時刻と終了時刻を出力する。また、ユーザ端末3に対応するIPアドレス及びポート番号から、ユーザ端末もしくはユーザの名前を識別可能である場合には、ユーザ端末もしくはユーザの名前を出力してもよい。
【0063】
出力部17から出力された情報は、例えば、ネットワーク管理者の端末に転送され、表示される。
【0064】
上述した本実施の形態における技術を用いることにより、安定したネットワーク環境において、ユーザ待ち時間を適切に推定することが可能となる。TCPパケットを用いる場合において、TCPヘッダの中の情報から、データ転送開始及び終了を判定することにより、ユーザ待ち時間を推定することも考えられるが、ユーザ待ち時間の中で、TCP上でのデータ転送開始及び終了が連続的に複数回発生する場合があるので、TCPヘッダの中の情報からでは、適切にユーザ待ち時間を推定することはできない。
【0065】
本実施の形態のように、TCPベースのアプリケーションサーバ2からユーザ端末3に送信されるパケットが、ある程度の短い時間間隔で連続的に発生している場合はユーザの待ちが継続していると判定する手法により、より適切にユーザ待ち時間を推定することが可能になる。なお、本実施の形態における技術は、アプリケーションサーバ2側において、ユーザ端末3に対してTCPパケットを送出せずにデータ処理(データのハードディスクへの書き込み処理等)を行う時間が比較的短い場合に適している。
【0066】
上記の例において、タイムスロットの時間幅W、スライディングウィンドウの時間長さL、及び、連続性判定閾値Sについては、実験等により適切な値を定めればよいが、安定したネットワーク環境での一例として、タイムスロットの時間幅Wとして0.1を用い、スライディングウィンドウの時間長さLとしてタイムスロット10個分である1を用い、連続性判定閾値Sとして1/2を用いることにより、良好な結果が得られている。
【0067】
<RTTを利用する場合>
次に、RTTを利用する場合の連続区間の識別処理のフローチャートを図11に示す。以下では、RTTを利用しない場合との相違点を中心に説明する。
【0068】
RTTを利用しない場合は、スライディングウィンドウの時間長さLとして予め定めた長さを用いていたのに対し、RTTを利用する場合の処理は、図11のステップ35において、スライディングウィンドウの長さLをRTTに基づき算出し、それ以降の処理において、RTTに基づき求めたLを用いて連続区間を判定している。その他の処理については図9の場合と同じである。より詳細には以下のとおりである。
【0069】
本実施の形態では、入力部11は、RTTを求めるためのデータとして、アプリケーションサーバ2からユーザ端末3に向かうパケットの他に、ユーザ端末3からプリケーションサーバ2に向かうパケットのうちの一部のパケットを取得してパケット格納部12に格納することができる。RTT提供部16は、パケット格納部12に格納されたデータを参照することにより、例えば、シーケンス番号で送信パケットとそれに対応する応答パケットを識別し、所定の時間毎のRTTを算出することができる。なお、TCPパケットからRTTを算出すること自体は従来技術である。もちろん、RTT提供部16は、その他の方法でRTTを算出することとしてもよい。例えば、ユーザ待ち時間推定装置1の外部にある装置でRTTを取得し、その装置からRTTを受信することとしてもよい。
【0070】
ステップ35において、連続区間識別部15は、RTT提供部16から、連続性判定開始位置に最も近い時刻に対応するRTTを取得する。ここでRTTをTRと表すと、連続区間識別部15は、L=(TR+W)×N(Nは自然数)としてLを求める。例えば、TR=0.01、W=0.1、N=10であるとすると、L=0.11×10=1.1となる。また、例えば、R=0.05、W=0.1、N=10であるとすると、L=0.15×10=1.5となる。
【0071】
RTTを用いる場合の処理の概念を図12を用いて説明する。図12において、(A)で示される部分は、L=1.1の場合であり、(B)で示される部分は、L=1.5の場合を示している。図12に示すとおり、スライディングウィンドウの長さLをRTTに応じて伸ばすことにより、RTTの影響でパケットの出現間隔が間延びする場合であっても、適切に連続区間(ユーザ待ち時間であると推定できる区間)を識別できる。
【0072】
(実施の形態の効果について)
上記のように、本実施の形態で説明した技術によれば、アプリケーションサーバ2からユーザ端末3に向けて送信されたパケットを取得することによりユーザ待ち時間を推定できるので、ユーザ端末とサーバ間で双方向に送受信されるパケットを取得しなければならない従来技術に比べて、取得すべきデータ量を削減できる。また、本実施の形態の技術では、トランスポート層よりも上位の層のプロトコルに係るヘッダの内容等を参照する必要がないので、トランスポート層よりも上位の層に対して暗号化を行うプロトコルが使用された場合でも、ユーザ待ち時間を推定することが可能になる。
【0073】
また、本実施の形態の技術では、RTTに応じてスライディングウィンドウの時間長さを変更することが可能なので、通信ネットワークの状況に応じたユーザ待ち時間を推定できる。
【0074】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【0075】
1 ユーザ待ち時間推定装置
2 アプリケーションサーバ
3 ユーザ端末
4 通信ネットワーク
11 入力部
12 パケット格納部
13 トラヒック分類部
14 パケット数集計部
15 連続区間識別部
16 RTT提供部
17 出力部
【特許請求の範囲】
【請求項1】
TCPベースのアプリケーションサービスを提供するアプリケーションサーバに通信ネットワークを介して接続され、前記アプリケーションサービスを利用するユーザ端末におけるユーザ待ち時間を推定するユーザ待ち時間推定装置であって、
前記アプリケーションサーバから前記ユーザ端末に向けて送信された各パケットを取得し、当該パケットを取得した時刻の情報とともに、当該パケットを記憶手段に格納するパケット取得手段と、
前記パケット取得手段により取得されたパケット群から、予め定めた時間幅を有するタイムスロット毎のパケット数を算出するパケット数集計手段と、
前記パケット数集計手段により算出されたタイムスロット毎のパケット数に基づき、パケット数が予め定めた検知閾値以上であるタイムスロット群を、抽出タイムスロット群として抽出する抽出手段と、
所定のウィンドウ時間長を有するスライディングウィンドウを定め、スライディングウィンドウに含まれる抽出タイムスロットの合計時間と前記ウィンドウ時間長とに基づき、スライディングウィンドウを時間進行方向にずらしながら、パケットが連続して出現した時間区間である連続区間を識別する連続区間識別手段と、
前記連続区間識別手段により識別された連続区間を、推定されたユーザ待ち時間として出力する出力手段と
を備えることを特徴とするユーザ待ち時間推定装置。
【請求項2】
前記連続区間識別手段は、
ある抽出タイムスロットに対応する連続性判定開始位置から時間進行方向に伸びるスライディングウィンドウに含まれる抽出タイムスロットの合計時間を算出し、前記ウィンドウ時間長に対する前記合計時間の割合が予め定めた閾値以上であるか否かを判定する判定手段と、
前記判定手段により、前記ウィンドウ時間長に対する前記合計時間の割合が前記予め定めた閾値以上であると判定された場合に、連続性判定開始位置を次の抽出タイムスロットにずらし、当該ずらした連続性判定開始位置に基づき前記判定手段による処理を行うスライディング手段と、
前記判定手段と前記スライディング手段による処理を、前記ウィンドウ時間長に対する前記合計時間の割合が前記予め定めた閾値未満であると判定されるまで繰り返し行い、最初の連続性判定開始位置から、最後に前記合計時間の割合が前記閾値以上であると判定されたスライディングウィンドウの末尾までの時間を前記パケットが連続して出現した時間区間であると決定する手段と
を備えることを特徴とする請求項1に記載のユーザ待ち時間推定装置。
【請求項3】
前記スライディングウィンドウのウィンドウ時間長を、前記通信ネットワークにおけるRTTに基づき算出する算出手段を備えることを特徴とする請求項1又は2に記載のユーザ待ち時間推定装置。
【請求項4】
前記算出手段は、予め定めた時間長に、前記RTTの値を加えることにより得た値から、前記スライディングウィンドウのウィンドウ時間長を算出することを特徴とする請求項3に記載のユーザ待ち時間推定装置。
【請求項5】
TCPベースのアプリケーションサービスを提供するアプリケーションサーバに通信ネットワークを介して接続され、前記アプリケーションサービスを利用するユーザ端末におけるユーザ待ち時間を推定するユーザ待ち時間推定装置が実行するユーザ待ち時間推定方法であって、
前記アプリケーションサーバから前記ユーザ端末に向けて送信された各パケットを取得し、当該パケットを取得した時刻の情報とともに、当該パケットを記憶手段に格納するパケット取得ステップと、
前記パケット取得ステップにより取得されたパケット群から、予め定めた時間幅を有するタイムスロット毎のパケット数を算出するパケット数集計ステップと、
前記パケット数集計ステップにより算出されたタイムスロット毎のパケット数に基づき、パケット数が予め定めた検知閾値以上であるタイムスロット群を、抽出タイムスロット群として抽出する抽出ステップと、
所定のウィンドウ時間長を有するスライディングウィンドウを定め、スライディングウィンドウに含まれる抽出タイムスロットの合計時間と前記ウィンドウ時間長とに基づき、スライディングウィンドウを時間進行方向にずらしながら、パケットが連続して出現した時間区間である連続区間を識別する連続区間識別ステップと、
前記連続区間識別ステップにより識別された連続区間を、推定されたユーザ待ち時間として出力する出力ステップと
を備えることを特徴とするユーザ待ち時間推定方法。
【請求項6】
コンピュータを、TCPベースのアプリケーションサービスを提供するアプリケーションサーバに通信ネットワークを介して接続され、前記アプリケーションサービスを利用するユーザ端末におけるユーザ待ち時間を推定するユーザ待ち時間推定装置として機能させるためのプログラムであって、コンピュータを、
前記アプリケーションサーバから前記ユーザ端末に向けて送信された各パケットを取得し、当該パケットを取得した時刻の情報とともに、当該パケットを記憶手段に格納するパケット取得手段、
前記パケット取得手段により取得されたパケット群から、予め定めた時間幅を有するタイムスロット毎のパケット数を算出するパケット数集計手段、
前記パケット数集計手段により算出されたタイムスロット毎のパケット数に基づき、パケット数が予め定めた検知閾値以上であるタイムスロット群を、抽出タイムスロット群として抽出する抽出手段、
所定のウィンドウ時間長を有するスライディングウィンドウを定め、スライディングウィンドウに含まれる抽出タイムスロットの合計時間と前記ウィンドウ時間長とに基づき、スライディングウィンドウを時間進行方向にずらしながら、パケットが連続して出現した時間区間である連続区間を識別する連続区間識別手段、
前記連続区間識別手段により識別された連続区間を、推定されたユーザ待ち時間として出力する出力手段、
として機能させるためのプログラム。
【請求項1】
TCPベースのアプリケーションサービスを提供するアプリケーションサーバに通信ネットワークを介して接続され、前記アプリケーションサービスを利用するユーザ端末におけるユーザ待ち時間を推定するユーザ待ち時間推定装置であって、
前記アプリケーションサーバから前記ユーザ端末に向けて送信された各パケットを取得し、当該パケットを取得した時刻の情報とともに、当該パケットを記憶手段に格納するパケット取得手段と、
前記パケット取得手段により取得されたパケット群から、予め定めた時間幅を有するタイムスロット毎のパケット数を算出するパケット数集計手段と、
前記パケット数集計手段により算出されたタイムスロット毎のパケット数に基づき、パケット数が予め定めた検知閾値以上であるタイムスロット群を、抽出タイムスロット群として抽出する抽出手段と、
所定のウィンドウ時間長を有するスライディングウィンドウを定め、スライディングウィンドウに含まれる抽出タイムスロットの合計時間と前記ウィンドウ時間長とに基づき、スライディングウィンドウを時間進行方向にずらしながら、パケットが連続して出現した時間区間である連続区間を識別する連続区間識別手段と、
前記連続区間識別手段により識別された連続区間を、推定されたユーザ待ち時間として出力する出力手段と
を備えることを特徴とするユーザ待ち時間推定装置。
【請求項2】
前記連続区間識別手段は、
ある抽出タイムスロットに対応する連続性判定開始位置から時間進行方向に伸びるスライディングウィンドウに含まれる抽出タイムスロットの合計時間を算出し、前記ウィンドウ時間長に対する前記合計時間の割合が予め定めた閾値以上であるか否かを判定する判定手段と、
前記判定手段により、前記ウィンドウ時間長に対する前記合計時間の割合が前記予め定めた閾値以上であると判定された場合に、連続性判定開始位置を次の抽出タイムスロットにずらし、当該ずらした連続性判定開始位置に基づき前記判定手段による処理を行うスライディング手段と、
前記判定手段と前記スライディング手段による処理を、前記ウィンドウ時間長に対する前記合計時間の割合が前記予め定めた閾値未満であると判定されるまで繰り返し行い、最初の連続性判定開始位置から、最後に前記合計時間の割合が前記閾値以上であると判定されたスライディングウィンドウの末尾までの時間を前記パケットが連続して出現した時間区間であると決定する手段と
を備えることを特徴とする請求項1に記載のユーザ待ち時間推定装置。
【請求項3】
前記スライディングウィンドウのウィンドウ時間長を、前記通信ネットワークにおけるRTTに基づき算出する算出手段を備えることを特徴とする請求項1又は2に記載のユーザ待ち時間推定装置。
【請求項4】
前記算出手段は、予め定めた時間長に、前記RTTの値を加えることにより得た値から、前記スライディングウィンドウのウィンドウ時間長を算出することを特徴とする請求項3に記載のユーザ待ち時間推定装置。
【請求項5】
TCPベースのアプリケーションサービスを提供するアプリケーションサーバに通信ネットワークを介して接続され、前記アプリケーションサービスを利用するユーザ端末におけるユーザ待ち時間を推定するユーザ待ち時間推定装置が実行するユーザ待ち時間推定方法であって、
前記アプリケーションサーバから前記ユーザ端末に向けて送信された各パケットを取得し、当該パケットを取得した時刻の情報とともに、当該パケットを記憶手段に格納するパケット取得ステップと、
前記パケット取得ステップにより取得されたパケット群から、予め定めた時間幅を有するタイムスロット毎のパケット数を算出するパケット数集計ステップと、
前記パケット数集計ステップにより算出されたタイムスロット毎のパケット数に基づき、パケット数が予め定めた検知閾値以上であるタイムスロット群を、抽出タイムスロット群として抽出する抽出ステップと、
所定のウィンドウ時間長を有するスライディングウィンドウを定め、スライディングウィンドウに含まれる抽出タイムスロットの合計時間と前記ウィンドウ時間長とに基づき、スライディングウィンドウを時間進行方向にずらしながら、パケットが連続して出現した時間区間である連続区間を識別する連続区間識別ステップと、
前記連続区間識別ステップにより識別された連続区間を、推定されたユーザ待ち時間として出力する出力ステップと
を備えることを特徴とするユーザ待ち時間推定方法。
【請求項6】
コンピュータを、TCPベースのアプリケーションサービスを提供するアプリケーションサーバに通信ネットワークを介して接続され、前記アプリケーションサービスを利用するユーザ端末におけるユーザ待ち時間を推定するユーザ待ち時間推定装置として機能させるためのプログラムであって、コンピュータを、
前記アプリケーションサーバから前記ユーザ端末に向けて送信された各パケットを取得し、当該パケットを取得した時刻の情報とともに、当該パケットを記憶手段に格納するパケット取得手段、
前記パケット取得手段により取得されたパケット群から、予め定めた時間幅を有するタイムスロット毎のパケット数を算出するパケット数集計手段、
前記パケット数集計手段により算出されたタイムスロット毎のパケット数に基づき、パケット数が予め定めた検知閾値以上であるタイムスロット群を、抽出タイムスロット群として抽出する抽出手段、
所定のウィンドウ時間長を有するスライディングウィンドウを定め、スライディングウィンドウに含まれる抽出タイムスロットの合計時間と前記ウィンドウ時間長とに基づき、スライディングウィンドウを時間進行方向にずらしながら、パケットが連続して出現した時間区間である連続区間を識別する連続区間識別手段、
前記連続区間識別手段により識別された連続区間を、推定されたユーザ待ち時間として出力する出力手段、
として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−142473(P2011−142473A)
【公開日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願番号】特願2010−1586(P2010−1586)
【出願日】平成22年1月6日(2010.1.6)
【出願人】(399035766)エヌ・ティ・ティ・コミュニケーションズ株式会社 (321)
【Fターム(参考)】
【公開日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願日】平成22年1月6日(2010.1.6)
【出願人】(399035766)エヌ・ティ・ティ・コミュニケーションズ株式会社 (321)
【Fターム(参考)】
[ Back to top ]