説明

情報処理装置、情報処理方法、プログラムおよび情報処理システム

【課題】不正な通信相手からのパケットを破棄するフィルタリング機能を有する場合に、通信相手との通信開始時にTCPタイムアウトが発生するまで生じるブロック動作を回避する。
【解決手段】クライアント機器100のクライアントアプリケーション処理部110は、Socket処理部120を呼び出してオープン処理を行い、記憶部140が記憶する他の装置のIPアドレスおよびポート番号をsocketの接続先として指定するとともにノンブロックモードを指定してconnect処理を開始させ、タイムアウト機能付きでsocketに対する書き込みが可能になるか否かを監視する旨を指定してselect処理を開始させ、タイムアウトが発生するまでに、socketに対して書き込み可能になった旨を示す情報がSocket処理部120から出力されたか否かを判断する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、プログラムおよび情報処理システムに関する。
【背景技術】
【0002】
近年、不正アクセスを防止するために、ファイヤーウォールが広く一般に使われている。ファイヤーウォールとは、インターネットなどの信頼できないネットワークからの攻撃や不正アクセスから、組織内部のネットワークを保護するためのシステムである。このファイヤーウォールに使用される技術の一つに、パケットフィルタリングという機能がある。パケットフィルタリングとは、主に、TCP(Transmission Control Protocol)/IP(Internet Protocol)モデルのインターネット層に相当する機能であり、パケットの送信元や送信先、IPアドレス/ポート番号/通信の方向などの情報を基に、パケットの通過、破棄を選択的に行うことである(例えば、特許文献1参照)。
【0003】
サーバとクライアントとを備えるサーバ−クライアントモデルにより構成され、実現されている特定のサービスにおいて、パケットフィルタリングを行う場合を考える。情報通信における、サーバ−クライアントモデルにおいて、サーバ側のIPアドレスおよびポート番号は通信開始前に既知である。それに対し、クライアント側について、IPアドレスは既知であるが、ポート番号は既知でない。つまり、クライアント側のポート番号は通信が確立してから決定される。従って、上記通信においてパケットフィルタリングを行う場合には、サーバ側のIPアドレスとポート番号とを使えばよいことは容易に想像できる。サーバ側でパケットフィルタリングを行う場合にはこの方法で問題は生じない。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−325293号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、クライアント側では問題が発生することがある。具体的には、クライアント側のパケットフィルタがサーバからの不正パケットを検出してパケットを破棄すると、クライアント側のアプリケーションプログラムにとっては、サーバからの応答がないようにみえるという問題が起こりうる。そのため、通信のタイムアウト(TCPによるタイムアウト)が発生するまで、クライアント側のアプリケーションプログラムによる処理が止まってしまう(「ブロック動作」ともいう)という問題が発生しうる。停止時間は、TCPによるタイムアウト(以下、「TCPタイムアウト」ともいう)の場合、一般的に3分から5分程度である。また、TCPタイムアウトが発生するまでの設定時間を変更することが許されていない場合もある。
【0006】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、通信相手のIPアドレスとポート番号とを用いて不正な通信相手からのパケットを破棄するフィルタリング機能を有する場合に、TCPタイムアウトが発生するまでの設定時間を変更せずに、通信相手との通信開始時にTCPタイムアウトが発生するまで生じるブロック動作を回避することが可能な、新規かつ改良された技術を提供しようとするものである。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある観点によれば、ネットワークを介して他の装置とパケットの送受信を行うことが可能な通信部と、他の装置のIPアドレスおよびポート番号を記憶する記憶部と、通信部がパケットを受信すると、受信したパケットに対してフィルタリングを行うことによって、パケットを破棄または通過させるパケットフィルタ処理部と、パケットフィルタ処理部によって通過されたパケットの入力を受け付けることが可能であり、呼び出し元からsocketに対するオープン処理がなされると、呼び出し元によって指定された接続先に対して指定されたモードに従ってconnect処理を行い、呼び出し元によって指定されたモードに従ってselect処理を行うとともにselect処理の結果を出力し、socketによる通信を呼び出し元に提供するSocket処理部と、Socket処理部を呼び出してオープン処理を行い、記憶部が記憶する他の装置のIPアドレスおよびポート番号をsocketの接続先として指定するとともにノンブロックモードを指定してconnect処理を開始させ、タイムアウト機能付きでsocketに対する書き込みが可能になるか否かを監視する旨を指定してselect処理を開始させ、タイムアウトが発生するまでに、socketに対して書き込み可能になった旨を示す情報がSocket処理部から出力されたか否かを判断するアプリケーション処理部と、を備える、情報処理装置が提供される。
【0008】
上記したアプリケーション処理部は、socketをノンブロックモードに指定してconnect処理を開始させると、connect処理に失敗した旨を示す情報の入力をSocket処理部から受け付け、この情報を無視してselect処理を開始させることとしてもよい。
【0009】
上記したSocket処理部は、connect処理に失敗した場合に、connect処理に失敗した旨の情報をアプリケーション処理部に出力するとともに、バックグラウンドでconnect処理を継続することとしてもよい。
【発明の効果】
【0010】
以上説明したように本発明によれば、通信相手のIPアドレスとポート番号とを用いて不正な通信相手からのパケットを破棄するフィルタリング機能を有する場合に、TCPタイムアウトが発生するまでの設定時間を変更せずに、通信相手との通信開始時にTCPタイムアウトが発生するまで生じるブロック動作を回避することが可能である。
【図面の簡単な説明】
【0011】
【図1】情報処理システムの機能構成を示すブロック図である。
【図2】情報処理システムの各機能ブロックとTCP/IPモデルとの関係を示す図である。
【図3】クライアント機器のハードウェア構成を示すブロック図である。
【図4】サーバ機器のハードウェア構成を示すブロック図である。
【図5】一般的なサーバ機器の動作を示すフローチャートである。
【図6】一般的なクライアント機器の動作を示すフローチャートである。
【図7】本実施形態にかかるクライアント機器の動作を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。なお、説明は以下の順序で行う。
【0013】
1. 第1実施形態
1−1. 情報処理システムの機能構成
1−2. 各機能ブロックとTCP/IPモデルとの関係
1−3. クライアント機器のハードウェア構成
1−4. サーバ機器のハードウェア構成
1−5. 一般的なサーバ機器の動作(両機器が正常な場合)
1−6. 一般的なサーバ機器の動作(クライアント機器が不正な場合)
1−7. 一般的なクライアント機器の動作(両機器が正常な場合)
1−8. 一般的なクライアント機器の動作(サーバ機器が不正な場合)
1−9. 本発明の第1実施形態にかかるクライアント機器の動作
2. 本実施形態の変形例
3. まとめ
【0014】
<1.第1実施形態>
本発明の第1実施形態について説明する。
【0015】
[1−1.情報処理システムの機能構成]
本発明の第1実施形態にかかる情報処理システムの機能構成について説明する。図1は、本発明の第1実施形態にかかる情報処理システムの機能構成を示すブロック図である。以下、図1を用いて本発明の第1実施形態にかかる情報処理システムの機能構成について説明する。
【0016】
図1に示すように、本発明の第1実施形態にかかる情報処理システムは、情報処理装置の一例としてのクライアント機器100と情報提供装置の一例としてのサーバ機器200とが、インターネット等のネットワーク300を介して接続されて構成されている。サーバ機器200は、主に、情報提供側の機器として機能し、クライアント機器100は、主に、情報受取側の機器として機能する。
【0017】
クライアント機器100は、クライアントアプリケーション処理部110と、Socket処理部120と、パケットフィルタ処理部130と、記憶部140と、通信部150とを備えて構成される。
【0018】
通信部150は、通信装置等によって構成され、ネットワーク300を介して他の装置の一例としてのサーバ機器200とパケットの送受信を行うことが可能である。
【0019】
記憶部140は、他の装置の一例としてのサーバ機器200のIPアドレスおよびポート番号を記憶するものである。記憶部140は、例えば、RAM(Random Access Memory)等により構成され、CPU(Central Processing Unit)の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。
【0020】
パケットフィルタ処理部130は、例えば、CPU、ROM(Read Only Memory)、RAM等から構成されるものである。パケットフィルタ処理部130は、通信部150がパケットを受信すると、受信したパケットに対してフィルタリングを行うことによって、パケットを破棄または通過させる。
【0021】
Socket処理部120は、例えば、CPU、ROM、RAM等から構成されるものである。Socket処理部120は、パケットフィルタ処理部130によって通過されたパケットの入力を受け付けることが可能である。Socket処理部120は、呼び出し元からsocketに対するオープン処理がなされると、呼び出し元によって指定された接続先に対して指定されたモードに従ってconnect処理を行う。そして、Socket処理部120は、呼び出し元によって指定されたモードに従ってselect処理を行うとともにselect処理の結果を出力し、socketによる通信を呼び出し元に提供する。
【0022】
クライアントアプリケーション処理部(アプリケーション処理部)110は、例えば、CPU、ROM、RAM等から構成されるものである。クライアントアプリケーション処理部110は、Socket処理部120を呼び出してオープン処理を行う。そして、クライアントアプリケーション処理部110は、記憶部140が記憶する他の装置の一例としてのサーバ機器200のIPアドレスおよびポート番号をsocketの接続先として指定するとともにノンブロックモードを指定してconnect処理を開始させる。その後、クライアントアプリケーション処理部110は、タイムアウト機能付きでsocketに対する書き込みが可能になるか否かを監視する旨を指定してselect処理を開始させる。クライアントアプリケーション処理部110は、このタイムアウトが発生するまでに、socketに対して書き込み可能になった旨を示す情報がSocket処理部120から出力されたか否かを判断する。
【0023】
クライアントアプリケーション処理部110は、socketをノンブロックモードに指定してconnect処理を開始させると、connect処理に失敗した旨を示す情報の入力をSocket処理部から受け付ける。しかし、クライアントアプリケーション処理部110は、この情報を無視してselect処理を開始させる。
【0024】
Socket処理部120は、connect処理に失敗した場合に、connect処理に失敗した旨の情報をアプリケーション処理部に出力するとともに、バックグラウンドでconnect処理を継続する。
【0025】
サーバ機器200は、サーバアプリケーション処理部210と、Socket処理部220と、パケットフィルタ処理部230と、記憶部240と、通信部250とを備えて構成される。
【0026】
通信部250は、通信装置等によって構成され、ネットワーク300を介してクライアント機器100とパケットの送受信を行うことが可能である。
【0027】
記憶部240は、自己のIPアドレスおよびポート番号を記憶するものである。記憶部240は、例えば、RAM等により構成され、CPUの実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。
【0028】
パケットフィルタ処理部230は、例えば、CPU、ROM、RAM等から構成されるものである。パケットフィルタ処理部230は、通信部250がパケットを受信すると、受信したパケットに対してフィルタリングを行うことによって、パケットを破棄または通過させる。
【0029】
Socket処理部220は、例えば、CPU、ROM、RAM等から構成されるものである。Socket処理部220は、パケットフィルタ処理部230によって通過されたパケットの入力を受け付けることが可能である。Socket処理部220は、呼び出し元からsocketに対するオープン処理がなされると、クライアント機器100からのアクセスを待ち受けるlisten処理を行い、クライアント機器100からのアクセスを受け付けるaccept処理を行う。
【0030】
サーバアプリケーション処理部(アプリケーション処理部)210は、例えば、CPU、ROM、RAM等から構成されるものである。サーバアプリケーション処理部210は、Socket処理部220を呼び出してオープン処理を行う。そして、サーバアプリケーション処理部210は、listen処理を開始させ、accept処理を開始させる。
【0031】
以上、本発明の第1実施形態にかかる情報処理システムの機能構成について説明した。次に、本発明の第1実施形態にかかる情報処理システムの各機能ブロックとTCP/IPモデルとの関係について説明する。
【0032】
[1−2.各機能ブロックとTCP/IPモデルとの関係]
本発明の第1実施形態にかかる情報処理システムの各機能ブロックとTCP/IPモデルとの関係について説明する。図2は、本発明の第1実施形態にかかる情報処理システムの各機能ブロックとTCP/IPモデルとの関係を示す図である。以下、図2を用いて本発明の第1実施形態にかかる情報処理システムの各機能ブロックとTCP/IPモデルとの関係について説明する。
【0033】
図2に示すように、パケットフィルタ処理部130、230は、第3層インターネット層の機能を実現する。Socket処理部120、220は、第4層トランスポート層の機能を実現する。サーバアプリケーション処理部210、クライアントアプリケーション処理部110は、第5層アプリケーション層の機能を実現する。第1層物理層、第2層データリンク層については、機能ブロックとして表現することを割愛する。
【0034】
以上、本発明の第1実施形態にかかる情報処理システムの各機能ブロックとTCP/IPモデルとの関係について説明した。次に、本発明の第1実施形態にかかるクライアント機器のハードウェア構成について説明する。
【0035】
[1−3.クライアント機器のハードウェア構成]
次に、本発明の第1実施形態にかかるクライアント機器のハードウェア構成について説明する。図3は、本発明の第1実施形態にかかるクライアント機器のハードウェア構成を示すブロック図である。以下、図3を用いて本発明の第1実施形態にかかるクライアント機器のハードウェア構成について説明する。
【0036】
クライアント機器100は、主に、CPU901と、ROM903と、RAM905と、ホストバス907と、ブリッジ909と、外部バス911と、インタフェース913と、ストレージ装置919と、通信装置925とを備える。
【0037】
CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置919に記録された各種プログラムに従って、クライアント機器100内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM905は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバス等の内部バスにより構成されるホストバス907により相互に接続されている。
【0038】
ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。
【0039】
ストレージ装置919は、クライアント機器100の記憶部の一例として構成されたデータ格納用の装置であり、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ、および外部から取得した音響信号データや画像信号データなどを格納する。
【0040】
通信装置925は、例えば、ネットワーク300に接続するための通信デバイス等で構成された通信インタフェースである。通信装置925は、例えば、有線または無線LAN(Local Area Network)、Bluetooth、またはWUSB(Wireless USB)用の通信カード、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデム等である。この通信装置925は、例えば、インターネットや他の通信機器との間で音響信号等を送受信することができる。また、通信装置925に接続されるネットワーク300は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット等であってもよい。
【0041】
以上、本発明の各実施形態に係るクライアント機器100の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
【0042】
以上、本発明の第1実施形態にかかるクライアント機器のハードウェア構成について説明した。次に、本発明の第1実施形態にかかるサーバ機器のハードウェア構成について説明する。
【0043】
[1−4.サーバ機器のハードウェア構成]
次に、本発明の第1実施形態にかかるサーバ機器のハードウェア構成について説明する。図4は、本発明の第1実施形態にかかるサーバ機器のハードウェア構成を示すブロック図である。以下、図4を用いて本発明の第1実施形態にかかるサーバ機器のハードウェア構成について説明する。
【0044】
図4に示すように、サーバ機器200のハードウェアは、クライアント機器100のハードウェアと同様に構成することが可能である。したがって、サーバ機器200のハードウェアについての詳細な説明は省略する。
【0045】
以上、本発明の第1実施形態にかかるサーバ機器のハードウェア構成について説明した。次に、一般的なサーバ機器の動作(両機器が正常な場合)について説明する。
【0046】
[1−5.一般的なサーバ機器の動作(両機器が正常な場合)]
次に、一般的なサーバ機器の動作(両機器が正常な場合)について説明する。図5は、一般的なサーバ機器の動作を示すフローチャートである。以下、図5を用いて一般的なサーバ機器の動作(両機器が正常な場合)について説明する。
【0047】
サーバアプリケーション処理部210は、自機器のIPアドレスとポート番号とを記憶部240から取得する(ステップS101)。サーバアプリケーション処理部210は、パケットフィルタに上記IPアドレスとポート番号とを指定してパケットフィルタ処理部230にパケットフィルタを開始させる(ステップS102)。サーバアプリケーション処理部210は、listen用のsocketを上記ポート番号でオープンする(ステップS103)。サーバアプリケーション処理部210は、Socket処理部220にlisten処理を開始させる(ステップS104)。
【0048】
サーバアプリケーション処理部210は、クライアント機器100からアクセスが有ったか否かを判断する(ステップS105)。サーバアプリケーション処理部210は、クライアント機器100からアクセスが無いと判断した場合には(ステップS105で「No」)、ステップS105に戻る。サーバアプリケーション処理部210は、クライアント機器100からアクセスが有ったと判断した場合には(ステップS105で「Yes」)、Socket処理部220にaccept処理を開始させ、通信用のSocketを得る(ステップS106)。その後、サーバアプリケーション処理部210は、通信用のsocketで通常の通信処理を行い(ステップS107)、通信用のsocketをクローズし(ステップS108)、ステップS104に戻る。
【0049】
以上、一般的なサーバ機器の動作(両機器が正常な場合)について説明した。次に、一般的なサーバ機器の動作(クライアント機器が不正な場合)について説明する。
【0050】
[1−6.一般的なサーバ機器の動作(クライアント機器が不正な場合)]
次に、一般的なサーバ機器の動作(クライアント機器が不正な場合)について説明する。以下、図5を用いて一般的なサーバ機器の動作(クライアント機器が不正な場合)について説明する。
【0051】
サーバアプリケーション処理部210は、自機器のIPアドレスとポート番号とを記憶部240から取得する(ステップS101)。サーバアプリケーション処理部210は、パケットフィルタに上記IPアドレスとポート番号とを指定してパケットフィルタ処理部230にパケットフィルタを開始させる(ステップS102)。サーバアプリケーション処理部210は、listen用のsocketを上記ポート番号でオープンする(ステップS103)。サーバアプリケーション処理部210は、Socket処理部220にlisten処理を開始させる(ステップS104)。
【0052】
サーバアプリケーション処理部210は、クライアント機器100からアクセスが有ったか否かを判断する(ステップS105)。サーバアプリケーション処理部210は、クライアント機器100からアクセスが無いと判断した場合には(ステップS105で「No」)、ステップS105に戻る。クライアント機器100が不正な場合には、クライアント機器100からのアクセスはパケットフィルタ処理部230によって破棄される。したがって、クライアント機器100が不正な場合には、サーバ機器200は、不正なクライアント機器100からのアクセスに気付かないため、特に問題はないと想定される。
【0053】
以上、一般的なサーバ機器の動作(クライアント機器が不正な場合)について説明した。次に、一般的なクライアント機器の動作(両機器が正常な場合)について説明する。
【0054】
[1−7.一般的なクライアント機器の動作(両機器が正常な場合)]
次に、一般的なクライアント機器の動作(両機器が正常な場合)について説明する。以下、図6を用いて一般的なクライアント機器の動作(両機器が正常な場合)について説明する。
【0055】
クライアントアプリケーション処理部110は、相手(サーバ機器200)のIPアドレスとポート番号とを記憶部140から取得する(ステップS201)。クライアントアプリケーション処理部110は、パケットフィルタに上記IPアドレスとポート番号とを指定してパケットフィルタ処理部130にパケットフィルタを開始させる(ステップS202)。クライアントアプリケーション処理部110は、socketをオープンする(ステップS203)。クライアントアプリケーション処理部110は、Socket処理部120にconnect処理を開始させる(ステップS204)。
【0056】
相手が正常なので、TCPのタイムアウトは発生せず(ステップS205で「No」)、connect処理は成功し(ステップS206)、クライアントアプリケーション処理部110は、通常の通信処理を行い(ステップS207)、socketをクローズし、パケットフィルタの設定を元に戻し(ステップS209)、処理を終了する。
【0057】
以上、一般的なクライアント機器の動作(両機器が正常な場合)について説明した。次に、一般的なクライアント機器の動作(サーバ機器が不正な場合)について説明する。
【0058】
[1−8.一般的なクライアント機器の動作(サーバ機器が不正な場合)]
次に、一般的なクライアント機器の動作(サーバ機器が不正な場合)について説明する。以下、図6を用いて一般的なクライアント機器の動作(サーバ機器が不正な場合)について説明する。
【0059】
クライアントアプリケーション処理部110は、相手(サーバ機器200)のIPアドレスとポート番号とを記憶部140から取得する(ステップS201)。クライアントアプリケーション処理部110は、パケットフィルタに上記IPアドレスとポート番号とを指定してパケットフィルタ処理部130にパケットフィルタを開始させる(ステップS202)。クライアントアプリケーション処理部110は、socketをオープンする(ステップS203)。クライアントアプリケーション処理部110は、Socket処理部120にconnect処理を開始させる(ステップS204)。
【0060】
ここで、サーバ機器200が不正な場合には、サーバ機器200からの返事はパケットフィルタ処理部130によって破棄されるために処理が停止してしまう。そのため、TCPのタイムアウトが発生する(ステップS205で「Yes」)。タイムアウト後、クライアントアプリケーション処理部110は、connect処理に失敗したと判断し(ステップS208)、ステップS209に進むことになるが、ステップS205からステップS209に進むまでに、一般的には約3分程度待たされる。クライアントアプリケーション処理部110は、socketをクローズし、パケットフィルタの設定を元に戻し(ステップS208)、処理を終了する。この例では、クライアント機器100はサーバ機器200にアクセスを行おうとするが、サーバ機器200からの返事がない状態で待たされることになる。したがって、クライアント機器100の使用者がストレスを感じる原因となり得るという問題がある。
【0061】
以上、一般的なクライアント機器の動作(サーバ機器が不正な場合)について説明した。次に、本発明の第1実施形態にかかるクライアント機器の動作について説明する。
【0062】
[1−9.本発明の第1実施形態にかかるクライアント機器の動作]
次に、本発明の第1実施形態にかかるクライアント機器の動作について説明する。以下、図7を用いて本発明の第1実施形態にかかるクライアント機器の動作について説明する。
【0063】
図7に示すように、クライアントアプリケーション処理部110は、相手(サーバ機器200)のIPアドレスとポート番号とを記憶部140から取得する(ステップS301)。クライアントアプリケーション処理部110は、パケットフィルタに上記IPアドレスとポート番号とを指定してパケットフィルタ処理部130にパケットフィルタを開始させる(ステップS302)。クライアントアプリケーション処理部110は、socketをオープンする(ステップS303)。クライアントアプリケーション処理部110は、socketをノンブロックモードにしてSocket処理部120にconnect処理を開始させる(ステップS304)。
【0064】
この時点では通信は確立していないので、connect処理は必ず失敗するが、Socket処理部120は、この失敗を無視してconnect処理を継続する(ステップS305)。クライアントアプリケーション処理部110は、Socket処理部120にタイムアウト機能付きでselect処理を開始させる(ステップS306)。クライアントアプリケーション処理部110は、例えば、タイムアウトが発生するまでの時間を5秒程度に設定する。クライアントアプリケーション処理部110は、socketに書き込みが可能になったか否かを判断する(ステップS307)。
【0065】
クライアントアプリケーション処理部110は、socketに書き込みが可能になったと判断した場合には(ステップS307で「Yes」)、サーバ機器200が正常であると判断し、socketを元のブロックモードに戻し(ステップS308)、通常の通信処理を行い(ステップS309)、ステップS311に進む。また、クライアントアプリケーション処理部110は、socketに書き込みが可能にならなかったと判断した場合には(ステップS307で「No」)、タイムアウトが発生し(ステップS310)、サーバ機器200が不正であると判断してステップS311に進む。クライアントアプリケーション処理部110は、socketをクローズし、パケットフィルタの設定を元に戻し(ステップS311)、処理を終了する。
【0066】
これによれば、サーバ機器200が不正な場合に、3分程度待たされてしまうことが一般的であったが、待ち時間を5秒程度(設定次第でもっと短くすることもできる)に短縮することが可能となる。これにより、クライアント機器100の使用者が感じるストレスを軽減することができる。
【0067】
以上、本発明の第1実施形態にかかるクライアント機器の動作について説明した。
【0068】
<2.本実施形態の変形例>
なお、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【0069】
<3.まとめ>
本実施形態によれば、通信相手のIPアドレスとポート番号とを用いて不正な通信相手からのパケットを破棄するフィルタリング機能を有する場合に、TCPタイムアウトが発生するまでの設定時間を変更せずに、通信相手との通信開始時にTCPタイムアウトが発生するまで生じるブロック動作を回避することが可能となる。
【符号の説明】
【0070】
100 クライアント機器(情報処理装置)
110 クライアントアプリケーション処理部
120 Socket処理部
130 パケットフィルタ処理部
140 記憶部
150 通信部
200 サーバ機器(情報提供装置)
210 サーバアプリケーション処理部
220 Socket処理部
230 パケットフィルタ処理部
240 記憶部
250 通信部
300 ネットワーク


【特許請求の範囲】
【請求項1】
ネットワークを介して他の装置とパケットの送受信を行うことが可能な通信部と、
前記他の装置のIPアドレスおよびポート番号を記憶する記憶部と、
前記通信部がパケットを受信すると、受信した前記パケットに対してフィルタリングを行うことによって、前記パケットを破棄または通過させるパケットフィルタ処理部と、
前記パケットフィルタ処理部によって通過された前記パケットの入力を受け付けることが可能であり、呼び出し元からsocketに対するオープン処理がなされると、前記呼び出し元によって指定された接続先に対して指定されたモードに従ってconnect処理を行い、前記呼び出し元によって指定されたモードに従ってselect処理を行うとともに前記select処理の結果を出力し、socketによる通信を前記呼び出し元に提供するSocket処理部と、
前記Socket処理部を呼び出して前記オープン処理を行い、前記記憶部が記憶する前記他の装置のIPアドレスおよびポート番号を前記socketの接続先として指定するとともにノンブロックモードを指定して前記connect処理を開始させ、タイムアウト機能付きで前記socketに対する書き込みが可能になるか否かを監視する旨を指定して前記select処理を開始させ、前記タイムアウトが発生するまでに、前記socketに対して書き込み可能になった旨を示す情報が前記Socket処理部から出力されたか否かを判断するアプリケーション処理部と、
を備える、情報処理装置。
【請求項2】
前記アプリケーション処理部は、
前記socketを前記ノンブロックモードに指定して前記connect処理を開始させると、前記connect処理に失敗した旨を示す情報の入力を前記Socket処理部から受け付け、当該情報を無視して前記select処理を開始させる、
請求項1に記載の情報処理装置。
【請求項3】
前記Socket処理部は、
前記connect処理に失敗した場合に、connect処理に失敗した旨の情報を前記アプリケーション処理部に出力するとともに、バックグラウンドでconnect処理を継続する、
請求項1に記載の情報処理装置。
【請求項4】
ネットワークを介して他の装置とパケットの送受信を行うことが可能な通信部と、
前記他の装置のIPアドレスおよびポート番号を記憶する記憶部と、
前記通信部がパケットを受信すると、受信した前記パケットに対してフィルタリングを行うことによって、前記パケットを破棄または通過させるパケットフィルタ処理部と、
前記パケットフィルタ処理部によって通過された前記パケットの入力を受け付けることが可能であり、呼び出し元からsocketに対するオープン処理がなされると、前記呼び出し元によって指定された接続先に対して指定されたモードに従ってconnect処理を行い、前記呼び出し元によって指定されたモードに従ってselect処理を行うとともに前記select処理の結果を出力し、socketによる通信を前記呼び出し元に提供するSocket処理部と、アプリケーション処理部と、を備える情報処理装置が、
前記アプリケーション処理部により、
前記Socket処理部を呼び出して前記オープン処理を行うステップと、
前記記憶部が記憶する前記他の装置のIPアドレスおよびポート番号を前記Socketの接続先として指定するとともにノンブロックモードを指定して前記connect処理を開始させるステップと、
タイムアウト機能付きで前記socketに対する書き込みが可能になるか否かを監視する旨を指定して前記select処理を開始させるステップと、
前記タイムアウトが発生するまでに、前記socketに対して書き込み可能になった旨を示す情報が前記Socket処理部から出力されたか否かを判断するステップと、
を含む、情報処理方法。
【請求項5】
ネットワークを介して他の装置とパケットの送受信を行うことが可能な通信部と、
前記他の装置のIPアドレスおよびポート番号を記憶する記憶部と、
前記通信部がパケットを受信すると、受信した前記パケットに対してフィルタリングを行うことによって、前記パケットを破棄または通過させるパケットフィルタ処理部と、
前記パケットフィルタ処理部によって通過された前記パケットの入力を受け付けることが可能であり、呼び出し元からsocketに対するオープン処理がなされると、前記呼び出し元によって指定された接続先に対して指定されたモードに従ってconnect処理を行い、前記呼び出し元によって指定されたモードに従ってselect処理を行うとともに前記select処理の結果を出力し、socketによる通信を前記呼び出し元に提供するSocket処理部と、アプリケーション処理部と、を備える情報処理装置が、
前記アプリケーション処理部により、
前記Socket処理部を呼び出して前記オープン処理を行うステップと、
前記記憶部が記憶する前記他の装置のIPアドレスおよびポート番号を前記socketの接続先として指定するとともにノンブロックモードを指定して前記connect処理を開始させるステップと、
タイムアウト機能付きで前記socketに対する書き込みが可能になるか否かを監視する旨を指定して前記select処理を開始させるステップと、
前記タイムアウトが発生するまでに、前記socketに対して書き込み可能になった旨を示す情報が前記Socket処理部から出力されたか否かを判断するステップと、
を含む、情報処理方法を、コンピュータに実行させるためのプログラム。
【請求項6】
情報提供装置と、前記情報提供装置とネットワークを介して相互に通信を行うことが可能である情報処理装置とを有する情報処理システムであって、
前記情報処理装置は、
ネットワークを介して前記情報提供装置とパケットの送受信を行うことが可能な通信部と、
前記情報提供装置のIPアドレスおよびポート番号を記憶する記憶部と、
前記通信部がパケットを受信すると、受信した前記パケットに対してフィルタリングを行うことによって、前記パケットを破棄または通過させるパケットフィルタ処理部と、
前記パケットフィルタ処理部によって通過された前記パケットの入力を受け付けることが可能であり、呼び出し元からsocketに対するオープン処理がなされると、前記呼び出し元によって指定された接続先に対して指定されたモードに従ってconnect処理を行い、前記呼び出し元によって指定されたモードに従ってselect処理を行うとともに前記select処理の結果を出力し、socketによる通信を前記呼び出し元に提供するSocket処理部と、
前記Socket処理部を呼び出して前記オープン処理を行い、前記記憶部が記憶する前記情報提供装置のIPアドレスおよびポート番号を前記socketの接続先として指定するとともにノンブロックモードを指定して前記connect処理を開始させ、タイムアウト機能付きで前記socketに対する書き込みが可能になるか否かを監視する旨を指定して前記select処理を開始させ、前記タイムアウトが発生するまでに、前記socketに対して書き込み可能になった旨を示す情報が前記Socket処理部から出力されたか否かを判断するアプリケーション処理部と、
を備え、
前記情報提供装置は、
前記ネットワークを介して前記情報処理装置とパケットの送受信を行うことが可能な通信部と、
前記通信部がパケットを受信すると、受信した前記パケットに対してフィルタリングを行うことによって、前記パケットを破棄または通過させるパケットフィルタ処理部と、
前記パケットフィルタ処理部によって通過された前記パケットの入力を受け付けることが可能であり、呼び出し元からsocketに対するオープン処理がなされると、前記情報処理装置からのアクセスを待ち受けるlisten処理を行い、前記情報処理装置からのアクセスを受け付けるaccept処理を行うSocket処理部と、
前記Socket処理部を呼び出して前記オープン処理を行い、前記listen処理を開始させ、前記accept処理を開始させるアプリケーション処理部と、
を備える、情報処理システム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−187070(P2010−187070A)
【公開日】平成22年8月26日(2010.8.26)
【国際特許分類】
【出願番号】特願2009−28335(P2009−28335)
【出願日】平成21年2月10日(2009.2.10)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】