添付図面を参照しながら本発明の実施形態を説明する。可能な場合には、同一の部分には同一の符号を付して、重複する説明を省略する。
図1は、本実施形態の通信システムのシステム構成図である。図1に示すように、この通信システムは、通信監視装置10(通信装置)、フィードバック装置20、セクタ30、基地局40、ルータ50、コアノード60、及びWebサーバ70を含んで構成されている。
基地局40は、通信可能な範囲であるセクタ30を1以上有しており、当該セクタ30内に在圏するユーザ(通信端末)との間で無線通信を行う。基地局40は、具体的には、eNodeB等である。
基地局40は、ルータ50と通信回線で接続されている。各基地局40は、自セクタ30内に在圏するユーザから受信した上りパケット(ユーザからWebサーバ70宛てのパケット)に必要な網内情報を付与してルータ50へ転送する。また、基地局40は、ルータ50から受信した下りパケット(Webサーバ70からユーザ宛てのパケット)から網内情報を除去して自セクタ30に在圏するユーザへ転送する。
ルータ50は、Webサーバ70から送信されたパケットをコアノード60から受信し、基地局40へ当該パケットを送信する。また、ルータ50は、コアノード60を介して、基地局40から受信したパケットをWebサーバ70へ送信する。
また、ルータ50は、基地局40又はコアノード60から受信したパケットにルータ50自身の識別子であるルータIDを付して、通信監視装置10へ送信する。
コアノード60は、セクタ30に在圏するユーザの位置管理、認証制御、及び経路(基地局40とWebサーバ70との間の経路)の設定を行う部分である。具体的に、コアノード60は、MME(Mobility Management Entity)やSGW(ServingGateway)等で構成されるノード群である。また、コアノード60は、ルータ50から受信したパケットをWebサーバ70へ送信し、Webサーバ70から受信したパケットをルータ50へ送信する。
Webサーバ70は、例えば、コンテンツプロバイダが提供するインターネット上のサーバであって、ユーザからの要求にしたがってコンテンツデータ(例えば、サイトの構成部分のデータ、テキストデータ、画像データ等)を当該ユーザに配信する装置である。
通信監視装置10は、各ルータ50から受信したパケットを用いて、各ユーザにおける表示時間を算出し、当該表示時間を通信経路毎に統計処理を行い、通信遅延が発生している可能性がある通信経路を特定する。ここで、表示時間とは、ユーザがコンテンツの表示要求をWebサーバ70へ行ってから、Webサーバ70から当該コンテンツを受信し、当該コンテンツを表示するまでの時間を示す。この表示時間は、通信速度が早ければ早いほど(通信状況が良好であれば良好であるほど)表示時間が短くなる。すなわち、表示時間は、通信状況を示す情報となる。また、通信経路とは、当該表示要求に応じて、ユーザ及びWebサーバ70間でパケットの送受信を行うための経路である。また、通信監視装置10は、通信遅延が発生している可能性がある通信経路を利用しているユーザを特定する。また、通信監視装置10は、特定したユーザ宛てに通信遅延が発生している旨のメッセージの送信要求をフィードバック装置20へ送信する。
フィードバック装置20は、通信監視装置10からメッセージ内容(例えば、通信遅延発生を示すメッセージ、通信遅延解消を示すメッセージ)と、メッセージ送信先のユーザを示す情報を受信し、当該ユーザへメッセージ内容を送信する。フィードバック装置20は、具体的には、サーバ装置等のコンピュータである。また、通信監視装置10とフィードバック装置20とは、一体となっていてもよい。
続いて、本実施形態に係る通信監視装置10の機能について図2に示す機能ブロック図を用いて、詳細に説明する。図2に示すように、通信監視装置10は、通信情報取得部11(通信情報取得手段)と、通信情報記憶部12と、表示時間算出部13(情報生成手段)と、算出結果記憶部14と、遅延発生箇所特定部15(遅延発生箇所特定手段)と、ユーザ特定部16(ユーザ特定手段)と、通知部17(通知手段)とを備えて構成される。
図3は、通信監視装置10のハードウェア構成図である。図3に示すように、通信監視装置10は、CPU101、主記憶装置であるRAM(Random Access Memory)102及びROM(Read Only Memory)103、通信を行うための通信モジュール104、並びにハードディスク等の補助記憶装置105等のハードウェアを備えるコンピュータを含むものとして構成される。これらの構成要素がプログラム等により動作することにより、図2に示す各機能要素による機能が発揮される。なお、通信監視装置10は複数台のコンピュータによるコンピュータシステムによって構成されていてもよい。以下、図2に示す各機能要素について説明する。
通信情報取得部11は、接続元のユーザから接続先までの通信経路を示す情報と、当該接続元のユーザと、当該接続先と、時刻とを含む通信情報を取得する部分である。具体的に、通信情報取得部11は、ノード間(基地局40とコアノード60との間)の制御のための信号にルータ50のID(ルータID)が対応付けられたパケットであるノード間制御信号パケットをルータ50から取得する。また、通信情報取得部11は、ユーザとWebサーバ70との間の制御のためのデータであるユーザデータにルータIDが対応付けられたパケットであるユーザデータパケットをルータ50から取得する。このように、通信情報取得部11は、ノード間制御信号パケット及びユーザデータパケットをキャプチャする。
通信情報取得部11は、上記ノード間制御信号パケット及びユーザデータパケットを取得した後に、公知のパケットフィルタを実行する。通信情報取得部11は、パケットフィルタを実行した後に、DPI(Deep Packet Inspection)処理及び情報要素(後述するテーブルに記憶する情報)の選別処理を実行することにより、必要とする情報要素を抽出する。このように、通信情報取得部11は、表示時間の統計処理をするための情報を適切に取得する。
通信情報取得部11は、通信情報記憶部12に記憶されているテーブルへ上記取得した情報の内容を記憶する。通信情報記憶部12は、上記ノード間制御信号に対応するテーブルとして、TEID情報テーブル、QoS情報テーブル、及びEPMSI情報テーブルを記憶する。
TEID情報テーブル、QoS情報テーブル、及びEPMSI情報テーブルのデータ構造を図4に示す。図4(A)にTEID情報テーブルのデータ構造を示す。図4(A)に示すように、TEID情報テーブルは、「DATE_TIME」欄と、「IP_SRC」欄と、「IP_DST」欄と、「MME_UES1AP_ID」欄と、「eNB_UE_S1AP_ID」欄と、「Transport Layer Address」欄と、「GTP−TEID」欄とを対応付けて記憶している。
「DATE_TIME」欄には、受信時刻情報を示す情報が設定される。「IP_SRC」欄には、送信元IPアドレスを示す情報が設定される。「IP_DST」欄には、送信先IPアドレスを示す情報が設定される。「MME_UES1AP_ID」欄には、MMEとUEの識別子を示す情報が設定される。「eNB_UE_S1AP_ID」欄には、eNBとUEの識別子を示す情報が設定される。「Transport Layer Address」欄には、eNBまたはSGWのユーザデータのIPアドレスを示す情報が設定される。「GTP−TEID」欄には、eNBまたはSGWのユーザデータのgtp−teidを示す情報が設定される。このgtp−teidは、GTP(General packet radio service Tunneling Protocol)パスの識別子である。TEID情報テーブルのレコードであるTEID情報における各欄(具体的には、「DATE_TIME」欄、「IP_SRC」欄、「IP_DST」欄、及び「eNB_UE_S1AP_ID」欄)に設定されている情報により、QoS情報テーブルのレコードであるQoS情報及びEPMSI情報テーブルのレコードであるEPMSI情報を紐づけることができる。また、「DATE_TIME」欄、「GTP−TEID」欄、「IP_SRC」欄または「IP_DST」欄に設定されている情報により、後述するHTTP情報テーブルのレコードであるHTTP情報と紐づけることができる。また、同様に「DATE_TIME」欄、「GTP−TEID」欄、「IP_SRC」欄または「IP_DST」欄に設定されている情報により、TCP情報テーブルのレコードであるTCP情報と紐づけることができる。
図4(B)にQoS情報テーブルのデータ構造を示す。図4(B)に示すように、QoS情報テーブルは、「DATE_TIME」欄と、「IP_SRC」欄と、「IP_DST」欄と、「MME_UES1AP_ID」欄と、「eNB_UE_S1AP_ID」欄と、「AMBR(DL)」欄と、「AMBR(UL)」欄とを対応付けて記憶している。
「DATE_TIME」欄には、受信時刻情報を示す情報が設定される。「IP_SRC」欄には、送信元IPアドレスを示す情報が設定される。「IP_DST」欄には、送信先IPアドレスを示す情報が設定される。「MME_UES1AP_ID」欄には、MMEとUEの識別子を示す情報が設定される。「eNB_UE_S1AP_ID」欄には、eNBとUE(ユーザ)の識別子を示す情報が設定される。「AMBR(DL)」欄には、下り通信可能帯域(契約帯域)を示す情報(通信制限を示す情報)が設定される。「AMBR(UL)」欄には、上り通信可能帯域(契約帯域)を示す情報(通信制限を示す情報)が設定される。このように、QoS情報テーブルは、通信制限を示す情報を記憶する。また、QoS情報テーブルは、eNBとUE(ユーザ)の識別子を示す情報も記憶するので、通信制限を示す情報をユーザに対応付けて記憶する。
図4(C)にEPMSI情報テーブルのデータ構造を示す。図4(C)に示すように、EPMSI情報テーブルは、「DATE_TIME」欄と、「IP_SRC」欄と、「IP_DST」欄と、「eNB_UES1AP_ID」欄と、「E−UTARAN CGI」欄とを対応付けて記憶している。
「DATE_TIME」欄には、受信時刻情報を示す情報が設定される。「IP_SRC」欄には、送信元IPアドレスを示す情報が設定される。「IP_DST」欄には、送信先IPアドレスを示す情報が設定される。「eNB_UES1AP_ID」欄には、eNBとUEの識別子を示す情報が設定される。「E−UTARAN CGI」欄には、セクタを示す情報が設定される。このように、EPMSI情報テーブルは、セクタを示す情報を記憶している。
ここで、ノード間制御信号パケットから取得した情報を、上記TEID情報テーブル、QoS情報テーブル、及びEPMSI情報テーブルへ設定する方法について、図5を用いて説明する。図5は、公知の接続処理を示すシーケンス図である。
このシーケンス図の内、通信情報取得部11は、ステップS100の「INITIAL UE MESSAGE」が示す信号のノード間制御信号パケットをルータ50から取得する。そして、通信情報取得部11は、EPMSI情報テーブルで記憶している各欄に対応する情報を上記ノード間制御信号から取得し、それらの情報をEPMSI情報テーブルに設定する。また、通信情報取得部11は、ステップS200の「INITIAL CONTEXT SETUP REQUEST」が示す信号のノード間制御信号パケットをルータ50から取得する。通信情報取得部11は、当該ノード間制御信号パケットからQoS情報テーブル及びTEID情報で記憶している各欄に対応する情報を取得する。なお、当該TEID情報は、上りのTEID情報となる。また、通信情報取得部11は、ステップS300の「INITIAL CONTEXT SETUP RESPONSE」が示す信号のノード間制御信号パケットをルータ50から取得する。続いて、通信情報取得部11は、当該ノード間制御信号パケットからTEID情報で記憶している各欄に対応する情報を取得する。なお、当該TEID情報は、下りのTEID情報となる。
また、通信情報記憶部12は、上記ユーザデータパケットに対応するテーブルとして、TCP情報テーブル及びHTTP情報テーブルを記憶する。
TCP情報テーブル及びHTTP情報テーブルのデータ構造を図6に示す。図6(A)にTCP情報テーブルのデータ構造を示す。図6(A)に示すように、TCP情報テーブルは、「DATE_TIME」欄と、「IP_SRC」欄と、「IP_DST」欄と、「GTP−TEID」欄と、「IN_IP_SRC」欄と、「IN_IP_DST」欄と、「IN_TCP_SRC_PORT」欄と、「IN_TCP_DST_PORT」欄と、「IN_TCP_SEQ_NUM」欄と、「IN_TCP_ACK_NUM」欄と、「IN_TCP_SIZE」欄とを対応付けて記憶している。
「DATE_TIME」欄には、受信時刻情報を示す情報が設定される。「IP_SRC」欄には、送信元IPアドレスを示す情報が設定される。「IP_DST」欄には、送信先IPアドレスを示す情報が設定される。「GTP_TEID」欄には、eNBまたはSGWのユーザデータのgtp−teidを示す情報が設定される。「IN_IP_SRC」欄には、ユーザ(UE)または接続先(Webサーバ70等)のIPアドレスを示す情報が設定される。「IN_IP_DST」欄には、UEまたは接続先(Webサーバ等)のIPアドレスを示す情報が設定される。「IN_TCP_SRC_PORT」欄には、ユーザまたは接続先のTCP_PORT番号を示す情報が設定される。「IN_TCP_DST_PORT」欄には、ユーザまたは接続先のTCP_PORT番号を示す情報が設定される。「IN_TCP_SEQ_NUM」欄には、TCPのシーケンス番号を示す情報が設定される。「IN_TCP_ACK_NUM」欄には、TCPのACK番号を示す情報が設定される。「IN_TCP_SIZE」欄には、TCPのパケットサイズを示す情報が設定される。
図6(B)にHTTP情報テーブルのデータ構造を示す。図6(B)に示すように、HTTP情報テーブルは、「DATE_TIME」欄と、「IP_SRC」欄と、「IP_DST」欄と、「GTP−TEID」欄と、「IN_IP_SRC」欄と、「IN_IP_DST」欄と、「HOSTNAME」欄と、「REQUEST_URI」欄と、「REFERER」欄とを対応付けて記憶している。
「DATE_TIME」欄には、受信時刻情報を示す情報が設定される。「IP_SRC」欄には、送信元IPアドレスを示す情報が設定される。「IP_DST」欄には、送信先IPアドレスを示す情報が設定される。「GTP_TEID」欄には、eNBまたはSGWのユーザデータのgtp−teidを示す情報が設定される。「IN_IP_SRC」欄には、ユーザまたは接続先のIPアドレスを示す情報が設定される。「IN_IP_DST」欄には、ユーザまたは接続先のIPアドレスを示す情報が設定される。「HOSTNAME」欄には、HTTPのホスト名を示す情報が設定される。「REQUEST_URI」欄には、HTTPのrequest_uri(接続先)を示す情報が設定される。「REFERER」欄には、HTTPのrefererを示す情報が設定される。この「REFERER」欄には、複数のHTTP要求のそれぞれが関連しているか否かを示す情報が設定される。
上述のように、通信情報取得部11は、ノード間制御信号パケット及びユーザデータパケット(通信情報)を取得する。そして、通信情報取得部11は、接続元のユーザからWebサーバ70までの通信経路(セクタ30、基地局40、ルータ50、及びコアノード60)を示す情報と、当該接続元のユーザと、当該接続先と、受信時刻とを含む情報を各テーブルへ記憶する。
表示時間算出部13は、通信情報取得部11により取得された通信情報を用いて、通信経路毎の表示時間を算出する部分である。表示時間算出部13は、予め定められている算出タイミングになったことを検知すると、前回の算出タイミングから今回の算出タイミングまでの間に、通信情報記憶部12の各種テーブルに記憶された情報を通信情報記憶部12から取得する。表示時間算出部13は、各テーブルの「DATE_TIME」欄の情報を参照して、前回の算出タイミングから今回の算出タイミングまでの間に記憶されたものであるか否かを判定して、情報を取得する。
表示時間算出部13は、まず、ユーザの接続毎に、当該接続に対応する上りのTEID情報(ユーザからWebサーバ70への通信におけるTEID情報)、下りのTEID情報(Webサーバ70からユーザへの通信におけるTEID情報)、QoS情報、EPMSI情報、HTTP情報、及びTCP情報を紐づける。表示時間算出部13は、上りのTEID情報、下りのTEID情報、QoS情報、及びEPMSI情報のそれぞれに含まれる「DATE_TIME」欄の情報、「IP_SRC」欄の情報、「IP_DST」欄の情報、及び「eNB_UE_S1AP_ID」欄の情報に基づいて、上記の情報を紐づける。具体的に、表示時間算出部13は、「IP_SRC」欄の情報、「IP_DST」欄の情報、及び「eNB_UE_S1AP_ID」欄の情報が共通して、「DATE_TIME」欄の情報が互いに近似している(当該情報が示す値の差が予め定められている幅の範囲内である)ことを条件に、上記の情報を紐づける。
続いて、表示時間算出部13は、上記紐づけた上りのTEID情報の「GTP_TEID」欄の情報と、「IP_SRC」欄の情報とが共通し、且つ当該TEID情報の「DATE_TIME」欄の日時よりも遅い日時が「DATE_TIME」欄に設定されているHTTP情報を取得する。また、表示時間算出部13は、上記で取得したHTTP情報に対応するTCP情報を取得する。具体的に、表示時間算出部13は、HTTP情報の「IP_SRC」欄の情報と、TCP情報の「IP_DST」欄の情報とが共通し、HTTP情報の「IP_DST」欄の情報と、TCP情報の「IP_SRC」欄の情報とが共通し、HTTP情報の「IN_IP_SRC」欄の情報と、TCP情報の「IN_IP_DST」欄の情報とが共通し、HTTP情報の「IN_IP_DST」欄の情報と、TCP情報の「IN_IP_SRC」欄の情報とが共通し、且つ当該HTTP情報の「DATE_TIME」欄の日時よりも遅い日時が「DATE_TIME」欄に設定されているTCP情報を取得する。
また、表示時間算出部13は、上記紐づけたHTTP情報の内、当該HTTP情報の「REFERER」欄の情報に基づいて、互いに関連づいているHTTP情報をグループ化する。
さらに、表示時間算出部13は、当該グループ化したHTTP情報の「DATE_TIME」欄の情報が互いに近似しており、「IP_SRC」欄の情報と「IP_DST」欄の情報とが共通しており、「IN_IP_SRC」欄の情報と、「IN_IP_DST」欄の情報とが共通しているTCP情報を取得する。このように、表示時間算出部13は、ユーザの接続毎に、当該接続に対応する上りのTEID情報、下りのTEID情報、QoS情報、EPMSI情報、HTTP情報、及びTCP情報を紐づける。続いて、表示時間算出部13は、この紐づけた情報(ユーザ接続情報)を用いて、ユーザの表示時間を算出する。
表示時間算出部13は、上記ユーザ接続情報のHTTP情報の「REQUEST_URI」欄の情報を参照し、予め定められているURIであるか否かを判断する。予め定められているURIで無い場合、表示時間算出部13は、当該ユーザ接続情報をユーザの表示時間算出対象から除外する。このように、予め定められているURIで無い場合に、ユーザ接続情報をユーザの表示時間算出対象から除外することにより、表示時間算出部13は、同一接続対象(同一のURI)におけるユーザの表示時間のみ算出するようにする。
続いて、表示時間算出部13は、上記ユーザ接続情報に含まれるQoS情報のAMBR(DL)又はAMBR(UL)を参照し、契約帯域制限があるか否かを判断し、判断した結果、契約帯域制限がある場合、当該ユーザ接続情報をユーザの表示時間算出対象から除外する。
表示時間算出部13は、ユーザの表示時間算出対象となるユーザ接続情報に含まれるHTTP情報の内、最初のHTTP要求を示すHTTP情報を特定する。表示時間算出部13は、当該最初のHTTP要求に対応するホスト名及びrequest_uriを予め記憶している。具体的には、表示時間算出部13は、グループ化したHTTP情報の内、「HOSTNAME」欄のホスト名が予め記憶しているホスト名と一致し、且つ「REQUEST_URI」欄の情報が、予め記憶している最初のHTTP要求に対応するrequest_uriと一致するHTTP情報を最初のHTTP要求を示すHTTP情報であると特定する。そして、表示時間算出部13は、HTTP応答として受信するユーザデータパケットであるTCP情報の内、最も遅く受信したTCP情報を特定する。具体的には、表示時間算出部13は、ユーザ接続情報に含まれるTCP情報の「DATE_TIME」欄の情報の内、最も遅いTCP情報を特定する。そして、表示時間算出部13は、特定したHTTP情報の「DATE_TIME」欄の情報と、TCP情報の「DATE_TIME」欄の情報との差分を算出することにより、ユーザの表示時間を算出する。
ここで、図7を用いて、ユーザの表示時間を算出する例を説明する。図7(A)に示すように、Webページが、構造部分と、画像部分と、text部分とを含むものとする。この場合、図7(B)に示すように、ユーザは、構造部分のデータについてのHTTP要求と、画像部分のデータについてのHTTP要求と、text部分のデータについてのHTTP要求とをそれぞれのデータを記憶しているWebサーバ70へ送信する。そして、ユーザは、それぞれのWebサーバ70からHTTP応答を受信する。この場合に、表示時間算出部13は、最初のHTTP要求(HTTP要求(構造))を特定し、さらに、最も遅いHTTP応答(HTTP応答(text))を特定する。そして、表示時間算出部13は、最初のHTTP要求から、最も遅いHTTP応答までの時間tを、ユーザの表示時間として算出する。なお、ユーザの表示時間は、上記の時間tに限らず、接続先のDNS解決したタイミングを基準としてもよいし、TCP3wayhandshakeをするタイミングを基準としてもよい。
表示時間算出部13は、ユーザの表示時間を算出すると、セクタ、基地局、ルータ、コアノード、ユーザ、及び表示時間を対応付けた情報を算出結果記憶部14の算出結果テーブルへ記憶する。ここで、図8(A)に算出結果テーブルの構造例を示す。図8(A)に示すように、算出結果テーブルは、「セクタ」欄と、「基地局」欄と、「ルータ」欄と、「コアノード」欄と、「ユーザ」欄と、「表示時間」欄とを対応付けて記憶している。
表示時間算出部13は、上記ユーザ接続情報におけるEPMSI情報の「E−UTRAN CGI」欄の情報を、上記「セクタ」欄の情報として設定する。また、表示時間算出部13は、上りのTEID情報における「IP_SRC」欄の情報を、上記「基地局」欄の情報として設定する。また、表示時間算出部13は、ノード間制御信号パケット又はユーザデータパケットの取得元のルータのルータIDを、上記「ルータ」欄の情報として設定する。上りのTEID情報の「IP_DST」欄の情報を、上記「コアノード」欄の情報として設定する。また、表示時間算出部13は、上記ユーザ接続情報のHTTP情報の「IN_IP_SRC」欄の情報を、「ユーザ」欄の情報として設定する。また、表示時間算出部13は、上記算出したユーザの表示時間を、「表示時間」欄の情報として設定する。
表示時間算出部13は、算出対象のユーザ接続情報の全てについてユーザの表示時間を算出し終えた後に、遅延発生箇所特定部15へ表示時間算出を完了した旨を通知する。
算出結果記憶部14は、表示時間算出部13による算出結果を含む算出結果テーブルを記憶する。また、算出結果記憶部14は、遅延発生箇所特定部15により特定された遅延発生箇所の統計結果を含む遅延発生度テーブルを記憶する。ここで、図8(B)に遅延発生度テーブルの構造例を示す。図8(B)に示すように、遅延発生度テーブルは、「経路ID」欄と、「セクタ」欄と、「基地局」欄と、「ルータ」欄と、「コアノード」欄と、「不満度Y」欄とを対応付けて記憶している。「経路ID」欄には、「セクタ」欄と、「基地局」欄と、「ルータ」欄と、「コアノード」欄とのそれぞれに設定された情報の組み合わせで互いに一意となる番号が設定される。「不満度Y」欄には、通信遅延が発生しているか否かを判断するための値が後述する遅延発生箇所特定部15によって設定される。具体的には、遅延発生箇所特定部15によって遅延発生箇所と特定される毎に、「不満度Y」欄に設定されている値がインクリメントされる。
遅延発生箇所特定部15は、表示時間算出部13により算出されたユーザの表示時間を通信経路単位で比較した結果に基づいて、通信遅延が発生している通信経路を特定する部分である。遅延発生箇所特定部15は、表示時間算出部13から算出完了通知を受信すると、通信遅延が発生している通信経路を特定する処理を開始する。表示時間算出部13は、所定タイミング毎にユーザの表示時間を算出しているので、遅延発生箇所特定部15は、所定のタイミング毎に通信遅延が発生している通信経路を特定する処理を繰り返すことになる。遅延発生箇所特定部15では、表示時間毎にカテゴリ(表示時間の早さに基づく分類)を定めている。また、各カテゴリには、表示時間が早いほど値が小さくなるように、値が定められている。具体的には、ユーザの表示時間が3秒未満であれば、カテゴリの値は1になる。また、ユーザの表示時間が、3秒以上6秒未満であれば、カテゴリの値は2になる。また、ユーザの表示時間が、6秒以上10秒未満であれば、カテゴリの値は3になる。また、ユーザの表示時間が、10秒以上であれば、カテゴリの値は4になる。
まず、遅延発生箇所特定部15は、算出結果テーブルを参照して、セクタ、基地局、ルータ、及びコアノードの組み合わせ(通信経路)毎にカテゴリ毎の割合を算出する。具体的に、遅延発生箇所特定部15は、算出結果テーブルを参照して、各ユーザの表示時間が何れのカテゴリに該当するか特定する。遅延発生箇所特定部15は、当該ユーザに対応する通信経路が、遅延発生度テーブルの「経路ID」欄の何れに対応するか特定し、対応する「経路ID」欄のカテゴリ数に計上する。遅延発生箇所特定部15は、全ユーザ分の表示時間について、各「経路ID」欄の何れかのカテゴリに計上した後に、「経路ID」毎に各カテゴリの割合を算出する。さらに、遅延発生箇所特定部15は、通信経路毎に、最も割合の高いカテゴリを特定する。カテゴリの割合を算出した例を図9(A)に示す。
図9(A)に示すように、経路IDが「1」又は「3」に対応する通信経路は、表示時間が「早い」場合が多いことを示している。一方、経路IDが「2」に対応する通信経路は、表示時間が「遅い」場合が多いことを示している。
続いて、遅延発生箇所特定部15は、各通信経路で最も割合の高いカテゴリにおけるカテゴリの値の平均値(基準値)を算出し、通信経路に対応するカテゴリが当該平均値のα倍(例えば、2倍)以上である通信経路(通信遅延が発生している可能性がある通信経路)を特定する。このように、遅延発生箇所特定部15は、上記平均値と、各通信経路に対応するカテゴリとを比較結果を算出(導出)する。例えば、図9(A)に示した例の場合、経路ID「1」の最も多いカテゴリの値が1であり、経路ID「2」の最も多いカテゴリの値が3であり、経路ID「3」の最も多いカテゴリの値が1であるので、各通信経路で最も多いカテゴリにおけるカテゴリの値の平均値は、1.666・・・になる。当該平均値の小数点を切り捨てると、当該平均値は、1になる。そうすると、図9(B)に示すように、経路ID「2」に対応する通信経路が、当該3つの経路IDに対応するカテゴリの平均値が2倍を超えるので、遅延発生箇所特定部15は、経路IDが「2」に対応する通信経路を特定する。このように、遅延発生箇所特定部15は、通信経路単位で表示時間の割合に基づく結果を比較する。
続いて、遅延発生箇所特定部15は、遅延発生度テーブルを参照し、上記特定した通信経路に対応する不満度Yをインクリメントする。このように、遅延発生箇所特定部15は、平均値と、各通信経路に対応するカテゴリとを比較した比較結果を算出し、当該比較結果がα倍以上である場合に、不満度Yをインクリメントする。このように、遅延発生箇所特定部15は、所定のタイミング毎に導出された複数の比較結果を通信経路単位で集計する。
続いて、遅延発生箇所特定部15は、上記のように、不満度Yをインクリメントした結果、当該不満度Yが予め定めている閾値である閾値βを超えているか否かを判断する。不満度Yが閾値βを超えている場合、遅延発生箇所特定部15は、閾値βを超えている通信経路間の特徴的な共通点があるか否かを判断する。例えば、図9(C)に示すように、経路ID「1」〜「3」の通信経路が閾値βを超過している場合、それぞれの通信経路中で共通している経由点(例えば、セクタ)の数が、閾値γ(例えば、3)以上であるとき、特徴的な共通点があると判断する。図9(C)の例の場合、セクタが何れも「#a1」で、共通する経由点の数が「3」であり閾値3以上であるので、遅延発生箇所特定部15は、特徴的な共通点があると判断する。遅延発生箇所特定部15は、特徴的な共通点がある場合、当該経路IDをユーザ特定部16へ通知し、フィードバック要求をする。このように、遅延発生箇所特定部15は、通信経路単位で表示時間の割合に基づく結果を所定タイミング毎に比較して、その比較した結果を累積し、その累積結果に基づいて通信遅延が発生している通信経路を特定する。
また、遅延発生箇所特定部15は、通信経路毎で最も多いカテゴリにおける平均値を算出し、通信経路に対応するカテゴリが当該平均値のα倍以上である通信経路が無い場合、ユーザ特定部16へフィードバック済みのユーザへの復旧通知要求をする。遅延発生箇所特定部15によって、通信遅延が発生している通信経路が過去に特定されていた場合において、通信経路に対応するカテゴリが当該平均値のα倍以上である通信経路の有無を再度判断した結果、当該通信経路が無いとき、上記過去に特定された通信経路における通信遅延が解消されたことになる。そこで、遅延発生箇所特定部15は、上記のように、ユーザ特定部16へフィードバック済みのユーザへの復旧通知要求をする。
ユーザ特定部16は、遅延発生箇所特定部15により特定された通信経路を使用する接続元のユーザを、通信情報取得部11により取得された通信情報を用いて特定する部分である。ユーザ特定部16は、遅延発生箇所特定部15から経路IDが通知されると共に、フィードバック要求を受信すると、遅延発生度テーブルを参照し、受信した経路IDに対応するセクタ、基地局、ルータ、及びコアノードを特定する。続いて、ユーザ特定部16は、算出結果テーブルを参照し、上記特定したセクタ、基地局、ルータ、及びコアノードを含むユーザを特定する。ユーザ特定部16は、特定したユーザ及び遅延発生している旨のメッセージを通知部17へ通知する共に、フィードバック要求をする。
また、ユーザ特定部16は、復旧通知要求を遅延発生箇所特定部15から受信すると、遅延発生度テーブルを参照し、不満度Yが閾値βを超えているセクタ、基地局、ルータ、及びコアノードの組(過去にフィードバック要求対象となった通信経路)を特定する。ユーザ特定部16は、算出結果テーブルを参照して、上記の特定したセクタ、基地局、ルータ、及びコアノードを含むユーザを特定する。このように、ユーザ特定部16は、遅延発生箇所特定部15により過去に特定された通信経路を使用するユーザを特定する。ユーザ特定部16は、特定したユーザ及び復旧した旨のメッセージを通知部17へ通知する共に、復旧通知要求をする。この場合、ユーザ特定部16は、遅延発生度テーブルの不満度Yを全て0に設定する。
通知部17は、ユーザ特定部16によって特定されたユーザへ通信遅延が発生している旨の情報を通知する部分である。具体的に、通知部17は、ユーザ特定部16から、ユーザを受信すると共にフィードバック要求を受けると、フィードバック装置20へ当該ユーザを通知すると共にフィードバック要求をする。
また、通知部17は、ユーザ特定部16から、ユーザを受信すると共に復旧通知要求を受けると、フィードバック装置20へ当該ユーザを通知すると共に復旧通知要求をする。
続いて、このように構成された通信監視装置10の処理について説明する。図10は、通信監視装置10の処理を示すフローチャートである。
前提として、通信情報取得部11は、定期的にルータ50からノード間制御信号パケット及びユーザ信号パケットを取得し、通信情報記憶部12へ記憶している。
表示時間算出部13は、判定タイミングになったことを検知する(ステップS1)。表示時間算出部13は、契約帯域の制限がないユーザからの通信のデータであり、且つ接続先が予め定められているWebサイトの通信情報を取得する(ステップS2)。続いて、表示時間算出部13は、ユーザ毎の表示時間を算出する(ステップS3)。
遅延発生箇所特定部15は、セクタ、基地局、ルータ、及びコアノードの組み合わせ毎に、上記Web表示時間のカテゴリ分けを行い、当該組み合わせ毎のカテゴリの割合を算出する(ステップS4)。
遅延発生箇所特定部15は、上記組み合わせ毎に一番割合の多いカテゴリを抽出する(ステップS5)。続いて、遅延発生箇所特定部15は、各組み合わせの一番割合の多いカテゴリの平均値を算出する。続いて、遅延発生箇所特定部15は、それぞれの組み合わせの中で、当該カテゴリの値が、平均値より著しく大きい値(平均値のα倍)となっている組み合わせがあるか否かを判断する(ステップS6)。
遅延発生箇所特定部15は、カテゴリの値が、平均値より著しく大きい値となっている組み合わせがある場合(ステップS6:YES)、当該組み合わせの不満度Yをインクリメントし(ステップS7)、ステップS10へ進む。
一方、遅延発生箇所特定部15は、カテゴリの値が、平均値より著しく大きい値となっている組み合わせが無いと判断した場合(ステップS6:NO)、ユーザ特定部16に対して、通信遅延が解消した旨を通知する必要があるユーザ(フィードバック済みのユーザ)の特定要求をする。ユーザ特定部16は、これに応じて、通信遅延が解消した旨を通知する必要のあるユーザを特定し、通知部17へ通知要求をする。通知部17は、通信遅延が解消した旨のメッセージ要求をフィードバック装置20へ送信する(ステップS8)。通知部17による上記のメッセージ要求が完了した後に、遅延発生箇所特定部15は、遅延発生度テーブルの不満度Yをクリア(不満度Yを0に設定する)し(ステップS9)、ステップS1へ進む。
ステップS10において、遅延発生箇所特定部15は、各組み合わせの不満度Yが閾値βを超過しているか否かを判断する(ステップS10)。閾値βを超過している場合(ステップS9:YES)、閾値βを超過している経路に閾値γ以上共通点があるか否かを判断する(ステップS11)。共通点が無い場合(ステップS11:NO)、ステップS1へ進む。
閾値γ以上共通点がある場合(ステップS11:YES)、ユーザ特定部16は、当該組み合わせに対応するユーザを特定し、通知部17は、ユーザ特定部16によって特定されたユーザをフィードバック装置20へ通知すると共に、通信事業者網側による原因で通信遅延が発生している旨を通知し(ステップS12)、ステップS1へ進む。
ステップS10において、閾値βを超過していない場合(ステップS10:NO)、ステップS1へ進む。このように、判定タイミング毎に、各ユーザの表示時間を算出し、通信経路毎に表示時間の集計をして、通信遅延発生箇所を利用しているユーザを特定する。
つぎに、本実施形態の通信監視装置10の作用効果について説明する。
本実施形態の通信監視装置10において、通信情報取得部11は、接続元のユーザから接続先までの通信経路を示す情報と、当該接続元のユーザと、当該接続先と、時刻とを含む通信情報を取得する。表示時間算出部13は、上記通信情報を用いて、通信経路毎の表示時間を算出する。遅延発生箇所特定部15は、表示時間算出部13により算出された表示時間を、通信経路単位で比較した結果に基づいて、通信遅延が発生している通信経路を特定する。ユーザ特定部16は、遅延発生箇所特定部15により特定された通信経路を使用する接続元のユーザを、通信情報取得部11により取得された通信情報を用いて特定する。
この場合、通信監視装置10は、通信経路単位で表示時間を算出し、その算出結果を通信経路単位で比較することにより、通信遅延が発生している通信経路を特定し、当該通信経路を使用する接続元のユーザを特定することができる。すなわち、通信状況に問題がある場合に、当該問題個所の影響を受けているユーザを特定することができる。
より具体的には、通信情報取得部11は、通信経路を示す情報として、接続元のユーザが接続するセクタの情報を含む通信情報を取得する。これにより、通信遅延が発生しているセクタに接続しているユーザを特定することができる。
また、通知部17は、ユーザ特定部16によって特定されたユーザへ通信遅延が発生している旨の情報を通知する。通信遅延の影響を受けるユーザに絞って、通信遅延が発生している旨を通知することができる。
また、通信監視装置10において、ユーザ特定部16は、遅延発生箇所特定部15により特定された通信経路を使用する接続元のユーザを特定した後に、遅延発生箇所特定部15により通信遅延が発生している通信経路の有無が再度判断された結果、通信遅延が発生している通信経路が特定されなかった場合、過去に特定された通信経路を使用する接続元のユーザを特定し、通知部17は、ユーザ特定部16によって特定されたユーザへ通信遅延が解消している旨の情報を通知する。
この場合、通信監視装置10は、通信遅延が発生している旨をユーザへ通知した後に、通信遅延が解消した場合、ユーザに通信遅延が解消したことを通知することができる。
また、通信監視装置10において、通信情報取得部11は、通信制限を示す情報が対応付けられている通信情報を取得し、表示時間算出部13は、通信制限を示す情報が対応付けられているユーザを、通信状況を示す情報の生成対象から除外する。
この場合、通信制限が課せられているユーザの表示時間を用いて通信遅延が発生している通信経路を特定してしまうことを回避するので、適切に通信遅延が発生している通信経路を特定することができる。
また、通信監視装置10において、表示時間算出部13は、所定のタイミング毎に表示時間を算出し、遅延発生箇所特定部15は、所定のタイミング毎に生成された各通信経路の通信状況を示す情報のそれぞれを、予め定めた基準値と比較した複数の比較結果を導出し、当該複数の比較結果を通信経路単位で集計し、集計した集計結果に基づいて全通信経路において相対的に通信遅延が発生している通信経路を特定する。
この場合、一度の比較結果だけでなく、複数回の比較結果に基づいて通信遅延が発生している通信経路を特定するので、より正確に通信遅延が発生している通信経路を特定することができる。
また、通信監視装置10は、ユーザ単位で通信事業者網要因による遅延状況を検知することができるので、どの装置要因で遅延事象が発生しているかを特定することが可能となる。
また、通信監視装置10は、時間的なトラヒック状況の変化やユーザの帯域制限、コンテンツプロバイダ要因を排除しているので、適切に遅延発生箇所を特定できる。
また、通信監視装置10は、ユーザ全体ではなく遅延が発生している箇所を利用しているユーザを把握し、そのユーザのみに遅延発生を通知するので、ユーザの満足度につながる。
通信監視装置10は、ルータ50から各種パケットを取得して、遅延発生箇所を特定しているので、通信ネットワークに大きな負荷をかけず、またネットワーク装置に新たな機能を追加することなく、表示時間の遅延発生を検知することができる。
通信監視装置10は、ユーザ単位に表示時間を算出しているので、ユーザ視点に基づいた遅延発生箇所を特定することになり、さらなるネットワークの安定化・高品質化が可能となる。
なお、上述の実施形態では、セクタ30も含めた通信経路毎にユーザの表示時間を集計する場合について述べたが、基地局40からコアノード60までの間の経路毎にユーザの表示時間を集計するようにしてもよい。
なお、上述の実施形態では、通知部17が、フィードバック装置20へ通信遅延が発生している旨の情報を通知する場合について述べたが、通信遅延が発生している箇所の経路を利用しているユーザを特定して、その特定した結果を記憶するようにしてもよい。
なお、上述の実施形態では、表示時間算出部13によって表示時間が算出される場合について述べたが、代わりに通信時間(例えば、ダウンロードが完了する時間)やスループットが算出されるようにしてもよい。
なお、上述の実施形態では、表示時間算出部13は、通信制限を示す情報が対応付けられているユーザを、通信状況を示す情報の生成対象から除外する場合について述べたが、除外せずに表示時間を算出するようにしてもよい。
なお、上述の実施形態では、遅延発生箇所特定部15は、基準値として、各通信経路で最も多いカテゴリにおける平均値を用いる場合について述べたが、予め固定で基準値を記憶しておくようにしてもよい。