(57)【要約】【課題】ＳＮＩに非対応のクライアントがアクセスしたサービスを推定すること。【解決手段】サービス推定装置は、それぞれが複数のサービスを提供する複数のサーバのいずれかに対する、前記サービスの識別情報を含むアクセスについて、前記各サーバの前記識別情報ごとのアクセス数を記録する学習部と、いずれかの前記サーバに対する、前記識別情報を含まないアクセスが観測されると、当該サーバに関して記録されている前記識別情報ごとのアクセス数に基づいて、当該アクセスの対象のサービスを推定する推定部と、を有する。【選択図】図３
2018037820.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが複数のサービスを提供する複数のサーバのいずれかに対する、前記サービスの識別情報を含むアクセスについて、前記各サーバの前記識別情報ごとのアクセス数を記録する学習部と、
いずれかの前記サーバに対する、前記識別情報を含まないアクセスが観測されると、当該サーバに関して記録されている前記識別情報ごとのアクセス数に基づいて、当該アクセスの対象のサービスを推定する推定部と、
を有することを特徴とするサービス推定装置。
【請求項２】
前記推定部は、いずれかの前記サーバに対する、前記識別情報を含むアクセスが観測されると、当該サーバに関して所定期間に記録された前記識別情報ごとのアクセス数に基づいて、当該アクセスの対象のドメイン名を推定する、
ことを特徴とする請求項１記載のサービス推定装置。
【請求項３】
前記学習部は、前記サービスの識別情報を含むアクセスについて、前記各サーバの前記識別情報ごとのクライアント数を記録し、
前記推定部は、前記識別情報を含まないアクセスが観測されると、当該サーバに関して記録されている前記識別情報ごとのクライアント数に基づいて、当該アクセスの対象のサービスを推定する、
ことを特徴とする請求項１又は２記載のサービス推定装置。
【請求項４】
複数のサービスを提供するサーバに対する、前記サービスの識別情報を含む所定期間のアクセスについて、前記識別情報ごとの通信量を計測する計測部と、
前記所定期間における前記サーバに対する、前記サービスの識別情報を含まないアクセスの通信量を、前記計測部によって計測された前記識別情報ごとの通信量の比に基づいて前記各識別情報に配分して、前記所定期間における前記サーバに対する全てのアクセスの前記識別情報ごとの通信量を推定する推定部と、
を有することを特徴とするサービス推定装置。
【請求項５】
複数のサービスを提供するサーバに対する、前記サービスの識別情報を含む所定期間の各アクセスの通信量に基づいて、前記識別情報ごとの前記通信量の確率分布を算出する算出部と、
前記所定期間における前記サーバに対する、前記サービスの識別情報を含まない或るアクセスの通信量と、前記識別情報ごとの前記確率分布とに基づいて、当該アクセスの対象のサービスを推定する推定部と、
を有することを特徴とするサービス推定装置。
【請求項６】
それぞれが複数のサービスを提供する複数のサーバのいずれかに対する、前記サービスの識別情報を含む所定期間の各アクセスの通信量に基づいて、前記識別情報ごとの前記通信量の確率分布を算出する算出部と、
前記所定期間における前記サーバに対する、前記サービスの識別情報を含まない或るアクセスの通信量と、前記識別情報ごとの前記確率分布とに基づいて、当該アクセスの対象のサービスを推定する推定部と、
を有することを特徴とするサービス推定装置。
【請求項７】
それぞれが複数のサービスを提供する複数のサーバのいずれかに対する、前記サービスの識別情報を含むアクセスについて、前記各サーバの前記識別情報ごとのアクセス数を記録する学習手順と、
いずれかの前記サーバに対する、前記識別情報を含まないアクセスが観測されると、当該サーバに関して記録されている前記識別情報ごとのアクセス数に基づいて、当該アクセスの対象のサービスを推定する推定手順と、
をコンピュータが実行することを特徴とするサービス推定方法。
【請求項８】
請求項１乃至６いずれか一項記載の各部としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス推定装置、サービス推定方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ＯＳやアプリケーションのアップデート等によるトラヒック変動の増加により、サービス毎のトラヒック分析に基づくネットワーク設計や通信制御の必要性が高まってきている。一方で、ＳＳＬ（Secure Socket Layer）やＴＬＳ（Transport Layer Security）の普及によって多くのＷｅｂサービスが暗号化され、ネットワークの経路上におけるサービスの識別が困難となってきている。
【０００３】
一方、ＤＰＩ（Deep Packet Inspection）が利用可能な場合、ＴＬＳの拡張仕様であるＳＮＩ（Server Name Indication）情報を解析することで、暗号化されたトラヒックのサービスを識別する方法が存在する。ＳＳＬ−ＳＮＩは、ＳＳＬの拡張仕様であり、クライアントからサーバに対して接続先ドメイン名（ＦＱＤＮ（Fully Qualified Domain Name））を伝える仕組みである。同一ＩＰアドレスで複数ドメインを運用しているサーバが、ドメインに応じた証明書を使い分けるためにＳＮＩが利用される。
【０００４】
ＳＮＩに対応したクライアントの場合、サーバがＳＮＩに対応しているか否かに関わらずＳＮＩにドメイン名が付加される。既存技術では、このＳＮＩのドメイン名に基づいてサービスを識別している。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Wazen M. Shbair, Thibault Cholez, Antoine Goichot and Isabelle Chrisment, ''Efficiently bypassing SNI-based HTTPS filtering,'' IFIP/IEEE International Symposium on Integrated Network Management 2015.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＳＮＩに非対応のクライアントの場合、ＳＮＩのドメイン名を利用することができず、サービスを識別することができない。
【０００７】
暗号化されたトラヒックにおいて、同一ＩＰアドレスで複数ドメインを運用しているサーバが存在する一方、ＳＮＩ対応／非対応のクライアントが、混在しているのが一般的である。従来技術では、ＳＮＩ非対応クライアントからのアクセスはサービスの識別ができず、分析データとして使用できないため、精度のよいサービス毎のトラヒック分析が行えなかった。
【０００８】
本発明は、上記の点に鑑みてなされたものであって、ＳＮＩに非対応のクライアントがアクセスしたサービスを推定することを目的とする。
【課題を解決するための手段】
【０００９】
そこで上記課題を解決するため、サービス推定装置は、それぞれが複数のサービスを提供する複数のサーバのいずれかに対する、前記サービスの識別情報を含むアクセスについて、前記各サーバの前記識別情報ごとのアクセス数を記録する学習部と、いずれかの前記サーバに対する、前記識別情報を含まないアクセスが観測されると、当該サーバに関して記録されている前記識別情報ごとのアクセス数に基づいて、当該アクセスの対象のサービスを推定する推定部と、を有する。
【発明の効果】
【００１０】
ＳＮＩに非対応のクライアントがアクセスしたサービスを推定することができる。
【図面の簡単な説明】
【００１１】
【図１】リアルタイム法のイメージとバッチ法のイメージとを示す図である。
【図２】第１の実施の形態におけるサービス推定装置のハードウェア構成例を示す図である。
【図３】第１の実施の形態におけるサービス推定装置の機能構成例を示す図である。
【図４】第１の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【図５】第２の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【図６】第３の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【図７】第４の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【図８】第５の実施の形態におけるサービス推定装置の機能構成例を示す図である。
【図９】第５の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【図１０】第６の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【図１１】第７の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。本実施の形態では、ＳＮＩ（Server Name Indication）対応クライアントからのサーバへのアクセスに基づきサービスへのアクセス状況を学習し、学習結果に基づきＳＮＩ非対応クライアントからのアクセスの対象のサービスを推定する。
【００１３】
具体的には、サーバに対する通信を逐次観測し、観測時点までに蓄積された統計情報に基づいてサービスを逐次推定するリアルタイム法と、一定期間において観測された通信を対象に、全通信の統計情報に基づいてサービスを一括推定するバッチ法の２つの手法について開示する。図１に、リアルタイム法のイメージとバッチ法のイメージとを示す。
【００１４】
リアルタイム法は通信の開始時にサービスを推定するため、即応性が必要なシステムに適している。バッチ法は通信の開始前のみならず終了後の統計量を利用可能であるため、より精度のよい推定が可能である。
【００１５】
第１〜第４の実施の形態はリアルタイム法に関し、第５〜第７の実施の形態はバッチ法に関する。
【００１６】
なお、本実施の形態において、サーバとは、ＩＰアドレスを識別情報とする単位（すなわち、ＩＰアドレスによって区別される単位）である。サービスとは、ＦＱＤＮ（Fully Qualified Domain Name）又はＦＱＤＮからホスト名を除いたドメイン名を識別情報とする単位（すなわち、ＦＱＤＮ又はＦＱＤＮからホスト名を除いたドメイン名によって区別される単位）である。
【００１７】
図２は、第１の実施の形態におけるサービス推定装置のハードウェア構成例を示す図である。図２のサービス推定装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１８】
サービス推定装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１９】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってサービス推定装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００２０】
図３は、第１の実施の形態におけるサービス推定装置の機能構成例を示す図である。図３において、サービス推定装置１０は、ＳＮＩ判定部１１、サービス学習部１２、及びサービス推定部１３等を有する。これら各部は、サービス推定装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。サービス推定装置１０は、また、統計情報記憶部１４を利用する。統計情報記憶部１４は、例えば、補助記憶装置１０２、又はサービス推定装置１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００２１】
ＳＮＩ判定部１１は、観測されたＨＴＴＰＳセッション（クライアントからサーバへのアクセス）について、ＳＮＩが含まれているか否かを判定する。サービス学習部１２は、ＳＮＩ情報が含まれていないアクセスについて、サーバ別及びサービス別のアクセス回数を統計情報記憶部１４に記録する。サービス推定部１３は、ＳＮＩ情報が含まれていないアクセスについて、サービスを推定する。
【００２２】
なお、第１の実施の形態において、サービス推定装置１０は、サーバとクライアントとのネットワークのパケットを観測可能な位置であれば、どのような位置に配置されてもよい。
【００２３】
以下、サービス推定装置１０が実行する処理手順について説明する。図４は、第１の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【００２４】
ＳＮＩ判定部１１は、ネットワークにおいて、クライアントｃｉからサーバｓｊへのアクセスを観測（検出）すると（Ｓ１１０でＹｅｓ）、アクセス内容にＳＮＩ情報が含まれているか否かを判定する（Ｓ１２０）。当該アクセスは、例えば、ＳＳＬ（Secure Socket Layer）のシーケンスにおける「ＣｌｉｅｎｔＨｅｌｌｏ」であってもよい。
【００２５】
アクセス内容にＳＮＩ情報が含まれている場合（Ｓ１２０でＹｅｓ）、統計情報記憶部１４に記憶されている統計情報を更新することで、サービスを学習する。統計情報には、サーバごとのサービスの集合と、各サーバのサービスごとのセッション数（ＳＳＬアクセス数）とが含まれる。ここで、アクセス内容に含まれていたＳＮＩ情報が示すサービスが、ｄｋであり、サーバｓｊのサービスの集合がＤｓｊであり、サーバｓｊのサービスｄｋに対するセッション数がＮｓｊ（ｄｋ）であるとする。すなわち、Ｄｓｊは、サービスの集合が記録されるデータであり、Ｎｓｊ（ｄｋ）は、サーバｓｊのサービスｄｋに対するセッション数が記録されるデータである。なお、本実施の形態において、「セッション」とは、ＳＳＬセッションをいう。
【００２６】
まず、サービス学習部１２は、Ｄｓｊにｄｋを記録済みであるか否かを判定する（Ｓ１３０）。Ｄｓｊにｄｋが記録されていない場合（Ｓ１３０でＹｅｓ）、サービス学習部１２は、Ｄｓｊにｄｋを記録する（Ｓ１４０）。続いて、サービス学習部１２は、Ｎｓｊ（ｄｋ）に１を記録する（Ｓ１５０）。一方、Ｄｓｊにｄｋが記録されている場合（Ｓ１３０でＮｏ）、サービス学習部１２は、Ｎｓｊ（ｄｋ）に１を加算した結果を、Ｎｓｊ（ｄｋ）に記録する（Ｓ１６０）。
【００２７】
一方、アクセス内容にＳＮＩ情報が含まれていない場合（Ｓ１２０でＮｏ）、サービス推定部１３は、以下の確率Ｐ（ｄ'）に従って、サービスｄ'を選択し、選択結果をサービスの推定結果とする（Ｓ１７０）。
【００２８】
【数１】
2018037820.tif 000003
ここで、確率Ｐ（ｄ'）に従ってサービスｄ'を選択するとは、サービスｄ'が確率Ｐ（ｄ'）の確率で選択されるようにサービスｄ'を選択するということである。例えば、０〜１の範囲の乱数について、当該範囲を各ｄ'の確率Ｐ（ｄ'）に応じた割合で分割してもよい。サービス推定部１３は、当該乱数を発生させて、発生した値が属する範囲に対応するサービスｄ'を選択してもよい。
【００２９】
上述したように、第１の実施の形態によれば、ＳＮＩ対応クライアントからのアクセスに基づきサービスを学習し、学習結果に基づきＳＮＩ非対応クライアントからのアクセスの対象のサービスを推定することができる。その結果、例えば、ＳＮＩ非対応クライアントのアクセスのデータを用いて、精度の高いサービス毎のトラヒック分析を行うことを可能とすることができる。
【００３０】
次に、第２の実施の形態について説明する。第２の実施の形態では第１の実施の形態と異なる点について説明する。第２の実施の形態において特に言及されない点については、第１の実施の形態と同様でもよい。
【００３１】
第１の実施の形態では、学習期間の特段の制限は設けられていない。しかし、例えば、ＣＤＮ（Content Delivery Network）の場合、サーバ側の制御によって配信サービスが時間変化するため、古い学習結果は誤推定の要因となる可能性が有る。第２の実施の形態では、斯かる問題を解決する。
【００３２】
図５は、第２の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。図５中、図４と同一ステップには同一ステップ番号を付し、その説明は省略する。
【００３３】
図５では、ステップＳ１５０、Ｓ１６０、Ｓ１７０の代わりに、ステップＳ１５０ａ、Ｓ１６０ａ、Ｓ１７０ａが実行される。また、ステップＳ１６０ａに続いてステップＳ１６１が実行される。なお、図５において、Ｎｓｊ（ｄｋ）は、サーバｓｊのサービスｄｋへのアクセスが観測（検出）された時刻の集合である。また、ステップＳ１１０におけるアクセスの観測時刻（最後のアクセスの観測時刻）は、時刻ｔであるとする。
【００３４】
ステップＳ１５０ａにおいて、サービス学習部１２は、Ｎｓｊ（ｄｋ）に対して｛ｔ｝を記録する（Ｓ１５０ａ）。すなわち、ステップＳ１１０におけるアクセスの観測時刻がＮｓｊ（ｄｋ）に追加される。
【００３５】
ステップＳ１６０ａにおいて、サービス学習部１２は、以下の演算を行う。
【００３６】
【数２】
2018037820.tif 000004
但し、δは、学習履歴の保持期間である。すなわち、ステップＳ１６０ａでは、時刻ｔから遡って保持期間δ内の時刻がＮｓｊ（ｄｋ）から抽出されて、Ｎｓｊ（ｄｋ）に代入される。
【００３７】
続いて、サービス学習部１２は、Ｎｓｊ（ｄｋ）と｛ｔ｝との論理和をＮｓｊ（ｄｋ）に記録する（Ｓ１６１）。
【００３８】
ステップＳ１７０ａにおいて、サービス推定部１３は、以下の確率Ｐ（ｄ'）に従って、サービスｄ'を選択し、選択結果をサービスの推定結果とする。
【００３９】
【数３】
2018037820.tif 000005
但し、｜Ｘ｜は、Ｘの要素数を表し、以下においても同様である。すなわち、｜Ｎｓｊ（ｄ）｜は、サーバｓｊのサービスｄに対するアクセス数を示す。
【００４０】
式（３）では、時刻ｔのアクセス先であるサーバｓｊのサービスｄｋごとに、時刻ｔから遡って保持期間δ内の時刻がＮｓｊ（ｄｋ）に代入される。式（４）では、サーバｓｊのサービスｄ'ごとに、当該サービスｄ'の保持期間δ内のアクセス数について、サーバｓｊの全てのサービスの保持期間δ内のアクセス数の総和に対する割合が確率Ｐ（ｄ'）として算出される。
【００４１】
すなわち、時刻ｔから保持期間δ内の学習結果に基づいて、確率Ｐ（ｄ'）が計算される。なお、確率Ｐ（ｄ'）に従って、サービスｄ'を選択することの意味は、第１の実施の形態と同様である。
【００４２】
上述したように、第２の実施の形態によれば、古い学習結果に基づく誤推定の可能性を低下させることができる。
【００４３】
次に、第３の実施の形態について説明する。第３の実施の形態では第１の実施の形態と異なる点について説明する。第３の実施の形態において特に言及されない点については、第１の実施の形態と同様でもよい。
【００４４】
第１の実施の形態では特定クライアントから膨大な量のアクセスがあった場合に確率分布が偏ってしまう。そこで、第３の実施の形態では、確率分布の偏りを回避する例について説明する。
【００４５】
図６は、第３の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。図６中、図４と同一ステップには同一ステップ番号を付し、その説明は省略する。
【００４６】
図６では、ステップＳ１５０に続いて、ステップＳ１５１が実行される。また、ステップＳ１６０の前に、ステップＳ１５５及びＳ１５６が実行される。
【００４７】
ステップＳ１５１において、サービス学習部１２は、Ｃｓｊ，ｄｋにｃｉを記録する。ここで、Ｃｓｊ，ｄｋは、サーバｓｊのサービスｄｋにアクセスしたクライアントの集合である。ｃｉは、ステップＳ１０１において観測されたアクセスのアクセス元のクライアントの識別情報である。
【００４８】
ステップＳ１５５において、サービス学習部１２は、Ｃｓｊ，ｄｋにｃｉが含まれているか否かを判定する。すなわち、クライアントｃｉが、サーバｓｊのサービスｄｋに既にアクセスしていたか否かが判定される。クライアントｃｉが、サーバｓｊのサービスｄｋにアクセスしていなかった場合（Ｓ１５５でＹｅｓ）、サービス学習部１２は、Ｃｓｊ，ｄｋにｃｉを追加する（Ｓ１５６）。続いて、サービス学習部１２は、Ｎｓｊ（ｄｋ）に１を加算した結果を、Ｎｓｊ（ｄｋ）に記録する（Ｓ１６０）。
【００４９】
一方、クライアントｃｉが、サーバｓｊのサービスｄｋにアクセスしていた場合（Ｓ１５５でＮｏ）、ステップＳ１５６及びＳ１６０は実行されない。すなわち、第３の実施の形態において、同一のクライアントによる同一のサーバ及び同一のサービスに対するアクセスは、重複してカウントされない。したがって、Ｎｓｊ（ｄｋ）は、セッション数ではなく、クライアント数を意味する。その結果、アクセスの確率分布の偏りを回避することができる。
【００５０】
なお、ステップＳ１７０の内容は、第１の実施の形態と同様でよい。
【００５１】
次に、第４の実施の形態について説明する。第４の実施の形態では第３の実施の形態と異なる点について説明する。第４の実施の形態において特に言及されない点については、第３の実施の形態と同様でもよい。
【００５２】
第４の実施の形態では、第３の実施の形態に対して第２の実施の形態が組み合わされる。
【００５３】
図７は、第４の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。図７中、図６と同一ステップには同一ステップ番号を付し、その説明は省略する。
【００５４】
図７では、ステップＳ１２０でＹｅｓの場合に、サービス学習部１２は、Ｔ（ｃｉ）に対して時刻ｔを記録する（Ｓ１２１）。Ｔ（ｃｉ）は、クライアントｃｉによる最後のアクセスが観測された時刻である。すなわち、第４の実施の形態では、アクセスが観測されたクライアントごとに、当該クライアントが最後にいずれかのサーバにアクセスした時刻が統計情報記憶部１４のＴ（ｃｉ）に記録される。
【００５５】
なお、図７では、ステップＳ１５０及びＳ１６０は実行されなくてよい。
【００５６】
また、図７では、ステップＳ１７０がステップＳ１７０ｂに置き換わる。ステップＳ１７０ｂにおいて、サービス推定部１３は、以下の確率Ｐ（ｄ'）に従って、サービスｄ'を選択し、選択結果をサービスの推定結果とする。
【００５７】
【数４】
2018037820.tif 000006
すなわち、式（５）では、サーバｓｊのサービスｄｋにアクセスしたクライアントの集合であるＣｓｊ，ｄｋのうち、Ｔ（ｃｉ）が時刻ｔから遡って保持期間δ内のｃｉが、Ｎｓｊ（ｄｋ）に代入される。すなわち、最後のアクセス時刻が保持期間δ内のｃｉがＮｓｊ（ｄｋ）に代入される。Ｎｓｊ（ｄｋ）は、サーバｓｊの全てのサービスｄｋについて生成される。
【００５８】
また、式（６）では、サーバｓｊのサービスｄ'ごとに、当該サービスｄ'の保持期間δ内のクライアント数について、サーバｓｊの全てのサービスの保持期間δ内のクライアント数の総和に対する割合が確率Ｐ（ｄ'）として算出される。なお、確率Ｐ（ｄ'）に従って、サービスｄ'を選択することの意味は、第１の実施の形態と同様である。
【００５９】
なお、第１〜第４の実施の形態では、確率的にサービスｄ'が選択される。但し、以下の式に基づいて、決定的にサービスｄ'が選択されてもよい。
【００６０】
【数５】
2018037820.tif 000007
すなわち、式（７）は、第１及び第３の実施の形態のように、Ｎｓｊ（ｄ'）がアクセス数又はクライアント数である場合に、最大のＮｓｊ（ｄ'）のサービスｄ'が選択されることを示す。また、式（８）は、第２及び第４の実施の形態のように、Ｎｓｊ（ｄ'）がアクセス時刻の集合である場合に、要素数が最大のＮｓｊ（ｄ'）のサービスｄ'が選択されることを示す。
【００６１】
次に、第５の実施の形態について説明する。第５の実施の形態では第１の実施の形態と異なる点について説明する。第５の実施の形態において特に言及されない点については、第１の実施の形態と同様でもよい。なお、第５の実施の形態以降は、バッチ法に関する実施形態である。
【００６２】
図８は、第５の実施の形態におけるサービス推定装置の機能構成例を示す図である。図８中、図３と同一又は対応する部分には同一符号を付している。
【００６３】
図８において、サービス推定装置１０は、サービス学習部１２の代わりに統計化処理部１５を有する。統計化処理部１５は、ＨＴＴＰＳトラヒック情報に基づいて、所定期間（以下、「観測期間Ｔ」という。）におけるサービスへのアクセスのうち、ＳＮＩ対応クライアントからのアクセスに関する統計情報を計測又は算出する。計測又は算出された統計情報は、統計情報記憶部１４に記憶される。具体的には、統計化処理部１５は、観測期間Ｔにおいて、ＳＮＩ対応クライアントからのアクセスの通信量をサービス別に計測する。本実施の形態において、セッション数及びトラヒック量が通信量の一例である。
【００６４】
サービス推定部１３は、ＨＴＴＰＳトラヒック情報と、統計情報記憶部１４に記憶された情報とに基づいて、観測期間ＴにおけるＳＮＩ非対応クライアントからのアクセスをも含む通信量を、サービス別に推定する。
【００６５】
なお、ＨＴＴＰＳトラヒック情報には、観測期間Ｔにおける、いずれかのクライアントによる、いずれかのサーバのいずれかのサービスへのアクセス（セッション）ごとに、クライアントの識別情報、ＳＮＩ情報、サーバの識別情報、及びトラヒック量を示す情報（以下、「アクセスログ」という。）が含まれている。但し、ＳＮＩ情報は、ＳＮＩ情報が含まれているアクセスについてのみアクセスログに含まれている。
【００６６】
図９は、第５の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。図９の処理手順は、観測期間Ｔの後に、観測期間Ｔにおいて観測されたＨＴＴＰＳトラヒック情報について実行される。
【００６７】
ステップＳ２０１において、統計化処理部１５は、ＨＴＴＰＳトラヒック情報においてＳＮＩが含まれているアクセスログに基づいて、観測期間Ｔにおいていずれかのサーバｓｊにアクセスした全てのＳＮＩ対応クライアントｃｓｊ＝｛ｃ１，・・・，ｃＩ｝を特定する。
【００６８】
続いて、統計化処理部１５は、ＨＴＴＰＳトラヒック情報に基づいて、観測期間Ｔにおいてアクセスされたサーバｓｊごとに、当該サーバｓｊが提供する全サービスＤｓｊ＝｛ｄ１，・・・，ｄＫ｝を特定する（Ｓ２０２）。
【００６９】
続いて、統計化処理部１５は、ＳＮＩ対応クライアントｃｉごとに、サービスｄｋごとのセッション数ｎ（ｃｉ，ｄｋ）を、ＨＴＴＰＳトラヒック情報に基づいて集計する（Ｓ２０３）。続いて、統計化処理部１５は、ＳＮＩ対応クライアントｃｉごとに、サービスｄｋごとのトラヒック量ｖ（ｃｉ，ｄｋ）を、ＨＴＴＰＳトラヒック情報に基づいて集計する（Ｓ２０４）。
【００７０】
続いて、統計化処理部１５は、各サーバｓｊのサービスｄｋごとの総セッション数Ｎｓｊ（ｄｋ）を、以下の演算により算出する（Ｓ２０５）。
【００７１】
【数６】
2018037820.tif 000008
すなわち、ステップＳ２０３において集計されたｎ（ｃｉ，ｄｋ）について、サーバｓｊのサービスｄｋごとの総和が算出される。
【００７２】
続いて、統計化処理部１５は、各サーバｓｊのサービスｄｋごとの総トラヒック量Ｖｓｊ（ｄｋ）を、以下の演算により算出する（Ｓ２０６）。
【００７３】
【数７】
2018037820.tif 000009
すなわち、ステップＳ２０４において集計されたｖ（ｃｉ，ｄｋ）について、サーバｓｊのサービスｄｋごとの総和が算出される。
【００７４】
なお、ステップＳ２０５及びＳ２０６における算出結果は、統計情報記憶部１４に記憶される。
【００７５】
続いて、サービス推定部１３は、ＨＴＴＰＳトラヒック情報のうち、ＳＮＩ情報が含まれていないアクセスログに基づいて、全ＳＮＩ非対応クライアントによるサーバｓｊごとのセッション数Ｎ'ｓｊを集計する（Ｓ２０７）。
【００７６】
続いて、サービス推定部１３は、ＨＴＴＰＳトラヒック情報のうち、ＳＮＩ情報が含まれていないアクセスログに基づいて、全ＳＮＩ非対応クライアントによるサーバｓｊごとのトラヒック量Ｖ'ｓｊを集計する（Ｓ２０８）。
【００７７】
続いて、サービス推定部１３は、以下の演算を行って、ＳＮＩ対応クライアント及びＳＮＩ非対応クライアントを問わない全てのクライアントと、各サーバｓｊの各サービスｄｋとの総セッション数Ｎｓｊ（ｄｋ）を算出する（Ｓ２０９）。
【００７８】
【数８】
2018037820.tif 000010
すなわち、ステップＳ２０６の算出結果に対して、Ｎｓｊ（ｄｋ）の確率にＮ'ｓｊを乗じた値を加算した結果が、Ｎｓｊ（ｄｋ）の推定値として算出される。換言すれば、ステップＳ２０５において算出された各Ｎｓｊ（ｄｋ）の比に基づいて、各Ｎｓｊ（ｄｋ）に対してＮ'ｓｊが配分される。
【００７９】
続いて、サービス推定部１３は、以下の演算を行って、ＳＮＩ対応クライアント及びＳＮＩ非対応クライアントを問わない全てのクライアントと、各サーバｓｊの各サービスｄｋとのトラヒック量Ｖｓｊ（ｄｋ）を算出する（Ｓ２１０）。
【００８０】
【数９】
2018037820.tif 000011
すなわち、ステップＳ２０７の算出結果に対して、Ｖｓｊ（ｄｋ）の確率にＮ'ｓｊを乗じた値を加算した結果が、Ｖｓｊ（ｄｋ）の推定値として算出される。換言すれば、ステップＳ２０６において算出された各Ｖｓｊ（ｄｋ）の比に基づいて、各Ｖｓｊ（ｄｋ）に対してＶ'ｓｊが配分される。
【００８１】
上述したように、第５の実施の形態によれば、過去の一定期間における観測結果に基づいて、ＳＮＩ非対応のクライアントによるアクセスも含む、各サービスへのアクセスの統計情報を得ることができる。
【００８２】
次に、第６の実施の形態について説明する。第６の実施の形態では第５の実施の形態と異なる点について説明する。第６の実施の形態において特に言及されない点については、第５の実施の形態と同様でもよい。
【００８３】
一般的に、サービスの内容が異なる場合、セッションあたりのトラヒック量（以下、「セッション長」という。）の分布も異なる。例えば、動画サービスの場合はセッション長が相対的に長くなり、Ｗｅｂページなどのテキストではセッション長は相対的に短くなる。第６の実施の形態では、このような事情を考慮することで推定精度を向上させる。
【００８４】
図１０は、第６の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【００８５】
ステップＳ３０１において、統計化処理部１５は、ＨＴＴＰＳトラヒック情報に基づいて、観測期間Ｔにおいてアクセスされたサーバｓｊごとに、当該サーバｓｊが提供する全サービスＤｓｊ＝｛ｄ１，・・・，ｄＫ｝を特定する。
【００８６】
続いて、統計化処理部１５は、サーバｓｊごとに以下の演算を行うことにより、各サーバｓｊの各サービスｄｋのセッション長の確率分布であるセッション長分布Ｌｓｊ（ｄｋ）を算出する。
【００８７】
【数１０】
2018037820.tif 000012
但し、ｎｄｋ（ｌ）は、サービスｄｋについてセッション長ｌのセッションが観測された回数である。ｎｄｋ（ｌ）は、ＨＴＴＰＳトラヒック情報から集計可能である。また、ｌｃは、０〜∞の任意のセッション長である。ここで、便宜上セッション長の最大値を∞と表現しているが、実際には過去に観測された最大のセッション長を記録しておき、その値とすれば良い。すなわち、ステップＳ３０２では、サービスｄｋについて、ｎｄｋ（ｌ）の総和が求められ、０〜∞の各セッション長ｌｃの観測回数ｎｄｋ（ｌｃ）について、当該総和に対する割合の分布が算出される。
【００８８】
続いて、サービス推定部１３は、ＨＴＴＰＳトラヒック情報に含まれているアクセスログのうち、ＳＮＩ情報が含まれていないアクセスログに基づいて、観測期間Ｔにおける、ＳＮＩ非対応クライアントからのサーバｓｊへの各アクセス（セッション）を特定し、それぞれのアクセスのセッション長ｌｃに基づいて、以下の確率Ｐ（ｄ'）に従って、各アクセスのサービスｄ'を選択する（Ｓ３０３）。選択結果が、サービスの推定結果とされる。
【００８９】
【数１１】
2018037820.tif 000013
なお、確率Ｐ（ｄ'）に従って、サービスｄ'を選択することの意味は、第１の実施の形態と同様である。
【００９０】
なお、第６の実施の形態において、セッション長は、予め定められた区間ごとの代表値によって表現されてもよい。
【００９１】
次に、第７の実施の形態について説明する。第７の実施の形態では第６の実施の形態と異なる点について説明する。第７の実施の形態において特に言及されない点については、第６の実施の形態と同様でもよい。
【００９２】
例えば、負荷分散等のために、複数のサーバによって同一のサービスが提供される場合がある。そして、サービスの内容が同一である場合、サーバが異なってもセッションあたりのトラヒック量（セッション長）の分布は同一となる又は類似したものとなる可能性が高い。第７の実施の形態では、このような事情を考慮して推定精度の向上を図る。
【００９３】
図１１は、第７の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【００９４】
ステップＳ４０１において、統計化処理部１５は、ＨＴＴＰＳトラヒック情報に基づいて、観測期間Ｔにおいてアクセスされた全サービスＤ＝｛ｄ１，・・・，ｄＫ｝を特定する。ここでは、サーバの別は考慮されない。
【００９５】
続いて、統計化処理部１５は、以下の演算を行うことにより、各サービスｄｋのセッション長分布Ｌ（ｄｋ）を算出する（Ｓ４０２）。
【００９６】
【数１２】
2018037820.tif 000014
但し、ｎｄｋ（ｌ）は、サービスｄｋについてセッション長ｌのセッションが観測された回数である。また、ｌｃは、０〜∞の任意のセッション長である。すなわち、ステップＳ４０２では、サービスｄｋについて、ｎｄｋ（ｌ）の総和が求められ、０〜∞の各セッション長ｌｃの観測回数ｎｄｋ（ｌｃ）について、当該総和に対する割合の分布が算出される。
【００９７】
続いて、サービス推定部１３は、ＨＴＴＰＳトラヒック情報に含まれているアクセスログのうち、ＳＮＩ情報が含まれていないアクセスログに基づいて、観測期間Ｔにおける、ＳＮＩ非対応クライアントからのサーバｓｊへの各アクセス（セッション）を特定し、それぞれのアクセスのセッション長ｌｃに基づいて、以下の確率Ｐ（ｄ'）に従って、各アクセスのサービスｄ'を選択する（Ｓ４０３）。選択結果が、サービスの推定結果とされる。
【００９８】
【数１３】
2018037820.tif 000015
なお、確率Ｐ（ｄ'）に従って、サービスｄ'を選択することの意味は、第１の実施の形態と同様である。
【００９９】
なお、第７の実施の形態において、セッション長は、予め定められた区間ごとの代表値によって表現されてもよい。
【０１００】
なお、第６及び第７の実施の形態では、確率的にサービスｄ'が選択される。但し、ステップＳ３０３又はＳ４０３では、以下の式に基づいて、決定的にサービスｄ'が選択（推定）されてもよい。
【０１０１】
【数１４】
2018037820.tif 000016
すなわち、サービス推定部１３は、ＨＴＴＰＳトラヒック情報に含まれているアクセスログのうち、ＳＮＩ情報が含まれていないアクセスログに基づいて、観測期間Ｔにおける、ＳＮＩ非対応クライアントからのサーバｓｊへの各アクセス（セッション）を特定し、それぞれのアクセスのセッション長ｌｃについて、観測回数が最大であるサービスｄ'をアクセス先として推定する。
【０１０２】
なお、上記各実施の形態において、サービス学習部１２は、学習部の一例である。サービス推定部１３は、推定部の一例である。統計化処理部１５は、計測部及び算出部の一例である。
【０１０３】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１０４】
１０          サービス推定装置
１１          ＳＮＩ判定部
１２          サービス学習部
１３          サービス推定部
１４          統計情報記憶部
１５          統計化処理部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
Ｂ            バス
【図１】
2018037820.tif 000017
【図２】
2018037820.tif 000018
【図３】
2018037820.tif 000019
【図４】
2018037820.tif 000020
【図５】
2018037820.tif 000021
【図６】
2018037820.tif 000022
【図７】
2018037820.tif 000023
【図８】
2018037820.tif 000024
【図９】
2018037820.tif 000025
【図１０】
2018037820.tif 000026
【図１１】
2018037820.tif 000027