(57)【要約】【課題】不正な通信相手からのパケットを破棄するフィルタリング機能を有する場合に、通信相手との通信開始時にＴＣＰタイムアウトが発生するまで生じるブロック動作を回避する。【解決手段】クライアント機器１００のクライアントアプリケーション処理部１１０は、Ｓｏｃｋｅｔ処理部１２０を呼び出してオープン処理を行い、記憶部１４０が記憶する他の装置のＩＰアドレスおよびポート番号をｓｏｃｋｅｔの接続先として指定するとともにノンブロックモードを指定してｃｏｎｎｅｃｔ処理を開始させ、タイムアウト機能付きでｓｏｃｋｅｔに対する書き込みが可能になるか否かを監視する旨を指定してｓｅｌｅｃｔ処理を開始させ、タイムアウトが発生するまでに、ｓｏｃｋｅｔに対して書き込み可能になった旨を示す情報がＳｏｃｋｅｔ処理部１２０から出力されたか否かを判断する。【選択図】図１
2010187070.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して他の装置とパケットの送受信を行うことが可能な通信部と、
前記他の装置のＩＰアドレスおよびポート番号を記憶する記憶部と、
前記通信部がパケットを受信すると、受信した前記パケットに対してフィルタリングを行うことによって、前記パケットを破棄または通過させるパケットフィルタ処理部と、
前記パケットフィルタ処理部によって通過された前記パケットの入力を受け付けることが可能であり、呼び出し元からｓｏｃｋｅｔに対するオープン処理がなされると、前記呼び出し元によって指定された接続先に対して指定されたモードに従ってｃｏｎｎｅｃｔ処理を行い、前記呼び出し元によって指定されたモードに従ってｓｅｌｅｃｔ処理を行うとともに前記ｓｅｌｅｃｔ処理の結果を出力し、ｓｏｃｋｅｔによる通信を前記呼び出し元に提供するＳｏｃｋｅｔ処理部と、
前記Ｓｏｃｋｅｔ処理部を呼び出して前記オープン処理を行い、前記記憶部が記憶する前記他の装置のＩＰアドレスおよびポート番号を前記ｓｏｃｋｅｔの接続先として指定するとともにノンブロックモードを指定して前記ｃｏｎｎｅｃｔ処理を開始させ、タイムアウト機能付きで前記ｓｏｃｋｅｔに対する書き込みが可能になるか否かを監視する旨を指定して前記ｓｅｌｅｃｔ処理を開始させ、前記タイムアウトが発生するまでに、前記ｓｏｃｋｅｔに対して書き込み可能になった旨を示す情報が前記Ｓｏｃｋｅｔ処理部から出力されたか否かを判断するアプリケーション処理部と、
を備える、情報処理装置。
【請求項２】
前記アプリケーション処理部は、
前記ｓｏｃｋｅｔを前記ノンブロックモードに指定して前記ｃｏｎｎｅｃｔ処理を開始させると、前記ｃｏｎｎｅｃｔ処理に失敗した旨を示す情報の入力を前記Ｓｏｃｋｅｔ処理部から受け付け、当該情報を無視して前記ｓｅｌｅｃｔ処理を開始させる、
請求項１に記載の情報処理装置。
【請求項３】
前記Ｓｏｃｋｅｔ処理部は、
前記ｃｏｎｎｅｃｔ処理に失敗した場合に、ｃｏｎｎｅｃｔ処理に失敗した旨の情報を前記アプリケーション処理部に出力するとともに、バックグラウンドでｃｏｎｎｅｃｔ処理を継続する、
請求項１に記載の情報処理装置。
【請求項４】
ネットワークを介して他の装置とパケットの送受信を行うことが可能な通信部と、
前記他の装置のＩＰアドレスおよびポート番号を記憶する記憶部と、
前記通信部がパケットを受信すると、受信した前記パケットに対してフィルタリングを行うことによって、前記パケットを破棄または通過させるパケットフィルタ処理部と、
前記パケットフィルタ処理部によって通過された前記パケットの入力を受け付けることが可能であり、呼び出し元からｓｏｃｋｅｔに対するオープン処理がなされると、前記呼び出し元によって指定された接続先に対して指定されたモードに従ってｃｏｎｎｅｃｔ処理を行い、前記呼び出し元によって指定されたモードに従ってｓｅｌｅｃｔ処理を行うとともに前記ｓｅｌｅｃｔ処理の結果を出力し、ｓｏｃｋｅｔによる通信を前記呼び出し元に提供するＳｏｃｋｅｔ処理部と、アプリケーション処理部と、を備える情報処理装置が、
前記アプリケーション処理部により、
前記Ｓｏｃｋｅｔ処理部を呼び出して前記オープン処理を行うステップと、
前記記憶部が記憶する前記他の装置のＩＰアドレスおよびポート番号を前記Ｓｏｃｋｅｔの接続先として指定するとともにノンブロックモードを指定して前記ｃｏｎｎｅｃｔ処理を開始させるステップと、
タイムアウト機能付きで前記ｓｏｃｋｅｔに対する書き込みが可能になるか否かを監視する旨を指定して前記ｓｅｌｅｃｔ処理を開始させるステップと、
前記タイムアウトが発生するまでに、前記ｓｏｃｋｅｔに対して書き込み可能になった旨を示す情報が前記Ｓｏｃｋｅｔ処理部から出力されたか否かを判断するステップと、
を含む、情報処理方法。
【請求項５】
ネットワークを介して他の装置とパケットの送受信を行うことが可能な通信部と、
前記他の装置のＩＰアドレスおよびポート番号を記憶する記憶部と、
前記通信部がパケットを受信すると、受信した前記パケットに対してフィルタリングを行うことによって、前記パケットを破棄または通過させるパケットフィルタ処理部と、
前記パケットフィルタ処理部によって通過された前記パケットの入力を受け付けることが可能であり、呼び出し元からｓｏｃｋｅｔに対するオープン処理がなされると、前記呼び出し元によって指定された接続先に対して指定されたモードに従ってｃｏｎｎｅｃｔ処理を行い、前記呼び出し元によって指定されたモードに従ってｓｅｌｅｃｔ処理を行うとともに前記ｓｅｌｅｃｔ処理の結果を出力し、ｓｏｃｋｅｔによる通信を前記呼び出し元に提供するＳｏｃｋｅｔ処理部と、アプリケーション処理部と、を備える情報処理装置が、
前記アプリケーション処理部により、
前記Ｓｏｃｋｅｔ処理部を呼び出して前記オープン処理を行うステップと、
前記記憶部が記憶する前記他の装置のＩＰアドレスおよびポート番号を前記ｓｏｃｋｅｔの接続先として指定するとともにノンブロックモードを指定して前記ｃｏｎｎｅｃｔ処理を開始させるステップと、
タイムアウト機能付きで前記ｓｏｃｋｅｔに対する書き込みが可能になるか否かを監視する旨を指定して前記ｓｅｌｅｃｔ処理を開始させるステップと、
前記タイムアウトが発生するまでに、前記ｓｏｃｋｅｔに対して書き込み可能になった旨を示す情報が前記Ｓｏｃｋｅｔ処理部から出力されたか否かを判断するステップと、
を含む、情報処理方法を、コンピュータに実行させるためのプログラム。
【請求項６】
情報提供装置と、前記情報提供装置とネットワークを介して相互に通信を行うことが可能である情報処理装置とを有する情報処理システムであって、
前記情報処理装置は、
ネットワークを介して前記情報提供装置とパケットの送受信を行うことが可能な通信部と、
前記情報提供装置のＩＰアドレスおよびポート番号を記憶する記憶部と、
前記通信部がパケットを受信すると、受信した前記パケットに対してフィルタリングを行うことによって、前記パケットを破棄または通過させるパケットフィルタ処理部と、
前記パケットフィルタ処理部によって通過された前記パケットの入力を受け付けることが可能であり、呼び出し元からｓｏｃｋｅｔに対するオープン処理がなされると、前記呼び出し元によって指定された接続先に対して指定されたモードに従ってｃｏｎｎｅｃｔ処理を行い、前記呼び出し元によって指定されたモードに従ってｓｅｌｅｃｔ処理を行うとともに前記ｓｅｌｅｃｔ処理の結果を出力し、ｓｏｃｋｅｔによる通信を前記呼び出し元に提供するＳｏｃｋｅｔ処理部と、
前記Ｓｏｃｋｅｔ処理部を呼び出して前記オープン処理を行い、前記記憶部が記憶する前記情報提供装置のＩＰアドレスおよびポート番号を前記ｓｏｃｋｅｔの接続先として指定するとともにノンブロックモードを指定して前記ｃｏｎｎｅｃｔ処理を開始させ、タイムアウト機能付きで前記ｓｏｃｋｅｔに対する書き込みが可能になるか否かを監視する旨を指定して前記ｓｅｌｅｃｔ処理を開始させ、前記タイムアウトが発生するまでに、前記ｓｏｃｋｅｔに対して書き込み可能になった旨を示す情報が前記Ｓｏｃｋｅｔ処理部から出力されたか否かを判断するアプリケーション処理部と、
を備え、
前記情報提供装置は、
前記ネットワークを介して前記情報処理装置とパケットの送受信を行うことが可能な通信部と、
前記通信部がパケットを受信すると、受信した前記パケットに対してフィルタリングを行うことによって、前記パケットを破棄または通過させるパケットフィルタ処理部と、
前記パケットフィルタ処理部によって通過された前記パケットの入力を受け付けることが可能であり、呼び出し元からｓｏｃｋｅｔに対するオープン処理がなされると、前記情報処理装置からのアクセスを待ち受けるｌｉｓｔｅｎ処理を行い、前記情報処理装置からのアクセスを受け付けるａｃｃｅｐｔ処理を行うＳｏｃｋｅｔ処理部と、
前記Ｓｏｃｋｅｔ処理部を呼び出して前記オープン処理を行い、前記ｌｉｓｔｅｎ処理を開始させ、前記ａｃｃｅｐｔ処理を開始させるアプリケーション処理部と、
を備える、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、プログラムおよび情報処理システムに関する。
【背景技術】
【０００２】
近年、不正アクセスを防止するために、ファイヤーウォールが広く一般に使われている。ファイヤーウォールとは、インターネットなどの信頼できないネットワークからの攻撃や不正アクセスから、組織内部のネットワークを保護するためのシステムである。このファイヤーウォールに使用される技術の一つに、パケットフィルタリングという機能がある。パケットフィルタリングとは、主に、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）モデルのインターネット層に相当する機能であり、パケットの送信元や送信先、ＩＰアドレス／ポート番号／通信の方向などの情報を基に、パケットの通過、破棄を選択的に行うことである（例えば、特許文献１参照）。
【０００３】
サーバとクライアントとを備えるサーバ−クライアントモデルにより構成され、実現されている特定のサービスにおいて、パケットフィルタリングを行う場合を考える。情報通信における、サーバ−クライアントモデルにおいて、サーバ側のＩＰアドレスおよびポート番号は通信開始前に既知である。それに対し、クライアント側について、ＩＰアドレスは既知であるが、ポート番号は既知でない。つまり、クライアント側のポート番号は通信が確立してから決定される。従って、上記通信においてパケットフィルタリングを行う場合には、サーバ側のＩＰアドレスとポート番号とを使えばよいことは容易に想像できる。サーバ側でパケットフィルタリングを行う場合にはこの方法で問題は生じない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３２５２９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、クライアント側では問題が発生することがある。具体的には、クライアント側のパケットフィルタがサーバからの不正パケットを検出してパケットを破棄すると、クライアント側のアプリケーションプログラムにとっては、サーバからの応答がないようにみえるという問題が起こりうる。そのため、通信のタイムアウト（ＴＣＰによるタイムアウト）が発生するまで、クライアント側のアプリケーションプログラムによる処理が止まってしまう（「ブロック動作」ともいう）という問題が発生しうる。停止時間は、ＴＣＰによるタイムアウト（以下、「ＴＣＰタイムアウト」ともいう）の場合、一般的に３分から５分程度である。また、ＴＣＰタイムアウトが発生するまでの設定時間を変更することが許されていない場合もある。
【０００６】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、通信相手のＩＰアドレスとポート番号とを用いて不正な通信相手からのパケットを破棄するフィルタリング機能を有する場合に、ＴＣＰタイムアウトが発生するまでの設定時間を変更せずに、通信相手との通信開始時にＴＣＰタイムアウトが発生するまで生じるブロック動作を回避することが可能な、新規かつ改良された技術を提供しようとするものである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある観点によれば、ネットワークを介して他の装置とパケットの送受信を行うことが可能な通信部と、他の装置のＩＰアドレスおよびポート番号を記憶する記憶部と、通信部がパケットを受信すると、受信したパケットに対してフィルタリングを行うことによって、パケットを破棄または通過させるパケットフィルタ処理部と、パケットフィルタ処理部によって通過されたパケットの入力を受け付けることが可能であり、呼び出し元からｓｏｃｋｅｔに対するオープン処理がなされると、呼び出し元によって指定された接続先に対して指定されたモードに従ってｃｏｎｎｅｃｔ処理を行い、呼び出し元によって指定されたモードに従ってｓｅｌｅｃｔ処理を行うとともにｓｅｌｅｃｔ処理の結果を出力し、ｓｏｃｋｅｔによる通信を呼び出し元に提供するＳｏｃｋｅｔ処理部と、Ｓｏｃｋｅｔ処理部を呼び出してオープン処理を行い、記憶部が記憶する他の装置のＩＰアドレスおよびポート番号をｓｏｃｋｅｔの接続先として指定するとともにノンブロックモードを指定してｃｏｎｎｅｃｔ処理を開始させ、タイムアウト機能付きでｓｏｃｋｅｔに対する書き込みが可能になるか否かを監視する旨を指定してｓｅｌｅｃｔ処理を開始させ、タイムアウトが発生するまでに、ｓｏｃｋｅｔに対して書き込み可能になった旨を示す情報がＳｏｃｋｅｔ処理部から出力されたか否かを判断するアプリケーション処理部と、を備える、情報処理装置が提供される。
【０００８】
上記したアプリケーション処理部は、ｓｏｃｋｅｔをノンブロックモードに指定してｃｏｎｎｅｃｔ処理を開始させると、ｃｏｎｎｅｃｔ処理に失敗した旨を示す情報の入力をＳｏｃｋｅｔ処理部から受け付け、この情報を無視してｓｅｌｅｃｔ処理を開始させることとしてもよい。
【０００９】
上記したＳｏｃｋｅｔ処理部は、ｃｏｎｎｅｃｔ処理に失敗した場合に、ｃｏｎｎｅｃｔ処理に失敗した旨の情報をアプリケーション処理部に出力するとともに、バックグラウンドでｃｏｎｎｅｃｔ処理を継続することとしてもよい。
【発明の効果】
【００１０】
以上説明したように本発明によれば、通信相手のＩＰアドレスとポート番号とを用いて不正な通信相手からのパケットを破棄するフィルタリング機能を有する場合に、ＴＣＰタイムアウトが発生するまでの設定時間を変更せずに、通信相手との通信開始時にＴＣＰタイムアウトが発生するまで生じるブロック動作を回避することが可能である。
【図面の簡単な説明】
【００１１】
【図１】情報処理システムの機能構成を示すブロック図である。
【図２】情報処理システムの各機能ブロックとＴＣＰ／ＩＰモデルとの関係を示す図である。
【図３】クライアント機器のハードウェア構成を示すブロック図である。
【図４】サーバ機器のハードウェア構成を示すブロック図である。
【図５】一般的なサーバ機器の動作を示すフローチャートである。
【図６】一般的なクライアント機器の動作を示すフローチャートである。
【図７】本実施形態にかかるクライアント機器の動作を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。なお、説明は以下の順序で行う。
【００１３】
１．    第１実施形態
１−１．  情報処理システムの機能構成
１−２．  各機能ブロックとＴＣＰ／ＩＰモデルとの関係
１−３．  クライアント機器のハードウェア構成
１−４．  サーバ機器のハードウェア構成
１−５．  一般的なサーバ機器の動作（両機器が正常な場合）
１−６．  一般的なサーバ機器の動作（クライアント機器が不正な場合）
１−７．  一般的なクライアント機器の動作（両機器が正常な場合）
１−８．  一般的なクライアント機器の動作（サーバ機器が不正な場合）
１−９．  本発明の第１実施形態にかかるクライアント機器の動作
２．    本実施形態の変形例
３．    まとめ
【００１４】
＜１．第１実施形態＞
本発明の第１実施形態について説明する。
【００１５】
［１−１．情報処理システムの機能構成］
本発明の第１実施形態にかかる情報処理システムの機能構成について説明する。図１は、本発明の第１実施形態にかかる情報処理システムの機能構成を示すブロック図である。以下、図１を用いて本発明の第１実施形態にかかる情報処理システムの機能構成について説明する。
【００１６】
図１に示すように、本発明の第１実施形態にかかる情報処理システムは、情報処理装置の一例としてのクライアント機器１００と情報提供装置の一例としてのサーバ機器２００とが、インターネット等のネットワーク３００を介して接続されて構成されている。サーバ機器２００は、主に、情報提供側の機器として機能し、クライアント機器１００は、主に、情報受取側の機器として機能する。
【００１７】
クライアント機器１００は、クライアントアプリケーション処理部１１０と、Ｓｏｃｋｅｔ処理部１２０と、パケットフィルタ処理部１３０と、記憶部１４０と、通信部１５０とを備えて構成される。
【００１８】
通信部１５０は、通信装置等によって構成され、ネットワーク３００を介して他の装置の一例としてのサーバ機器２００とパケットの送受信を行うことが可能である。
【００１９】
記憶部１４０は、他の装置の一例としてのサーバ機器２００のＩＰアドレスおよびポート番号を記憶するものである。記憶部１４０は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等により構成され、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。
【００２０】
パケットフィルタ処理部１３０は、例えば、ＣＰＵ、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ等から構成されるものである。パケットフィルタ処理部１３０は、通信部１５０がパケットを受信すると、受信したパケットに対してフィルタリングを行うことによって、パケットを破棄または通過させる。
【００２１】
Ｓｏｃｋｅｔ処理部１２０は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されるものである。Ｓｏｃｋｅｔ処理部１２０は、パケットフィルタ処理部１３０によって通過されたパケットの入力を受け付けることが可能である。Ｓｏｃｋｅｔ処理部１２０は、呼び出し元からｓｏｃｋｅｔに対するオープン処理がなされると、呼び出し元によって指定された接続先に対して指定されたモードに従ってｃｏｎｎｅｃｔ処理を行う。そして、Ｓｏｃｋｅｔ処理部１２０は、呼び出し元によって指定されたモードに従ってｓｅｌｅｃｔ処理を行うとともにｓｅｌｅｃｔ処理の結果を出力し、ｓｏｃｋｅｔによる通信を呼び出し元に提供する。
【００２２】
クライアントアプリケーション処理部（アプリケーション処理部）１１０は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されるものである。クライアントアプリケーション処理部１１０は、Ｓｏｃｋｅｔ処理部１２０を呼び出してオープン処理を行う。そして、クライアントアプリケーション処理部１１０は、記憶部１４０が記憶する他の装置の一例としてのサーバ機器２００のＩＰアドレスおよびポート番号をｓｏｃｋｅｔの接続先として指定するとともにノンブロックモードを指定してｃｏｎｎｅｃｔ処理を開始させる。その後、クライアントアプリケーション処理部１１０は、タイムアウト機能付きでｓｏｃｋｅｔに対する書き込みが可能になるか否かを監視する旨を指定してｓｅｌｅｃｔ処理を開始させる。クライアントアプリケーション処理部１１０は、このタイムアウトが発生するまでに、ｓｏｃｋｅｔに対して書き込み可能になった旨を示す情報がＳｏｃｋｅｔ処理部１２０から出力されたか否かを判断する。
【００２３】
クライアントアプリケーション処理部１１０は、ｓｏｃｋｅｔをノンブロックモードに指定してｃｏｎｎｅｃｔ処理を開始させると、ｃｏｎｎｅｃｔ処理に失敗した旨を示す情報の入力をＳｏｃｋｅｔ処理部から受け付ける。しかし、クライアントアプリケーション処理部１１０は、この情報を無視してｓｅｌｅｃｔ処理を開始させる。
【００２４】
Ｓｏｃｋｅｔ処理部１２０は、ｃｏｎｎｅｃｔ処理に失敗した場合に、ｃｏｎｎｅｃｔ処理に失敗した旨の情報をアプリケーション処理部に出力するとともに、バックグラウンドでｃｏｎｎｅｃｔ処理を継続する。
【００２５】
サーバ機器２００は、サーバアプリケーション処理部２１０と、Ｓｏｃｋｅｔ処理部２２０と、パケットフィルタ処理部２３０と、記憶部２４０と、通信部２５０とを備えて構成される。
【００２６】
通信部２５０は、通信装置等によって構成され、ネットワーク３００を介してクライアント機器１００とパケットの送受信を行うことが可能である。
【００２７】
記憶部２４０は、自己のＩＰアドレスおよびポート番号を記憶するものである。記憶部２４０は、例えば、ＲＡＭ等により構成され、ＣＰＵの実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。
【００２８】
パケットフィルタ処理部２３０は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されるものである。パケットフィルタ処理部２３０は、通信部２５０がパケットを受信すると、受信したパケットに対してフィルタリングを行うことによって、パケットを破棄または通過させる。
【００２９】
Ｓｏｃｋｅｔ処理部２２０は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されるものである。Ｓｏｃｋｅｔ処理部２２０は、パケットフィルタ処理部２３０によって通過されたパケットの入力を受け付けることが可能である。Ｓｏｃｋｅｔ処理部２２０は、呼び出し元からｓｏｃｋｅｔに対するオープン処理がなされると、クライアント機器１００からのアクセスを待ち受けるｌｉｓｔｅｎ処理を行い、クライアント機器１００からのアクセスを受け付けるａｃｃｅｐｔ処理を行う。
【００３０】
サーバアプリケーション処理部（アプリケーション処理部）２１０は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されるものである。サーバアプリケーション処理部２１０は、Ｓｏｃｋｅｔ処理部２２０を呼び出してオープン処理を行う。そして、サーバアプリケーション処理部２１０は、ｌｉｓｔｅｎ処理を開始させ、ａｃｃｅｐｔ処理を開始させる。
【００３１】
以上、本発明の第１実施形態にかかる情報処理システムの機能構成について説明した。次に、本発明の第１実施形態にかかる情報処理システムの各機能ブロックとＴＣＰ／ＩＰモデルとの関係について説明する。
【００３２】
［１−２．各機能ブロックとＴＣＰ／ＩＰモデルとの関係］
本発明の第１実施形態にかかる情報処理システムの各機能ブロックとＴＣＰ／ＩＰモデルとの関係について説明する。図２は、本発明の第１実施形態にかかる情報処理システムの各機能ブロックとＴＣＰ／ＩＰモデルとの関係を示す図である。以下、図２を用いて本発明の第１実施形態にかかる情報処理システムの各機能ブロックとＴＣＰ／ＩＰモデルとの関係について説明する。
【００３３】
図２に示すように、パケットフィルタ処理部１３０、２３０は、第３層インターネット層の機能を実現する。Ｓｏｃｋｅｔ処理部１２０、２２０は、第４層トランスポート層の機能を実現する。サーバアプリケーション処理部２１０、クライアントアプリケーション処理部１１０は、第５層アプリケーション層の機能を実現する。第１層物理層、第２層データリンク層については、機能ブロックとして表現することを割愛する。
【００３４】
以上、本発明の第１実施形態にかかる情報処理システムの各機能ブロックとＴＣＰ／ＩＰモデルとの関係について説明した。次に、本発明の第１実施形態にかかるクライアント機器のハードウェア構成について説明する。
【００３５】
［１−３．クライアント機器のハードウェア構成］
次に、本発明の第１実施形態にかかるクライアント機器のハードウェア構成について説明する。図３は、本発明の第１実施形態にかかるクライアント機器のハードウェア構成を示すブロック図である。以下、図３を用いて本発明の第１実施形態にかかるクライアント機器のハードウェア構成について説明する。
【００３６】
クライアント機器１００は、主に、ＣＰＵ９０１と、ＲＯＭ９０３と、ＲＡＭ９０５と、ホストバス９０７と、ブリッジ９０９と、外部バス９１１と、インタフェース９１３と、ストレージ装置９１９と、通信装置９２５とを備える。
【００３７】
ＣＰＵ９０１は、演算処理装置および制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、ストレージ装置９１９に記録された各種プログラムに従って、クライアント機器１００内の動作全般またはその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１が使用するプログラムや演算パラメータ等を記憶する。ＲＡＭ９０５は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはＣＰＵバス等の内部バスにより構成されるホストバス９０７により相互に接続されている。
【００３８】
ホストバス９０７は、ブリッジ９０９を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス９１１に接続されている。
【００３９】
ストレージ装置９１９は、クライアント機器１００の記憶部の一例として構成されたデータ格納用の装置であり、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ、および外部から取得した音響信号データや画像信号データなどを格納する。
【００４０】
通信装置９２５は、例えば、ネットワーク３００に接続するための通信デバイス等で構成された通信インタフェースである。通信装置９２５は、例えば、有線または無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ、またはＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カード、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ、または、各種通信用のモデム等である。この通信装置９２５は、例えば、インターネットや他の通信機器との間で音響信号等を送受信することができる。また、通信装置９２５に接続されるネットワーク３００は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット等であってもよい。
【００４１】
以上、本発明の各実施形態に係るクライアント機器１００の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
【００４２】
以上、本発明の第１実施形態にかかるクライアント機器のハードウェア構成について説明した。次に、本発明の第１実施形態にかかるサーバ機器のハードウェア構成について説明する。
【００４３】
［１−４．サーバ機器のハードウェア構成］
次に、本発明の第１実施形態にかかるサーバ機器のハードウェア構成について説明する。図４は、本発明の第１実施形態にかかるサーバ機器のハードウェア構成を示すブロック図である。以下、図４を用いて本発明の第１実施形態にかかるサーバ機器のハードウェア構成について説明する。
【００４４】
図４に示すように、サーバ機器２００のハードウェアは、クライアント機器１００のハードウェアと同様に構成することが可能である。したがって、サーバ機器２００のハードウェアについての詳細な説明は省略する。
【００４５】
以上、本発明の第１実施形態にかかるサーバ機器のハードウェア構成について説明した。次に、一般的なサーバ機器の動作（両機器が正常な場合）について説明する。
【００４６】
［１−５．一般的なサーバ機器の動作（両機器が正常な場合）］
次に、一般的なサーバ機器の動作（両機器が正常な場合）について説明する。図５は、一般的なサーバ機器の動作を示すフローチャートである。以下、図５を用いて一般的なサーバ機器の動作（両機器が正常な場合）について説明する。
【００４７】
サーバアプリケーション処理部２１０は、自機器のＩＰアドレスとポート番号とを記憶部２４０から取得する（ステップＳ１０１）。サーバアプリケーション処理部２１０は、パケットフィルタに上記ＩＰアドレスとポート番号とを指定してパケットフィルタ処理部２３０にパケットフィルタを開始させる（ステップＳ１０２）。サーバアプリケーション処理部２１０は、ｌｉｓｔｅｎ用のｓｏｃｋｅｔを上記ポート番号でオープンする（ステップＳ１０３）。サーバアプリケーション処理部２１０は、Ｓｏｃｋｅｔ処理部２２０にｌｉｓｔｅｎ処理を開始させる（ステップＳ１０４）。
【００４８】
サーバアプリケーション処理部２１０は、クライアント機器１００からアクセスが有ったか否かを判断する（ステップＳ１０５）。サーバアプリケーション処理部２１０は、クライアント機器１００からアクセスが無いと判断した場合には（ステップＳ１０５で「Ｎｏ」）、ステップＳ１０５に戻る。サーバアプリケーション処理部２１０は、クライアント機器１００からアクセスが有ったと判断した場合には（ステップＳ１０５で「Ｙｅｓ」）、Ｓｏｃｋｅｔ処理部２２０にａｃｃｅｐｔ処理を開始させ、通信用のＳｏｃｋｅｔを得る（ステップＳ１０６）。その後、サーバアプリケーション処理部２１０は、通信用のｓｏｃｋｅｔで通常の通信処理を行い（ステップＳ１０７）、通信用のｓｏｃｋｅｔをクローズし（ステップＳ１０８）、ステップＳ１０４に戻る。
【００４９】
以上、一般的なサーバ機器の動作（両機器が正常な場合）について説明した。次に、一般的なサーバ機器の動作（クライアント機器が不正な場合）について説明する。
【００５０】
［１−６．一般的なサーバ機器の動作（クライアント機器が不正な場合）］
次に、一般的なサーバ機器の動作（クライアント機器が不正な場合）について説明する。以下、図５を用いて一般的なサーバ機器の動作（クライアント機器が不正な場合）について説明する。
【００５１】
サーバアプリケーション処理部２１０は、自機器のＩＰアドレスとポート番号とを記憶部２４０から取得する（ステップＳ１０１）。サーバアプリケーション処理部２１０は、パケットフィルタに上記ＩＰアドレスとポート番号とを指定してパケットフィルタ処理部２３０にパケットフィルタを開始させる（ステップＳ１０２）。サーバアプリケーション処理部２１０は、ｌｉｓｔｅｎ用のｓｏｃｋｅｔを上記ポート番号でオープンする（ステップＳ１０３）。サーバアプリケーション処理部２１０は、Ｓｏｃｋｅｔ処理部２２０にｌｉｓｔｅｎ処理を開始させる（ステップＳ１０４）。
【００５２】
サーバアプリケーション処理部２１０は、クライアント機器１００からアクセスが有ったか否かを判断する（ステップＳ１０５）。サーバアプリケーション処理部２１０は、クライアント機器１００からアクセスが無いと判断した場合には（ステップＳ１０５で「Ｎｏ」）、ステップＳ１０５に戻る。クライアント機器１００が不正な場合には、クライアント機器１００からのアクセスはパケットフィルタ処理部２３０によって破棄される。したがって、クライアント機器１００が不正な場合には、サーバ機器２００は、不正なクライアント機器１００からのアクセスに気付かないため、特に問題はないと想定される。
【００５３】
以上、一般的なサーバ機器の動作（クライアント機器が不正な場合）について説明した。次に、一般的なクライアント機器の動作（両機器が正常な場合）について説明する。
【００５４】
［１−７．一般的なクライアント機器の動作（両機器が正常な場合）］
次に、一般的なクライアント機器の動作（両機器が正常な場合）について説明する。以下、図６を用いて一般的なクライアント機器の動作（両機器が正常な場合）について説明する。
【００５５】
クライアントアプリケーション処理部１１０は、相手（サーバ機器２００）のＩＰアドレスとポート番号とを記憶部１４０から取得する（ステップＳ２０１）。クライアントアプリケーション処理部１１０は、パケットフィルタに上記ＩＰアドレスとポート番号とを指定してパケットフィルタ処理部１３０にパケットフィルタを開始させる（ステップＳ２０２）。クライアントアプリケーション処理部１１０は、ｓｏｃｋｅｔをオープンする（ステップＳ２０３）。クライアントアプリケーション処理部１１０は、Ｓｏｃｋｅｔ処理部１２０にｃｏｎｎｅｃｔ処理を開始させる（ステップＳ２０４）。
【００５６】
相手が正常なので、ＴＣＰのタイムアウトは発生せず（ステップＳ２０５で「Ｎｏ」）、ｃｏｎｎｅｃｔ処理は成功し（ステップＳ２０６）、クライアントアプリケーション処理部１１０は、通常の通信処理を行い（ステップＳ２０７）、ｓｏｃｋｅｔをクローズし、パケットフィルタの設定を元に戻し（ステップＳ２０９）、処理を終了する。
【００５７】
以上、一般的なクライアント機器の動作（両機器が正常な場合）について説明した。次に、一般的なクライアント機器の動作（サーバ機器が不正な場合）について説明する。
【００５８】
［１−８．一般的なクライアント機器の動作（サーバ機器が不正な場合）］
次に、一般的なクライアント機器の動作（サーバ機器が不正な場合）について説明する。以下、図６を用いて一般的なクライアント機器の動作（サーバ機器が不正な場合）について説明する。
【００５９】
クライアントアプリケーション処理部１１０は、相手（サーバ機器２００）のＩＰアドレスとポート番号とを記憶部１４０から取得する（ステップＳ２０１）。クライアントアプリケーション処理部１１０は、パケットフィルタに上記ＩＰアドレスとポート番号とを指定してパケットフィルタ処理部１３０にパケットフィルタを開始させる（ステップＳ２０２）。クライアントアプリケーション処理部１１０は、ｓｏｃｋｅｔをオープンする（ステップＳ２０３）。クライアントアプリケーション処理部１１０は、Ｓｏｃｋｅｔ処理部１２０にｃｏｎｎｅｃｔ処理を開始させる（ステップＳ２０４）。
【００６０】
ここで、サーバ機器２００が不正な場合には、サーバ機器２００からの返事はパケットフィルタ処理部１３０によって破棄されるために処理が停止してしまう。そのため、ＴＣＰのタイムアウトが発生する（ステップＳ２０５で「Ｙｅｓ」）。タイムアウト後、クライアントアプリケーション処理部１１０は、ｃｏｎｎｅｃｔ処理に失敗したと判断し（ステップＳ２０８）、ステップＳ２０９に進むことになるが、ステップＳ２０５からステップＳ２０９に進むまでに、一般的には約３分程度待たされる。クライアントアプリケーション処理部１１０は、ｓｏｃｋｅｔをクローズし、パケットフィルタの設定を元に戻し（ステップＳ２０８）、処理を終了する。この例では、クライアント機器１００はサーバ機器２００にアクセスを行おうとするが、サーバ機器２００からの返事がない状態で待たされることになる。したがって、クライアント機器１００の使用者がストレスを感じる原因となり得るという問題がある。
【００６１】
以上、一般的なクライアント機器の動作（サーバ機器が不正な場合）について説明した。次に、本発明の第１実施形態にかかるクライアント機器の動作について説明する。
【００６２】
［１−９．本発明の第１実施形態にかかるクライアント機器の動作］
次に、本発明の第１実施形態にかかるクライアント機器の動作について説明する。以下、図７を用いて本発明の第１実施形態にかかるクライアント機器の動作について説明する。
【００６３】
図７に示すように、クライアントアプリケーション処理部１１０は、相手（サーバ機器２００）のＩＰアドレスとポート番号とを記憶部１４０から取得する（ステップＳ３０１）。クライアントアプリケーション処理部１１０は、パケットフィルタに上記ＩＰアドレスとポート番号とを指定してパケットフィルタ処理部１３０にパケットフィルタを開始させる（ステップＳ３０２）。クライアントアプリケーション処理部１１０は、ｓｏｃｋｅｔをオープンする（ステップＳ３０３）。クライアントアプリケーション処理部１１０は、ｓｏｃｋｅｔをノンブロックモードにしてＳｏｃｋｅｔ処理部１２０にｃｏｎｎｅｃｔ処理を開始させる（ステップＳ３０４）。
【００６４】
この時点では通信は確立していないので、ｃｏｎｎｅｃｔ処理は必ず失敗するが、Ｓｏｃｋｅｔ処理部１２０は、この失敗を無視してｃｏｎｎｅｃｔ処理を継続する（ステップＳ３０５）。クライアントアプリケーション処理部１１０は、Ｓｏｃｋｅｔ処理部１２０にタイムアウト機能付きでｓｅｌｅｃｔ処理を開始させる（ステップＳ３０６）。クライアントアプリケーション処理部１１０は、例えば、タイムアウトが発生するまでの時間を５秒程度に設定する。クライアントアプリケーション処理部１１０は、ｓｏｃｋｅｔに書き込みが可能になったか否かを判断する（ステップＳ３０７）。
【００６５】
クライアントアプリケーション処理部１１０は、ｓｏｃｋｅｔに書き込みが可能になったと判断した場合には（ステップＳ３０７で「Ｙｅｓ」）、サーバ機器２００が正常であると判断し、ｓｏｃｋｅｔを元のブロックモードに戻し（ステップＳ３０８）、通常の通信処理を行い（ステップＳ３０９）、ステップＳ３１１に進む。また、クライアントアプリケーション処理部１１０は、ｓｏｃｋｅｔに書き込みが可能にならなかったと判断した場合には（ステップＳ３０７で「Ｎｏ」）、タイムアウトが発生し（ステップＳ３１０）、サーバ機器２００が不正であると判断してステップＳ３１１に進む。クライアントアプリケーション処理部１１０は、ｓｏｃｋｅｔをクローズし、パケットフィルタの設定を元に戻し（ステップＳ３１１）、処理を終了する。
【００６６】
これによれば、サーバ機器２００が不正な場合に、３分程度待たされてしまうことが一般的であったが、待ち時間を５秒程度（設定次第でもっと短くすることもできる）に短縮することが可能となる。これにより、クライアント機器１００の使用者が感じるストレスを軽減することができる。
【００６７】
以上、本発明の第１実施形態にかかるクライアント機器の動作について説明した。
【００６８】
＜２．本実施形態の変形例＞
なお、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【００６９】
＜３．まとめ＞
本実施形態によれば、通信相手のＩＰアドレスとポート番号とを用いて不正な通信相手からのパケットを破棄するフィルタリング機能を有する場合に、ＴＣＰタイムアウトが発生するまでの設定時間を変更せずに、通信相手との通信開始時にＴＣＰタイムアウトが発生するまで生じるブロック動作を回避することが可能となる。
【符号の説明】
【００７０】
１００  クライアント機器（情報処理装置）
１１０  クライアントアプリケーション処理部
１２０  Ｓｏｃｋｅｔ処理部
１３０  パケットフィルタ処理部
１４０  記憶部
１５０  通信部
２００  サーバ機器（情報提供装置）
２１０  サーバアプリケーション処理部
２２０  Ｓｏｃｋｅｔ処理部
２３０  パケットフィルタ処理部
２４０  記憶部
２５０  通信部
３００  ネットワーク
【図１】
2010187070.tif 000003
【図２】
2010187070.tif 000004
【図３】
2010187070.tif 000005
【図４】
2010187070.tif 000006
【図５】
2010187070.tif 000007
【図６】
2010187070.tif 000008
【図７】
2010187070.tif 000009