(57)【要約】【課題】ＵＲＬフィルタリング処理を実行しつつ高いスループットを得ることができるＵＲＬフィルタリング装置を得ること。【解決手段】パケット転送処理部１１が、ＴＣＰ終端処理中に受信したパケットをＴＣＰ終端処理部１６へ渡し、ＴＣＰ終端処理中以外の期間に受信したパケットをＴＣＰ層パケット処理部１２へ渡し、ＴＣＰ層パケット処理部１２はパケットのＴＣＰデータ部を抽出してパケットを保持し、ＨＴＴＰ構文解析処理部１３は、ＵＲＬアクセス要求メッセージでない場合にＴＣＰ層パケット処理部１２にそのパケットの送信許可を通知し、ＵＲＬアクセス要求メッセージの場合には、要求ＵＲＬ通過判定処理部１４にＵＲＬ通過判定を依頼し、要求ＵＲＬ通過判定処理部１４は、判定結果が不可である場合にはＴＣＰ終端処理の開始を指示し、可である場合には保持されたパケットの送信許可を通知する。【選択図】        図１
2010244134.tif 000002
【特許請求の範囲】
【請求項１】
ＨＴＴＰプロトコルを用いた通信を行うクライアントとサーバとの間で送受信されるパケットを中継するパケット転送手段と、
前記クライアントから送信されるＵＲＬアクセス要求メッセージに基づいて、要求されるＵＲＬへのアクセスの可否の判定であるＵＲＬ通過判定を行うＵＲＬ通過判定手段と、
所定のＴＣＰ層の処理を行うＴＣＰ層処理手段と、
所定のＴＣＰ終端処理を行うＴＣＰ終端処理手段と、
受信したパケットのＨＴＴＰ構文解析を行うＨＴＴＰ構文解析手段と、
を備え、
前記パケット転送手段は、ＴＣＰ終端処理の開始が指示されてからそのＴＣＰ終端処理が終了するまでのＴＣＰ終端処理中に受信したパケットを前記ＴＣＰ終端処理手段へ渡し、ＴＣＰ終端処理中以外の期間に受信したパケットを前記ＴＣＰ層処理手段へ渡し、
前記ＴＣＰ層処理手段は、前記パケット転送手段から受け取ったパケットのＴＣＰデータ部を抽出するとともに、そのパケットを保持し、
前記ＨＴＴＰ構文解析手段は、前記ＴＣＰデータ部に基づいて、前記ＴＣＰ層処理手段に保持されているパケットがＵＲＬアクセス要求メッセージでないと判断した場合には、前記ＴＣＰ層処理手段にそのパケットの送信許可を通知し、一方、ＵＲＬアクセス要求メッセージであると判断した場合には、前記ＵＲＬ通過判定手段にそのＵＲＬアクセス要求メッセージのＵＲＬ通過判定を依頼し、
前記ＵＲＬ通過判定手段は、前記依頼に基づいてＵＲＬ通過判定を実施し、ＵＲＬ通過判定結果がアクセス不可である場合には、ＴＣＰ終端処理の開始を指示し、ＵＲＬ通過判定結果がアクセス可である場合には、前記ＴＣＰ層処理手段に保持されたパケットの送信許可を通知し、
前記ＴＣＰ終端処理手段は、ＴＣＰ終端処理の開始が指示されるとセッションを終了させるためのＴＣＰ終端処理を行い、ＴＣＰ終端処理によって生成したパケットを前記パケット転送手段に出力し、
前記ＴＣＰ層処理手段は、送信許可が通知されたパケットを前記パケット転送手段に出力し、
前記パケット転送手段は、前記ＴＣＰ層処理手段から出力されたパケットおよび前記ＴＣＰ終端処理手段から出力されたパケットをそれぞれのパケットの送信先に送信することを特徴とするＵＲＬフィルタリング装置。
【請求項２】
ＨＴＴＰプロトコルを用いた通信を行うクライアントとサーバとの間で送受信されるパケットを中継するパケット転送手段と、
前記クライアントから送信されるＵＲＬアクセス要求メッセージに基づいて、要求されたＵＲＬを含ませたＵＲＬ判定依頼を、ＵＲＬへのアクセスの可否の判定であるＵＲＬ通過判定を実施する外部装置へ送信し、その応答として、前記外部装置から判定結果を取得するＵＲＬ通過判定手段と、
所定のＴＣＰ層の処理を行うＴＣＰ層処理手段と、
所定のＴＣＰ終端処理を行うＴＣＰ終端処理手段と、
受信したパケットのＨＴＴＰ構文解析を行うＨＴＴＰ構文解析手段と、
を備え、
前記パケット転送手段は、ＴＣＰ終端処理の開始が指示されてからそのＴＣＰ終端処理が終了するまでのＴＣＰ終端処理中に受信したパケットを前記ＴＣＰ終端処理手段へ渡し、ＴＣＰ終端処理中以外の期間に受信したパケットを前記ＴＣＰ層処理手段へ渡し、
前記ＴＣＰ層処理手段は、前記パケット転送手段から受け取ったパケットのＴＣＰデータ部を抽出するとともに、そのパケットを保持し、
前記ＨＴＴＰ構文解析手段は、前記ＴＣＰデータ部に基づいて、前記ＴＣＰ層処理手段に保持されているパケットがＵＲＬアクセス要求メッセージでないと判断した場合には、前記ＴＣＰ層処理手段にそのパケットの送信許可を通知し、一方、ＵＲＬアクセス要求メッセージであると判断した場合には、前記ＵＲＬ通過判定手段にそのＵＲＬアクセス要求メッセージのＵＲＬ通過判定を依頼し、
前記ＵＲＬ通過判定手段は、前記依頼に基づいて前記ＵＲＬアクセス要求メッセージに含まれるＵＲＬを含ませたＵＲＬ判定依頼を前記外部装置へ送信し、その依頼に対する応答としてＵＲＬ通過判定結果を取得し、ＵＲＬ通過判定結果がアクセス不可である場合には、ＴＣＰ終端処理の開始を指示し、ＵＲＬ通過判定結果がアクセス可である場合には、前記ＴＣＰ層処理手段に保持されたパケットの送信許可を通知し、
前記ＴＣＰ終端処理手段は、ＴＣＰ終端処理の開始が指示されるとセッションを終了させるためのＴＣＰ終端処理を行い、ＴＣＰ終端処理によって生成したパケットを前記パケット転送手段に出力し、
前記ＴＣＰ層処理手段は、送信許可が通知されたパケットを前記パケット転送手段に出力し、
前記パケット転送手段は、前記ＴＣＰ層処理手段から出力されたパケットおよび前記ＴＣＰ終端処理手段から出力されたパケットをそれぞれのパケットの送信先へ送信することを特徴とするＵＲＬフィルタリング装置。
【請求項３】
ＨＴＴＰプロトコルを用いた通信を行うクライアントとサーバとの間で送受信されるパケットを中継するパケット転送手段と、
前記クライアントから送信されるＵＲＬアクセス要求メッセージに基づいて、要求されたＵＲＬへのアクセスの可否の判定であるＵＲＬ通過判定を行うＵＲＬ通過判定手段と、
所定のＴＣＰ層の処理を行うＴＣＰ層処理手段と、
所定のＴＣＰ終端処理を行うＴＣＰ終端処理手段と、
受信したパケットのＨＴＴＰ構文解析を行うＨＴＴＰ構文解析手段と、
所定の転送処理を行う簡易転送手段と、
を備え、
前記パケット転送手段は、ＴＣＰ終端処理の開始が指示されてからそのＴＣＰ終端処理が終了するまでのＴＣＰ終端処理中に受信したパケットを前記ＴＣＰ終端処理手段へ渡し、ＴＣＰ終端処理中以外の期間に前記クライアントから受信したパケットを前記ＴＣＰ層処理手段へ渡し、
前記ＴＣＰ層処理手段は、前記パケット転送手段から受け取ったパケットのＴＣＰデータ部を抽出するとともに、そのパケットを保持し、
前記ＨＴＴＰ構文解析手段は、前記ＴＣＰデータ部に基づいて、前記ＴＣＰ層処理手段に保持されているパケットがＵＲＬアクセス要求メッセージでないと判断した場合には、前記ＴＣＰ層処理手段にそのパケットの送信許可を通知し、一方、ＵＲＬアクセス要求メッセージであると判断した場合には、前記ＵＲＬ通過判定手段にそのＵＲＬアクセス要求メッセージのＵＲＬ通過判定を依頼し、
前記ＵＲＬ通過判定手段は、前記依頼に基づいてＵＲＬ通過判定を実施し、ＵＲＬ通過判定結果がアクセス不可である場合には、ＴＣＰ終端処理の開始を指示し、ＵＲＬ通過判定結果がアクセス可である場合には、前記ＴＣＰ層処理手段に保持されたパケットの送信許可を通知し、
前記ＴＣＰ終端処理手段は、ＴＣＰ終端処理の開始が指示されるとセッションを終了させるためのＴＣＰ終端処理を行い、ＴＣＰ終端処理によって生成したパケットを前記パケット転送手段に出力し、
前記ＴＣＰ層処理手段は、送信許可が通知されたパケットを前記パケット転送手段に出力し、
前記パケット転送手段は、前記ＴＣＰ層処理手段から出力されたパケットおよび前記ＴＣＰ終端処理手段から出力されたパケットをそれぞれのパケットの送信先に送信し、
前記簡易転送手段は、ＴＣＰ終端処理中以外の期間に前記サーバから受信したパケットを前記クライアントへ転送することを特徴とするＵＲＬフィルタリング装置。
【請求項４】
ＨＴＴＰプロトコルを用いた通信を行うクライアントとサーバとの間で送受信されるパケットを中継するパケット転送手段と、
前記クライアントから送信されるＵＲＬアクセス要求メッセージに基づいて、そのメッセージで要求されたＵＲＬを含ませたＵＲＬ判定依頼を、ＵＲＬへのアクセスの可否の判定であるＵＲＬ通過判定を実施する外部装置へ送信し、その応答として、前記外部装置から判定結果を取得するＵＲＬ通過判定手段と、
所定のＴＣＰ層の処理を行うＴＣＰ層処理手段と、
所定のＴＣＰ終端処理を行うＴＣＰ終端処理手段と、
受信したパケットのＨＴＴＰ構文解析を行うＨＴＴＰ構文解析手段と、
所定の転送処理を行う簡易転送手段と、
を備え、
前記パケット転送手段は、ＴＣＰ終端処理の開始が指示されてからそのＴＣＰ終端処理が終了するまでのＴＣＰ終端処理中に受信したパケットを前記ＴＣＰ終端処理手段へ渡し、ＴＣＰ終端処理中以外の期間に前記クライアントから受信したパケットを前記ＴＣＰ層処理手段へ渡し、
前記ＴＣＰ層処理手段は、前記パケット転送手段から受け取ったパケットのＴＣＰデータ部を抽出するとともに、そのパケットを保持し、
前記ＨＴＴＰ構文解析手段は、前記ＴＣＰデータ部に基づいて、前記ＴＣＰ層処理手段に保持されているパケットがＵＲＬアクセス要求メッセージでないと判断した場合には、前記ＴＣＰ層処理手段にそのパケットの送信許可を通知し、一方、ＵＲＬアクセス要求メッセージであると判断した場合には、前記ＵＲＬ通過判定手段にそのＵＲＬアクセス要求メッセージのＵＲＬ通過判定を依頼し、
前記ＵＲＬ通過判定手段は、前記依頼に基づいて前記ＵＲＬアクセス要求メッセージに含まれるＵＲＬを含ませたＵＲＬ判定依頼を前記外部装置へ送信し、その依頼に対する応答としてＵＲＬ通過判定結果を取得し、ＵＲＬ通過判定結果がアクセス不可である場合には、ＴＣＰ終端処理の開始を指示し、ＵＲＬ通過判定結果がアクセス可である場合には、前記ＴＣＰ層処理手段に保持されたパケットの送信許可を通知し、
前記ＴＣＰ終端処理手段は、ＴＣＰ終端処理の開始が指示されるとセッションを終了させるためのＴＣＰ終端処理を行い、ＴＣＰ終端処理によって生成したパケットを前記パケット転送手段に出力し、
前記ＴＣＰ層処理手段は、送信許可が通知されたパケットを前記パケット転送手段に出力し、
前記パケット転送手段は、前記ＴＣＰ層処理手段から出力されたパケットおよび前記ＴＣＰ終端処理手段から出力されるパケットをそれぞれのパケットの送信先に送信し、
前記簡易転送手段は、ＴＣＰ終端処理中以外の期間に前記サーバから受信したパケットを前記クライアントへ転送することを特徴とするＵＲＬフィルタリング装置。
【請求項５】
前記ＴＣＰ終端処理を前記クライアントに対するセッションと前記サーバに対するセッションとの２つに分割して実施することを特徴とする請求項１〜４のいずれか１つに記載のＵＲＬフィルタリング装置。
【請求項６】
ＨＴＴＰ応答を生成するＨＴＴＰ応答手段、
をさらに備え、
前記ＴＣＰ層処理手段は、前記クライアントから送信されたＵＲＬアクセス要求メッセージのパケットが再送パケットであると判断した場合は、そのセッションを終了させるためのＴＣＰ終端処理の開始を指示するとともに、前記クライアントに再度同一ＵＲＬへのアクセスの要求を行わせるための応答であるリダイレクト応答の生成を指示し、
前記ＨＴＴＰ応答手段は、前記指示に基づいてリダイレクト応答を生成し、生成したリダイレクト応答を前記クライアントに送信することを特徴とする請求項１〜５のいずれか１つに記載のＵＲＬフィルタリング装置。
【請求項７】
前記ＴＣＰ層処理手段は、前記ＵＲＬ通過判定結果を保持することとし、前記再送パケットに対応するＵＲＬのＵＲＬ通過判定結果を保持している場合は、保持しているＵＲＬ通過判定結果を、その再送パケットに対するＵＲＬ通過判定結果とすることを特徴とする請求項６に記載のＵＲＬフィルタリング装置。
【請求項８】
前記リダイレクト応答を「ＨＴＴＰ  ３０２」応答とし、前記「ＨＴＴＰ  ３０２」応答のLocationフィールドに前記ＵＲＬアクセス要求メッセージでアクセスを要求されたＵＲＬを含ませることを特徴とする請求項６または７に記載のＵＲＬフィルタリング装置。
【請求項９】
前記リダイレクト応答のＨＴＴＰデータ部に、所定の時間経過後に前記ＵＲＬアクセス要求メッセージでアクセスを要求されたＵＲＬへ再度アクセスを要求する動作を、前記クライアントが解釈可能なスクリプトまたはプログラムで記述することを特徴とする請求項６または７に記載のＵＲＬフィルタリング装置。
【請求項１０】
前記リダイレクト応答を、ＨＴＴＰ１．１で記述されるＨＴＴＰ  keep-alive機能によって前記クライアントから通知される後続のＵＲＬアクセス要求セッッセージに対してもリダイレクト応答を返すことを特徴とする請求項６〜９のいずれか１つに記載のＵＲＬフィルタリング装置。
【請求項１１】
前記ＴＣＰ終端処理を、前記クライアントまたは前記サーバから所定のパケットを受信した際にその応答となるパケットを送信する処理、とすることを特徴とする請求項１〜１０のいずれか１つに記載のＵＲＬフィルタリング装置。
【請求項１２】
前記ＴＣＰ終端処理手段は、受信したパケットの応答パケットのＡＣＫシーケンス番号を、その受信したパケットのＡＣＫシーケンス番号にＴＣＰデータ長を加算した値とすることを特徴とする請求項１１に記載のＵＲＬフィルタリング装置。
【請求項１３】
ＨＴＴＰプロトコルを用いた通信を行うクライアントとサーバとの間で送受信されるパケットを中継するパケット転送手段と、前記クライアントから送信されるＵＲＬアクセス要求メッセージに基づいて、要求されたＵＲＬへのアクセスの可否の判定であるＵＲＬ通過判定を行うＵＲＬ通過判定手段と、を備えるＵＲＬフィルタリング装置におけるＵＲＬフィルタリング方法であって、
前記パケット転送手段が、ＴＣＰ終端処理の開始が指示されてからそのＴＣＰ終端処理が終了するまでのＴＣＰ終端処理中に受信したパケットをＴＣＰ終端処理対象とし、ＴＣＰ終端処理中以外の期間に受信したパケットをＴＣＰ層処理対象とするパケット判別ステップと、
ＴＣＰ層処理対象のパケットのＴＣＰデータ部を抽出するとともに、そのパケットを保持するＴＣＰ層処理ステップと、
前記ＴＣＰデータ部に基づいて、前記ＴＣＰ層処理ステップで保持されたパケットがＵＲＬアクセス要求メッセージでないと判断した場合には、そのパケットの送信許可を通知し、一方、ＵＲＬアクセス要求メッセージであると判断した場合には、前記ＵＲＬ通過判定手段にそのＵＲＬアクセス要求メッセージのＵＲＬ通過判定を依頼するＨＴＴＰ構文解析ステップと、
前記ＵＲＬ通過判定手段が、前記依頼に基づいてＵＲＬ通過判定を実施し、ＵＲＬ通過判定結果がアクセス不可である場合には、ＴＣＰ終端処理の開始を指示し、ＵＲＬ通過判定結果がアクセス可である場合には、前記ＴＣＰ層処理ステップにて保持されたパケットの送信許可を通知するＵＲＬ通過判定ステップと、
ＴＣＰ終端処理の開始が指示されるとセッションを終了させるためのＴＣＰ終端処理を行い、ＴＣＰ終端処理によって生成したパケットを前記パケット転送手段に出力するＴＣＰ終端処理ステップと、
送信許可が通知されたパケットを前記パケット転送手段に出力する送信許可パケット出力ステップと、
前記パケット転送手段が、前記ＴＣＰ層処理ステップの実行により出力されたパケットおよび前記ＴＣＰ終端処理ステップの実行により出力されたパケットをそれぞれのパケットの送信先に送信する送信ステップと、
を含むことを特徴とするＵＲＬフィルタリング方法。
【請求項１４】
ＨＴＴＰプロトコルを用いた通信を行うクライアントとサーバとの間で送受信されるパケットを中継するパケット転送手段と、前記クライアントから送信されるＵＲＬアクセス要求メッセージに基づいて、そのメッセージで要求されたＵＲＬを含ませたＵＲＬ判定依頼を、ＵＲＬへのアクセスの可否の判定であるＵＲＬ通過判定を実施する外部装置へ送信し、その応答として、前記外部装置から判定結果を取得するＵＲＬ通過判定手段と、を備えるＵＲＬフィルタリング装置におけるＵＲＬフィルタリング方法であって、
前記パケット転送手段が、ＴＣＰ終端処理の開始が指示されてからそのＴＣＰ終端処理が終了するまでのＴＣＰ終端処理中に受信したパケットをＴＣＰ終端処理対象とし、ＴＣＰ終端処理中以外の期間に受信したパケットをＴＣＰ層処理対象とするパケット判別ステップと、
ＴＣＰ層処理対象のパケットのＴＣＰデータ部を抽出するとともに、そのパケットを保持するＴＣＰ層処理ステップと、
前記ＴＣＰデータ部に基づいて、前記ＴＣＰ層処理ステップで保持されたパケットがＵＲＬアクセス要求メッセージでないと判断した場合には、そのパケットの送信許可を通知し、一方、ＵＲＬアクセス要求メッセージであると判断した場合には、前記ＵＲＬ通過判定手段にそのＵＲＬアクセス要求メッセージのＵＲＬ通過判定を依頼するＨＴＴＰ構文解析ステップと、
前記ＵＲＬ通過判定手段が、前記依頼に基づいて前記ＵＲＬアクセス要求メッセージに含まれるＵＲＬを含ませたＵＲＬ判定依頼を前記外部装置へ送信し、その依頼に対する応答としてＵＲＬ通過判定結果を取得し、ＵＲＬ通過判定結果がアクセス不可である場合には、ＴＣＰ終端処理の開始を指示し、ＵＲＬ通過判定結果がアクセス可である場合には、前記ＴＣＰ層処理ステップにて保持されたパケットの送信許可を通知するＵＲＬ通過判定ステップと、
ＴＣＰ終端処理の開始が指示されるとセッションを終了させるためのＴＣＰ終端処理を行い、ＴＣＰ終端処理によって生成したパケットを前記パケット転送手段に出力するＴＣＰ終端処理ステップと、
送信許可が通知されたパケットを前記パケット転送手段に出力する送信許可パケット出力ステップと、
前記パケット転送手段が、前記ＴＣＰ層処理ステップの実行により出力されたパケットおよび前記ＴＣＰ終端処理ステップの実行により出力されたパケットをそれぞれのパケットの送信先に送信する送信ステップと、
を含むことを特徴とするＵＲＬフィルタリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＲＬ（Uniform  Resource  Locator）のフィルタリングを行うＵＲＬフィルタリング装置およびＵＲＬフィルタリング方法に関する。
【背景技術】
【０００２】
従来のＵＲＬフィルタリング方式の１つとして、ＨＴＴＰ（HyperText  Transfer  Protocol）プロキシサーバが、ＨＴＴＰコネクションを中継する際に要求ＵＲＬに基づいてフィルタリングする方式がある（たとえば、下記特許文献１、下記非特許文献１および下記非特許文献２参照）。この方式では、ＨＴＴＰクライアントは、ＨＴＴＰプロキシを使用するよう設定し、ＵＲＬフィルタリング機能を付加したＨＴＴＰプロキシサーバを介してＨＴＴＰアクセスを実施する。また、ＨＴＴＰプロキシは、ＨＴＴＰメッセージの中継時に、メッセージからＨＴＴＰクライアントがアクセスを要求する要求ＵＲＬを抽出し、ＵＲＬフィルタリングを実行する。以下、このようにＨＴＴＰプロキシサーバを用いたＵＲＬフィルタリングをＨＴＴＰプロキシ方式とよぶこととする。
【０００３】
また、ＨＴＴＰクライアントがＨＴＴＰプロキシを使用するよう設定していない場合でも、ＨＴＴＰクライアント−ＨＴＴＰサーバ間の中継経路上にＨＴＴＰプロキシサーバを設置してフィルタリングする方法がある（たとえば、下記非特許文献３参照）。この方式では、ＨＴＴＰクライアントからＨＴＴＰサーバへのパケットの中継経路上のＨＴＴＰプロキシサーバが、そのパケットのＴＣＰ（Transmission  Control  Protocol）／ＩＰ（Internet  Protocol）のアドレス・ポート番号を書き換える着ＮＡＰＴ（Network  Address  Port  Translation）動作によりＨＴＴＰプロキシに着信させ、強制的にＨＴＴＰプロキシを経由する動作とする。そして、ＨＴＴＰプロキシサーバが、ＵＲＬフィルタリングを実行する。以下、このような方式を透過型プロキシ方式とよぶこととする。
【０００４】
上記の透過型プロキシ方式は、結局ＨＴＴＰプロキシサーバを経由することでＴＣＰを一旦終端する方式である。これに対し、ＨＴＴＰプロキシサーバを経由せず、ＨＴＴＰクライアント−ＨＴＴＰサーバ間のＴＣＰパケットの終端処理をせずにＴＣＰパケット内のＨＴＴＰ要求を直接参照し、要求ＵＲＬを含むＴＣＰパケットがフィルタリング対象で無い場合そのまま通過させ、フィルタリング対象である場合にはアクセス拒否応答を返すようにする方式も提案されている（たとえば、下記特許文献２参照）。
【０００５】
【特許文献１】特開平１１−２４２６３９号公報
【特許文献２】特開２００６−２９３７０８号公報
【非特許文献１】“Squid：optimising  Web  Delivery”，http://www.squid-cache.org/
【非特許文献２】“SquidGuard”，http://www.squidguard.org/
【非特許文献３】“squid  による透過型プロキシ”，http://www.linux（登録商標）.or.jp/JF/JFdocs/TransparentProxy.html
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来のＨＴＴＰプロキシ方式では、ＨＴＴＰクライアントがＨＴＴＰプロキシを使用する設定をしている場合に、ＨＴＴＰプロキシサーバがＵＲＬフィルタリングを行う。したがって、ＨＴＴＰクライアントがＨＴＴＰプロキシを使用する設定を行っていない場合にはＵＲＬフィルタリングを行うことができない、という問題がある。      
【０００７】
また、上記従来の透過型プロキシ方式では、ＨＴＴＰプロキシサーバがＴＣＰセッションを一旦終端して、一方（ＨＴＴＰクライアントまたはＨＴＴＰサーバ）からのＨＴＴＰメッセージ部のみを抽出し、もう片方（ＨＴＴＰサーバまたはＨＴＴＰクライアント）へ中継する。そのため、ＨＴＴＰ層（Ｌ７）ではＴＣＰ層（Ｌ４）の処理を考慮せず簡便にＵＲＬの判定を実行できるという利点がある。一方で、ＴＣＰセッションの終端処理は複雑であり、一般的ソフトウェアによる処理が必要となる、という問題がある。また、２つのＴＣＰセッションを一旦終端するために生じる処理、および、一方のＴＣＰセッションから得たＴＣＰメッセージをもう片方のＴＣＰセッションに中継するために生じる処理が必要となるが、これらの処理は、複雑でありソフトウェアで実施する必要がある、という問題がある。
【０００８】
近年アクセス回線の光化が進展しアクセス回線速度は向上しているが、ＵＲＬフィルタリングを上記の従来の透過型プロキシ方式により実施すると、上述のように、ＵＲＬフィルタリングの処理をソフトウェアで実行しなければならず、アクセス回線速度に応じた高いスループットを得ることが難しくなる、という問題がある。
【０００９】
一方、上述の従来のＨＴＴＰクライアント−ＨＴＴＰサーバ間のＴＣＰパケットを終端処理せずに、直接その内部のＨＴＴＰメッセージ部を直接参照し、ＵＲＬフィルタリングを実施する方法では、ＴＣＰセッションを終端しないため、終端処理を省いた高速転送ができる可能性がある。しかし、ＵＲＬフィルタリング処理でＴＣＰ層（Ｌ４）も考慮して処理する必要がある、という問題がある。
【００１０】
たとえば、この方法で、ＵＲＬフィルタリング動作の対象となる要求ＵＲＬを含むＴＣＰパケットを検出した場合、ＵＲＬフィルタリング判定処理のためにそのパケットを長期間保留すると、ＨＴＴＰクライアントのＴＣＰレイヤはそのパケットに関するＡＣＫ応答をＨＴＴＰサーバから受信できない。このため、ＴＣＰレイヤの処理では、そのパケットが廃棄されたと判定しそのパケットを再送するとともに、輻輳回避動作により自身の送信レートを低下させ、ＴＣＰレベルのスループットが低下する可能性がある、という問題がある。
【００１１】
また、アクセス回線上に設置されるホームゲートウェイのような装置でＵＲＬフィルタリング動作を実現する場合、ＵＲＬフィルタリング判定に使用するＵＲＬフィルタデータを装置内に持たせると、装置が備えるべきメモリ量・ＣＰＵ処理能力などが増大してしまう。ホームゲートウェイのような装置では、ハードウェア資源が限られていることが多いため、このような装置で行う処理は要求ＵＲＬを抽出する程度に留め、ＵＲＬフィルタリングの判定処理は外部のサーバに委託して実施する方が効率的と考えられる。ところが、外部のサーバにＵＲＬフィルタリング判定を委託する場合、外部サーバとの間でパケットが往復するための遅延、外部サーバでのＵＲＬ判定処理に伴う遅延、外部サーバが複数のクライアントからの処理を受け付ける場合それらの処理待ちに伴う遅延などが発生し、長期間応答が得られない可能性がある。その結果、外部のサーバにＵＲＬフィルタリング判定を委託する場合、ＴＣＰレベルのスループットが低下する可能性がある、という問題がある。
【００１２】
本発明は、上記に鑑みてなされたものであって、ＵＲＬフィルタリング処理を実行しつつ高いスループットを得ることができるＵＲＬフィルタリング装置およびＵＲＬフィルタリング方法を得ることを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、本発明は、ＨＴＴＰプロトコルを用いた通信を行うクライアントとサーバとの間で送受信されるパケットを中継するパケット転送手段と、前記クライアントから送信されるＵＲＬアクセス要求メッセージに基づいて、要求されるＵＲＬへのアクセスの可否の判定であるＵＲＬ通過判定を行うＵＲＬ通過判定手段と、所定のＴＣＰ層の処理を行うＴＣＰ層処理手段と、所定のＴＣＰ終端処理を行うＴＣＰ終端処理手段と、受信したパケットのＨＴＴＰ構文解析を行うＨＴＴＰ構文解析手段と、を備え、前記パケット転送手段は、ＴＣＰ終端処理の開始が指示されてからそのＴＣＰ終端処理が終了するまでのＴＣＰ終端処理中に受信したパケットを前記ＴＣＰ終端処理手段へ渡し、ＴＣＰ終端処理中以外の期間に受信したパケットを前記ＴＣＰ層処理手段へ渡し、前記ＴＣＰ層処理手段は、前記パケット転送手段から受け取ったパケットのＴＣＰデータ部を抽出するとともに、そのパケットを保持し、前記ＨＴＴＰ構文解析手段は、前記ＴＣＰデータ部に基づいて、前記ＴＣＰ層処理手段に保持されているパケットがＵＲＬアクセス要求メッセージでないと判断した場合には、前記ＴＣＰ層処理手段にそのパケットの送信許可を通知し、一方、ＵＲＬアクセス要求メッセージであると判断した場合には、前記ＵＲＬ通過判定手段にそのＵＲＬアクセス要求メッセージのＵＲＬ通過判定を依頼し、前記ＵＲＬ通過判定手段は、前記依頼に基づいてＵＲＬ通過判定を実施し、ＵＲＬ通過判定結果がアクセス不可である場合には、ＴＣＰ終端処理の開始を指示し、ＵＲＬ通過判定結果がアクセス可である場合には、前記ＴＣＰ層処理手段に保持されたパケットの送信許可を通知し、前記ＴＣＰ終端処理手段は、ＴＣＰ終端処理の開始が指示されるとセッションを終了させるためのＴＣＰ終端処理を行い、ＴＣＰ終端処理によって生成したパケットを前記パケット転送手段に出力し、前記ＴＣＰ層処理手段は、送信許可が通知されたパケットを前記パケット転送手段に出力し、前記パケット転送手段は、前記ＴＣＰ層処理手段から出力されたパケットおよび前記ＴＣＰ終端処理手段から出力されたパケットをそれぞれのパケットの送信先に送信することを特徴とする。
【発明の効果】
【００１４】
この発明によれば、通常時は、ＴＣＰ終端処理を行わず、受信パケットからＨＴＴＰデータを抽出し、ＨＴＴＰデータにＵＲＬへのアクセス要求が含まれると判断した場合には、ＵＲＬの通過／アクセス拒否の判定を実施し、アクセス拒否の判定結果であった場合にＴＣＰ終端処理を実施するようにしたので、高いスループットを得ることができる、という効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明にかかるＵＲＬフィルタリング装置およびＵＲＬフィルタリング方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１６】
実施の形態１．
図１は、本発明にかかるＵＲＬフィルタリング装置の実施の形態１の機能構成例を示す図である。図１に示すように本実施の形態のＵＲＬフィルタリング装置２は、一般的なパケットルーティング機能を有するパケット転送処理部１１と、ＴＣＰ層の処理を行うＴＣＰ層パケット処理部１２と、ＨＴＴＰ構文解析処理部１３と、要求ＵＲＬ通過判定処理部１４と、ＨＴＴＰ応答作成処理部１５と、ＴＣＰ終端処理部１６と、で構成される。また、ＵＲＬフィルタリング装置２は、ＨＴＴＰクライアントであるＰＣ（Personal  Computer）端末１と、ＨＴＴＰサーバとしての機能を有するｗｅｂサーバ３と、ＵＲＬアクセス制御サーバとしての機能を有するＡＣＳ（Access  Control  Server）サーバ４と、に接続している。
【００１７】
また、上り通信パケット通常経路２１は、ＰＣ端末１−ＵＲＬフィルタリング装置２間の上り方向の通常の通信時のパケットの経路を示し、下り通信パケット通常経路２２は、ＵＲＬフィルタリング装置２−ＰＣ端末１間の下り方向の通常の通信時のパケットの経路を示す。また、上り通信パケット終端経路２３は、ＰＣ端末１−ＵＲＬフィルタリング装置２間の上り方向の終端処理を行う場合のパケットの経路を示し、下り通信パケット終端経路２４は、ＵＲＬフィルタリング装置２−ＰＣ端末１間の下り方向の終端処理を行う場合のパケットの経路を示す。
【００１８】
つづいて、本実施の形態の動作について説明する。まず、パケットの通過を許可する通過動作について説明する。図２は、本実施の形態のＵＲＬフィルタリング方法のうち、パケットの通過動作の一例を示すシーケンス図である。図２では、簡単のため、ＰＣ端末１を端末、ＵＲＬフィルタリング装置２をＨＧＷ、ＷＥＢサーバ３をＷＥＢ、ＡＣＳサーバ４をＡＣＳとして記載している。
【００１９】
ＰＣ端末１がＷＥＢサーバ３にＨＴＴＰによるアクセスを要求する場合、まず、3way-handshakeの処理として、ＰＣ端末１は、接続要求を意味するＳＹＮパケットをＵＲＬフィルタリング装置２経由でＷＥＢサーバ３に送信する（ステップＳ１１，ステップＳ１２）。ＷＥＢサーバ３は、接続許可を意味するＡＣＫパケットと接続要求のＳＹＮパケットを組み合わせたパケットをＵＲＬフィルタリング装置２経由で端末１に送る（ステップＳ１３，ステップＳ１４）。ＰＣ端末１は、ＡＣＫパケットをＵＲＬフィルタリング装置２経由でＷＥＢサーバ３に送り（ステップＳ１５，ステップＳ１６）、ＰＣ端末１−ＷＥＢサーバ３間のコネクションが確立される。
【００２０】
この際、ＵＲＬフィルタリング装置２のパケット転送処理部１１は、ステップＳ１１でＰＣ端末１から受信したＳＹＮパケットの着ポート番号が、あらかじめ規定されたＨＴＴＰサービスポート番号であることを確認し、上位プロトコルがＨＴＴＰであるＴＣＰセッションの開始を検出する。ここで、パケット転送処理部１１は、一般的なＩＰルータのＩＰスタックの機能、すなわちＩＰパケット転送処理機能と、ＨＴＴＰ／ＴＣＰパケットの抽出機能と、を持つこととする。パケット転送処理部１１は、これ以降受信するパケットのプロトコル種別・ＩＰアドレス・ポート番号に基づいてＨＴＴＰセッションに属するＴＣＰパケットを判別し、判別したＴＣＰパケットをＴＣＰ層パケット処理部１２に通知することとする。
【００２１】
ＴＣＰ層パケット処理部１２は、ステップＳ１１，ステップＳ１５でそれぞれ送信されたパケットをパケット転送処理部１１から受け取り、そのパケットが3way-handshakeのためのパケットであることを検出すると、そのまま（素通し処理）、転送するパケットとしてパケット転送処理部１１に出力し、パケット転送処理部１１がそのパケットをＷＥＢサーバ３へ転送する（ステップＳ１２，ステップＳ１６）。また、ステップＳ１３で送信されたパケットをパケット転送処理部１１から受け取り、そのパケットが3way-handshakeのためのパケットであることを検出すると、そのまま、転送するパケットとしてパケット転送処理部１１に出力し、パケット転送処理部１１がそのパケットをＰＣ端末１に転送する（ステップＳ１４）。
【００２２】
このように、通常のパケットは、パケット転送処理部１１からＴＣＰ層パケット処理部１２を経由する上り通信パケット通常経路２１および下り通信パケット通常経路２２を経由する。
【００２３】
ステップＳ１１〜ステップＳ１６の3way-handshake処理の後に、ＰＣ端末１は、アクセスを要求するＨＴＴＰメソッドおよびＵＲＬを含むＨＴＴＰ／ＴＣＰパケットを送信する（ステップＳ１７）。ＵＲＬフィルタリング装置２は、以下に示すＵＲＬ抽出処理を実施する（ステップＳ１８）。
【００２４】
ＵＲＬ抽出処理としては、まず、ＵＲＬフィルタリング装置２のパケット転送処理部１１が、受信したＨＴＴＰ／ＴＣＰパケットをＴＣＰパケット層処理部１２へ通知する。ＴＣＰ層パケット処理部１２は、ＨＴＴＰ／ＴＣＰパケットのデータ部からＴＣＰデータ部をＨＴＴＰデータとして抽出し、抽出したＨＴＴＰデータをＨＴＴＰ構文解析処理部１３に通知する。また、このとき、ＴＣＰ層パケット処理部１２は、そのＨＴＴＰ／ＴＣＰパケットを保持する。
【００２５】
ＨＴＴＰ構文解析処理部１３は、通知されたＨＴＴＰデータをＨＴＴＰ構文フォーマットに従い構文解析（パース）処理を実行し、ＨＴＴＰアクセス要求であるかを判定する。なお、ＨＴＴＰ構文解析処理部１３は、各ＨＴＴＰ／ＴＣＰパケットに含まれるＨＴＴＰデータを全て順序どおりに連結し、ＴＣＰデータバイト列を完全に再生して構文解析を実施する処理としても良い。この場合、ＴＣＰ層パケット処理部１２は、受信したＨＴＴＰ／ＴＣＰパケットの順序制御処理を行う。すなわち、受信したＨＴＴＰ／ＴＣＰパケットの送信シーケンス番号をチェックし、欠落したパケットが無いかをチェックし、欠落している場合は、その欠落しているパケットが再送されるまで待ち合わせを行う。
【００２６】
また、ＨＴＴＰ構文解析処理部１３の処理は、もう少し処理を簡略化して、ＨＴＴＰアクセス要求のメッセージ境界とＴＣＰパケット中のＴＣＰデータの境界が揃っていると仮定し、各ＨＴＴＰ／ＴＣＰパケット単位でＨＴＴＰ構文解析を実施する処理としても良い。ただし、この場合、各ＨＴＴＰ／ＴＣＰパケットに完全なＨＴＴＰ構文が含まれない場合、問題が発生する可能性がある。
【００２７】
つぎに、ＨＴＴＰ構文解析処理部１３は、構文解析処理により受信したＨＴＴＰ／ＴＣＰパケットがＨＴＴＰアクセス要求を含まないと判定した場合、または、受信したＨＴＴＰ／ＴＣＰパケットに基づいてＨＴＴＰアクセス許可を判定するのが適当でないと判断した場合、そのＨＴＴＰ／ＴＣＰパケットの送信許可をＴＣＰ層パケット処理部１２に通知する。ＴＣＰ層パケット処理部１２は、保持しているＨＴＴＰ／ＴＣＰパケットの送信許可の通知を受け取ると、そのパケットを送信するパケットとしてパケット転送処理部１１に出力する。そして、パケット転送処理部１１が、ＷＥＢサーバ３へそのパケットを転送する。たとえば、ＨＴＴＰアクセス許可を判定するのが適当でないと判断する場合の一例として、各ＴＣＰパケットに完全なＨＴＴＰ構文が含まれない場合がある。この場合、パケット転送処理部１１は、完全なＨＴＴＰ構文を構成する最後のＴＣＰデータを含むＴＣＰパケットを保持対象としても良い。
【００２８】
一方、ＨＴＴＰ構文解析処理部１３が、構文解析処理により受信したＨＴＴＰ／ＴＣＰパケットがＨＴＴＰアクセス要求を含むと判定した場合、アクセスを要求するＨＴＴＰデータからＵＲＬ部を抽出し、要求ＵＲＬ通過判定処理部１４に抽出したＵＲＬを通知する。なお、図２では、ＨＴＴＰアクセス要求を含むと判定した例を示している。要求ＵＲＬ通過判定処理部１４は、通知されたＵＲＬを自装置が保持しているＵＲＬ許可情報に基づいて判定し、通過許可と判定した場合は、パケットの送信許可をＴＣＰ層パケット処理部１２に通知する。または、外部のＡＣＳサーバ４がＵＲＬ通過判定を行う場合には、ＡＣＳサーバ４に問い合わせを行う。具体的には、たとえば、抽出したＵＲＬ情報の判定を依頼するパケットを送信し（ステップＳ１９）、ＡＣＳサーバ４が保持しているＵＲＬ許可情報に基づいて判定する。そして、ＡＣＳサーバ４は、判定結果として許可となった場合はＵＲＬ許可応答を返送する（ステップＳ２０）。要求ＵＲＬ通過判定処理部１４は、一定時間内にＡＣＳサーバ４からＵＲＬアクセス許可応答を受信した場合、パケットの送信許可をＴＣＰ層パケット処理部１２に通知する。なお、ＡＣＳサーバ４を用いない場合には、ステップＳ１９、Ｓ２０を実施せず、上述のようにＵＲＬフィルタリング装置２内で判定を行う。
【００２９】
そして、ＴＣＰ層パケット処理部１２は、保持しているＨＴＴＰ／ＴＣＰパケットのうち送信許可されたパケットをＷＥＢサーバ３に転送する（ステップＳ２１）。その後は、後続パケットとして、ＷＥＢサーバ３からＵＲＬフィルタリング装置２経由でＰＣ端末１にデータを送信するためのＨＴＴＰ／ＴＣＰパケットが送信され（ステップＳ２２，２３）、ＰＣ端末１からＵＲＬフィルタリング装置２経由でＷＥＢサーバ３にＡＣＫパケットが送信される（ステップＳ２４，２５）。以降、同様に、ステップＳ２６〜ステップＳ３３により、ＷＥＢサーバ３からＰＣ端末１へのデータの送信とＰＣ端末１からＷＥＢサーバ３へのＡＣＫパケットの送信が繰り返され、ＰＣ端末１はＨＴＴＰアクセスを続行する。
【００３０】
つぎに、パケットの通過を許可しない遮断動作について説明する。図３は、本実施の形態のＵＲＬフィルタリング方法のうち、パケットの遮断動作の一例を示すシーケンス図である。まず、図２で説明した通過動作の場合と同様に、ステップＳ１１〜ステップＳ１８が実施される。図２の通過動作の場合は、ステップＳ１８のＵＲＬ抽出処理により、要求ＵＲＬ通過判定処理部１４が、通過許可と判定した場合を示したが、ここでは通過許可でない（アクセス拒否）と判定されたとする。
【００３１】
なお、外部のＡＣＳサーバ４がＵＲＬ通過判定を行う場合には、上述のように、ステップＳ１９、ステップＳ２０を実施し、ステップＳ２０で、アクセス拒否応答が送信される。
【００３２】
要求ＵＲＬ通過判定処理部１４は、自身がアクセス拒否と判定した場合、または、ＡＣＳサーバ４からアクセス拒否応答を一定時間内に受信した場合、ＨＴＴＰ応答作成処理部１５へアクセス拒否の判定結果を通知するとともにＴＣＰ終端処理開始を指示する。ＨＴＴＰ応答作成処理部１５は通知されたアクセス拒否に対応する応答メッセージ（４０３  forbiddenなど）を作成し、ＴＣＰ終端処理部１６にＴＣＰ終端処理の開始を通知するとともに応答メッセージを渡す。
【００３３】
ＴＣＰ終端処理部１６は、ＴＣＰ終端処理に必要な情報をＴＣＰ層パケット処理部１２から収集し、ＰＣ端末１との通信の経路を上り通信パケット終端経路２３に変更し、ＷＥＢサーバ３との通信を下り通信パケット終端経路２４に変更する。そして、ＴＣＰ終端処理部１６は、クライアント側ＴＣＰ終端処理を開始する（ステップＳ４１）。まず、ＴＣＰ終端処理部１６は、ＨＴＴＰ応答作成処理部１５が生成したアクセス拒否応答を示す応答メッセージ（４０３  forbidden）を含むＨＴＴＰ／ＴＣＰパケットをＰＣ端末１へ送信する（ステップＳ４２）。そして、ＴＣＰ終端処理部１６は、クライアント側ＴＣＰ終端処理として、ＦＩＮ／ＡＣＫパケットをＰＣ端末１に送信し（ステップＳ４３）、ＰＣ端末１がＦＩＮ／ＡＣＫパケットを返送し（ステップＳ４４）、さらに、ＴＣＰ終端処理部１６が、ＡＣＫパケットをＰＣ端末１に送信する（ステップＳ４５）。
【００３４】
クライアント側終端処理の実施後、ＴＣＰ終端処理部１６は、サーバ側ＴＣＰ終端処理を開始する（ステップＳ４６）。そして、サーバ側ＴＣＰ終端処理として、ＦＩＮ／ＡＣＫパケットをＷＥＢサーバ３に送信し（ステップＳ４７）、ＷＥＢサーバ３がＦＩＮ／ＡＣＫパケットを返送し（ステップＳ４８）、さらに、ＴＣＰ終端処理部１６が、ＡＣＫパケットをＷＥＢサーバ３に送信する（ステップＳ４９）。以上の処理により、ＰＣ端末１とＷＥＢサーバ間のＴＣＰセッションを遮断する。
【００３５】
つぎに、ＨＴＴＰリダイレクト応答処理について説明する。図４は、本実施の形態のＨＴＴＰリダイレクト応答処理の手順の一例を示すシーケンス図である。ステップＳ１１〜ステップＳ１９の処理は、図２の通過動作の場合と同様である。ただし、ここでは、ＡＣＳサーバ４を用いる場合を示したが、ＡＣＳサーバ４を用いない場合に、ステップＳ１８のＵＲＬ抽出処理が所定の時間内に終了しない場合も同様である。
【００３６】
ＰＣ端末１では、ステップＳ１７でクセスを要求するＨＴＴＰメソッドおよびＵＲＬを含むＨＴＴＰ／ＴＣＰパケットを送信してから所定の時間経過してもそのパケットに対する応答がなかった場合、タイムアウトのためそのパケットの再送が必要と判断し（ステップＳ５１）、ステップＳ１７で送信したパケットを再送する（ステップＳ５２）。ＴＣＰ層パケット処理部１２は、パケット転送処理部１１経由で受信したそのパケットが再送パケットであることを検出すると、ＵＲＬの判定処理が遅延していると判断して、ＨＴＴＰ応答作成処理部１５にリダイレクト処理を要求するリダイレクト処理要求を通知し、ＨＴＴＰ応答作成処理部１５は、リダイレクトにより再度同一のＵＲＬにアクセスを要求するようなＨＴＴＰ応答メッセージを生成する（ステップＳ５３）。
【００３７】
この際、たとえば、ＨＴＴＰ応答作成処理部１５は、ＰＣ端末１が通常のＨＴＭＬ構文を解釈する場合には、再度同一のＵＲＬへのアクセスを要求するHTTP  302応答を含む応答メッセージを生成し、その際に、再度アクセスさせるＵＲＬを302応答で規定されるLocation:フィールドに記載する。また、ＰＣ端末１がＨＴＭＬ構文中に埋め込まれたスクリプトまたはプログラムを解釈可能であり、該スクリプトまたはプログラムに従い動作する場合、そのスクリプトまたはプログラムとしてＰＣ端末１に一定時間後に再度同一URLへアクセスさせる動作を記述した内容を含む応答メッセージとしてもよい。なお、ＰＣ端末１がどのようなＨＴＴＰ応答を解釈可能かの判定は、ＨＴＴＰ要求メッセージのオプションフィールドから判定することができる。
【００３８】
つぎに、ＨＴＴＰ応答作成処理部１５は、生成した応答メッセージとともに、ＴＣＰ終端処理の開始をＴＣＰ終端処理部１６に通知する。ＴＣＰ終端処理部１６は、その応答メッセージをＰＣ端末１に送信し（ステップＳ５４）、ステップＳ４３〜ステップＳ４５と同様にＴＣＰセッションを切断するＴＣＰ終端処理を実施する（ステップＳ５５〜ステップＳ５７）。そして、ＷＥＢサーバ３側のＴＣＰ終端処理として、ステップＳ４７〜ステップＳ４９と同様にＴＣＰセッションを切断するＴＣＰ終端処理を実施する（ステップＳ５８〜ステップＳ６０）。
【００３９】
以上のように、ＴＣＰセッション切断後、ＰＣ端末１は、ステップＳ５４で送信された応答メッセージに基づいて、リダイレクト処理としてステップＳ１７で要求したＵＲＬと同一のＵＲＬへの再度アクセスを行うための処理を実行する（ステップＳ６２）。そして、ステップＳ１１〜ステップＳ１７を再度実施する。
【００４０】
一方、ＵＲＬフィルタリング装置２は、ＰＣ端末１がリダイレクト処理を実行している間に、ステップＳ１９で送信した判定依頼に対する応答を、ＡＣＳサーバ４から受信する（ステップＳ６１）と、その判定結果をたとえばＴＣＰ層パケット処理部１２が保持しておく。なお、ＡＣＳサーバ４に問い合わせをせずに、自身がＵＲＬ判定を実施する場合には、要求ＵＲＬ通過判定処理部１４が処理を終了し、処理結果をＴＣＰ層パケット処理部１２に通知し、ＴＣＰ層パケット処理部１２がその結果を保持すればよい。
【００４１】
ＴＣＰ層パケット処理部１２は、リダイレクト処理によるステップＳ１７のパケットを受信すると、すでにそのパケットが要求するＵＲＬの判定結果を保持しているため、その結果に基づいて以降の処理を実施する。以降の処理は、図３の通過動作の判定後の処理、図４の遮断動作の判定後の処理と同様であるが、遮断判定の場合、たとえば、その結果が遮断判定であった場合には、アクセス拒否応答を含むＨＴＴＰ／ＴＣＰパケット（たとえば、４０３  forbidden）を送信してもよい（ステップＳ６４）。
【００４２】
つぎに、本実施の形態のＴＣＰ終端処理について詳細に説明する。図５−１〜５−３は、図４のシーケンス図で送受信されるＴＣＰパケットの送信シーケンス番号、ＡＣＫシーケンス番号、ＴＣＰメッセージ長の一例を示す図である。なお、図５−１では、3way-handshake処理とＨＴＴＰ要求メッセージ（再送も含む）について、図５−２では、クライアント側のＴＣＰ終端処理について、図５−３では、サーバ側のＴＣＰ終端処理について示している。
【００４３】
図５−１〜５−３では、左の欄から順に、図４のステップ番号、そのパケットの送信方向である方向、送信シーケンス番号、ＡＣＫシーケンス番号、ＴＣＰメッセージ長を示している。方向の欄では、クライアントであるＰＣ端末１をＣと表記し、ＷＥＢサーバ３をＳと表記し、ＵＲＬフィルタリング装置２をＵと表記している。また、ＩＳＮｃはＰＣ端末１の初期シーケンス番号（Initial  Sequence  Number：以下ＩＳＮ）であり、ＩＳＮｓはＷＥＢサーバ３の初期シーケンス番号である。
【００４４】
なお、ＴＣＰでは、ＳＹＮビット・ＦＩＮビットは、送信シーケンス番号を＋１増加させるため、ここでは、便宜上ＴＣＰメッセージ長の欄に（１）として示している。
【００４５】
ステップＳ１１〜ステップＳ１７のＴＣＰの3way-handshake処理の後、ＰＣ端末１は、要求ＵＲＬを含むＨＴＴＰ要求メッセージを送信し、また、ステップＳ５２で再送する。ＴＣＰ層パケット処理部１２は、受信するメッセージ（パケット）の送信シーケンス番号、ＡＣＫシーケンス番号を監視している。
【００４６】
ＵＲＬフィルタリング装置２が、ＴＣＰ終端処理を開始する（ステップＳ５５）と、ＴＣＰ終端処理部１６は、ＴＣＰ層パケット処理部１２からＰＣ端末１−ＷＥＢサーバ３間で使用している最新の送信シーケンス番号およびＡＣＫシーケンス番号を取得する。つぎに、ＴＣＰ終端処理部１６は、ステップＳ５４で送信する応答メッセージを送信する際の送信シーケンス番号およびＡＣＫシーケンス番号は、図５−１の最下段の情報に基づいて生成する。具体的には、送信シーケンス番号は、図５−１の最下段の値（ステップＳ１７で送信されたメッセージの値）と同一とし、ＡＣＫシーケンス番号は、図５−１の最下段の値に再下段のＴＣＰメッセージ長（ＨＴＴＰｒ）を加えて生成する。このように、ＵＲＬフィルタリング装置２とＰＣ端末１間の通信では、ＴＣＰメッセージ長を考慮して、図５−２に示すようなＡＣＫシーケンス番号を生成する。
【００４７】
また、ＵＲＬフィルタリング装置２とＷＥＢサーバ３間の通信では、図５−３に示すように、図５−１の最下段の値と送信シーケンス番号、ＡＣＫシーケンス番号ともに、同一とする。
【００４８】
ＴＣＰ終端処理部１６は、上記のように、ＵＲＬフィルタリング装置２とＰＣ端末１間の送信シーケンス番号およびＡＣＫシーケンス番号と、ＵＲＬフィルタリング装置２とＷＥＢサーバ３間の送信シーケンス番号およびＡＣＫシーケンス番号と、を個別に管理する。
【００４９】
なお、本実施の形態では、上述のリダイレクト応答処理を3way-handshake処理によりＴＣＰセッションが確立された後の、最初のＵＲＬアクセス要求に対して実施する例を示したが、これに限らず、たとえば、ＨＴＴＰ１．１で記述されるＨＴＴＰ  keep-alive機能によってＰＣ端末１から通知される、後続のＨＴＴＰのＵＲＬ要求に対してもリダイレクト応答を返すようにしてもよい。
【００５０】
以上のように、本実施の形態では、ＵＲＬフィルタリング装置２が、通常時は、ＴＣＰ層パケット処理部１２が、ＴＣＰ終端処理を行わずに、ＨＴＴＰデータを抽出し、ＨＴＴＰ構文解析処理部１３がＨＴＴＰデータにＵＲＬへのアクセス要求が含まれると判断した場合には、要求ＵＲＬ通過判定処理部１４がＵＲＬの通過／アクセス拒否の判定を実施し（または、ＡＣＳサーバ４からＵＲＬの判定の問い合わせを行い）、アクセス拒否の判定結果であった場合には、ＴＣＰ終端処理を実施するようにした。そのため、通常処理時には、従来のＨＴＴＰプロキシ動作や透過型プロキシ動作で必要となるＴＣＰセッション終端を行う必要がない。したがって、ＴＣＰ終端処理をソフトウェア処理で実行することによるスループットの低下を回避し、アクセス回線速度に応じたＴＣＰレベルスループットを提供できる。
【００５１】
また、一定時間内に要求ＵＲＬに対する判定結果が得られない場合、新しいＴＣＰセッションに張り替えるリダイレクト処理を実行するようにしている。このため、要求ＵＲＬを含むＴＣＰパケットの送信が長時間保留された場合も、ＴＣＰセッション切断の誤検出やＴＣＰレベルスループットの低下を回避できる。また、ＴＣＰパケットの送信を長時間保留できるので、逆に要求ＵＲＬに対して判定結果を応答するまでの時間を長くすることができる。
【００５２】
また、上記のように判定結果を応答するまでの時間を長くすることが可能なので、ＵＲＬフィルタリング装置２が内部でＵＲＬ判定を実施する場合に、装置の演算処理装置の処理能力が低い場合や比較対照するＵＲＬ情報量が多い場合でも、ＵＲＬ判定を実施することができる。
【００５３】
また、上記のように判定結果を応答するまでの時間を長くすることが可能なので、外部のＡＣＳサーバ４にＵＲＬ判定を依頼する場合、判定を依頼されるＡＣＳサーバ４はＵＲＬ判定結果を即座に応答する必要がなくなる。そのため、ＡＣＳサーバ４が、複数のＵＲＬフィルタリング装置からのＵＲＬ判定要求を受け付ける場合、１台のＡＣＳ４が、より多くのＵＲＬフィルタリング装置を収容できる。さらに、その結果、ＡＣＳサーバ４の提供者は、用意すべきＡＣＳサーバ数を削減でき、ＡＣＳサーバの機器コストや運用コストを削減することができる、という効果がある。
【００５４】
実施の形態２．
図６は、本発明にかかるＵＲＬフィルタリング装置の実施の形態２の機能構成例を示す図である。図６に示すように本実施の形態のＵＲＬフィルタリング装置２ａは、実施の形態１のＵＲＬフィルタリング装置２にネットワークプロセッサのようなハードウェアで固定的に転送処理を実行する固定転送処理部１７を追加する以外は、実施の形態１のＵＲＬフィルタリング装置２と同様である。実施の形態１と同一の機能を有する構成要素は、実施の形態１と同一の符号を付して説明を省略する。
【００５５】
本実施の形態では、実施の形態１に比べ、パケット転送に要するソフトウェア処理を軽減した処理を実施する。図６の下り通信パケット通常経路２２ａは、本実施の形態の下り方向の通常パケットの経路を示している。
【００５６】
つづいて、本実施の形態の動作について説明する。本実施の形態では、パケット転送処理部１１は、上り方向パケットのみＴＣＰ層パケット処理部１２に通知する。下り方向のパケットは、固定転送処理部１７が、固定的な転送処理により転送処理を実施する。このため、本実施の形態ではパケット転送処理部１１は、上り方向のパケットのみをシーケンス番号の監視対象とする。
【００５７】
すなわち、たとえば、実施の形態１のステップＳ１３で受信したパケットは、固定転送処理部１７が、固定的な処理によりＰＣ端末１へ転送を実施する。上り方向のパケットについては、実施の形態１と同様の処理を実施する。
【００５８】
この構成では、図４を例にすると、ＴＣＰ層パケット処理部１２は、ＴＣＰ終端処理の開始前に、送信シーケンス番号およびＡＣＫシーケンス番号をステップＳ１１，ステップＳ１５，ステップＳ５２で送信されたパケットからしか得られない。しかし、ＴＣＰ終端処理時の最初のＰＣ端末１−ＵＲＬフィルタリング装置２間の送信パケットであるステップＳ５４で送信するパケットについて考えると、このパケットの送信時に必要とされる送信シーケンス番号およびＡＣＫシーケンス番号はステップＳ１７またはステップＳ５２で送信されたパケットから得られるため問題ない。また、ＴＣＰ終端処理時の最初のＵＲＬフィルタリング装置２−ＷＥＢサーバ３間の送信パケットであるステップＳ５８で送信するパケットについても同様である。
【００５９】
なお、ＴＣＰ終端処理開始後の処理は、上りパケットについても、実施の形態１と同様に下り通信パケット終端経路２４の経路を経由する処理とする。以上説明した以外の本実施の形態の動作は実施の形態１と同様である。
【００６０】
以上のように、本実施の形態では、通常の（ＴＣＰ終端処理を行わない）上り方向のパケットは、実施の形態１と同様の処理とし、通常の下り方向のパケットは、固定転送処理部１７が、ハードウェアによる固定的な処理により実施するようにした。そのため、下り方向のスループットを実施の形態１に比べ向上させることができる。
【００６１】
実施の形態３．
図７は、本発明にかかるＵＲＬフィルタリング装置の実施の形態３の機能構成例を示す図である。図７に示すように本実施の形態のＵＲＬフィルタリング装置２ｂは、実施の形態２のＵＲＬフィルタリング装置２ａのＴＣＰ終端処理部１６をＴＣＰ簡易終端処理部１６ａに変更する以外は、実施の形態２のＵＲＬフィルタリング装置２ａと同様である。実施の形態２と同一の機能を有する構成要素は、実施の形態２と同一の符号を付して説明を省略する。
【００６２】
図８は、本実施の形態のＴＣＰ終端処理手順の一例を示すシーケンス図である。まず、図４で説明した実施の形態１の動作と同様に、ステップＳ１１〜ステップＳ１９，ステップＳ５２，Ｓ５３の処理を実施する。そして、その後、ＴＣＰ簡易終端処理部１６ａは、ステップＳ５４と同様の処理により送信した応答メッセージとＴＣＰ終端処理としてのＦＩＮ／ＡＣＫとを含むパケットを送信し、このパケットがＰＣ端末１に到着しなかったとする（ステップＳ７１）。
【００６３】
ＰＣ端末１は、ステップＳ５２でパケットを送信してから所定の時間が経過してもそのパケットに対する応答が無い場合、タイムアウトによる再送処理を開始し、ステップＳ１７で送信したパケットを再送する（ステップＳ７３）。
【００６４】
ＴＣＰ簡易終端処理部１６ａは、ステップＳ７３で送信されたパケットを受信すると、ステップＳ７１で送信したパケットと同様のパケットを再送する（ステップＳ７４）。そして、今後は、ＰＣ端末１が、ステップＳ７４で送信したパケットを受信し、ＦＩＮ／ＡＣＫパケットを送信し（ステップＳ７５）、ＴＣＰ簡易終端処理部１６ａは、ステップＳ７５で送信されたパケットを受信すると、ＡＣＫパケットを送信する（ステップＳ７６）。
【００６５】
実施の形態１のＴＣＰ終端処理部１６の場合、たとえば、ステップＳ７１で送信したパケットに対する応答が所定の時間内に到着しない場合には、自身がタイムアウトを判断し、パケットを再送する。これに対し、本実施の形態のＴＣＰ簡易終端処理部１６ａは、このように、自身の送信パケットのタイムアウトの監視はせず、通信相手からパケットを受信した場合にその応答となるＴＣＰパケットを送信するように簡略化している。
【００６６】
そして、ＴＣＰ簡易終端処理部１６ａは、サーバ側のＴＣＰ終端処理として、ＦＩＮ／ＡＣＫパケットを送信し、このパケットがＷＥＢサーバ３に所定の時間内に到着しなかったとする（ステップＳ７７）。ＷＥＢサーバ３は、所定の時間が経過してもＵＲＬフィルタリング処理装置２ｂからパケットが送信されない場合、再送が必要であると判断し（ステップＳ７８）、ＡＣＫパケットを再送する（ステップＳ７９）。
【００６７】
ＴＣＰ簡易終端処理部１６ａは、ＷＥＢサーバ３からＡＣＫパケットを受信した場合には、ステップＳ７７で送信したパケットが到着していないと判断し、ステップＳ７７で送信したＦＩＮ／ＡＣＫパケットを再送する（ステップＳ８０）。そして、ＷＥＢサーバ３が、ＵＲＬフィルタリング装置２ｂへＦＩＮ／ＡＣＫパケットを送信し（ステップＳ８１）、ＵＲＬフィルタリング装置２ｂのＴＣＰ簡易終端処理部１６ａは、ＡＣＫパケットをＷＥＢサーバ３へ送信する（ステップＳ８２）。
【００６８】
以上説明した以外の本実施の形態の動作は実施の形態２と同様である。なお、本実施の形態では、実施の形態２のＵＲＬフィルタリング装置２ａのＴＣＰ終端処理部１６をＴＣＰ簡易終端処理部１６ａに替えた構成としているが、実施の形態１のＵＲＬフィルタリング装置２のＴＣＰ終端処理部１６をＴＣＰ簡易終端処理部１６ａに替え、上述のＴＣＰ簡易終端処理部１６ａの処理を実施するようにしてもよい。
【００６９】
以上のように、本実施の形態では、ＴＣＰ簡易終端処理部１６ａは、通信相手（ＰＣ端末１またはＷＥＢサーバ３）からＴＣＰパケットを受信した場合にその応答となるＴＣＰパケットを送信するようにした。このため、通常のＴＣＰ終端処理で必要になる再送タイマ処理や輻輳回避などの複雑なＴＣＰ処理動作を実施することなく、ＴＣＰセッションを終端することができる。そのため、実施の形態１、２に比べ、ＴＣＰ簡易終端処理部１６ａの処理を軽減することができる。
【産業上の利用可能性】
【００７０】
以上のように、本発明にかかるＵＲＬフィルタリング装置およびＵＲＬフィルタリング方法は、ＵＲＬのフィルタリングを行う通信システムに有用であり、特に、高いスループットを実現する通信システムに適している。
【図面の簡単な説明】
【００７１】
【図１】本発明にかかるＵＲＬフィルタリング装置の実施の形態１の機能構成例を示す図である。
【図２】実施の形態１のパケットの通過動作の一例を示すシーケンス図である。
【図３】実施の形態１のパケットの遮断動作の一例を示すシーケンス図である。
【図４】実施の形態１のＨＴＴＰリダイレクト応答処理の手順の一例を示すシーケンス図である。
【図５−１】ＴＣＰパケットの送信シーケンス番号、ＡＣＫシーケンス番号、ＴＣＰメッセージ長の一例を示す図である。
【図５−２】ＴＣＰパケットの送信シーケンス番号、ＡＣＫシーケンス番号、ＴＣＰメッセージ長の一例を示す図である。
【図５−３】ＴＣＰパケットの送信シーケンス番号、ＡＣＫシーケンス番号、ＴＣＰメッセージ長の一例を示す図である。
【図６】実施の形態２のＵＲＬフィルタリング装置の機能構成例を示す図である。
【図７】実施の形態３のＵＲＬフィルタリング装置の機能構成例を示す図である。
【図８】実施の形態３のＴＣＰ終端処理手順の一例を示すシーケンス図である。
【符号の説明】
【００７２】
１  ＰＣ端末
２，２ａ，２ｂ  ＵＲＬフィルタリング装置
３  ＷＥＢサーバ
４  ＡＣＳサーバ
１１  パケット転送処理部
１２  ＴＣＰ層パケット処理部
１３  ＨＴＴＰ構文解析処理部
１４  要求ＵＲＬ通過判定処理部
１５  ＨＴＴＰ応答作成処理部
１６  ＴＣＰ終端処理部
１６ａ  ＴＣＰ簡易終端処理部
１７  固定転送処理部
２１  上り通信パケット通常経路
２２，２２ａ  下り通信パケット通常経路
２３  上り通信パケット終端経路
２４  下り通信パケット終端経路
【図１】
2010244134.tif 000003
【図２】
2010244134.tif 000004
【図３】
2010244134.tif 000005
【図４】
2010244134.tif 000006
【図５−１】
2010244134.tif 000007
【図５−２】
2010244134.tif 000008
【図５−３】
2010244134.tif 000009
【図６】
2010244134.tif 000010
【図７】
2010244134.tif 000011
【図８】
2010244134.tif 000012