(57)【要約】【課題】ネットワーク装置におけるセッションタイマーの更新のための処理負荷を軽減する。【解決手段】情報処理装置２０は、クライアント１０からのパケットを受信するたびにセッションタイマーの残り時間をＮ秒に戻すセッションタイマーの更新処理を行うが、セッションタイマーが最後に更新されてからセッションタイマー更新停止時間（Δ）が経過するまでの間は、クライアント１０からパケットを受信してもセッションタイマーの更新処理を行わない。【選択図】図１
2019176383.tif 000002
【特許請求の範囲】
【請求項１】
他の装置との通信に関するセッション情報を示すセッションテーブルを備える情報処理装置であって、
他の装置との通信を行う通信処理部と、
前記セッションテーブルにおける前記他の装置との通信に関するセッション情報を削除するまでの残り時間であるタイムアウト時間をセッションタイマーに設定するタイマー設定部と、
前記他の装置との通信を開始後、当該装置からのパケットを受信するたび、前記セッションタイマーの残り時間を所定のタイムアウト時間に戻すタイマー更新処理を行うタイマー更新部と、
最後に前記タイマー更新処理がされてから、所定時間、前記タイマー更新部による前記タイマー更新処理を停止させ、前記所定時間が経過した後、前記タイマー更新部による前記タイマー更新処理を再開させるタイマー更新制御部と、
前記セッションタイマーを参照し、前記タイムアウト時間が経過したと判断したとき、前記セッションテーブルにおける前記他の装置との通信に関するセッション情報を削除する削除部と、
を備えることを特徴とする情報処理装置。
【請求項２】
他の装置との通信に関するセッション情報を示すセッションテーブルを備える情報処理装置により実行される情報処理方法であって、
他の装置との通信を行うステップと、
前記セッションテーブルにおける前記他の装置との通信に関するセッション情報を削除するまでの残り時間であるタイムアウト時間をセッションタイマーに設定するステップと、
前記他の装置との通信を開始後、当該装置からのパケットを受信するたび、前記セッションタイマーにおけるタイムアウト時間を所定のタイムアウト時間に戻すタイマー更新処理を行うステップと、
最後に前記タイマー更新処理がされてから、所定時間、前記タイマー更新処理を停止し、前記所定時間が経過した後、前記タイマー更新処理を再開させるステップと、
前記セッションタイマーを参照し、前記タイムアウト時間が経過したと判断したとき、前記セッションテーブルにおける前記他の装置との通信に関するセッション情報を削除するステップと、
を含んだことを特徴とする情報処理方法。
【請求項３】
他の装置との通信に関するセッション情報を示すセッションテーブルを備えるコンピュータにより実行される情報処理プログラムであって、
他の装置との通信を行うステップと、
前記セッションテーブルにおける前記他の装置との通信に関するセッション情報を削除するまでの残り時間であるタイムアウト時間をセッションタイマーに設定するステップと、
前記他の装置との通信を開始後、当該装置からのパケットを受信するたび、前記セッションタイマーの残り時間を所定のタイムアウト時間に戻すタイマー更新処理を行うステップと、
最後に前記タイマー更新処理がされてから、所定時間、前記タイマー更新処理を停止し、前記所定時間が経過した後、前記タイマー更新処理を再開させるステップと、
前記セッションタイマーを参照し、前記タイムアウト時間が経過したと判断したとき、前記セッションテーブルにおける前記他の装置との通信に関するセッション情報を削除するステップと、
を含んだことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、および、情報処理プログラムに関する。
【背景技術】
【０００２】
サーバや、ステートフルなネットワーク装置（以下、まとめて「ネットワーク装置」と称す）は、ＴＣＰ（Transmission  Control  Protocol）等のコネクションを管理するセッションテーブルを持つものが多い。
【０００３】
そして、上記のセッションテーブルを持つネットワーク装置は、通信相手の装置（例えば、クライアント）と間での予期せぬ通信切断（例えば、FINを返してこない等）に備え、セッションタイマーに設定された時間が経過するまでは、セッションテーブルに当該通信のセッション情報を保持する。そして、セッションタイマーに設定された時間が経過した後、ネットワーク装置は、上記のセッションテーブルから当該通信のセッション情報を削除する。
【０００４】
ここで、上記のネットワーク装置は、通信相手の装置との間の通信が長引いてしまった場合に備え、通信相手の装置からのパケットを受信するたびに、セッションタイマーをリセットする（延長する）ことが行われている。これにより、ネットワーク装置は、通信相手の装置との通信時間がセッションタイマーに設定された時間を超えてしまった場合でも、通信相手との通信を継続することができる。
【０００５】
このことを、図５を用いて説明する。ここでは、セッションテーブルを備えるネットワーク装置はサーバであり、ネットワーク装置の通信相手の装置はクライアントである場合を例に説明する。
【０００６】
例えば、図５に示すように、サーバは、クライアントから、ＴＣＰにおけるsynのパケットを受信し、通信を開始すると、セッションテーブルにセッション情報の登録を行い、セッションタイマーを設定する。例えば、セッションタイマーに、所定のタイムアウト時間（例えば、Ｎ秒）を設定する。その後、サーバは、クライアントとの間で何等かの通信のやり取りを行い、セッションタイマーの示す残り時間がゼロになると、セッションテーブルから当該通信のセッション情報を削除する。ここで、サーバがまだクライアントとの通信を継続中である場合、セッションテーブルからセッション情報が削除されているため、クライアントとの通信が不可になってしまう。
【０００７】
そこで、図６に示すように、サーバは、クライアントとの通信を開始し、セッションテーブルにセッション情報の登録を行い、セッションタイマーを設定した後、クライアントからパケットを受信するたび、セッションタイマーの更新を行う。例えば、サーバは、クライアントからパケットを受信するたび、セッションタイマーの示す残り時間を所定の時間（例えば、上記のＮ秒）に戻す。このような処理により、サーバとクライアントとの通信が長引いた場合でも、セッションタイマーが更新（延長）されるため、クライアントと通信可能になる。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】How  to  implement  Session  timeout  in  Web  Server  Side?、［平成30年3月15日検索］、インターネット＜URL：https://stackoverflow.com/questions/2574929/how-to-implement-session-timeout-in-web-server-side＞
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、セッションタイマーに設定された時間内にネットワーク装置に何度もパケットが到着すると、ネットワーク装置におけるセッションタイマーの更新のための処理負荷が大きくなってしまう。そこで、本発明は、前記した問題を解決し、ネットワーク装置におけるセッションタイマーの更新の処理負荷を軽減することを課題とする。
【課題を解決するための手段】
【００１０】
前記した課題を解決するため、本発明は、他の装置との通信に関するセッション情報を示すセッションテーブルを備える情報処理装置であって、他の装置との通信を行う通信処理部と、前記セッションテーブルにおける前記他の装置との通信に関するセッション情報を削除するまでの残り時間であるタイムアウト時間をセッションタイマーに設定するタイマー設定部と、前記他の装置との通信を開始後、当該装置からのパケットを受信するたび、前記セッションタイマーの残り時間を所定のタイムアウト時間に戻すタイマー更新処理を行うタイマー更新部と、最後に前記タイマー更新処理がされてから、所定時間、前記タイマー更新部による前記タイマー更新処理を停止させ、前記所定時間が経過した後、前記タイマー更新部による前記タイマー更新処理を再開させるタイマー更新制御部と、前記セッションタイマーを参照し、前記タイムアウト時間が経過したと判断したとき、前記セッションテーブルにおける前記他の装置との通信に関するセッション情報を削除する削除部と、を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ネットワーク装置におけるセッションタイマーの更新の処理負荷を軽減することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、情報処理装置の動作概要を説明する図である。
【図２】図２は、システムの構成例を示す図である。
【図３】図３は、情報処理装置によるセッションタイマーの設定および更新の処理手順の例を示すフローチャートである。
【図４】図４は、情報処理プログラムを実行するコンピュータを示す図である。
【図５】図５は、従来のセッションテーブルの更新を説明するための図である。
【図６】図６は、従来のセッションテーブルの更新を説明するための図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら、本発明を実施するための形態（実施形態）について説明する。本発明は、本実施形態に限定されない。
【００１４】
［概要］
まず、図１を用いて、本実施形態の情報処理装置の動作概要を説明する。なお、以下の説明において、情報処理装置（ネットワーク装置）２０は、クライアント１０との間でＴＣＰセッションにより通信を行う場合を例に説明する。
【００１５】
情報処理装置２０は、クライアント１０との通信を開始し、当該クライアント１０からsynを受信すると、セッションテーブルに当該通信に関するセッション情報の登録を行う。そして、情報処理装置２０は、セッションテーブルにおけるセッション情報のタイムアウト時間（例えば、Ｎ秒）をセッションタイマーに設定する。その後、情報処理装置２０は、クライアント１０へのsynまたはackを送信、クライアント１０からのackのパケットの受信等、クライアント１０との間で何等かの通信のやり取りが発生する。
【００１６】
ここで、従来技術の情報処理装置は、クライアント１０からのパケットを受信するたびに、セッションタイマーの示す残り時間をＮ秒に戻す処理（セッションタイマーの更新処理）を行うが、本実施形態の情報処理装置２０は、セッションタイマーが最後に更新されてからセッションタイマー更新停止時間（Δ）が経過するまでの間、セッションタイマーの更新を停止する。
【００１７】
つまり、情報処理装置２０は、セッションタイマーが最後に更新されてからセッションタイマー更新停止時間（Δ）が経過するまでの間、クライアント１０からパケットを受信してもセッションタイマーを更新しないようにする。そして、情報処理装置２０は、上記のセッションタイマー更新停止時間が経過した後、セッションタイマー更新処理（タイマー更新処理）を再開する。つまり、情報処理装置２０は、クライアント１０からパケットを受信すると、セッションタイマーを更新する。その後、情報処理装置２０は、再び、セッションタイマー更新停止時間（Δ）が経過するまでの間、クライアント１０からパケットを受信してもセッションタイマーを更新しない。情報処理装置２０は、このような処理をクライアント１０との通信セッションが継続している間、繰り返す。
【００１８】
つまり、情報処理装置２０は、クライアント１０との通信中のセッションタイマーの更新の間にセッションタイマー更新停止時間（Δ）を挟む。これにより、情報処理装置２０は、クライアント１０との通信が長引いた場合でも、クライアント１０からパケットを受信するたびにセッションタイマーの更新を行う必要がないので、セッションタイマーの更新の処理負荷を軽減することができる。
【００１９】
［構成］
次に、図２を用いて、情報処理装置２０を含むシステムの構成例を説明する。システムは、例えば、１以上のクライアント１０と、情報処理装置２０とを備える。クライアント１０と情報処理装置２０とは、例えば、インターネット等のネットワークにより接続される。クライアント１０は、例えば、ネットワーク経由で通信可能なパーソナルコンピュータであり、情報処理装置２０は、例えば、例えば、ネットワーク経由で通信可能なサーバである。
【００２０】
情報処理装置２０は、通信部２１、入出力部２２、記憶部２３および制御部２４を備える。通信部２１は、ネットワーク経由で、他の装置との通信を行う際のインタフェースを司る。例えば、通信部２１は、ネットワーク経由で、クライアント１０からパケットを受信したり、クライアント１０へパケットを送信したりする。
【００２１】
入出力部２２は、データ入出力のインタフェースを司る。この入出力部２２は、例えば、情報処理装置２０の管理者等から、セッションタイマー２４５に設定するセッション情報のタイムアウト時間や、セッションタイマー更新停止時間等の入力を受け付ける。なお、セッションテーブルにセッション情報をＴ秒保持する必要があり、上記のセッションタイマー更新停止時間をΔ秒としたい場合、セッションタイマー２４５に設定するタイムアウト時間（Ｎ秒）は、（Ｔ＋Δ）秒となる。
【００２２】
記憶部２３は、制御部２４が処理を行う際に参照する各種情報を記憶する。例えば、記憶部２３は、入出力部２２経由で入力されたタイムアウト時間や、セッションタイマー更新停止時間（Δ）等を記憶する。また、記憶部２３は、所定領域にセッションテーブル記憶部２３１を備える。このセッションテーブル記憶部２３１は、セッションテーブルを記憶する。
【００２３】
セッションテーブルは、他の装置（例えば、クライアント１０）との通信のセッション情報を示したテーブルである。セッションテーブルに登録されるセッション情報を表１に例示する。
【００２４】
セッション情報は、例えば、表１に示すように、受信パケットのセッションの識別情報（例えば、「＃１」）と、当該受信パケットの送信元ＩＰ（Internet  Protocol）アドレス（例えば、「ＩＰ‐Ｃ‐１」）、送信元ポート番号（例えば、「ｘｘｘｘ」）、プロトコル番号（例えば、「６（ｔｃｐ）」）、送信元ＭＡＣ（Media  Access  Control）アドレス（例えば、「ＭＣ‐ＬＢ‐１」）等の情報を含む。なお、表１に示すセッション情報における送信元ＭＡＣアドレスは、返却用ＭＡＣアドレスとして記録されている。また、このセッション情報は、パケット処理部２４１（後記）が当該上りパケットに対する下りパケットを送信する際や、通信相手の装置（例えば、クライアント）と間での予期せぬ通信切断が生じた場合等に、通信を再開する際に用いられる。このセッションテーブルのセッション情報は、セッション情報登録部２４２（後記）により登録され、セッション情報削除部２４３（後記）により削除される。
【００２５】
【表１】
2019176383.tif 000003
【００２６】
制御部２４は、パケット処理部２４１、セッション情報登録部（登録部）２４２、セッション情報削除部（削除部）２４３、タイマー更新部２４４、セッションタイマー２４５、タイマー更新制御部２４６およびタイマー設定部２４７を備える。
【００２７】
パケット処理部２４１は、通信部２１経由で、クライアント１０からパケットを受信したり、クライアント１０へパケットを送信したりする。
【００２８】
セッション情報登録部２４２は、当該情報処理装置２０がクライアント１０との通信を開始すると、当該通信のセッション情報をセッションテーブルに登録する。
【００２９】
セッション情報削除部２４３は、セッション情報をセッションテーブルから削除する。例えば、セッション情報削除部２４３は、セッションタイマー２４５の示す残り時間を参照し、セッション情報のタイムアウト時間を迎えたと判断したとき、セッションテーブルから当該セッション情報を削除する。つまり、セッション情報削除部２４３は、セッションタイマー２４５の示す残り時間がゼロになると、セッションテーブルからセッション情報を削除する。
【００３０】
タイマー更新部２４４は、他の装置（例えば、クライアント１０）との通信を開始後、当該装置からのパケットを受信した際に、タイマー更新制御部２４６によりタイマー更新部２４４が停止されていない場合に限り、セッションタイマー２４５の残り時間を、所定のタイムアウト時間（例えば、Ｎ秒）に戻すタイマー更新処理を行う。
【００３１】
セッションタイマー２４５は、セッションテーブルからセッション情報を削除するまでの残り時間を示すタイマーである。
【００３２】
タイマー更新制御部２４６は、最後にタイマー更新処理がされてから、セッションタイマー更新停止時間（Δ）が経過するまで、タイマー更新部２４４によるタイマー更新処理を停止させる（抑止する）。そして、タイマー更新制御部２４６は、セッションタイマー更新停止時間の経過後、タイマー更新部２４４によるタイマー更新処理を再開させる。なお、セッションタイマー更新停止時間（Δ）は、セッション情報のタイムアウト時間（例えば、Ｎ秒）よりも短い時間である。
【００３３】
タイマー設定部２４７は、入出力部２２経由で入力されたタイムアウト時間をセッションタイマー２４５に設定する。
【００３４】
以上説明した情報処理装置２０によれば、クライアント１０との通信が長引いた場合でも、クライアント１０からのパケットを受信するたびにセッションタイマー２４５の更新を行う必要がないので、セッションタイマー２４５の更新の処理負荷を軽減することができる。
【００３５】
［処理手順］
次に、図３を用いて情報処理装置２０によるセッションタイマーの設定および更新の処理手順の例を説明する。なお、当該情報処理装置２０には、セッションタイマー２４５に設定するタイムアウト時間（上記のＮ秒）と、セッションタイマー更新停止時間（上記のΔ秒）とが入力済みであるものとする。
【００３６】
情報処理装置２０のパケット処理部２４１がクライアント１０との通信を開始すると（Ｓ１）、セッション情報登録部２４２は、セッションテーブルに当該通信のセッション情報を登録する（Ｓ２：セッションテーブルへのセッション情報の登録）。また、制御部２４は、セッションタイマー２４５の設定または更新を行う（Ｓ３）。例えば、タイマー設定部２４７は、セッションタイマー２４５に所定のタイムアウト時間（Ｎ秒）を設定する。または、タイマー更新部２４４は、セッションタイマー２４５の残り時間を上記の所定のタイムアウト時間（Ｎ秒）に更新する。
【００３７】
Ｓ３の後、制御部２４は、クライアント１０からのパケットの受信を待ち（Ｓ４）、受信パケットが通信終了を示すものであれば（Ｓ５でＹｅｓ）、通信処理を終了させる。例えば、制御部２４は、クライアント１０からの受信パケットがFINやRSTの場合、通信処理を終了させる。一方、受信パケットが通信終了を示すもの（例えば、FINやRST）でなければ（Ｓ５でＮｏ）、タイマー更新制御部２４６は、最後にセッションタイマー２４５を更新してから（または最初にセッションタイマー２４５にタイムアウト時間（Ｎ秒）を設定してから）、所定時間（セッションタイマー更新停止時間（上記のΔ秒））経過しているか否かを判定する（Ｓ６）。ここで、最後にセッションタイマー２４５を更新（または最初にセッションタイマー２４５にタイムアウト時間（Ｎ秒）を設定してから）してから、まだ所定時間経過していなければ（Ｓ６でＮｏ）、Ｓ４へ戻る。
【００３８】
一方、最後にセッションタイマー２４５を更新してから（または最初にセッションタイマー２４５にタイムアウト時間（Ｎ秒）を設定してから）、所定時間（セッションタイマー更新停止時間（上記のΔ秒））経過している場合（Ｓ６でＹｅｓ）、Ｓ３へ戻る。つまり、タイマー更新部２４４は、セッションタイマー２４５の残り時間を上記の所定のタイムアウト時間（Ｎ秒）に更新する。
【００３９】
以上説明した情報処理装置２０によれば、クライアント１０との通信が長引いた場合でも、クライアント１０からのパケットを受信するたびにセッションタイマー２４５の更新を行う必要がないので、セッションタイマー２４５の更新の処理負荷を軽減することができる。
【００４０】
なお、情報処理装置２０は、ＴＣＰセッションによりクライアント１０との通信を行う装置である場合を例に説明したが、これに限定されない。例えば、情報処理装置２０は、ＮＡＴ（Network  Address  Translation）セッションやＨＴＴＰ（Hypertext  Transfer  Protocol）セッションによりクライアント１０との通信を行う装置であってももちろんよい。
【００４１】
［プログラム］
また、上記の実施形態で述べた情報処理装置２０の機能を実現するプログラムを所望の情報処理装置（コンピュータ）にインストールすることによって実装できる。例えば、パッケージソフトウェアやオンラインソフトウェアとして提供される上記のプログラムを情報処理装置に実行させることにより、情報処理装置を情報処理装置２０として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータ、ラック搭載型のサーバコンピュータ等が含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistants）等がその範疇に含まれる。また、情報処理装置２０を、クラウドサーバに実装してもよい。
【００４２】
図４を用いて、上記のプログラム（情報処理プログラム）を実行するコンピュータの一例を説明する。図４に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００４３】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【００４４】
ここで、図４に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。前記した実施形態で説明した各種データや情報は、例えばハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【００４５】
そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００４６】
なお、上記の情報処理プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、上記のプログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮやＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。また、コンピュータ１０００は、ＣＰＵ１０２０に代えて、ＧＰＵ（Graphics  Processing  Unit）を用いて処理を実行してもよい。
【符号の説明】
【００４７】
１０  クライアント
２０  情報処理装置
２１  通信部
２２  入出力部
２３  記憶部
２４  制御部
２４１  パケット処理部
２４２  セッション情報登録部
２４３  セッション情報削除部
２４４  タイマー更新部
２４５  セッションタイマー
２４６  タイマー更新制御部
２４７  タイマー設定部
【図１】
2019176383.tif 000004
【図２】
2019176383.tif 000005
【図３】
2019176383.tif 000006
【図４】
2019176383.tif 000007
【図５】
2019176383.tif 000008
【図６】
2019176383.tif 000009