(57)【特許請求の範囲】
【請求項１】
第1の装置から第2の装置に至る通信経路を前記第2の装置を識別する装置識別情報に基づいて切り替える通信制御装置であって，
前記装置識別情報を記憶するテーブル記憶部と，
通信が行われた前記第2の装置との通信に関する通信情報を記憶する記憶部と，
前記記憶部に記憶された前記通信情報と前記テーブル記憶部に記憶可能な前記装置識別情報の情報量とに基づいて，通信を開始する前記第2の装置の前記装置識別情報を前記テーブル記憶部に記憶するかを判定する制御部とを備えた
ことを特徴とする通信制御装置。
【請求項２】
請求項1において，
前記制御部は，前記第2の装置に対応する通信相手を識別する通信相手識別情報と前記通信相手との通信の通信開始時を特定する情報とを含む前記通信情報を前記記憶部に記憶し，前記通信相手の各々の通信情報の中で現在時刻に対応する所定の時間帯に属する前記通信開始時を含む通信情報と前記テーブル記憶部に記憶可能な前記装置識別情報の情報量とに基づいて，通信を開始する前記第2の装置の前記装置識別情報を前記テーブル記憶部に記憶するかを判定する
ことを特徴とする通信制御装置。
【請求項３】
請求項2において，
前記制御部は，前記通信相手との通信時間と通信回数とをさらに含む前記通信情報を前記記憶部に記憶し，前記通信相手の各々の通信情報の中で現在時刻に対応する所定の時間帯に属する前記通信開始時を含む前記通信情報に含まれる前記通信相手識別情報により特定される特定の前記通信相手との通信時間と通信回数とに基づき，前記特定の通信相手と，通信を開始する通信相手とに対する順位付けを行い，前記通信を開始する通信相手の順位値と前記テーブル記憶部に記憶可能な前記装置識別情報の情報量とに基づいて，通信を開始する前記第2の装置の前記装置識別情報を前記テーブル記憶部に記憶するかを判定する
ことを特徴とする通信制御装置。
【請求項４】
請求項3において，
前記制御部は，前記順位付けにおいて，前記特定の通信相手の各々の通信情報の中で所定の時間以上の前記通信時間を含む通信情報に含まれる通信相手については，第1の順位付け基準に基づき順位付けを行い，前記特定の通信相手の各々の通信情報の中で所定の時間未満の前記通信時間を含む通信情報に含まれる通信相手については，前記第1の順位付け基準とは異なる第2の順位付け基準に基づき順位付けを行う
ことを特徴とする通信制御装置。
【請求項５】
請求項4において，
前記第1の順位付け基準は，前記特定の通信相手の各々の通信情報の中で所定の時間以上の前記通信時間を含む通信情報に含まれる通信相手については，通信時間が長い順に順位付ける基準であり，前記第2の順位付け基準は，前記特定の通信相手の各々の通信情報の中で所定の時間未満の前記通信時間を含む通信情報に含まれる通信相手については，前記第1の順位付け基準に基づく順位付けに後続して，通信回数が多い順に順位付ける基準である
ことを特徴とする通信制御装置。
【請求項６】
請求項5において，
1つの前記装置識別情報は，1つの前記第2の装置の識別子であり，前記テーブル記憶部に記憶可能な前記装置識別情報の情報量は，前記テーブル記憶部に記憶可能な前記第2の装置の識別子の数であって，
前記制御部は，前記通信を開始する第2の装置に対応する通信相手の順位値が，前記テーブル記憶部に記憶可能な前記第2の装置の識別子の数以下の場合に，前記通信を開始する第2の装置の識別子を前記テーブル記憶部に記憶する
ことを特徴とする通信制御装置。
【請求項７】
請求項2において，
1つの前記装置識別情報は，1つの前記第2の装置の識別子であり，前記テーブル記憶部に記憶可能な前記装置識別情報の情報量は，前記テーブル記憶部に記憶可能な前記第2の装置の識別子の数であって，
前記制御部は，前記特定の通信相手の数と前記通信を開始する通信相手の数との和が，前記テーブル記憶部に記憶可能な前記第2の装置の識別子の数以下の場合に，前記通信を開始する第2の装置の識別子を前記テーブル記憶部に記憶する
ことを特徴とする通信制御装置。
【請求項８】
請求項1において，
前記制御部は，前記第2の装置に対応する通信相手を識別する通信相手識別情報と前記通信相手との通信の通信開始時を特定する情報と前記通信相手との通信時間と通信回数とを含む前記通信情報を前記記憶部に記憶し，前記通信相手の各々の通信情報の中で現在時刻に対応する所定の時間帯に属する前記通信開始時を含む通信情報の各々を前記通信相手識別情報に対応して定められたカテゴリ識別子に基づき各カテゴリに区分けし，前記各カテゴリにおける，前記カテゴリに属する通信相手の通信時間と当該通信相手の通信回数とに基づき，各カテゴリに順位付けを行い，前記各カテゴリの順位値と前記各カテゴリに属する通信相手の総数と前記テーブル記憶部に記憶可能な前記装置識別情報の情報量とに基づいて，通信を開始する前記第2の装置の前記装置識別情報を前記テーブル記憶部に記憶するかを判定する
ことを特徴とする通信制御装置。
【請求項９】
請求項8において，
前記制御部は，前記順位付けにおいて，前記各カテゴリの中で，所定の時間以上の前記通信時間を含むカテゴリについては，第1の順位付け基準に基づき順位付けを行い，前記各カテゴリの中で，所定の時間未満の前記通信時間を含むカテゴリについては，前記第1の順位付け基準とは異なる第2の順位付け基準に基づき順位付けを行う
ことを特徴とする通信制御装置。
【請求項１０】
請求項9において，
前記第1の順位付け基準は，前記各カテゴリの中で，所定の時間以上の前記通信時間を含むカテゴリについては，前記通信時間が長い順に順位付ける基準であり，前記第2の順位付け基準は，前記各カテゴリの中で，所定の時間未満の前記通信時間を含むカテゴリについては，前記第1の順位付け基準に基づく順位付けに後続して，前記通信回数が多い順に順位付ける基準である
ことを特徴とする通信制御装置。
【請求項１１】
請求項10において，
1つの前記装置識別情報は，1つの前記第2の装置の識別子であり，前記テーブル記憶部に記憶可能な前記装置識別情報の情報量は，前記テーブル記憶部に記憶可能な前記第2の装置の識別子の数であって，
前記制御部は，前記各カテゴリに属する通信相手の総数が，前記テーブル記憶部に記憶可能な前記第2の装置の識別子の数以下の場合に，前記通信を開始する第2の装置の識別子を前記記憶部に記憶する
ことを特徴とする通信制御装置。 
【請求項１２】
請求項10において，
1つの前記装置識別情報は，1つの前記第2の装置の識別子であり，前記テーブル記憶部に記憶可能な前記装置識別情報の情報量は，前記テーブル記憶部に記憶可能な前記第2の装置の識別子の数であって，
前記制御部は，前記各カテゴリにおいて，通信を開始する通信相手が属するカテゴリの順位よりも上の順位のカテゴリに属する通信相手の総数が，前記テーブル記憶部に記憶可能な前記第2の装置の識別子の数未満の場合に，前記通信を開始する第2の装置の識別子を前記テーブル記憶部に記憶する
ことを特徴とする通信制御装置。 
【請求項１３】
第1の装置から第2の装置に至る通信経路を前記第2の装置を識別する装置識別情報に基づいて切り替える通信制御装置が実行する通信制御方法であって，
前記通信制御装置は，
通信が行われた前記第2の装置との通信に関する通信情報と，前記装置識別情報を記憶するテーブル記憶部に記憶可能な前記装置識別情報の情報量とに基づいて，通信を開始する前記第2の装置の前記装置識別情報を前記テーブル記憶部に記憶するかを判定する
ことを特徴とする通信制御方法。
【請求項１４】
第1の装置から第2の装置に至る通信経路を前記第2の装置を識別する装置識別情報に基づいて切り替える通信制御装置と，前記通信制御装置と通信しデータ処理を行う処理装置とを備えた通信システムであって，
前記通信制御装置は，
前記装置識別情報を記憶するテーブル記憶部と，
通信が行われた前記第2の装置との通信に関する通信情報と前記テーブル記憶部に記憶可能な前記装置識別情報の情報量とを処理装置に送信する制御部とを備え，
前記処理装置は，
前記通信制御装置から送信された通信情報と情報量とに基づいて，通信を開始する前記第2の装置の前記装置識別情報を前記テーブル記憶部に記憶するかを判定する判定結果を前記通信制御装置に送信する制御部とを備え，
前記通信制御装置の制御部は，前記判定結果に基づいて，通信を開始する前記第2の装置の前記装置識別情報を前記テーブル記憶部に記憶する
ことを特徴とする通信システム。
【請求項１５】
第1の装置から第2の装置に至る通信経路を前記第2の装置を識別する装置識別情報に基づいて切り替える処理をコンピュータに実行させるプログラムあって，
通信が行われた前記第2の装置との通信に関する通信情報と，前記装置識別情報を記憶するテーブル記憶部に記憶可能な前記装置識別情報の情報量とに基づいて，通信を開始する前記第2の装置の前記装置識別情報を前記テーブル記憶部に記憶するかを判定する処理をコンピュータに実行させる
ことを特徴とするプログラム。 
【請求項１６】
第1の装置から第2の装置に至る通信経路を前記第2の装置を識別する識別情報に基づいて切り替える通信制御装置であって，
前記識別情報を記憶するテーブル記憶部と，
通信が行われた前記第2の装置との通信に関する通信情報と前記テーブル記憶部に記憶可能な前記識別情報の情報量とを処理装置に送信し，前記処理装置から送信された前記識別情報を前記テーブル記憶部に記憶するかを判定する判定結果に基づいて，前記識別情報を前記テーブル記憶部に記憶する
ことを特徴とする通信制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，通信制御装置，通信制御方法，通信システム，プログラム，記録媒体に関する。
【背景技術】
【０００２】
信頼できる接続先サイトを記憶するホワイトリストに基づき，接続先のサイトを切り替える装置が提案されている。【０００３】
かかる装置は，クライアント端末から接続要求を受信する。そして，かかる装置は，受信した接続要求が示す接続先サイトがホワイトリストに記憶されている場合，接続先サイトに接続する。一方，かかる装置は，受信した接続要求が示す接続先サイトがホワイトリストに記憶されていない場合，例えばクライアント端末からの代替サイトへの接続要求を受けて，この代替サイトに接続する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2010−182081号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
他にも，信頼できる通信相手を識別する識別情報を記憶するホワイトリストに基づき，クライアント端末から受信した通信パケットの通信経路を切り替える装置がある。かかる装置は，クライアント端末から通信開始要求を受信すると，クライアント端末の通信相手を識別する情報がホワイトリストに記憶されている場合，この通信相手に対応する装置を識別する情報(例えば，IPアドレス)をルーティングテーブルに記憶する。一方，かかる装置は，クライアント端末の通信相手を識別する情報がホワイトリストに記憶されていない場合，この通信相手に対応する装置を識別する情報をルーティングテーブルに記憶しない。【０００６】
以後，かかる装置は，クライアント端末から通信パケットを受信すると，この通信パケットに含まれる宛先IPアドレスとルーティングテーブルとを照合し，宛先IPアドレスがルーティングテーブルに記憶されているか確認する(以下，照合処理および確認処理と適宜記す)。【０００７】
そして，かかる装置は，宛先IPアドレスがルーティングテーブルに記憶されている場合，第1の通信経路に，クライアント端末から受信した通信パケットを転送する。ここで，第1の通信経路は，例えば，VPN(Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ)を含まない通信経路である。【０００８】
一方，かかる装置は，宛先IPアドレスがルーティングテーブルに記憶されていない場合，第2の通信経路に，クライアント端末から受信した通信パケットを転送する。ここで，第2の通信経路は，例えばVPNを含む通信経路である。なお，この通信パケットは，前記通信経路を経由して，前記通信相手に対応する装置に転送される。【０００９】
さて，クライアント端末が，前記ホワイトリストに記憶されている多数の通信相手と同時に通信する場合を想定する。この場合，多数の通信相手に対応する装置のIPアドレスがルーティングテーブルに記憶されている。かかる装置は，多数の通信相手と同時に通信する場合，通信パケット毎に前記した照合処理および確認処理を同時に実行しなければならず，照合処理および確認処理の処理負荷が増す。【００１０】
その結果，かかる装置における通信パケットの転送処理が遅延し，クライアント端末から通信相手への通信パケットの到達が遅延する。その結果，かかる装置が，クライアントに提供する通信サービスの品質が低下する。【００１１】
一側面では，本発明は，通信経路を切り換える装置における処理負荷の増大を抑制することを目的とする。
【課題を解決するための手段】
【００１２】
一態様の通信制御装置は，第1の装置から第2の装置に至る通信経路を前記第2の装置を識別する装置識別情報に基づいて切り替える通信制御装置であって，前記装置識別情報を記憶するテーブル記憶部と，通信が行われた前記第2の装置との通信に関する通信情報を記憶する記憶部と，前記記憶部に記憶された前記通信情報と前記テーブル記憶部に記憶可能な前記装置識別情報の情報量とに基づいて，通信を開始する前記第2の装置の前記装置識別情報を前記テーブル記憶部に記憶するかを判定する制御部とを備える。
【発明の効果】
【００１３】
一態様によれば，通信経路を切り換える装置における処理負荷の増大を抑制できる。
【図面の簡単な説明】
【００１４】
【図１】図1は，本実施の形態における，通信システムを説明する図である。
【図２】図2は，図1の通信制御装置100のハードウェアブロック図の一例である。
【図３】図3は，図2のホワイトリストの一例を示す図である。
【図４】図4は，図2のルーティングテーブルの一例を示す図である。
【図５】図5は，図2の通信制御装置100が実行するソフトウェアモジュールのブロック図の一例である。
【図６】図6は，通信実績の記憶処理の流れを説明するフロー図の一例である。
【図７】図7は，通信実績の集計を説明するフロー図の一例である。
【図８】図8は，集計レコードを記憶する集計テーブルの一例を示す図である。
【図９】図9は，通信実績を記憶するテーブルの一例を示す図である。
【図１０】図10は，図8の集計テーブルTT1が更新された状態を示す図である。
【図１１】図11は，図7で説明した集計テーブルの更新処理により更新された集計テーブルの一例を示す図である。
【図１２】図12は，通信制御装置100が実行する通信網の決定処理の概略を説明するフロー図の一例である。
【図１３】図13は，通信制御装置100が実行する通信網の決定処理の詳細を説明するフロー図の一例である。
【図１４】図14は，再集計レコードの一例を示す図である。
【図１５】図15は，通信内容のカテゴリ毎の通信時間，通信回数，傾向を説明する図である。
【図１６】図16は，判断部111が，評価関数に基づき図14の5つの再集計レコードに順位付けを実行した結果を示すテーブルの一例である。
【図１７】図17は，第2の実施の形態におけるホワイトリストの一例を示す図である。
【図１８】図18は，図11の符号V1，V2，V3に示した，通信相手単位の集計レコードを，この通信相手に設定したカテゴリ単位の集計レコードに変更した状態を示す図である。
【図１９】図19は，カテゴリ単位の再集計レコードを示す図である。
【図２０】図20は，判断部111が，評価関数に基づき図19の3つのカテゴリ単位の再集計レコードに順位付けを実行した結果を示すテーブルの一例である。
【図２１】図21は，本実施の形態における，通信システムを説明する他の図である。
【図２２】図22は，通信制御装置100'および処理装置300のハードウェアブロック図の一例である。
【図２３】図23は，図22の通信制御装置100'および処理装置300が実行するソフトウェアモジュールのブロック図の一例である。
【発明を実施するための形態】
【００１５】
[第1の実施の形態]
(通信システム)
図1は，本実施の形態における，通信システムを説明する図である。なお，以下の図の説明において,同じ要素には同一の符号を適宜付し,一度した説明を省略する。
【００１６】
一点鎖線より上側に記載した，ユーザ側のシステムSYSは，情報処理装置PCと，通信制御装置100とを備える。情報処理装置PCは，パーソナルコンピュータなどのクライアント端末であり，通信制御装置100に接続する。情報処理装置PCは，他にも，例えば，タブレット型のコンピュータや，スマートフォン(Ｓｍａｒｔ  Ｐｈｏｎｅ)であってもよい。
【００１７】
通信制御装置100は，情報処理装置PCと，第1の通信経路R1および第2の通信経路R2との間に設けられ，通信パケットの転送処理を行う。なお，通信制御装置100は，パーソナルコンピュータや，タブレット型のコンピュータや，スマートフォンであってもよい。
【００１８】
通信制御装置100は，第1の通信経路R1および第2の通信経路R2に接続する。通信制御装置100は，例えば,第2の通信経路R2との間で，第1の接続点(接続ノードとも言う)と，第2の接続点との間を接続する閉じられた仮想的な直結通信経路として機能する仮想通信経路(以下，トンネルと適宜記す)を開設する。図1において，第1の接続点が，通信制御装置100であり，第2の接続点が第2の通信経路R2に設けられた通信装置(図示しない)である。図1において，この第1，第2の接続点間のトンネルを符号L2で模式的に示す。
【００１９】
通信制御装置100は，情報処理装置PCから受信した通信パケットを，第1の通信経路R1，インターネットINを介して，第1のサーバSVR1〜第n(nは2以上の整数)のサーバSVRnに転送(送信とも呼ぶ)する。また，通信制御装置100は，情報処理装置PCから受信した通信パケットを，トンネルL2，第2の通信経路R2，インターネットINを介して，第1のサーバSVR1〜第nのサーバSVRnに転送する。通信制御装置100は，第1のサーバSVR1〜第nのサーバSVRnから受信した通信パケットを情報処理装置PCに転送する。
【００２０】
以下の説明において，第1の通信経路R1を介する，通信制御装置100とインターネットINとの間の通信網(通信経路とも呼ぶ)を物理網と適宜記す。また，トンネルL2，第2の通信経路R2を介する，通信制御装置100とインターネットINとの間の通信網をVPN網と適宜記す。
【００２１】
通信制御装置100は，前記通信パケットの送受信において，通信プロトコルとして，例えばTCP/IP(Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ)を利用する。
【００２２】
第1の通信経路R1は，例えば，データ通信などの各種通信サービスを提供する通信事業者が設置した公衆回線を含む通信経路である。
【００２３】
第2の通信経路R2は，例えば，インターネット標準技術に基づく企業内ネットワークである。第2の通信経路R2の通信装置(図示しない)は，プロキシ機能や，ファイヤーウォール機能を含み，通信制御装置100とインターネットINとの間の通信処理を実行する。
【００２４】
インターネットINは，第1の通信経路R1と，第2の通信経路R2と，第1のサーバSVR1〜第nのサーバSVRnとに接続する。第1のサーバSVR1〜第nのサーバSVRnは，利用者からの情報の検索要求に応答して，その検索結果を利用者に返答する検索サーバや，WEB(Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ)サーバや，クラウドサービスを提供するサーバや，DNS(Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ)サーバである。
【００２５】
通信制御装置100は，第1の装置から第2の装置に至る通信経路を第2の装置を識別する装置識別情報に基づいて切り替える装置の一例である。ここで，第1の装置は，例えば情報処理装置PCである。第2の装置は，例えば第1のサーバSVR1〜第nのサーバSVRnである。第2の装置を識別する装置識別情報は，例えばIPアドレスである。
【００２６】
なお，第1の装置は，通信元の装置とも呼ばれ，第2の装置は，通信先の装置とも呼ばれる。また，第1の装置から第2の装置に至る通信経路としては，例えば，前記した通信網である物理網や，前記した通信網であるVPN網がある。
【００２７】
(転送装置)
図2は，図1の通信制御装置100のハードウェアブロック図の一例である。通信制御装置100は，例えばバスBを介して相互に接続された，CPU(Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ)11と，メモリ12と，記憶装置13と，通信インターフェイス14と，記録媒体読み取り装置15とを備える。
【００２８】
CPU11は，通信制御装置100の全体を制御するコンピュータ(制御部)である。メモリ12は，CPU11が実行する各種情報処理において処理されたデータや各種プログラムを一時的に記憶する。また，メモリ12は，ルーティングテーブルや，順位テーブルを記憶する。ルーティングテーブルについては図4で説明し，順位テーブルについては図16で説明する。
【００２９】
記憶装置13は，例えば，ハードディスクドライブ(ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ)などの磁気記憶装置や，不揮発性のメモリ(Ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ)である。また，記憶装置13は，ホワイトリスト，通信実績テーブル，集計テーブルを記憶する。なお，ホワイトリストについては図3で説明し，通信実績テーブルについては図9で説明し，集計テーブルについては図8で説明する。他にも，記憶装置13は，図5で説明するプログラムを記憶する。
【００３０】
通信インターフェイス14は，情報処理装置PCや通信相手と通信処理を行うインターフェイス機能を提供する装置である。ここで，通信相手とは，情報処理装置PC，通信制御装置100側から見た通信相手であり，図1の例では，第1のサーバSVR1〜第nのサーバSVRnである。
【００３１】
通信制御装置100が例えば有線通信機能を含む場合には，この通信インターフェイス14は，いわゆるネットワークインターフェイスカード(ＮＩＣ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ)である。また，通信制御装置100が無線通信機能を含む場合には，この通信インターフェイス14は，例えば無線LAN子機である。
【００３２】
記録媒体読み取り装置15は，記録媒体M1に記録されたデータを読み取る装置である。記録媒体M1は，例えば，CD-ROM(Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ)，DVD(Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ)，USB(Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ)メモリなどの可搬型記録媒体である。
【００３３】
図3は，図2のホワイトリストの一例を示す図である。
【００３４】
ホワイトリストWL1は，通信相手欄を有する。通信相手欄は，信頼できる通信相手を識別する通信相手識別情報を記憶する。ホワイトリストWL1は，通信相手欄に，通信相手FQDN1〜通信相手FQDN13を記憶する。
【００３５】
通信相手を識別する通信相手識別情報は，例えば，完全修飾ドメイン名(ＦＱＤＮ：Ｆｕｌｌｙ  Ｑｕａｌｉｆｉｅｄ  Ｄｏｍａｉｎ  Ｎａｍｅ)である。前記信頼できる通信相手としては，例えば官公庁のWEBサーバなど，一般的に信頼できると評価されている組織が提供するサーバである。
【００３６】
図4は，図2で説明したルーティングテーブルの一例を示す図である。ルーティングテーブルTBLは，通信相手欄と通信網欄とを有する。通信相手欄は，通信相手に対応する装置(例えば，第2の装置)を識別する装置識別情報を記憶する。装置識別情報は，例えばIPアドレスである。通信網欄は，通信制御装置100がこの通信相手に情報処理装置PCから受信した通信パケットを転送する場合の通信経路を特定する情報として"物理網"を記憶する。
【００３７】
ここで，ルーティングテーブルTBLにおいて，"通信相手"，"通信網"が記載されている最上行以外の行数を，総エントリ数と呼ぶ。この総エントリ数は，例えば所定の数である。ルーティングテーブルTBLの場合，最上行以外の行数は5行であるので，総エントリ数は5である。ルーティングテーブルTBLにおいて，"IP_13"と"物理網"とが同一行に記憶されている。なお，IP_13は，通信相手であるFQDN13に対応する装置のIPアドレスを示している。
【００３８】
図5は，図2の通信制御装置100が実行するソフトウェアモジュールのブロック図の一例である。全体制御部101，判断部111，実行部112，集計データ抽出部102，ホワイトリスト管理部103，DNS処理部104，通信監視部105，集計部106，IPスタック部107は，いわゆるプログラムであり，このプログラムは，例えば，記憶装置13に記憶されている。なお，このプログラムを記録媒体M1に記憶してもよい。
【００３９】
TBL記憶部108は，図4のルーティングテーブルTBLを記憶する。TBL記憶部108は，図1で説明した第2の装置を識別する装置識別情報を記憶する記憶部の一例である。TBL記憶部108は，テーブル記憶部，第1の記憶部とも呼ばれる。
【００４０】
記憶部109は，ホワイトリスト，ルーティングテーブルTBL以外のテーブルを記憶する。ルーティングテーブルTBL以外のテーブルとは，順位テーブル，通信実績テーブル，集計テーブルである。記憶部109は，第2の記憶部とも呼ばれる。なお，TBL記憶部108と記憶部109とを1つの記憶部としてもよい。
【００４１】
図2のCPU11は，起動時に，これらのプログラムを記憶装置13から読み出して，メモリ12に展開することにより，これらのプログラムをソフトウェアモジュールとして機能させる。
【００４２】
全体制御部101は，通信制御装置100が実行する各種処理を制御する。例えば，全体制御部101は，第2の通信経路R2の通信装置(図示しない)との間で，トンネルL2(図1参照)を開設し，VPNを構築する。
【００４３】
他にも，全体制御部101は，図4のルーティングテーブルTBLの総エントリ数を，図2のCPU11の処理能力，メモリ12の容量から動的に決定してもよい。例えば，CPU11の処理能力が高性能(例えば800MHz)およびメモリ12の容量が大容量(例えば512Mバイト)の場合，総エントリ数を大きくする(例えば60)。また，例えば，CPU11の処理能力が低性能(例えば256MHz)，または，メモリ12の容量が低容量(64Mバイト)の場合，総エントリ数を小さくする(例えば10)。そして，前記例示以外の場合，総エントリ数を中程度とする(例えば20)。
【００４４】
判断部111は，通信制御装置100から受信した通信パケットの通信経路を，物理網またはVPN網の何れかにするか決定する。実行部112は，図4のルーティングテーブルTBLの更新処理を実行する。集計データ抽出部102は，通信実績を含む集計データ(集計レコードとも呼ぶ)を集計テーブルから抽出する。
【００４５】
ホワイトリスト管理部103は，ホワイトリストWL1を管理する。ホワイトリスト管理部103は，図示しない入力装置(例えば，キーボードやタッチパネル)から入力されるホワイトリスト変更コマンドに応答して，ホワイトリストWL1に信頼できる通信相手を識別する通信相手識別情報を記憶し，または，ホワイトリストWL1からこの情報を削除する。
【００４６】
DNS処理部104は，情報処理装置PCとDNSサーバ(例えば，図1の第1のサーバSVR1)との間で，DNS要求やDNS応答を転送するDNSリレー機能を実行する。通信監視部105は，IPスタック部107が転送する通信パケットを監視する。
【００４７】
集計部106は，例えば所定時間毎に，図9の通信実績テーブルTR1が記憶する通信実績を集計する。
【００４８】
IPスタック部107は，TCP/IP通信を実行する際に必要な各種処理を実行する。IPスタック部107は，通信パケットに宛先IPアドレスとして含まれているIPアドレスと図4のルーティングテーブルTBLとを照合して，各通信パケットのルーティングを行う。また，IPスタック部107は，物理網やVPN網を介して受信した通信パケットを情報処理装置PCに転送する。
【００４９】
(本実施の形態の通信制御装置100の概略説明)
図1〜図5を参照して，本実施の形態の通信制御装置100の概略説明を行う。なお，通信制御装置100の全体制御部101は既に，第2の通信経路R2の通信装置(図示しない)との間で，トンネルL2(図1参照)を開設し，VPNを構築しているとする。
【００５０】
ここで，情報処理装置PCの利用者は，第2の通信経路R2の所有者である企業の従業員であり，この利用者は，情報処理装置PCを業務で使用しているとする。この場合，この企業のシステム管理者は，セキュリティ，ネットワーク管理の観点から，この利用者が，どのサーバにアクセスするのか監視することがある。そこで，通信制御装置100は，情報処理装置PCがサーバとの通信を実行する際には，情報処理装置PCから受信した通信パケットを第2の通信経路R2(VPN網)の通信装置(図示しない)に転送する。通信装置は，通信制御装置100の利用者の通信内容を監視する。
【００５１】
しかし，通信装置が，情報処理装置PCの通信内容を全て監視すると，通信装置の処理負荷が増し，通信装置の通信処理が遅延する。
【００５２】
そこで，通信制御装置100は，情報処理装置PCの通信相手が，ホワイトリストWL1に記憶された通信相手の場合には，第2の通信経路R2の通信装置を介さずに，第1の通信経路R1，インターネットINを介して，通信相手と通信する。
【００５３】
具体的には，通信制御装置100は，通信相手を識別する通信相手識別情報がホワイトリストWL1に記憶されている場合，この通信相手に対応する装置のIPアドレスを図4のルーティングテーブルTBLに記憶する。一方，通信制御装置100は，通信相手を識別する識別情報がホワイトリストWL1に記憶されていない場合，この通信相手に対応する装置のIPアドレスを図4のルーティングテーブルTBLに記憶しない。
【００５４】
さて，ルーティングテーブルTBLに記憶するIPアドレスの数を増やせば，第2の通信経路R2の通信装置の処理負荷が減るが，通信制御装置100の処理負荷が増す。一方，ルーティングテーブルTBLに記憶するIPアドレスの数を減らせば，通信制御装置100の処理負荷が減るが，第2の通信経路R2の通信装置の処理負荷が増す。
【００５５】
そのため，本実施の形態の通信制御装置100は，さらに，通信制御装置100の処理負荷と第2の通信経路R2の通信装置の処理負荷とをバランス化して，クラインアントに提供する通信サービスの品質の低下を抑止し，通信装置の処理負荷の増大を抑止する。
【００５６】
そこで，通信制御装置100は，通信が行われた第2の装置(例えば，第1のサーバSVR1等)との通信に関する通信情報とメモリ12(TBL記憶部108)に記憶可能な第2の装置を識別する装置識別情報の情報量とに基づいて，装置識別情報をTBL記憶部108に記憶するかを判定する。第2の装置との通信に関する通信情報は，通信履歴，通信実績とも呼ばれる。
【００５７】
次に，前記した通信情報(以下，通信実績と適宜記す)の記憶処理について説明する。
【００５８】
(通信実績の記憶)
図6は，通信実績の記憶処理の流れを説明するフロー図の一例である。
【００５９】
ステップS1：通信監視部105は，情報処理装置PCが実行するデータ通信の開始を検出する。
【００６０】
具体的には，情報処理装置PCと通信相手(例えば，第1のサーバSVR1)との間で，3ウェイ・ハンドシェイクが実行された場合，通信監視部105は，この3ウェイ・ハンドシェイクの実行を検出することにより，情報処理装置PCが実行するデータ通信開始を検出する。以下，通信監視部105がステップS1で検出したデータ通信をデータ通信Xと記す。
【００６１】
ステップS2：通信監視部105は，データ通信Xが，通信実績の記憶対象か判定する。具体的には，通信監視部105は，データ通信Xに関連する通信パケットの宛先IPアドレス(以下，宛先IPアドレスと適宜記す)が，図12のステップS30で説明するIPアドレス(以下，登録済みIPアドレスと適宜記す)と一致するか判定する。
【００６２】
通信監視部105は，宛先IPアドレスと登録済みIPアドレスとが一致する場合(ステップS2/YES)，データ通信Xが，通信実績の記憶対象と判定する。そして，通信監視部105は，ステップS3に移る。一方，通信監視部105は，宛先IPアドレスと登録済みIPアドレスとが一致しない場合(ステップS2/NO)，データ通信Xが，通信実績の記憶対象でないと判定する。そして，通信監視部105は，処理を終了する。
【００６３】
ステップS3：通信監視部105は，現在時刻，通信制御装置100の現在場所を特定する情報を取得する。この現在時刻が，図9で説明するデータ通信Xの開始時刻である。
【００６４】
具体的には，通信監視部105は，通信制御装置100の計時機能(図示しない)から現在時刻を取得する。また，通信監視部105は，通信インターフェイス14が無線LANでアクセスポイントと無線通信している場合には，このアクセスポイントの識別子(ＳＳＩＤ：Ｓｅｒｖｉｃｅ  Ｓｅｔ  Ｉｄｅｎｔｉｆｉｅｒ)を，現在場所を特定する情報とする。他にも，通信制御装置100がGPS(Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ)により経度，緯度を取得する機能を含む場合には，通信監視部105は，この機能を利用して取得した経度，緯度などの位置情報を，現在場所を特定する情報とする。
【００６５】
ステップS4：通信監視部105は，データ通信Xの終了を待機する。具体的には，通信監視部105は，データ通信Xが終了すると，その終了時刻を取得する。
【００６６】
ステップS5：通信監視部105は，通信実績テーブルに通信実績を記憶する。なお，通信実績テーブルの一例については，図9で説明する。通信実績テーブルに記憶される1単位の通信実績を通信実績レコードと適宜記す。
【００６７】
ステップS6：通信監視部105は，データ通信Xの終了による図4のルーティングテーブルTBLおよび残エントリ数の更新処理を行う。なお，更新処理の詳細については後記する。
【００６８】
(通信実績の集計)
図7〜図10を参照して，通信実績の集計を説明する。図7は，通信実績の集計を説明するフロー図の一例である。集計部106は，所定時間毎に，通信実績テーブルが記憶する通信実績を集計する。前記所定時間は，例えば15分である。
【００６９】
ステップS11：集計部106は，通信実績テーブルが記憶する通信実績レコードの中で，未集計の通信実績レコードがあるか判定する。具体的には，集計部106は，通信実績テーブルが記憶する通信実績レコードの中で，未集計フラグが設定されている通信実績レコードがあるか判定する。
【００７０】
通信実績テーブルが記憶する通信実績レコードの中で，未集計の通信実績レコードがない場合(ステップS11/NO)，集計部106は，通信実績の集計を終了する。通信実績テーブルが記憶する通信実績レコードの中で，未集計の通信実績レコードがある場合(ステップS11/YES)，ステップS12に移る。
【００７１】
ステップS12：集計部106は，未集計の通信実績レコードを分類する。詳しくは，通信実績テーブルが記憶する通信実績レコードの中で，未集計フラグが設定されている通信実績レコードを読み出す。以下，読み出した通信実績レコードを読み出し済み通信実績レコードと適宜記す。そして，集計部106は，読み出し済み通信実績レコードに設定されている未集計フラグを集計済みフラグに変更する。次いで，通信相手，時間帯を示す区分，通信制御装置100の現在場所を基準にして，通信実績レコードを分類する。なお，ステップS12の具体的処理については後記する。
【００７２】
ステップS13：集計部106は，分類した通信実績レコードを集計して集計レコードに変換し，変換後の集計レコードを集計テーブルに記憶し，集計テーブルを更新する。なお，ステップS13の具体的処理については後記する。
【００７３】
(通信実績レコードの分類)
図7のステップS12における通信実績レコードの分類について具体的に説明する。通信実績レコードは，データ通信Xの開始時刻，通信制御装置100の現在場所を特定する情報，データ通信Xの通信相手を識別する通信相手識別情報，データ通信Xの終了時刻を含む。以下，通信相手を識別する通信相手識別情報を，単に，通信相手と適宜省略することがある。
【００７４】
以下，通信相手を識別する通信相手識別情報を識別子としてFQDNm(小文字のｍは1以上の整数)で記す。そして，現在場所については，SSIDm(小文字のｍは1以上の整数)で記す。また，以下の説明において，時刻を表示する場合，"H:M:S"の形式で示す。この"H"は時間を示し，"M"は分を示し，"S"は秒を示す。また，時刻と共に年月日も記憶されているとする(年月日については示さない)。
【００７５】
まず，集計部106は，通信相手と，時間帯を示す区分と，通信制御装置100の現在場所とを基準(以下，分類基準と適宜記す)にして，読み出し済み通信実績レコードを分類する。前記した区分は，例えば1時間を15分毎に分けた時間帯であり，9:00-9:15,
9:15-9:30…である。
【００７６】
読み出し済み通信実績レコードの分類において，集計部106は，開始時刻が同一区分(同一時間帯とも呼ぶ)に属し，同じ通信相手および同じ現在場所を含む読み出し済み通信実績レコードを特定する。また，集計部106は，特定した読み出し済み通信実績レコードの中の最長の通信時間，および，特定した読み出し済み通信実績レコードの中の最短の通信時間を特定する。そして，集計部106は，特定した読み出し済み通信実績レコードを，集計レコードに変換する。
【００７７】
例えば，読み出し済み通信実績レコードX1，X2に含まれる場所が"SSID1"，通信相手が"FQDN1"であるとする。そして，読み出し済み通信実績レコードX1の開始時刻が"09:15:00"，終了時刻が"09:55:00"であり，読み出し済み通信実績レコードX2の開始時刻が"09:20:00"，終了時刻が"10:05:00"であるとする。
【００７８】
この場合，読み出し済み通信実績レコードX1，X2の開始時刻が同一区分(09:15-09:30の時間帯)に含まれる。さらに，読み出し済み通信実績レコードX1，X2の場所は同じ"SSID1"であり，通信相手は同じ"FQDN1"である。そこで，集計部106は，読み出し済み通信実績レコードX1，X2を，開始時刻が同一区分に属し，同じ通信相手および同じ現在場所を含む読み出し済み通信実績レコードとして特定する。そして，集計部106は，読み出し済み通信実績レコードX1，X2を集計レコードに変換する。
【００７９】
集計レコードに含まれる項目(フィールドとも呼ぶ)は，第1の項目〜第4の項目である。集計レコードは，例えば，
{第1の項目，第2の項目，第3の項目，第4の項目}
として記述される。
【００８０】
第1の項目は，分類後の読み出し済み通信実績レコードにおける通信相手である。第2の項目は，特定した読み出し済み通信実績レコードの中の最短の通信時間(換言すれば，前記通信相手との通信の最短通信時間)である。第3の項目は，特定した読み出し済み通信実績レコードの中の最長の通信時間(換言すれば，前記通信相手との通信の最長通信時間)である。ここで，通信時間とは，1つの特定した読み出し済み通信実績レコードに含まれる終了時刻と開始時刻との差である。第4の項目は，通信制御装置100が，前記した1日の同一区分の時間帯において，第1の項目の通信相手と通信を開始しその通信を終了する通信単位(1セッションと呼ぶ)の最大回数である。
【００８１】
集計部106は，集計レコードを，分類基準である区分と現在場所とに対応させて集計テーブルに記憶する。
【００８２】
図8は，集計レコードを記憶する集計テーブルの一例を示す図である。
【００８３】
集計テーブルTT1において，図面左からの第1列目は，分類基準である時間帯を示す区分欄である。図面左から2列目以降は，分類基準である通信制御装置100の現在場所を示す場所欄である。区分欄と場所欄とが交わる部分(セルとも呼ぶ)には，通信実績の集計結果として，集計レコードが記憶される。
【００８４】
読み出し済み通信実績レコードX1，X2を例示して，集計テーブルTT1における集計レコードの記憶処理を説明する。以下，分類後の読み出し済み通信実績レコードX1，X2に対応する集計レコードを集計レコードY1と記す。
【００８５】
この場合，集計レコードY1の第1の項目は，通信相手である"FQDN1"である。また，通信実績レコードX1に含まれる通信相手FQDN1との通信時間は，終了時刻"09:55:00"と開始時刻"09:15:00"との差から"0:40:00"である。通信実績レコードX2に含まれる通信相手FQDN1との通信時間は，終了時刻"10:05:00"と開始時刻"09:20:00"との差から"0:45:00"である。すなわち，特定した読み出し済み通信実績レコードの中の最短の通信時間は"0:40:00"であり，特定した読み出し済み通信実績レコードの中の最長の通信時間は"0:45:00"である。従って，集計レコードY1の第2の項目は"0:40:00"，集計レコードY1の第3の項目は"0:45:00"である。また，通信制御装置100が，同一区分の時間帯9:15-9:30において，通信相手FQDN1と通信を開始しその通信を終了する通信単位の最大回数は2である。従って，第4の項目は，2回である。
【００８６】
以上より，集計レコードY1は，
{FQDN1,0:40:0,0:45:0,2回}である。
【００８７】
集計部106は，図8の集計テーブルTT1に示すように，集計レコードY1に対応する通信実績レコードX1，X2の分類基準である区分欄"09:15"-"09:30"と，場所1(SSID1)とが交わるセルに，集計レコードY1を記憶する。
【００８８】
なお，集計部106は，図8の集計テーブルTT1には，前記セルに，集計レコードとして{FQDN2,0:0:02,0:0:2,1回}(以下，集計レコードY2と適宜記す)を記憶している。
【００８９】
以上に説明した集計テーブルに対する集計レコードの記憶処理が終了すると，図7のステップS13が終了する。
【００９０】
以下の説明において，集計部106は，図8の集計テーブルTT1を2013年10月24日の13:00:00に作成したとする。そして，通信監視部105は，図6の各ステップを実行して，2013年10月24日の次の日の10月25日の12:00:00に，図9の通信実績テーブルTR1を作成したとする。そして，2013年10月25日の13:00に，図7のステップS11を開始するとする。
【００９１】
図9は，通信実績を記憶するテーブルの一例を示す図である。図6で説明した処理により，通信監視部105は，図9の通信実績テーブルTR1を作成し，記憶部109に記憶する。図9において，通信実績テーブルTR1の一行に相当する通信実績が通信実績レコードである。なお，通信監視部105は，図9の通信実績テーブルTR1に通信実績レコードを新たに記憶すると，この新たに記憶した通信実績レコードに対応して未集計フラグを記憶部109に記憶する。
【００９２】
通信実績テーブルTR1は，開始時刻欄と，場所欄と，通信相手欄と，終了時刻欄とを含む。
【００９３】
通信監視部105は，データ通信Xの開始時刻を開始時刻欄に，通信制御装置100の現在場所を特定する情報を場所欄に，データ通信Xの通信相手を識別する通信相手識別情報を通信相手欄に，データ通信Xの終了時刻を終了時刻欄に記憶する。
【００９４】
図9では，通信監視部105は，例えば通信実績テーブルTR1の一行目において，データ通信Xの開始時刻"09:15:00"を開始時刻欄に，通信制御装置100の現在場所"SSID1"を場所欄に，"FQDN1"を通信相手欄に，データ通信Xの終了時刻"10:15:00"を終了時刻欄に記憶する。
【００９５】
図9の通信実績テーブルTR1において，1行目から4行目における通信実績レコードは，未集計の通信実績レコードである。
【００９６】
1行目から4行目における通信実績レコードに含まれる場所は，全て，"SSID1"であり，この，通信実績レコードに含まれる開始時刻は，全て，図8の集計テーブルTT１における区分"09:15"-"09:30"に含まれる。
【００９７】
また，1行目の通信実績レコードに含まれる通信相手は"FQDN1"である。前記通信相手"FQDN1"との通信時間は，1行目の通信実績レコードに含まれる終了時刻"10:15:00"と開始時刻"09:15:00"との差から"01:00:00"である。そして，前記通信相手"FQDN1"を含む通信実績レコードは，1レコードである。
【００９８】
そこで，集計部106は，図8で説明した集計レコードY1を更新して，集計レコードY1'とする。
【００９９】
図10は，図8の集計テーブルTT1が更新された状態を示す図である。集計レコードY1'は，図10の集計テーブルTT2で示す，
{FQDN1,0:40:0,1:00:0,2回}である。
【０１００】
集計部106は，前記更新において，更新前の集計レコードY1の第4の項目"00:45:00"を"01:00:00"に更新している。これは，図9の通信実績テーブルTR1の1行目に示したように，通信相手FQDN1との通信時間は1時間(10:15:00-09:15:00)だからである。
【０１０１】
また，図9の通信実績テーブルTR1の2,3行目の通信実績レコードに含まれる通信相手は"FQDN2"である。2行目の通信実績レコードに含まれる終了時刻"09:16:05"と開始時刻"09:16:00"との差は"00:00:05"である。3行目の通信実績レコードに含まれる終了時刻"09:16:22"と開始時刻"09:16:20"との差は"00:00:02"である。従って，前記通信相手"FQDN2"との最短の通信時間は"00:00:02"であり，最長の通信時間は"00:00:05"である。
【０１０２】
そこで，集計部106は，図8で説明した集計レコードY2を更新して，集計レコードY2'とする。集計レコードY2'は，図10の集計テーブルTT2で示したように
{FQDN2,0:00:2,0:00:5,2回}である。集計レコードY2'において，最長通信時間が0:00:5であることから，集計部106は，集計レコードY2の第3の項目を0:00:2から0:00:5に更新している。また，同一区分の時間帯9:15-9:30において，通信制御装置100が，1日の同一時間帯において，通信相手FQDN2と通信を開始しその通信が終了する通信単位の最大回数は2回である。従って，集計部106は，集計レコードY2の第4の項目を1回から2回に更新している。
【０１０３】
また，4行目の通信実績レコードに含まれる通信相手は"FQDN3"である。前記通信相手"FQDN3"との通信時間は，4行目の通信実績レコードに含まれる終了時刻"09:17:05"と開始時刻"09:17:00"との差から"00:00:05"である。
【０１０４】
4行目の通信実績レコードに含まれる通信相手FQDN3は，図8における区分9:15-9:30欄と，場所1(SSID1)欄とが交わるセルに記憶された集計レコードに含まれていない。
【０１０５】
そこで，図9で説明した，4行目の通信実績レコードを集計して，集計レコードY3とする。集計レコードY3は，図10の集計テーブルTT2で示したように，
{FQDN3,0:00:5,0:00:5,1回}である。
【０１０６】
なお，集計対象の通信実績レコードが1つの場合には，1つの通信時間が，最長の通信時間および最短の通信時間である。
【０１０７】
図7で説明した集計テーブルの更新処理より，集計テーブルが更新される。
【０１０８】
図11は，図7で説明した集計テーブルの更新処理により更新された集計テーブルの一例を示す図である。
【０１０９】
集計テーブルTT3は，図8の集計テーブルTT1，図10の集計テーブルTT2と同様のテーブルである。なお，集計テーブルTT3が記憶する集計レコードの内容は，以後の説明の便宜上，図8の集計テーブルTT1，図10の集計テーブルTT2が記憶する集計レコードとは異なるものである。
【０１１０】
区分欄における各行には，上から順に区分である区分T1(9:00-9:15)，区分T2(9:15-9:30)，区分T3(9:30-9:45)，区分T4(9:45-10:00)を記憶する。場所欄0〜場所欄2は，通信制御装置100が無線通信するアクセスポイントの識別子"SSID0"〜"SSID2"，換言すれば現在場所を特定する情報を示している。
【０１１１】
区分欄と場所欄とが交わるセルには，図8，図10で説明した集計レコードが記憶される。例えば，区分T3(9:30-9:45)と場所1とが交わるセルには，符号V1に示したように，
{ FQDN12,0:35:0,
1:15:0, 3回 }
{ FQDN2, 0:0:2, 0:0:7, 4回 }
{ FQDN3, 0:0:3, 0:0:5, 4回 }が記憶される。
【０１１２】
図11で説明した，集計レコードが，通信が行われた第2の装置との通信に関する通信実績(通信情報とも呼ぶ)の一例である。
【０１１３】
(通信実績の記憶処理)
図6〜図11で説明したように，通信制御装置100の通信監視部105は，第2の装置に対応する通信相手を識別する通信相手識別情報と通信相手との通信の通信開始時を特定する情報とを含む通信実績を記憶部109に記憶する。通信相手との通信の通信開始時を特定する情報とは，例えば，図9で説明した通信の開始時刻である。
【０１１４】
通信制御装置100の集計部106は，図7〜図11で説明したように，通信相手との通信時間と通信回数とをさらに含む通信実績を記憶部109に記憶する。前記通信相手との通信時間は，例えば，例えば最長の通信時間，最短の通信時間である。前記通信回数とは，例えば，前記した1日における同一区分の時間帯において，第1の項目の通信相手と通信を開始しその通信を終了する通信単位(1セッションと呼ぶ)の最大回数である。
【０１１５】
(通信網決定処理の概略)
通信制御装置100の全体制御部101は，通信網決定処理を実行する。図12は，通信制御装置100が実行する通信網の決定処理の概略を説明するフロー図の一例である。図12の説明の前に，情報処理装置PCは，通信制御装置100にDNS要求を行う。DNS要求とは，完全修飾ドメイン名に対応するIPアドレスを自装置に送信する要求である。
【０１１６】
ステップS21:DNS処理部104は，情報処理装置PCからDNS要求を受信する。
【０１１７】
ステップS22:DNS処理部104は，ステップS1で受信したDNS要求を，DNSサーバに転送する。DNS処理部104は，DNS要求の転送において，第1の通信経路R1とインターネットINとを介して，DNSサーバに転送しても良い。または，第2の通信経路R2とインターネットINとを介してDNSサーバに転送しても良い。
【０１１８】
DNS要求を受信したDNSサーバは，受信したDNS要求に含まれる完全修飾ドメイン名に対応するIPアドレスを含むDNS応答を通信制御装置100に送信する。
【０１１９】
ステップS23:DNS処理部104は，DNSサーバから送信されたDNS応答を取得する。
【０１２０】
ステップS24:判断部111は，DNS要求に含まれる完全修飾ドメイン名に対応する通信相手を識別する通信相手識別情報が，ホワイトリストWL1に記憶されているか判定する。
【０１２１】
DNS要求に含まれる完全修飾ドメイン名に対応する通信相手を識別する通信相手識別情報が，ホワイトリストWL1に記憶されている場合(ステップS24/YES)，ステップS25に移る。
【０１２２】
ステップS25:判断部111は，通信制御装置100から受信した通信パケットの通信経路を，物理網またはVPN網の何れかにするか決定する。なお，ステップS25の通信網の決定処理の詳細は，図13のフロー図で説明する。
【０１２３】
ステップS26:実行部112は，ステップS25において決定した通信網が，物理網か判定する。ステップS25において決定した通信網が，物理網の場合(ステップS26/YES)，ステップS27に移る。
【０１２４】
ステップS27:実行部112は，ステップS23においてDNS処理部104が取得したDNS応答からIPアドレスを抽出する。このIPアドレスは，通信相手のIPアドレスである。
【０１２５】
ステップS28:実行部112は，図4のルーティングテーブルTBLを更新する。ステップS28の具体的な処理は後記する。
【０１２６】
ステップS29:実行部112は，ルーティングテーブルTBLの残エントリ数を更新する。具体的には，実行部112は，図4のルーティングテーブルTBLに新たに記憶できるIPアドレスの数を計算し，計算後の通信相手の数を前記残エントリ数とする。
【０１２７】
ステップS30:実行部112は，ステップS27で抽出したIPアドレスを通信実績の収集対象となる通信を識別する識別子として登録する。具体的には，実行部112は，ステップS27で抽出したIPアドレスを，登録済みIPアドレス(図6のステップS2参照)として，記憶装置13に記憶する。
【０１２８】
ステップS31:DNS処理部104は，ステップS23で取得したDNS応答を情報処理装置PCに転送する。
【０１２９】
なお，判断部111が，ステップS24において，DNS要求に含まれる完全修飾ドメイン名に対応する通信相手を識別する通信相手識別情報が，ホワイトリストWL1に記憶されていないと判定した場合(ステップS24/NO)，ステップS31に移る。ステップS25において決定された通信網が，物理網でない場合（ステップS26/NO），ステップS30に移る。このステップS30の処理により，現時点では，たまたまルーティングテーブルに記憶されない通信相手(以下，未記憶通信相手と記す)であっても，この通信相手との通信が通信実績の収集対象となる。その結果，未記憶通信相手であっても，以後の通信実績の内容によっては，ルーティングテーブルに記憶される通信相手となることができる。
【０１３０】
(通信網決定処理の詳細)
図13は，通信制御装置100が実行する通信網の決定処理の詳細を説明するフロー図の一例である。換言すれば，図13のフロー図は，図12のステップS25の処理を詳細に説明するフロー図の一例である。
【０１３１】
ステップS251:判断部111は，図4のルーティングテーブルTBLの残エントリ数を確認する。
【０１３２】
ここで，残エントリ数とは，ルーティングテーブルTBLにおいて，総エントリ数とルーティングテーブルTBLに既に記憶されているIPアドレスの数との差である。図4の場合，総エントリ数は5であり，ルーティングテーブルTBLに1つのIPアドレス(IP_13)が既に記憶されている。従って，判断部111は，残エントリ数が4(5-1)と確認する。なお，残エントリ数を，ルーティングテーブルTBLにおいて，総エントリ数とルーティングテーブルTBLに既に記憶されているIPアドレスの数との差よりも小さい数としても良い。例えば，総エントリ数が20で，ルーティングテーブルTBLに既に記憶されているIPアドレスの数が2の場合，残エントリ数を18よりも小さい数としてもよい。
【０１３３】
ステップS252:集計データ抽出部102は，集計テーブルから現時刻の直近範囲と通信制御装置100の現在場所とに対応する集計レコードを抽出し，判断部111は，着目ノードと対抗ノード群とを特定する。ここで，ノードとは通信相手を意味する。
【０１３４】
着目ノードとは，DNS処理部104が情報処理装置PCから受信したDNS要求(図12のステップS21参照)に含まれる完全修飾ドメイン名により特定される通信相手である。着目ノードは，通信を開始する通信相手を示す。
【０１３５】
対抗ノード群とは，抽出した集計レコードに含まれる通信相手から図4のルーティングテーブルTBLに記憶されている装置識別情報により識別される装置に対応する通信相手と着目ノードとを除去した通信相手である。この対抗ノード群は，過去の通信実績から現時刻よりも前の時間，現時刻よりも後の時間において，通信相手となる可能性が高いと想定できる通信相手を示している。
【０１３６】
ステップS253:判断部111は，図4のルーティングテーブルTBLに，特定した着目ノードと対抗ノード群とを全て記憶できるか判定する。図4のルーティングテーブルTBLに，特定した着目ノードと対抗ノード群とを全て記憶できない場合(ステップS253/NO)，ステップS254に移る。
【０１３７】
ステップS254:判断部111は，ステップS252で抽出した集計レコードを再集計する。具体的には，判断部111は，複数の集計レコードを抽出した場合，同一の通信相手毎に，この通信相手との通信の最長通信時間をマージし，さらに，この通信相手との通信の最短通信時間をマージした集計レコードを作成する。そして，判断部111は，マージ対象の集計レコードに含まれる回数を合算する。詳細については，図14で説明する。
【０１３８】
ステップS255:判断部111は，評価関数に基づき，ステップS254で再集計した集計レコードに含まれる通信相手の順位を決定する。なお，評価関数については，図15で説明する。
【０１３９】
ステップS256:判断部111は，着目ノードの順位が，ステップS251で確認した残エントリ数以内か判定する。
【０１４０】
着目ノードの順位が，ステップS251で確認した残エントリ数以内の場合(ステップS256/YES)，ステップS257に移る。着目ノードの順位が，ステップS251で確認した残エントリ数以内でない場合(ステップS256/NO)，ステップS258に移る。
【０１４１】
ステップS257:判断部111は，通信網を物理網と決定(判定とも呼ぶ)する。
【０１４２】
ステップS258:判断部111は，通信網をVPN網と決定する。
【０１４３】
なお，図4のルーティングテーブルTBLに，特定した着目ノードと対抗ノード群とを全て記憶できる場合(ステップS254/YES)，ステップS257に移る。
【０１４４】
判断部111が通信網を物理網と決定すると(ステップS257)，図12のステップS26でYESと判定され，ステップS28において，図4のルーティングテーブルTBLに着目ノードに対応する装置の装置識別情報が記憶される。
【０１４５】
図13のステップS253，ステップS256の処理が，通信が行われた第2の装置との通信に関する通信情報とTBL記憶部108に記憶可能な第2の装置を識別する装置識別情報の情報量とに基づいて，通信を開始する第2の装置の装置識別情報をTBL記憶部108に記憶するかを判定する処理の具体例である。
【０１４６】
(通信網決定処理の具体例)
通信網決定処理の具体例を説明する。ここで，図4のルーティングテーブルTBLの総エントリ数は5であり，ルーティングテーブルTBLに記憶されているIPアドレスはIP_13であるとする。この場合，総エントリ数とルーティングテーブルTBLに記憶されているIPアドレスの数との差である残エントリ数は4である。
【０１４７】
まず，DNS処理部104は，情報処理装置PCからDNS要求を受信すると(図12のステップS21)，ステップS22，S23を順次実行する。ここで，DNS要求に含まれる完全修飾ドメイン名で特定される通信相手，換言すれば着目ノードは，FQDN3とする。判断部111は，DNS要求に含まれる完全修飾ドメイン名で特定される通信相手が，図3のホワイトリストWL1に記憶されているか判定する(ステップS24)。通信相手FQDN3(着目ノードFQDN3)は，ホワイトリストWL1に記憶されている。そのため，判断部111は，ステップS24でYESと判定し，通信網を決定する(ステップS25)。
【０１４８】
判断部111は，図4のルーティングテーブルTBLの残エントリ数が，前記例示の4であると確認する(図13のステップS251)。
【０１４９】
(通信網決定処理における集計レコードの抽出)
集計データ抽出部102は，図11の集計テーブルTT3から，現時刻の直近範囲と通信制御装置100の現在場所とに対応する集計レコードを抽出する。そして，判断部111は，着目ノードと対抗ノード群とを特定する(ステップS252)。具体的には，集計データ抽出部102は，集計テーブルTT3から，通信制御装置100の現在場所と現在時刻とを含む区分が交わるセルに記憶された集計レコードを抽出する。
【０１５０】
さらに，集計データ抽出部102は，集計テーブルTT3から，通信制御装置100の現在場所と，現在時刻を含む区分の時間的に前の区分および後の区分とが交わる2つのセルに記憶された集計レコードを抽出する。前記区分の時間的に前の区分および後の区分とは，当該区分の直前の区分および直後の区分である。
【０１５１】
例えば，図11の集計テーブルTT3において，現在時刻を含む区分を区分T3とすると，区分T3の時間的に前の区分は区分T2であり，区分T3の時間的に後の区分は区分T4である。
【０１５２】
ここで，通信制御装置100の現在場所は場所1(SSID1)，現在時刻は9:35であるとする。この場合，集計データ抽出部102は，図11の集計テーブルTT3から場所1(SSID1)と，現在時刻(9:35)を含む区分T3とが交わるセルに記憶された集計レコード(図11の符号V1で示す点線枠参照)を抽出する。
【０１５３】
さらに，判断部111は，場所1(SSID1)と，現在時刻(9:35)を含む区分T3の時間的に前の区分T2とが交わるセルに記憶された集計レコード(図11の符号V2で示す点線枠参照)を抽出する。そして，判断部111は，場所1(SSID1)と，現在時刻(9:35)を含む区分T3の時間的に後の区分T4とが交わるセルに記憶された集計レコード(図11の符号V3で示す点線枠参照)を抽出する。
【０１５４】
(通信網決定処理におけるノードの特定)
判断部111は，集計データ抽出部102が抽出した複数の集計レコードから着目ノードと，対抗ノード群とを特定する。ここで，判断部111は，着目ノードとして通信相手FQDN3を特定し，対抗ノード群として，通信相手FQDN1,
FQDN2, FQDN4，FQDN12の4つのノードを特定する。なお，通信相手FQDN13に対応する装置を識別する装置識別情報は，図4のルーティングテーブルTBLに既に記憶されている。従って，判断部111は，対抗ノード群として，通信相手FQDN13を特定しない。
【０１５５】
判断部111は，図4のルーティングテーブルTBLに，特定した着目ノードと対抗ノード群とを全て記憶できるか判定する(ステップS253)。
【０１５６】
ここで，具体的には，判断部111は，ルーティングテーブルTBLの残エントリ数が，着目ノードのノード数と対抗ノード群のノード数との和以下か判定する。前記例の場合，残エントリ数は4であり，着目ノードのノード数は1，対抗ノード群のノード数は4である。従って，判断部111は，ルーティングテーブルTBLの残エントリ数(4)が，着目ノードのノード数(1)と対抗ノード群のノード数(4)との和(5)以下ではないと判定する(ステップS253/NO)。
【０１５７】
なお，図13のステップS251で説明したように，残エントリ数を，ルーティングテーブルTBLにおいて，総エントリ数とルーティングテーブルTBLに既に記憶されている通信相手の数との差よりも小さい数としても良い。前記例の場合，残エントリ数を，例えば3としても良い。
【０１５８】
(通信網決定処理における集計レコードの再集計)
判断部111は，抽出した集計レコードを再集計する(ステップS254)。具体的には，判断部111は，同一の通信相手を含む複数の集計レコードを特定する。前記複数の集計レコードは，前記抽出された集計レコードである。そして，判断部111は，特定した複数の集計レコードにおいて，最長通信時間が最も長い時間と，最短通信時間が最も短い時間とを特定する。
【０１５９】
そして，特定した各集計レコードに含まれる回数を合計する。すなわち，マージ後の集計レコードの第1の項目は，同一の通信相手，第2の項目は，特定した最短通信時間が最も短い時間である。そして，マージ後の集計レコードの第3の項目は，特定した最長通信時間が最も長い時間，第4の項目は，前記合計の回数である。判断部111は，同一の通信相手を含む複数の集計レコードを1つの集計レコードに纏めるマージ処理を実行して，後記する順位決定処理を行う。
【０１６０】
図14は，再集計レコードの一例を示す図である。図14は，5つの再集計レコードを示している。
【０１６１】
図11で説明した抽出した通信レコードである，
{ FQDN3,0:0:3,
0:0:5, 4回 }と，
{ FQDN3,0:0:4,
0:0:6,  6回 }と
をマージすると，
{ FQDN3,0:0:3,
0:0:6, 10回 }
となる。また，図11で説明した抽出した通信レコードである，
{ FQDN4,0:0:4,
0:0:5, 4回 }と，
{ FQDN4,0:0:5,
0:0:5, 2回 }と
をマージすると，
{ FQDN4, 0:0:4,
0:0:5, 6回 }
となる。
【０１６２】
ここで，マージ後の集計レコードと，抽出した集計レコードの中でマージしていない集計レコードを総称して再集計レコードと適宜記す。ここで，再集計レコードには，図4のルーティングテーブルTBLに記憶された装置識別情報により識別される装置に対応する通信相手を含む集計レコードは含まないものとする。
【０１６３】
(通信網決定処理における評価関数)
判断部111は，評価関数に基づき，再集計レコードに含まれる通信相手の順位を決定する(ステップS255)。そして，判断部111は，前記順位付けされた通信相手の中での着目ノードの順位と，図4のルーティングテーブルTBLの残エントリ数とに基づき，通信網を決定する。
【０１６４】
評価関数の一例について説明する。この評価関数は，通信が多い通信相手の順位が上位になるように通信相手を順位付ける関数である。ここで，通信が多いとは，通信時間が長いこと，通信回数が多いことを意味している。
【０１６５】
通信時間や通信回数は，通信内容のカテゴリで大差があり，その傾向も異なる。そこで，評価関数は，通信時間で通信相手を2つに区分する。そして，評価関数は，1つ目の区分した複数の通信相手の順位を決定し，次いで，2つ目の区分した複数の通信相手の順位を決定する。
【０１６６】
図15は，通信内容のカテゴリ毎の通信時間，通信回数，傾向を説明する図である。図15において，カテゴリ欄と，通信時間(1セッション)欄と，通信回数(1日)欄と，傾向欄とを示す。
【０１６７】
カテゴリ欄は，通信内容のカテゴリを示す。カテゴリとしては，第1，第2のカテゴリがある。第1のカテゴリとして，テレビ会議などのカンファレンス系や，動画視聴などのストリーミング系の通信内容がある。第2のカテゴリとして，検索要求を検索サーバに行う検索系や，ブラウジング系の通信内容がある。
【０１６８】
カンファレンス系や，ストリーミング系では，通信時間，通信回数について，下記のような傾向があることを経験的に得ることができる。例えば，1セッションの通信における通信時間は，短くて数十秒の場合から長い場合で数時間以上の場合がある。そして，通信回数は，1日あたり1回から数回と比較的少ない。
【０１６９】
一方，検索系や，ブラウジング系では，通信時間，通信回数について，下記のような傾向があることを経験的に得ることができる。例えば，1セッションの通信における通信時間は，数秒程度である。そして，通信回数は，通信相手によっては1日あたり数回(通信回数は低)，また，通信相手によっては1日あたり百回(通信回数は高)となる。
【０１７０】
以上説明したように，カンファレンス系，ストリーミング系の傾向としては，通信時間において，通信時間の差が大きい(長くて数時間から短くて数十秒)。そして，通信回数の差は，検索系や，ブラウジング系の通信回数の差に比べて少ない。一方，検索系や，ブラウジング系の傾向としては，通信時間において，通信時間の差が小さい。そして，通信回数の差は，カンファレンス系，ストリーミング系の通信回数の差に比べて大きい。
【０１７１】
(通信網決定処理における順位付け)
評価関数は，例えば所定の時間以上の最短通信時間を含む再集計レコードを第1のカテゴリに区分する。次いで，評価関数は，例えば所定の時間未満の最短通信時間を含む再集計レコードを第2のカテゴリに区分する。この所定の時間とは，例えば1分である。
【０１７２】
そして，判断部111は，評価関数に基づき，第1のカテゴリに属する再集計レコードについては，通信時間が長い通信相手が高順位になるように，各通信相手に順位付けを行う。次いで，判断部111は，評価関数に基づき，第2のカテゴリに属する再集計レコードについては，前記順位付けに後続して，通信回数が多い通信相手が高順位になるように，各通信相手に順位付けを行う。
【０１７３】
この評価関数によれば，例えば，通信時間だけ，または，通信回数だけ，通信時間と通信回数を単純に乗算した総通信時間だけに基づき，各通信相手に順位付けを行うよりも，順位付けを柔軟に調整し，通信時間，通信回数に応じて最適な順位付けを行うことができる。
【０１７４】
図14の例では，符号CT1で示す2つの再集計レコードにおける最短通信時間は，何れも1分以上であるので，符号CT1で示す2つの再集計レコードが第1のカテゴリに属する。一方，符号CT2で示す3つの再集計レコードにおける最短通信時間は，何れも1分未満であるので，符号CT2で示す3つの再集計レコードが第2のカテゴリに属する。
【０１７５】
図16は，判断部111が，評価関数に基づき図14の5つの再集計レコードに順位付けを実行した結果を示すテーブルの一例である。順位テーブルTO1は，順位欄と，通信相手欄とを含む。
【０１７６】
図16において，通信相手欄に，再集計レコードの通信相手欄を記憶する。
【０１７７】
図16において，図4のルーティングテーブルTBLに記憶されている装置識別情報により識別される装置に対応する通信相手を最上行に記憶している。そして，この通信相手に対応する順位欄に"(記憶済み)"を記憶している。
【０１７８】
また，通信相手FQDN1を含む再集計レコードの場合，順位テーブルTO1は，2行目に，各欄に対応させて，通信相手としてFQDN12を記憶している。
【０１７９】
評価関数による順付けについて具体的に説明する。まず，判断部111は，評価関数に基づき，通信時間が長い通信相手が高順位になるように，第1のカテゴリに属する2つの再集計レコードの通信相手を順位付ける。
【０１８０】
図14に示したように，通信相手FQDN12については，最短時間が0:35:0，最長時間が1:15:0である。そして，通信相手FQDN12の通信は3回実行されている。一方，通信相手FQDN1については，最短時間が0:30:0，最長時間が1:20:0である。そして，通信相手FQDN1の通信は2回実行されている。従って，通信相手FQDN12の通信時間は，通信相手FQDN1の通信時間よりも長い。従って，通信相手FQDN12の順位は1位，通信相手FQDN1の順位は2位となる。
【０１８１】
次いで，第2のカテゴリに属する3つの再集計レコードについては，判断部111は，評価関数に基づき，通信回数が多い通信相手が高順位になるように，第2のカテゴリに属する3つの再集計レコードの通信相手を順位付ける。
【０１８２】
図14に示したように，通信相手FQDN3については，最短時間が0:0:3，最長時間が0:0:6である。そして，通信相手FQDN3の通信は10回実行されている。
【０１８３】
また，通信相手FQDN4については，最短時間が0:0:4，最長時間が0:0:5である。そして，通信相手FQDN4の通信は6回実行されている。
【０１８４】
また，通信相手FQDN2については，最短時間が0:0:2，最長時間が0:0:7である。そして，通信相手FQDN2の通信は4回実行されている。
【０１８５】
従って，前記第1のカテゴリに属する2つの再集計レコードに含まれる通信相手の順位付けに後続して，通信相手FQDN3の順位は3位，通信相手FQDN4の順位は4位，通信相手FQDN2の順位は5位となる。
【０１８６】
(通信網の決定)
次に，判断部111は，着目ノードの順位が，ステップS251で確認した残エントリ数以内か判定する(ステップS256)。ここで，図4のルーティングテーブルTBLの残エントリ数は4であるとする。そして，着目ノードがFQDN3とする。着目ノードFQDN3の順位は，図16の順位テーブルTO1によれば，3位である。従って，着目ノードFQDN3の順位(3)が，残エントリ数(4)以内であり(ステップS256/YES)，判断部111は，通信網を物理網と決定する。以下，この決定を物理網決定と適宜記す。
【０１８７】
一方，着目ノードがFQDN2の場合，着目ノードFQDN2の順位は，図16の順位テーブルTO1によれば，5である。従って，判断部111は，着目ノードFQDN2の順位(5)が，残エントリ数(4)以内ではないと判定し(ステップS256/NO)，通信網をVPN網と決定する(ステップS258)。以下，この決定をVPN網決定と適宜記す。
【０１８８】
なお，残エントリ数が6の場合であり，前記したように，判断部111が，着目ノードとして通信相手FQDN3を特定し，対抗ノード群として，通信相手FQDN1,
FQDN2, FQDN4，FQDN12の4つのノードを特定した場合には，図13のステップS253において以下のように判定される。
【０１８９】
すなわち，残エントリ数は6であり，着目ノードのノード数は1，対抗ノード群のノード数は4である。従って，判断部111は，ルーティングテーブルTBLの残エントリ数(6)が，着目ノードのノード数(1)と対抗ノード群のノード数(4)との和(5)以下であると判定し(ステップS253/YES)，ステップS254〜ステップS256の処理を実行することなく通信網を物理網と決定する(ステップS257)。このように，ステップS254〜ステップS256の処理を実行しないことにより，通信制御装置100の処理負荷が削減される。また，通信網の決定処理が迅速になる。
【０１９０】
(通信網決定処理の終了後)
図4，図6，図12を参照して，通信網決定処理の終了後の処理について説明する。以上説明したように，図12のステップS25(換言すれば，図13のステップS251〜ステップS258)の処理，すなわち通信網の決定処理が終了する。
【０１９１】
実行部112は，ステップS25において決定した通信網が，物理網か判定する。以下，判断部111が前記物理網決定を行った場合を例示して説明する。実行部112は，図12のステップS27，ステップS28の処理を実行する。実行部112は，図4のルーティングテーブルTBLに，着目ノードであるFQDN3(通信相手FQDN3)に対応する装置を識別する装置識別情報を記憶する(ステップS28)。そして，実行部112は，ルーティングテーブルTBLの残エントリ数を更新して，残エントリ数を3とする。残エントリ数が3の理由は，ルーティングテーブルTBLの総エントリ数が5であり，ルーティングテーブルTBLに記憶済みのIPアドレスの数が2であるから，残エントリ数として3(5-2)になるからである。以後，ステップS30，ステップS31の処理が実行される。
【０１９２】
さて，通信相手FQDN3との通信開始により，図6で説明したステップS1〜ステップS3の処理が実行される。ここでは，通信相手FQDN3のIPアドレスは，登録済みのIPアドレスなので，通信監視部105は，通信相手FQDN3のデータ通信は通信実績の記憶対象と判定し(ステップS2/YES)，ステップS3の処理を実行する。そして，通信監視部105は通信相手FQDNのデータ通信の終了を待機し(ステップS4)，このデータ通信が終了すると，図9の通信実績テーブルTR1に通信実績を記憶する。
【０１９３】
そして，通信監視部105は，通信相手FQDN3との通信の終了による図4のルーティングテーブルTBLおよび残エントリ数の更新処理を行う(ステップS6)。前記の例では，通信監視部105は，図4のルーティングテーブルTBLに記憶された装置識別情報(IP_3)を削除し，残エントリ数を1つ減らす処理を行う。
【０１９４】
なお，通信パケットの転送処理において，IPスタック部107は，情報処理装置PCから受信した通信パケットの宛先を示すIPアドレスを得る。IPスタック部107は，このIPアドレスが，図4のルーティングテーブルTBLの通信相手欄に記憶されている場合には，この通信パケットを物理網を介して通信相手に転送する。一方，IPスタック部107は，このIPアドレスが，ルーティングテーブルTBLの通信相手欄に記憶されていない場合には，この通信パケットをVPN網を介して通信相手に転送する。
【０１９５】
以上説明したように，判断部111は，通信相手の各々の通信実績の中で現在時刻に対応する所定の時間帯に属する通信開始時を含む通信実績とTBL記憶部108に記憶可能な装置識別情報の情報量とに基づいて，通信を開始する第2の装置の装置識別情報をTBL記憶部108に記憶するかを判定する。
【０１９６】
ここで，通信相手の各々の通信実績の中で現在時刻に対応する所定の時間帯とは，図11の例において，現在時刻が9:35の場合，区分T1，区分T2，区分T3で示される時間帯である。そして，前記所定の時間帯に属する通信開始時を含む通信実績とは，図11，図14の例の場合，符号CT1，CT2で示したレコードである。そして，記憶可能な装置識別情報の情報量は，TBL記憶部108に記憶可能な第2の装置の装置識別子(例えば，IPアドレス)の数である。図4の例では，TBL記憶部108に記憶可能な第2の装置の識別子の数は，ルーティングテーブルTBLの残エントリ数である。
【０１９７】
具体的には，判断部111は，下記の処理を行う。判断部111は，通信相手の各々の通信実績の中で現在時刻に対応する所定の時間帯に属する通信開始時を含む通信実績に含まれる通信相手識別情報により特定される特定の通信相手との通信時間と通信回数とに基づき，特定の通信相手と，通信を開始する通信相手とに対する順位付けを行う。
【０１９８】
前記特定の通信相手とは，図11，図13の例において，現在時刻が9:35の場合，図4のルーティングテーブルTBLに記憶された装置識別情報により識別される装置に対応する通信相手FQDN13を除く，通信相手FQDN1，FQDN2，FQDN3，FQDN4，FQDN12である。そして，通信相手の通信時間および通信回数とは，図13の例では，通信相手FQDN1の場合，通信時間は，"0:30:0"や"1:15:0"であり，通信回数は"2回"である。
【０１９９】
そして，判定部111は，前記順位付けの後，通信を開始する通信相手の順位値とTBL記憶部108に記憶可能な装置識別情報の情報量とに基づいて，通信を開始する第2の装置の装置識別情報をTBL記憶部108に記憶するかを判定する。ここで，1つの装置識別情報は，1つの第2の装置の識別子(例えば，IPアドレス)である。また，TBL記憶部108に記憶可能な装置識別情報の情報量は，TBL記憶部108に記憶可能な第2の装置の識別子の数である。TBL記憶部108に記憶可能な第2の装置の識別子の数は，例えば，図4のルーティングテーブルTBLの残エントリ数である。
【０２００】
判定部111は，図15で説明した評価関数を利用して，前記した順位付けを行う。
【０２０１】
具体的には，判定部111は，前記した順位付けにおいて，特定の通信相手の各々の通信実績の中で所定の時間以上の前記通信時間を含む通信実績に含まれる通信相手については，第1の順位付け基準に基づき順位付けを行う。そして，判定部111は，特定の通信相手の各々の通信実績の中で所定の時間未満の前記通信時間を含む通信実績に含まれる通信相手については，第1の順位付け基準とは異なる第2の順位付け基準に基づき順位付けを行う。
【０２０２】
ここで，第1の順位付け基準は，特定の通信相手の各々の通信実績の中で所定の時間以上の通信時間を含む通信実績に含まれる通信相手については，通信時間が長い順に順位付ける基準である。
【０２０３】
所定の時間以上の通信時間とは，図14，図16の例では，最短通信時間であり，所定の時間とは，例えば1分である。図16の例では，通信相手FQDN12を1位，通信相手FQDN1を2位としている。
【０２０４】
また，第2の順位付け基準は，特定の通信相手の各々の通信実績の中で所定の時間未満の通信時間を含む通信実績に含まれる通信相手については，第1の順位付け基準に基づく順位付けに後続して，通信回数が多い順に順位付ける基準である。図16の例では，前記順位付けに後続して(2位以降)，通信相手FQDN3を3位，通信相手FQDN4を4位，通信相手FQDN2を5位としている。
【０２０５】
判断部111は，通信を開始する通信相手の順位値が，TBL記憶部108に記憶可能な第2の装置の識別子の数以下の場合に(図13のステップS256/YES，図12のステップS26/YES)，通信を開始する第2の装置の識別子をTBL記憶部108に記憶する(図12のステップS28)。
【０２０６】
また，判断部111は，特定の通信相手の数と通信を開始する通信相手の数との和が，TBL記憶部108に記憶可能な第2の装置の識別子の数以下の場合に(図13のステップS256/YES，図12のステップS26/YES)，通信を開始する第2の装置の識別子をTBL記憶部108に記憶する(図12のステップS28)。
【０２０７】
本実施の形態の通信制御装置によれば，通信時間が長くなる可能性や通信回数が多くなる可能性がある対抗ノードに対応する装置のIPアドレスが，優先的に，ルーティングテーブルTBLに記憶される。
【０２０８】
かかる通信制御装置によれば，通信時間が長くなる可能性や通信回数が多くなる可能性がある着目ノードに対応する装置のIPアドレスがルーティングテーブルTBLに記憶され易くなる。そのため，通信制御装置は，この着目ノードと通信する場合には，VPN網を使用することがない。その結果，VPN網を形成する第2の通信経路R2の通信装置の処理負荷を削減することができる。
【０２０９】
一方，かかる通信制御装置によれば，通信時間が短くなる可能性や通信回数が少なくなる可能性がある着目ノードに対応する装置のIPアドレスがルーティングテーブルTBLに記憶されにくくなる。そのため，通信制御装置は，この着目ノードと通信する場合には，VPN網を使用する。このように，通信時間が短くなる可能性や通信回数が少なくなる可能性がある着目ノードとの通信は，通信量が少なくなるため，VPN網を形成する第2の通信経路R2の通信装置の処理負荷が増大することがない。
【０２１０】
このように，かかる通信制御装置は，過去の通信実績および残エントリ数に基づき，着目ノードに対応する装置のIPアドレスを厳選してルーティングテーブルに記憶する。その結果，本実施の形態の通信制御装置の確認処理および照合処理による処理負荷の増大を抑制できる。
【０２１１】
また，図4のルーティングテーブルTBLの残エントリ数が多ければ，着目ノードに対応する装置のIPアドレスがルーティングテーブルTBLに記憶され易くなる。換言すれば，着目ノードに対応する装置のIPアドレスを記憶する際の厳選度が緩くなる。
【０２１２】
本実施の形態の通信制御装置においては，このように，残エントリ数が多いと言うことは，ルーティングテーブルTBLに記憶されているIPアドレスの数が少ないため，通信制御装置における，照合処理および確認処理の処理負荷が低い状態である。この照合処理および確認処理の処理負荷が低い状態において，着目ノードに対応する装置のIPアドレスをルーティングテーブルTBLに記憶しても，通信制御装置における照合処理および確認処理の処理負荷が過大になることがない。
【０２１３】
また，図4のルーティングテーブルTBLの残エントリ数が少なければ，着目ノードに対応する装置のIPアドレスがルーティングテーブルTBLに記憶されにくくなる。換言すれば，着目ノードの識別子を記憶する際の厳選度が厳しくなる。
【０２１４】
本実施の形態の通信制御装置においては，このように，残エントリ数が少ないと言うことは，ルーティングテーブルTBLに記憶されているIPアドレスの数が多いため，通信制御装置における，照合処理および確認処理の処理負荷が高い状態である。この照合処理および確認処理の処理負荷が高い状態において，着目ノードに対応する装置のIPアドレスをルーティングテーブルTBLに記憶しないことで，通信制御装置における照合処理および確認処理の処理負荷の増大を抑制している。
【０２１５】
以上説明したように，本実施の形態によれば，通信制御装置100の処理負荷と，第2の通信経路R2の通信装置の処理負荷とをバランス化することができる。
【０２１６】
他にも，図1において，第1の通信経路R1，第2の通信経路R2，インターネットIN，第1のサーバSVR1〜第nのサーバSVRnを備える既存の通信システムにおいて，本実施の形態の通信制御装置を適用すれば，前記したバランス化を実現することができる。そのため，前記したバランス化の実現において，既存の通信システムを変更する必要がない。
【０２１７】
なお，図8〜図11で説明した集計テーブルにおいて，場所欄を設け，場所毎に集計レコードを分類しているのは以下の理由である。すなわち，通信制御装置100が持ち運び可能(携帯可能とも呼ぶ)の場合，通信相手が現在場所に応じて変わることがあるからである。
【０２１８】
例えば，現在場所が，通信制御装置100の利用者が所属する会社の近辺である場合には，通信相手は仕事に関係する情報を提供するサーバであることが多い。一方，現在場所が，通信制御装置100の利用者の自宅付近である場合には，通信相手は，利用者の私的な興味に関係する情報を提供するサーバであることが多い。
【０２１９】
このように，通信相手が現在場所に応じて変わるため，現在場所に最適な対抗ノード群を抽出するため図8〜図11で説明した集計テーブルにおいて，場所欄を設け，場所毎に集計レコードを分類している。
【０２２０】
また，図11で説明したように，集計データ抽出部102は，図11の集計テーブルTT3から，通信制御装置100の現在場所と，現在時刻を含む区分の時間的に前の区分および後の区分とが交わる2つのセルに記憶された集計レコードを抽出している。このように，前後区分における2つのセルに記憶された集計レコードを抽出することで，順位決定の基準となる対抗ノード群をより多く抽出することができる。例えば，通信制御装置100の現在場所と，現在時刻を含む区分とが交わる1つのセルに記憶された集計レコードだけを抽出した場合，充分な数の順位決定の基準となる対抗ノードを抽出することができない。その結果，対抗ノード群と着目ノードとの順位付けの精度が低下する。しかし，順位決定の基準となる対抗ノード群をより多く抽出できれば，対抗ノード群と着目ノードとの順位付けの精度が向上する。
【０２２１】
そこで，対抗ノード群と着目ノードとの順位付けの精度を向上させるために，現在時刻を含む区分の時間的に1個前の区分および1個後の区分だけではなく，N個(Nは2以上の整数)前の区分およびN個後の区分としてもよい。その結果，順位決定の基準となる対抗ノード群をより多く抽出できるようになる。
【０２２２】
なお，着目ノードが，前記セルから抽出された集計レコードに含まれていない場合には，判断部111は，通信網を物理網と決定してもよいし，通信網をVPN網と決定してもよい。
【０２２３】
[第2の実施の形態]
第1の実施の形態では，通信制御装置100は，通信相手毎に集計レコードを作成していた。しかし，通信制御装置100が多数の通信相手について，通信相手毎に集計レコードを作成すると，集計レコードの容量が増す。さらに，集計レコードの抽出処理おいて(図13のステップS252参照)，抽出される集計レコードの数が多くなり，集計レコードの再集計処理(ステップS254)，順位決定処理(ステップS255)の処理負荷が増し，通信網の決定処理が遅延する。かかる遅延を防止するために，通信制御装置100は，各通信相手に対して，判断簡略化用のカテゴリを設定する。そして，通信制御装置100は，このカテゴリ毎に集計レコードを作成する。
【０２２４】
(カテゴリ)
図17は，第2の実施の形態におけるホワイトリストの一例を示す図である。
【０２２５】
ホワイトリストWL2は，通信相手欄と，カテゴリ欄とを有する。通信相手欄は，信頼できる通信相手を識別する通信相手識別情報を記憶する。カテゴリ欄は，通信相手を識別する通信相手識別情報に対応して設定されているこの通信相手のカテゴリを識別する情報(識別子とも呼ぶ)を記憶する。図17のカテゴリ欄に記憶されている符号C1〜C3は，通信相手のカテゴリを識別するカテゴリ識別子である。
【０２２６】
ここで，通信相手FQDN1，FQDN12，FQDN13は，例えば動画配信サーバなどの1分以上の通信を実行する可能性が高いサーバであるとする。そこで，図17の例では，通信相手FQDN1，FQDN12，FQDN13にカテゴリC1が例えばシステム管理者により設定されている。
【０２２７】
また，通信相手FQDN2，FQDN3は，例えば検索サーバであるとする。そして，通信相手FQDN4，FQDN5は，例えば官庁が各種情報を提供するために設置した官庁のサーバであるとする。これら検索サーバ，官庁のサーバは，1分未満の通信を実行する可能性が高いサーバである。そこで，図17の例では，通信相手FQDN2，FQDN3にカテゴリC3が例えばシステム管理者により設定されている。また，図17の例では，通信相手FQDN4，FQDN5にカテゴリC2が例えばシステム管理者により設定されている。
【０２２８】
(カテゴリ単位の集計レコード)
図11，図18を参照し，カテゴリ単位の集計レコードについて説明する。
【０２２９】
図18は，図11の符号V1，V2，V3に示した，通信相手単位の集計レコードを，この通信相手に設定したカテゴリ単位の集計レコードに変更した集計テーブルを示す図である。
【０２３０】
図18におけるカテゴリ単位の集計レコードに含まれる項目は，第11の項目〜第15の項目である。カテゴリ単位の集計レコードは，例えば，
{第11の項目，第12の項目，第13の項目，第14の項目，第15の項目}
として記述される。
【０２３１】
第11の項目は，通信相手のカテゴリである。第12の項目は，図11の集計テーブルTT3におけるセルに記憶された集計レコードにおいて同一カテゴリに属する通信相手の数である。第13の項目は，前記セルに記憶された集計レコードにおいて，同一カテゴリに属する通信相手を含む集計レコードの中の最短の通信時間(最短通信時間)である。第14の項目は，前記セルに記憶された集計レコードにおいて，同一カテゴリに属する通信相手を含む集計レコードの中の最長の通信時間(最長通信時間)である。第15の項目は，前記セルに記憶された集計レコードにおいて，同一カテゴリに属する通信相手を含む集計レコードの中の最大回数の総和である。
【０２３２】
集計部106は，通信相手単位の集計レコードを，この通信相手に設定したカテゴリ単位の集計レコードに変更する。具体的には，集計部106は，図11の集計テーブルTT3におけるセルに記憶された集計レコードにおいて同一カテゴリに属する通信相手を含む集計レコードを，第11の項目〜第15の項目を含む集計レコードに変更する。変更後の集計レコードを図18に示している。
【０２３３】
例えば，区分T3と場所1とが交わるセルに記憶された集計レコード(図11の符号V1参照)について説明する。通信相手FQDN2，FQDN3は，図17のホワイトリストWL2よればカテゴリC3に属する。通信相手FQDN2，FQDN3を含む集計レコードの中の最短の通信時間は0:0:2である。同じく，通信相手FQDN2，FQDN3を含む集計レコードの中の最長の通信時間は0:0:7である。そして，通信相手FQDN2を含む集計レコードの最大回数は4，通信相手FQDN3を含む集計レコードの最大回数は4であり，同一カテゴリに属する通信相手を含む集計レコードの中の回数の総和は8である。
【０２３４】
従って，集計部106は，通信相手FQDN2，FQDN3を含む集計レコードを図18の集計レコードTT4の符号V11に示すように，
{ C3, 2, 0:0:2,
0:0:7, 8回 }と変更する。
【０２３５】
(通信網決定処理の具体例)
図4，図12，図13，図18を参照して，通信網決定処理の具体例を説明する。図18の集計テーブルTT4の作成が終了した後，通信制御装置100は，図12，図13の処理を実行するとする。ここで，図4のルーティングテーブルTBLの総エントリ数は5である。また，ルーティングテーブルTBLに記憶されている装置識別情報(IP_13)により識別される装置に対応する通信相手はカテゴリC1に属するFQDN13であるとする。この場合，総エントリ数とルーティングテーブルTBLに記憶されている装置識別情報により識別される装置に対応する通信相手の数との差である残エントリ数は4である。また，着目ノードは，カテゴリC3に属するFQDN3であるとする。
【０２３６】
図12のステップS21〜ステップS23の処理が実行され，判断部111は，DNS要求に含まれる完全修飾ドメイン名で特定される通信相手が，ホワイトリストWL2に記憶されているか判定する(ステップS24)。通信相手FQDN3(着目ノードFQDN3)は，ホワイトリストWL2に記憶されている。そのため，判断部111は，ステップS24でYESと判定し，通信網を決定する(ステップS25)。
【０２３７】
判断部111は，図4のルーティングテーブルTBLの残エントリ数が，前記例示の4であると確認する(図13のステップS251)。
【０２３８】
(通信網決定処理における集計レコードの抽出)
集計データ抽出部102は，図18の集計テーブルTT4から現時刻の直近範囲と通信制御装置100の現在場所とに対応する集計レコードを抽出する。そして，判断部111は，着目ノードと対抗ノード群とを特定する(ステップS252)。具体的には，集計データ抽出部102は，集計テーブルTT4から，通信制御装置100の現在場所と現在時刻とを含む区分が交わるセルに記憶されたカテゴリ単位の集計レコードを抽出する。さらに，集計データ抽出部102は，現在場所と，現在時刻を含む区分の時間的に前の区分および後の区分とが交わる2つのセルに記憶されたカテゴリ単位の集計レコードを抽出する。
【０２３９】
ここで，現在場所は場所1(SSID1)，現在時刻は9:35であるとする。この場合，集計データ抽出部102は，図18の集計テーブルTT4に示したカテゴリ単位の全集計レコードを抽出する。
【０２４０】
具体的には，集計データ抽出部102は，図18の集計テーブルTT4から場所1(SSID1)と，現在時刻(9:35)を含む区分T3とが交わるセルに記憶されたカテゴリ単位の集計レコードを抽出する。
【０２４１】
さらに，集計データ抽出部102は，場所1(SSID1)と，現在時刻(9:35)を含む区分T3の時間的に前の区分T2とが交わるセルに記憶されたカテゴリ単位の集計レコードを抽出する。そして，集計データ抽出部102は，場所1(SSID1)と，現在時刻(9:35)を含む区分T3の時間的に後の区分T4とが交わるセルに記憶されたカテゴリ単位の集計レコードを抽出する。
【０２４２】
(通信網決定処理におけるノードの特定)
判断部111は，前記抽出した複数のカテゴリ単位の集計レコードから着目ノードと，対抗ノード群とを特定する。ここで，判断部111は，着目ノードとして通信相手FQDN3を特定する。そして，判断部111は，着目ノードFQDN3が属するカテゴリC3以外のカテゴリC1，C2に属する通信相手を特定する。
【０２４３】
判断部111は，図4のルーティングテーブルTBLに，特定した着目ノードと対抗ノード群とを全て記憶できるか判定する(ステップS253)。ここで，具体的には，判断部111は，ルーティングテーブルTBLの残エントリ数が，前記抽出したカテゴリ単位の集計レコードの第12の項目の数値の総和以下か判定する。前記例の場合，残エントリ数は4である。そして，前記抽出したカテゴリ単位の集計レコードの第12の項目は，それぞれ，図18の集計テーブルTT4において，1，1，1，2，1，1，1であるので，前記第12の項目の総和は8である。従って，判断部111は，ルーティングテーブルTBLの残エントリ数(4)が，前記抽出したカテゴリ単位の集計レコードの第12の項目の総和(8)以下ではないと判定する(ステップS253/NO)。
【０２４４】
(通信網決定処理における集計レコードの再集計)
判断部111は，抽出したカテゴリ単位の集計レコードを再集計する(ステップS254)。具体的には，判断部111は，同一のカテゴリを含む複数のカテゴリ単位の集計レコードを特定する。そして，判断部111は，特定したカテゴリ単位の複数の通信レコードにおいて，最長通信時間が最も長い時間と，最短通信時間が最も短い時間とを特定する。そして，特定した各カテゴリ単位の集計レコードに含まれる第12の項目の数値を合計する。さらに，特定した各カテゴリ単位の集計レコードに含まれる回数を合計する。
【０２４５】
すなわち，マージ後のカテゴリ単位の集計レコードの第11の項目は，同一のカテゴリであり，第12の項目は，特定した各カテゴリ単位の集計レコードに含まれる第12の項目の数値の合計である。マージ後のカテゴリ単位の集計レコードの第13の項目は，特定した最短通信時間が最も短い時間である。そして，マージ後のカテゴリ単位の集計レコードの第14の項目は，特定した最長通信時間が最も長い時間，第15の項目は，特定した各カテゴリ単位の集計レコードに含まれる第15の項目の合計である。
【０２４６】
図19は，カテゴリ単位の再集計レコードを示す図である。図19は，3つのカテゴリ単位の再集計レコードを示している。
【０２４７】
図18で説明した抽出したカテゴリ単位の集計レコードである，
{ C1, 1,  0:50:0, 1:00:0,  2回 }と
{ C1, 1,  0:35:0, 1:15:0, 3回 }と
{ C1, 1,  0:30:0, 1:20:0, 2回 }と
をマージすると，
{ C1, 3,  0:30:0, 1:20:0,  7回 }となる。
【０２４８】
また，図18で説明した抽出した通信レコードである，
{ C2, 1,  0:0:4, 0:0:5, 4回}と
{ C2, 1,  0:0:5, 0:0:5, 2回}と
をマージすると，
{ C2, 2,  0:0:4, 0:0:5, 6回}となる。
【０２４９】
また，図18で説明した抽出した通信レコードである，
{ C3, 2,  0:0:2, 0:0:7, 8回}と
{ C3, 1,  0:0:4 0:0:6,  6回 }と
をマージすると，
{ C3, 3,  0:0:2 0:0:7,  14回 }となる。
【０２５０】
ここで，マージ後のカテゴリ単位の集計レコードをカテゴリ単位の再集計レコードと適宜記す。
【０２５１】
(通信網決定処理における順位付け)
判断部111は，以下で説明する評価関数に基づき，カテゴリ単位の再集計レコードに含まれるカテゴリを順位付ける(ステップS255)。
【０２５２】
評価関数は，例えば1分以上の最短通信時間を含むカテゴリ単位の再集計レコードを第1の順位区分用カテゴリに区分する。次いで，評価関数は，例えば1分未満の最短通信時間を含むカテゴリ単位の再集計レコードを第2の順位区分用カテゴリに区分する。なお，第1の順位区分用カテゴリは，第1の実施の形態で説明した第1のカテゴリと同じ意味であり，第2の順位区分用カテゴリは，第1の実施の形態で説明した第2のカテゴリと同じ意味である。
【０２５３】
そして，評価関数は，第1の順位区分用カテゴリに属するカテゴリ単位の再集計レコードについては，通信時間が長い通信相手が属するカテゴリが高順位になるように，各カテゴリに順位付けを行う。次いで，評価関数は，第2の順位区分用カテゴリに属するカテゴリ単位の再集計レコードについては，前記順位付けに後続して，通信回数が多い通信相手が属するカテゴリが高順位になるように，各カテゴリに順位付けを行う。
【０２５４】
図19の例では，符号CT11で示す1つのカテゴリ単位の再集計レコードが第1の順位区分用カテゴリに属する。また，符号CT12で示す2つのカテゴリ単位の再集計レコードが第2の順位区分用カテゴリに属する。
【０２５５】
図20は，判断部111が，評価関数に基づき図19の3つのカテゴリ単位の再集計レコードに順位付けを実行した結果を示すテーブルの一例である。
【０２５６】
順位テーブルTO2は，順位欄と，カテゴリ欄と，通信相手数欄とを含む。
【０２５７】
図20において，カテゴリ欄，通信相手数欄における同一行に，カテゴリ単位の再集計レコードのカテゴリ，通信相手数が記憶される。
【０２５８】
図20において，カテゴリ単位の再集計レコードの第11の項目がカテゴリ欄に記憶され，第12の項目が通信相手数欄に記憶される。
【０２５９】
評価関数による順付けについて具体的に説明する。まず，第1の順位区分用カテゴリに属するカテゴリ単位の再集計レコードについては，通信時間が長い通信相手が高順位になるように順位付ける。図19の符号CT11に示したように，第1の順位区分用カテゴリに属するカテゴリ単位の再集計レコードは1つである。従って，カテゴリC1の順位が1位となる。
【０２６０】
次いで，第2の順位区分用カテゴリに属する2つのカテゴリ単位の再集計レコードについては，通信回数が多い通信相手が属するカテゴリ高順位になるように順位付ける。
【０２６１】
図19の符号CT12に示したように，カテゴリC3を含むカテゴリ単位の再集計レコードが含む通信回数は14回，カテゴリC2を含むカテゴリ単位の再集計レコードが含む通信回数は6回である。
【０２６２】
従って，前記第1の順位区分用カテゴリに属する1つのカテゴリ単位の再集計レコードに含まれる通信相手の順位付けに後続して，カテゴリC3の順位が2位，カテゴリC2の順位が3位となる。
【０２６３】
(通信網の決定)
次に，判断部111は，着目ノードの順位が，ステップS251で確認した残エントリ数以内か判定する(ステップS256)。ここで，図4のルーティングテーブルTBLの残エントリ数は4であるとする。そして，着目ノードがFQDN3とする。さて，図20から1位の順位のカテゴリC1に属する通信相手の数は3つである。すなわち，カテゴリC1に属する3つの通信相手の順位は，通信相手を基準とした場合，1位〜3位の何れかである。
【０２６４】
また，着目ノードFQDN3が属するカテゴリC3の順位は2位である。とすれば，1位の順位のカテゴリC1に属する通信相手の最終順位は3位であるから，通信相手を基準とした場合，着目ノードFQDN3の順位は，同率4位である。なお，着目ノードがFQDN2の場合も，着目ノードFQDN2の順位は，同率4位である。
【０２６５】
従って，着目ノードFQDN3の順位(4)が，残エントリ数(4)以内であり(ステップS256/YES)，判断部111は，通信網を物理網と決定する。
【０２６６】
換言すれば，判断部111は，通信を開始する通信相手(着目ノード)が属するカテゴリの順位よりも上の順位のカテゴリに属する通信相手の総数(前記例の場合，3)が，図4のルーティングテーブルTBLの残エントリ数(前記例の場合，4)未満の場合，通信網を物理網と決定する。そして，判断部111は，着目ノードに対応する装置のIPアドレスを，図4のルーティングテーブルTBLに記憶する。
【０２６７】
一方，着目ノードがFQDN4の場合を想定する。着目ノードFQDN4はカテゴリC2に属し，カテゴリC2の順位は3位である。2位の順位のカテゴリC3に属する通信相手は3である。とすれば，2位の順位のカテゴリC1に属する通信相手の最終順位は6位であるから，通信相手を基準とした場合，着目ノードFQDN3の順位は，同率7位である。従って，着目ノードFQDN4の順位(7)が，残エントリ数(4)以内ではないと判定し(ステップS256/NO)，通信網をVPN網と決定する(ステップS258)。
【０２６８】
前記通信網の決定により，図12のステップS25(換言すれば，図13のステップS251〜ステップS258)の処理が終了する。
【０２６９】
ステップS258以下の処理については，第1の実施の形態で詳細に説明したので，その説明を省略する。
【０２７０】
以上説明したように，判断部111は，通信相手の各々の通信情報の中で現在時刻に対応する所定の時間帯に属する通信開始時を含む通信実績の各々を通信相手識別情報に対応して定められたカテゴリ識別子に基づき各カテゴリに区分けする。なお，第2の装置の各々の通信実績の中で現在時刻に対応する所定の時間帯とは，図18の例において，現在時刻が9:35の場合，区分T1，区分T2，区分T3で示される時間帯である。通信相手識別情報に対応して定められたカテゴリ識別子は，図17のホワイトリストWL2で説明したカテゴリを識別する識別子である。
【０２７１】
そして，判断部111は，前記した評価関数を利用して，各カテゴリにおける，カテゴリに属する通信相手の通信時間と当該通信相手の通信回数とに基づき，各カテゴリに順位付けを行う。なお，各カテゴリとは，図19の例では，符号CT11，符号CT12で示した再集計レコードのカテゴリである。
【０２７２】
そして，判断部111は，各カテゴリの順位値と各カテゴリに属する通信相手の総数とTBL記憶部108に記憶可能な装置識別情報の情報量とに基づいて，通信を開始する第2の装置の前記装置識別情報をTBL記憶部108に記憶するかを判定する。
【０２７３】
なお，記憶可能な装置識別情報の情報量は，例えばTBL記憶部108に記憶可能な第2の装置の装置識別子(例えば，IPアドレス)の数である。図4の例では，TBL記憶部108に記憶可能な第2の装置の識別子は，ルーティングテーブルTBLの残エントリ数である。各カテゴリの順位値とは，図19の例では，カテゴリC1の順位(値)は1位であり，カテゴリC3の順位は2位であり，カテゴリC2の順位は3位である。また，各カテゴリに属する第2の装置の総数とは，図19の例では，カテゴリC1に属する第2の装置の総数は3であり，カテゴリC3に属する第2の装置の総数は3であり，カテゴリC2に属する第2の装置の総数は2である。
【０２７４】
判断部111は，順位付けにおいて，各カテゴリの中で，所定の時間以上の通信時間を含むカテゴリについては，第1の順位付け基準に基づき順位付けを行う。所定の時間以上の通信時間とは，図19，図20の例では，最短通信時間であり，所定の時間とは，例えば1分である。
【０２７５】
ここで，第1の順位付け基準は，各カテゴリの中で，所定の時間以上の通信時間を含むカテゴリについては，通信時間が長い順に順位付ける基準である。図19の例では，カテゴリC1を1位としている。
【０２７６】
また，判断部111は，各カテゴリの中で，所定の時間未満の通信時間を含むカテゴリについては，第1の順位付け基準とは異なる第2の順位付け基準に基づき順位付けを行う。ここで，第2の順位付け基準は，各カテゴリの中で，所定の時間未満の通信時間を含むカテゴリについては，第1の順位付け基準に基づく順位付けに後続して，通信回数が多い順に順位付ける基準である。図20の例では，前記順位付けに後続して(1位以降)，カテゴリC3を2位，カテゴリC2を3位としている。
【０２７７】
判断部111は，各カテゴリに属する通信相手の総数が，TBL記憶部108に記憶可能な第2の装置の識別子の数以下の場合に(図13のステップS253/YES，図12のステップS26/YES)，通信を開始する第2の装置の識別子をTBL記憶部108に記憶する(図12のステップS28)。
【０２７８】
また，判断部111は，各カテゴリにおいて，通信を開始する通信相手が属するカテゴリの順位よりも上の順位のカテゴリに属する通信相手の総数が，TBL記憶部108に記憶可能な第2の装置の識別子の数未満の場合に(図13のステップS256/YES，図12のステップS26/YES)，通信を開始する第2の装置の識別子をTBL記憶部108に記憶する(図12のステップS28)。
【０２７９】
本実施の形態によれば，通信制御装置は，各通信相手に対して，判断簡略化用のカテゴリを設定する。そして，この通信制御装置は，このカテゴリ毎に集計レコードを作成する。そのため，集計レコードの抽出処理おいて(図13のステップS252参照)，抽出される集計レコードの数が多くなることを抑制でき，集計レコードの再集計処理(ステップS254)，順位決定処理(ステップS255)の処理負荷の増大を抑制できる。その結果，通信網の決定処理の遅延を防止できる。
【０２８０】
[第3の実施の形態]
第1，第2の実施の形態では，通信制御装置100が，通信パケットの転送処理や，ルーティングテーブルの更新処理に関連する各種処理(例えば，集計処理，通信網決定処理)を実行していた。しかし，集計処理や，通信網決定処理は，通信実績のデータ量が多い場合や，集計区分の時間帯が長い場合には，高負荷になり，通信制御装置100の処理負荷が増大する。そこで，負荷が重くなる可能性がある集計処理や通信網決定処理を他の装置に実行させる。
【０２８１】
(システム)
図21は，本実施の形態における，通信システムを説明する図である。一点鎖線より上側に記載した，ユーザ側のシステムSYS'は，情報処理装置PCと，通信制御装置100'と，処理装置300とを備える。通信制御装置100'は，情報処理装置PCと，第1の通信経路R1および第2の通信経路R2との間に設けられ，通信パケットの転送処理を行う。処理装置300は，インターネットINに接続し，通信制御装置100'と通信しデータ処理を行う装置である。具体的には，処理装置300は，通信網決定処理を実行する。
【０２８２】
通信制御装置100'と処理装置300とは，インターネットINと第1の通信経路R1とを介して，相互に通信可能である。なお，処理装置300を，第2の通信経路R2内に設けてもよい。
【０２８３】
ユーザ側のシステムSYS'は，第1の実施の形態や，第2の実施の形態で通信制御装置100が実行した処理を実行する。
【０２８４】
図22は，通信制御装置100'および処理装置300のハードウェアブロック図の一例である。通信制御装置100'のハードウェアの構成は，図2と同じであるが，通信インターフェイス14は，処理装置300の通信インターフェイス34とも通信処理を行う。
【０２８５】
処理装置300は，例えばバスBを介して相互に接続された，CPU31と，メモリ32と，記憶装置33と，通信インターフェイス34と，記録媒体読み取り装置35とを備える。
【０２８６】
CPU31は，処理装置300の全体を制御するコンピュータ(制御部)である。メモリ32は，CPU31が実行する各種情報処理において処理されたデータや各種プログラムを一時的に記憶する。また，メモリ32は，順位テーブルを記憶する。
【０２８７】
記憶装置33は，例えば，ハードディスクドライブなどの磁気記憶装置や，不揮発性のメモリである。記憶装置33は，ホワイトリスト，通信実績テーブル，集計テーブルを記憶する。なお，ホワイトリストについては図3，図17で説明した。通信実績テーブルについては，図9で説明した。ルーティングテーブルについては図4で説明した。集計テーブルについては図8，図10，図11，図18で説明した。順位テーブルについては図16，図20で説明した。他にも，記憶装置33は，図23で説明するプログラムを記憶する。
【０２８８】
通信インターフェイス34は，第1の通信経路R1と通信処理を行う装置である。処理装置300が例えば有線通信機能を含む場合には，この通信インターフェイス34は，いわゆるネットワークインターフェイスカードである。また，処理装置300が無線通信機能を含む場合には，この通信インターフェイス34は，例えば無線LAN子機である。
【０２８９】
記録媒体読み取り装置35は，記録媒体M2に記録されたデータを読み取る装置である。記録媒体M2は可搬型記録媒体である。
【０２９０】
図23は，図22の通信制御装置100'および処理装置300が実行するソフトウェアモジュールのブロック図の一例である。
【０２９１】
通信制御装置100'における，全体制御部101，実行部112，通信監視部105，IPスタック部107，DNS処理部121は，いわゆるプログラムであり，このプログラムは，例えば，記憶装置13に記憶されている。なお，このプログラムを記録媒体M1に記憶してもよい。全体制御部101は，処理装置300の全体制御部301と通信する処理を実行する。
【０２９２】
図22のCPU11は，起動時に，これらのプログラムを記憶装置13から読み出して，メモリ12に展開することにより，これらのプログラムをソフトウェアモジュールとして機能させる。
【０２９３】
処理装置300における，全体制御部301，判断部111，集計データ抽出部102，ホワイトリスト管理部103，集計部106，DNS処理部321は，いわゆるプログラムであり，このプログラムは，例えば，記憶装置33に記憶されている。なお，このプログラムを記録媒体M2に記憶してもよい。全体制御部301は，通信制御装置100'の全体制御部101と通信する処理を実行する。
【０２９４】
図22のCPU31は，起動時に，これらのプログラムを記憶装置33から読み出して，メモリ32に展開することにより，これらのプログラムをソフトウェアモジュールとして機能させる。
【０２９５】
通信制御装置100'の全体制御部101は，処理装置300の全体制御部301と通信処理を行う。同じく，処理装置300の全体制御部301は，通信制御装置100'の全体制御部101と通信処理を行う。
【０２９６】
通信制御装置100'のDNS処理部121，通信監視部105は，全体制御部101と全体制御部301とを介して，処理装置300の各機能ブロックとデータの送受信が可能であり，さらに，記憶装置13，記憶装置33にアクセス可能である。処理装置300の集計データ抽出部102，ホワイトリスト管理部103，集計部106，DNS処理部321は，全体制御部301と全体制御部101とを介して，通信制御装置100'の各機能ブロックとデータの送受信が可能であり，さらに，記憶装置13，記憶装置33にアクセス可能である。
【０２９７】
例えば，通信制御装置100'のDNS処理部121は，情報処理装置PCからDNS要求を受信すると(図12のステップS21)，処理装置300のDNS処理部321にDNS要求をDNSサーバに転送するように指示する。処理装置300のDNS処理部321は，この指示を受信し，DNS要求をDNSサーバに転送する(ステップS22)。DNS処理部321は，DNSサーバから送信されたDNS応答を取得し(ステップS23)，通信制御装置100'のDNS処理部121に送信する。以後，DNS処理部121は，受信したDNS応答を情報処理装置PCに転送する。
【０２９８】
通信制御装置100'の通信監視部105は，図6で説明した通信実績を収集し，処理装置300の記憶部109に，図9の通信実績テーブルTR1として記憶する。換言すれば，通信制御装置100'の通信監視部105は，通信が行われた第2の装置との通信に関する通信情報を処理装置300に送信している。
【０２９９】
通信制御装置100'の全体制御部101は，さらに，TBL記憶部108に記憶可能な装置識別情報の情報量を処理装置300に送信する。なお，装置識別情報の情報量は，図4のルーティングテーブルTBLで説明した残エントリ数である。
【０３００】
処理装置300の集計部106は，図7で説明した通信実績の集計処理を行い，図8〜図11で説明した集計テーブルの作成，更新を行う。
【０３０１】
処理装置300の判断部111は，通信制御装置100'から送信された通信情報と情報量とに基づいて，通信を開始する第2の装置の装置識別情報をTBL記憶部108に記憶するかを判定する判定結果を通信制御装置100'に送信する。具体的には，判断部111は，図12のステップS24の処理を実行し，図13のステップS251の処理を実行する。そして，ステップS252で説明したように，集計データ抽出部102は，集計テーブルから現時刻の直近範囲と通信制御装置100の現在場所とに対応する集計レコードを抽出する。さらに，判断部111は，着目ノードと対抗ノード群とを特定する。次いで，判断部111は，ステップS253以下の処理を実行する。ここで，判断部111は，通信網は物理網(ステップS257)または通信網はVPN網(ステップS258)の何れかと判定した判定結果を，通信制御装置100'に送信する。
【０３０２】
通信制御装置100'の実行部112は，ステップS26以下の処理を実行する。実行部112は，判定結果が，通信網は物理網と判定された場合(図13のステップS257)，図4のルーティングテーブルTBLに着目ノードに対応する装置のIPアドレスを記憶する。
【０３０３】
さて，処理装置300のCPU31は，通信制御装置100'のCPU11よりも高性能である。また，処理装置300のメモリ32，記憶装置33は，通信制御装置100'のメモリ12，記憶装置13よりも高性能である。そのため，処理装置300は，処理量が多くなる集計処理や通信網決定処理を高速に実行することができる。その結果，通信制御装置100'は，集計処理や通信網決定処理する必要がなくなり(換言すれば，処理負荷の軽減)，通信処理の処理速度の低下を抑制できる。
【符号の説明】
【０３０４】
PC…情報処理装置，R1…第1の通信経路，R2…第2の通信経路，IN…インターネット，SVR1〜SVRn…第1のサーバ〜第nのサーバ，100…通信制御装置，101,301…全体制御部，102…集計データ抽出部，103…ホワイトリスト管理部，104,121,321…DNS処理部，105…通信監視部，106…集計部，107…IPスタック部，108…TBL記憶部，109…記憶部，111…判断部，112…実行部，11,31…CPU，12,32…メモリ，13,33…記憶装置，14,34…通信インターフェイス，15,35…記録媒体読み取り装置，M1,M2…記録媒体,300…処理装置。
【図１】
0005979307.tif 000002
【図２】
0005979307.tif 000003
【図３】
0005979307.tif 000004
【図４】
0005979307.tif 000005
【図５】
0005979307.tif 000006
【図６】
0005979307.tif 000007
【図７】
0005979307.tif 000008
【図８】
0005979307.tif 000009
【図９】
0005979307.tif 000010
【図１０】
0005979307.tif 000011
【図１１】
0005979307.tif 000012
【図１２】
0005979307.tif 000013
【図１３】
0005979307.tif 000014
【図１４】
0005979307.tif 000015
【図１５】
0005979307.tif 000016
【図１６】
0005979307.tif 000017
【図１７】
0005979307.tif 000018
【図１８】
0005979307.tif 000019
【図１９】
0005979307.tif 000020
【図２０】
0005979307.tif 000021
【図２１】
0005979307.tif 000022
【図２２】
0005979307.tif 000023
【図２３】
0005979307.tif 000024