JP6841785B2 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP6841785B2
JP6841785B2 JP2018064298A JP2018064298A JP6841785B2 JP 6841785 B2 JP6841785 B2 JP 6841785B2 JP 2018064298 A JP2018064298 A JP 2018064298A JP 2018064298 A JP2018064298 A JP 2018064298A JP 6841785 B2 JP6841785 B2 JP 6841785B2
Authority
JP
Japan
Prior art keywords
session
information
session information
unit
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018064298A
Other languages
English (en)
Other versions
JP2019175244A (ja
Inventor
宗之 川谷
宗之 川谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2018064298A priority Critical patent/JP6841785B2/ja
Priority to US16/977,474 priority patent/US11386066B2/en
Priority to PCT/JP2019/012597 priority patent/WO2019189029A1/ja
Publication of JP2019175244A publication Critical patent/JP2019175244A/ja
Application granted granted Critical
Publication of JP6841785B2 publication Critical patent/JP6841785B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session

Description

本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
セッションを処理する情報処理装置は、セッションテーブルと、タイマーリストとを有する。この情報処理装置は、セッションテーブルにセッションを追加すると、タイマーリストに、その情報をタイマーとして追加する。そして、情報処理装置は、セッションの保持時刻が満了したことをタイマーが認識すると、そのセッションを解除し、タイマーリストからそのタイマーを削除する。ここで、情報処理装置は、セッションの追加削除、及び、タイマーの追加削除の際には、セッションテーブル及びタイマーリストをそれぞれロックして、互いに不整合が生じないように管理している。
How to implement Session timeout in Web Server Side?、[online]、[平成30年3月13日検索]、インターネット<URL:https://stackoverflow.com/questions/2574929/how-to-implement-session-timeout-in-web-server-side>
しかしながら、従来の情報処理装置では、セッションの追加削除及びタイマーの追加削除の際には、セッションテーブル及びタイマーリストをそれぞれロックするため、セッションテーブルの操作を行う際のロック獲得の回数が多く、ロックの競合が発生する頻度が高くなる場合があった。また、従来の管理装置では、タイマーを管理するデータ構造の操作にかかる処理コストも必要であるという問題があった。
本発明は、上記に鑑みてなされたものであって、従来と比してセッションテーブルの操作を行う際のロック獲得の回数を削減するとともに、処理コストの削減を可能にする情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る情報処理装置は、セッションテーブルを実装する情報処理装置であって、セッション内容と該セッションの保持時刻とを有するセッション情報が記録されるセッションテーブルを記憶する記憶部と、セッション情報に対する処理の間、セッションテーブルの少なくとも処理対象領域をロックするロック部と、ロック部によるロック後に、セッションテーブルのセッション情報を走査し、処理対象のセッション情報を探索する探索部と、探索部による走査の際に保持時刻を超過したセッション情報が発見された場合には、保持時刻を超過したセッション情報をセッションテーブルから削除する削除部と、を有することを特徴とする。
本発明によれば、従来と比してセッションテーブルの操作を行う際のロック獲得の回数を削減するとともに、処理コストの削減を可能にする。
図1は、実施の形態における通信システムの構成の一例を示す図である。 図2は、図1に示す情報処理装置がセッションテーブルへのセッション情報を追加する処理の流れを説明する図である。 図3は、図1に示す情報処理装置がセッションテーブルへのセッション情報を追加する処理の流れを説明する図である。 図4は、図1に示す情報処理装置がセッションテーブルへのセッション情報の保持時刻を延長する処理の流れを説明する図である。 図5は、図1に示す情報処理装置がセッションテーブルのセッション情報を探索する処理の処理手順の一例を示すフローチャートである。 図6は、図1に示す情報処理装置がセッションテーブルへセッション情報を追加する処理の処理手順の一例を示すフローチャートである。 図7は、図1に示す情報処理装置がセッションテーブルのセッション情報の保持時刻を延長する処理の処理手順の一例を示すフローチャートである。 図8は、従来技術におけるセッション情報の追加処理の流れを説明する図である。 図9は、従来技術におけるセッション情報の追加処理の流れを説明する図である。 図10は、従来技術におけるセッション情報の追加処理の流れを説明する図である。 図11は、従来技術におけるセッション情報の保持時刻延長処理の流れを説明する図である。 図12は、従来技術におけるセッション情報の保持時刻延長処理の流れを説明する図である。 図13は、従来技術におけるセッション情報の保持時刻延長処理の流れを説明する図である。 図14は、従来技術におけるセッション情報の削除処理の流れを説明する図である。 図15は、従来技術におけるセッション情報の削除処理の流れを説明する図である。 図16は、プログラムが実行されることにより、情報処理装置が実現されるコンピュータの一例を示す図である。
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[実施の形態]
本発明の実施の形態について説明する。図1は、実施の形態における通信システムの構成の一例を示す図である。
図1に示すように、実施の形態に係る通信システムは、例えば、複数のクライアント1と、情報処理装置10とを有する。各クライアント1と情報処理装置10とは、ネットワーク2等を介して接続される。
クライアント1は、情報処理装置10との通信を行う装置である。
情報処理装置10は、クライアント1との間で通信を行う。情報処理装置10は、例えば、クライアント1からの受信パケットに基づき種々の処理を行った後、当該受信パケットの返信パケットを、当該クライアント1へ送信する。
情報処理装置10は、各パケットのセッションに関するセッション情報が記録されるセッションテーブルを実装して、セッションを管理する。ここで、情報処理装置10は、セッションテーブルのセッション情報内に、該セッションの保持時刻を埋め込み、セッションの保持時刻を、それぞれのセッション情報を走査するだけで認識することができるようにしている。言い換えると、情報処理装置10は、セッション情報の探索の過程で、走査したセッション情報の保持時刻を確認する。そして、情報処理装置10は、保持時刻を超過していた場合には、そのタイミングでセッション情報の削除を行う。なお、情報処理装置10は、探索等のセッション情報に対する処理の間、セッションテーブルの処理対象の領域をロックする。
[情報処理装置の構成]
次に、図1を参照して、情報処理装置10の構成について説明する。図1に示すように、情報処理装置10は、通信部11、記憶部12及び制御部13を有する。
通信部11は、ネットワーク2等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部11は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置と制御部13(後述)との間の通信を行う。
記憶部12は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、情報処理装置10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部12は、セッションテーブル記憶部121を有する。
セッションテーブル記憶部121は、セッションテーブルを記憶する。セッションテーブルは、各パケットのセッション内容と該セッションの保持時刻とを有するセッション情報が記録される。本実施の形態では、セッションテーブルとして、チェイン構造のセッションテーブルを採用し、ハッシュ関数を用いてセッション情報を格納するセッションテーブルのチェインを決めるハッシュ法を採用した場合について説明する。このため、セッションテーブルにおいて、各セッション情報は、該セッション情報のハッシュ値に応じたチェインにそれぞれ属する。
制御部13は、情報処理装置10全体を制御する。制御部13は、各種の処理手順などを規定したプログラム及び所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部13は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。また、制御部13は、各種のプログラムが動作することにより各種の処理部として機能する。制御部13は、パケット処理部131、ハッシュ計算部132、ロック部133、探索部134、削除部135、追加部136及び延長部137を有する。
パケット処理部131は、例えば、クライアント1との間の通信によるパケットを処理する。パケット処理部131は、クライアント1からの受信パケットに基づき種々の処理を行った後、当該受信パケットの返信パケットを、当該クライアント1へ送信する。
ハッシュ計算部132は、セッションテーブルに対するセッション情報の探索が行なわれる際に、探索対象のセッション情報のハッシュ値を計算する。
ロック部133は、セッション情報に対する処理の間、セッションテーブルの少なくとも処理対象領域をロックする。具体的には、ロック部133は、ハッシュ計算部132が計算したハッシュ値に対応するチェインをロックする。そして、ロック部133は、セッション情報に対する処理が終了すると、ロックを解除(アンロック)する。
探索部134は、ロック部133によるロック後に、セッションテーブルのセッション情報を走査する。探索部134は、処理対象のセッション情報のキーを取得する。そして、探索部134は、ロックされたチェインの各セッション情報を走査し、取得したキーと一致するキーを有するセッション情報を探索する。探索部134は、このセッション情報の探索の過程でセッション情報の保持時刻を確認する。なお、キーの一致は、完全一致の他、一部一致でもよい。
削除部135は、探索部134による走査の際に保持時刻を超過したセッション情報が発見された場合には、この保持時刻を超過したセッション情報をセッションテーブルから削除する。したがって、削除部135は、セッション情報をセッションテーブルから削除するだけで、保持時刻を超過したセッション内容と該セッションの保持時刻との双方を削除する。
追加部136は、新たに受信したパケットのセッション情報(追加対象のセッション情報)を探索部134がセッションテーブルから探索できなかった場合、追加対象のパケットのセッション情報をセッションテーブルに追加する。この際、追加部136は、セッション情報のハッシュ値に対応するチェインの所定位置(例えば、末尾)に、新たに受信したパケットのセッション情報を追加する。
また、追加部136は、追加対象のセッション情報を探索部134がセッションテーブルから探索した場合には、そのセッション情報を、追加対象のセッションに対応させて上書きする。この際、追加部136は、セッション情報のセッション内容に加え、保持時刻についても延長して更新する。
延長部137は、パケット処理部131が受信したパケットのセッション情報の保持時刻を延長して更新する。延長部137は、受信したパケットのセッション情報を探索部がセッションテーブルから探索した場合には、この探索部134が探索したセッション情報の保持時刻を延長して更新する。
[セッションテーブルへのセッション情報の追加処理の流れ]
次に、情報処理装置10がセッションテーブルへのセッション情報を追加する処理について説明する。図2及び図3は、図1に示す情報処理装置10がセッションテーブルへのセッション情報を追加する処理の流れを説明する図である。図2及び図3では、情報処理装置10が実装するセッションテーブル(ハッシュテーブル)の一例を示し、セッションテーブルへのセッション情報の追加処理の流れを説明する。
図2及び図3に示すように、情報処理装置10は、「0」〜「5」のハッシュ値にそれぞれ対応する「bucket0」〜「bucket5」のチェインを有する。各「bucket0」〜「bucket 5」には、session record(セッション情報)が連結される。セッション情報は、このセッション情報のハッシュ値に対応するチェインに連結される。
まず、ハッシュ計算部132は、追加するセッション情報のハッシュセッション情報のハッシュ値を計算する(図2の(1)参照)。今回の例では、追加するセッション情報のハッシュ値が「4」と計算された。
そして、ロック部133は、追加するセッション情報のハッシュ値「4」に対応する「bucket4」のチェインをロックする(図2の(2)参照)。続いて、探索部134は、ロックされたチェイン「bucket4」の各セッション情報を順次走査し、追加するセッション情報のキーと一致するキーを有するセッション情報を探索する。そして、探索部134が、チェイン「bucket4」の走査中に、保持時刻を超過しているセッション情報R41を発見した場合、削除部135は、このセッション情報R41をチェイン「bucket4」から削除する(図2の(3)参照)。
そして、追加部136は、追加対象のパケットのセッション情報を、探索部134がチェイン「bucket4」から探索できなかった場合、追加対象のパケットのセッション情報R43を、チェイン「bucket4」の末尾に追加する(図3の(4)参照)。ここで、追加部136は、追加するセッション情報について、保持時刻を、保持時刻=現在時刻+タイムアウト時間、と演算して設定する(図3の(A)参照)。このように、追加部136は、セッション情報にセッションの保持時刻を埋め込む。
続いて、追加部136の処理が終了すると、ロック部133は、チェイン「bucket4」をアンロックし(図3の(5)参照)、セッション情報の追加処理を終了する。なお、セッションの参照(探索)については、チェインへのセッション情報の追加(図3の(4)参照)処理がない以外、図2及び図3に示す処理と同様の流れで実行される。
[セッション情報の保持時刻延長処理の流れ]
次に、情報処理装置10がセッションテーブルのセッション情報の保持時刻を延長する処理について説明する。図4は、図1に示す情報処理装置10がセッションテーブルへのセッション情報の保持時刻を延長する処理の流れを説明する図である。
まず、ハッシュ計算部132は、受信したパケットのセッション情報(延長対象のセッション情報)のハッシュ値「4」を計算する(図4の(1)参照)。そして、ロック部133は、このセッション情報のハッシュ値「4」に対応する「bucket4」のチェインをロックする(図4の(2)参照)。
続いて、探索部134は、ロックされたチェイン「bucket4」の各セッション情報を順次走査し、受信したパケットのセッション情報のキーと一致するキーを有するセッション情報を探索する。延長部137は、探索部134の探索の結果、該当したセッション情報R41の保持時刻を延長する(図4の(B)参照)。この際、追加部136は、該当するセッション情報R41について、保持時刻を、保持時刻=現在時刻+タイムアウト時間、と演算して更新する(図4の(3)参照)。なお、探索部134が、チェイン「bucket4」の走査中に、保持時刻を超過しているセッション情報を発見した場合、削除部135は、このセッション情報をセッションテーブルT1から削除する。
続いて、延長部137の処理が終了すると、ロック部133は、チェイン「bucket4」をアンロックし(図4の(4)参照)、セッション情報の保持時刻延長処理を終了する。
[セッションテーブルのセッション情報の探索処理の処理手順]
次に、情報処理装置10がセッションテーブルのセッション情報を探索する処理の処理手順について説明する。図5は、図1に示す情報処理装置10がセッションテーブルのセッション情報を探索する処理の処理手順の一例を示すフローチャートである。
図5に示すように、セッション情報の探索指示を受けると(ステップS1)は、ハッシュ計算部132は、探索対象であるセッション情報のハッシュ値を計算する(ステップS2)。ロック部133は、探索対象のセッション情報が属するチェインをロックする(ステップS3)。
探索部134は、ロックされたチェインのセッション情報を順次走査する。具体的には、探索部143は、走査したセッション情報のキーが、探索対象のセッション情報のキーと一致するか否かを判定する(ステップS4)。
探索部134は、走査したセッション情報のキーが、探索対象のセッション情報のキーと一致しないと判定した場合(ステップS4:No)、このセッション情報が保持時刻を超過しているか否かを判定する(ステップS5)。セッション情報が保持時刻を超過していると探索部134が判定した場合(ステップS5:Yes)、削除部135は、このセッション情報をセッションテーブルから削除する(ステップS6)。
そして、探索部134は、次のセッション情報が有るか否かを判定する(ステップS7)。探索部134は、次のセッション情報があると判定した場合(ステップS7:Yes)、次のセッション情報に進み(ステップS8)、ステップS4に戻り、次のセッション情報のキーが、探索対象のセッション情報のキーと一致するか否かを判定する。
また、探索部134は、走査したセッション情報のキーが、探索対象のセッション情報のキーと一致すると判定した場合(ステップS4:Yes)、このセッション情報が保持時刻を超過しているか否かを判定する(ステップS9)。セッション情報が保持時刻を超過していないと探索部134が判定した場合(ステップS9:No)、このセッション情報が探索対象のセッション情報であると判定し、該セッション情報を読み出す(ステップS10)。
一方、セッション情報が保持時刻を超過していると探索部134が判定した場合(ステップS9:Yes)、削除部135は、このセッション情報をセッションテーブルから削除する(ステップS11)。
そして、次のセッション情報がないと探索部134が判定した場合(ステップS7:No)、ステップS10処理後、または、ステップS11処理後、ロック部133は、ロックしていたチェインをアンロックし(ステップS12)、セッション情報の探索処理を終了する。このように、情報処理装置10では、セッション情報の探索タイミングで、保持時刻を超過しているセッション情報が発見された場合に、このセッション情報をセッションテーブルから削除する。
[セッションテーブルへのセッション情報の追加処理の処理手順]
次に、情報処理装置10がセッションテーブルへセッション情報を追加する処理の処理手順について説明する。図6は、図1に示す情報処理装置10がセッションテーブルへセッション情報を追加する処理の処理手順の一例を示すフローチャートである。
図6に示すように、パケット処理部131のパケット処理等によって、セッション情報の追加指示を受けると(ステップS21)、ハッシュ計算部132は、追加対象であるセッション情報のハッシュ値を計算する(ステップS22)。ロック部133は、追加対象のセッション情報が属するチェインをロックする(ステップS23)。
探索部134は、ロックされたチェインのうち、走査したセッション情報に対し、セッション情報のキーが、追加対象のセッション情報のキーと一致するか否かを判定する(ステップS24)。
探索部134は、走査したセッション情報のキーが、追加対象のセッション情報のキーと一致すると判定した場合(ステップS24:Yes)、このセッション情報が追加対象のセッション情報であると判定する。そして、追加部136は、そのセッション情報を、追加対象のセッションに対応させて上書きする(ステップS25)。この際、追加部136は、セッション情報のセッション内容に加え、保持時刻についても延長して更新する。
一方、探索部134は、走査したセッション情報のキーが、追加対象のセッション情報のキーと一致しないと判定した場合(ステップS24:No)、ステップS26〜ステップS29を行う。ステップS26〜ステップS29は、図5に示すステップS5〜ステップS8と同じ処理である。
そして、次のセッション情報がないと探索部134が判定した場合(ステップS28:No)、追加部136は、追加対象のセッション情報をセッションテーブルに追加する(ステップS30)。この際、追加部136は、セッション情報のハッシュ値に対応するチェインの所定位置(例えば、末尾)に、追加対象のセッション情報を追加する。
ステップS25処理後、または、ステップS30処理後、ロック部133は、ロックしていたチェインをアンロックし(ステップS31)、セッション情報の追加処理を終了する。
[セッション情報の保持時刻延長処理の処理手順]
次に、情報処理装置10がセッションテーブルのセッション情報の保持時刻を延長する処理の処理手順について説明する。図7は、図1に示す情報処理装置10がセッションテーブルのセッション情報の保持時刻を延長する処理の処理手順の一例を示すフローチャートである。
図7に示すように、パケット処理部131のパケット処理等によって、セッション情報の保持時刻延長指示を受けると(ステップS41)、ハッシュ計算部132は、延長対象のセッション情報のハッシュ値を計算する(ステップS42)。ロック部133は、延長対象のセッション情報が属するチェインをロックする(ステップS43)。
探索部134は、ロックされたチェインのうち、走査したセッション情報に対し、セッション情報のキーが、延長対象のセッション情報のキーと一致するか否かを判定する(ステップS44)。
探索部134は、セッション情報のキーが、延長対象のセッション情報のキーと一致しないと判定した場合(ステップS44:No)、ステップS45〜ステップS48を行う。ステップS45〜ステップS48は、図5に示すステップS5〜ステップS8と同じ処理である。
また、探索部134は、走査したセッション情報のキーが、延長対象のセッション情報のキーと一致すると判定した場合(ステップS44:Yes)、このセッション情報が保持時刻を超過しているか否かを判定する(ステップS49)。セッション情報が保持時刻を超過していないと探索部134が判定した場合(ステップS49:No)、このセッション情報が延長対象のセッション情報であると判定し、延長部137は、そのセッション情報の保持時刻を延長して更新する(ステップS50)。
一方、セッション情報が保持時刻を超過していると探索部134が判定した場合(ステップS49:Yes)、削除部135は、このセッション情報をセッションテーブルから削除する(ステップS51)。
そして、次のセッション情報がないと探索部134が判定した場合(ステップS47:No)、または、ステップS50処理後、または、ステップS51処理後、ロック部133は、ロックしていたチェインをアンロックし(ステップS52)、セッション情報の保持時刻延長処理を終了する。
[従来技術の説明]
ここで、従来技術におけるセッション情報の追加処理について説明する。図8〜図10は、従来技術におけるセッション情報の追加処理の流れを説明する図である。図8〜図10に示すように、従来では、セッションテーブル(ハッシュテーブル)T1pに加えて、各セッション情報のタイマー情報を有するタイマーリストL1pを備える。このタイマーリストL1pは、クライアント1の予期せぬ切断(FIN/RSTなしでの切断)によりセッション情報が残存し続けることを防ぐため、タイマーによる一定時間通信が行われなかったセッション情報の削除を行う場合に必要となる。
図8〜図10に示すように、従来技術では、追加するセッション情報のハッシュ値「4」を計算し(図8の(1)参照)、セッションテーブルT1pのうち、ハッシュ値「4」に対応する「bucket4」のチェインをロックする(図8の(2)参照)。従来技術では、追加対象のパケットのセッション情報R43´を「bucket4」の末尾に追加し(図9の(3)参照)、チェイン「bucket4」をアンロックする(図9の(4)参照)。
さらに、従来技術では、タイマーリストL1pをロックし(図9の(5)参照)、追加したセッション情報R43´の削除用タイマーC43´を追加する(図9の(6)参照)。そして、従来技術では、タイマーリストL1pをアンロックして(図10の(7)参照)、処理を終了する。このように、従来技術では、セッションテーブルとは別個に有するタイマーリストに対しても、ロック及びタイマーの追加を行なう必要がある。
また、従来技術におけるセッション情報の保持時刻延長処理について説明する。図11〜図13は、従来技術におけるセッション情報の保持時刻延長処理の流れを説明する図である。
図11〜図13に示すように、従来技術では、受信したパケットのセッション情報のハッシュ値「4」を計算し(図11の(1)参照)、セッションテーブルT1pの「bucket4」のチェインをロックする(図11の(2)参照)。そして、従来技術では、該当するセッション情報R41´の保持時刻を延長するために(図11の(C)参照)、このセッション情報のR41´のタイマーのキーを取得する(図11の(3)参照)。
続いて、従来技術では、タイマーリストL1pをロックし(図12の(4)参照)、取得したキーに該当するタイマーC41´をタイマーリストL1pから削除する(図12の(5)参照)。そして、従来技術では、保持時刻の延長のための新しいタイマーC41″を追加する(図13の(6)参照)後、タイマーリストL1pをアンロックして(図13の(7)参照)、処理を終了する。
また、従来技術におけるセッション情報の削除処理について説明する。図14及び図15は、従来技術におけるセッション情報の削除処理の流れを説明する図である。
図14及び図15に示すように、従来技術では、保持時刻を超過しているセッション情報R41´(図14の(D)参照)をセッションテーブルT1pから削除する場合、まず、タイマーリストL1pをロックし(図14の(1)参照)、保持時刻を過ぎているタイマーC41´から、キー情報を取得して、タイマーC41´をタイマーリストL1pから削除する(図14の(2)参照)。
従来技術では、タイマーリストL1pをアンロックし(図15の(3)参照)、セッションテーブルT1pの、削除対象のセッション情報が属するチェイン「bucket4」をロックする(図15の(4)参照)。その後、従来技術では、取得したキーが一致するセッション情報のC41´をセッションテーブルT1pから削除する。
このように、従来技術では、セッション情報の追加及びセッション情報の保持時刻の延長を行うために、セッションテーブルT1pに加えて、タイマーリストL1pに対するロックが必要となる。また、従来技術では、セッション情報の削除を行うため、タイマーリストのロック後に、セッションテーブルのロックが必要になる。このように、従来技術では、セッション情報を処理する際のロック獲得の回数が多く、ロックの競合が発生する頻度が高くなっていた。
[本実施の形態の効果]
これに対し、本実施の形態に係る情報処理装置10は、セッション内容と該セッションの保持時刻とを有するセッション情報が記録されるセッションテーブルを記憶する。言い換えると、情報処理装置10は、セッションテーブルに記録されるセッション情報にセッション内容とセッションの保持時刻との双方を埋め込んでいる。
このため、情報処理装置10によれば、従来技術においてセッションテーブルとは別に保持していたタイマーリスト自体が不要となる。この結果、情報処理装置10によれば、従来技術と比して、タイマーを管理するデータ構造の操作に関する処理コストを削減することができる。
また、情報処理装置10は、セッション情報に対する処理の間、セッションテーブルの少なくとも処理対象領域のみをロックし、ロック後に、セッションテーブルのセッション情報を走査し、処理対象のセッション情報を探索する。
上述したように、情報処理装置10は、従来技術と比して、タイマーリスト自体が不要となるため、タイマーリストに対するロック自体が不要となる。このため、情報処理装置10によれば、セッションテーブルの操作を行う際、従来必要であったタイマーリストに対するロックが不要となることから、従来と比して、ロック回数を削減することができる。
また、情報処理装置10は、セッションテーブルに対する走査の際に保持時刻を超過したセッション情報が発見された場合には、この保持時刻を超過したセッション情報を削除している。言い換えると、情報処理装置10では、セッション情報の探索タイミングで、保持時刻を超過しているセッション情報が発見された場合には、このセッション情報を削除している。したがって、情報処理装置10では、検索または追加の際に取得したロックの中で、保持時刻を超過しているセッション情報を削除するため、従来必要であったセッション情報の削除処理を別個に行う必要がない。
このように、情報処理装置10によれば、従来と比して、ロック獲得の回数を削減することができる。したがって、情報処理装置10では、ロックの競合削減頻度も削減することができる。
なお、本実施の形態では、チェイン構造のセッションテーブルを採用したが、もちろん、オープンアドレス(開番地法)構造のセッションテーブルを採用することも可能である。この場合、ロック部133は、セッション情報に対する処理の間、セッションテーブル全体をロックし、その後、探索部134は、セッションテーブルのセッション情報を走査すればよい。
また、本実施の形態は、TCPセッション、NATセッション、HTTPセッションなど、各種プロトコルに応用が可能であり、特定のプロトコルに限ることはない。
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行なうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的に行なうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
図16は、プログラムが実行されることにより、情報処理装置10が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、情報処理装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、情報処理装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
1 クライアント
10 情報処理装置
11 通信部
12 記憶部
13 制御部
121 セッションテーブル記憶部
131 パケット処理部
132 ハッシュ計算部
133 ロック部
134 探索部
135 削除部
136 追加部
137 延長部

Claims (4)

  1. セッションテーブルを実装する情報処理装置であって、
    セッション内容と該セッションの保持時刻とを有するセッション情報が記録されるセッションテーブルを記憶する記憶部と、
    前記セッション情報に対する処理の間、前記セッションテーブルの少なくとも処理対象領域をロックするロック部と、
    前記ロック部によるロック後に、セッションの探索または追加のタイミングで、前記セッションテーブルのセッション情報を走査し、処理対象のセッション情報を探索する探索部と、
    前記探索部による走査の際に前記保持時刻を超過した前記セッション情報が発見された場合には、前記保持時刻を超過したセッション情報を前記セッションテーブルから削除する削除部と、
    新たに受信したパケットのセッション情報の保持時刻を延長して更新する延長部と、
    を有し、
    前記探索部は、前記受信したパケットのセッション情報を前記セッションテーブルから探索し、
    前記延長部は、前記探索部が探索したセッション情報の保持時刻を延長して更新することを特徴とする情報処理装置。
  2. パケットを処理するパケット処理部と、
    前記パケット処理部が新たに受信したパケットのセッション情報を前記探索部が前記セッションテーブルから探索できなかった場合、前記新たに受信したパケットのセッション情報を前記セッションテーブルに追加する追加部と、
    をさらに有することを特徴とする請求項1に記載の情報処理装置。
  3. セッションテーブルを実装する情報処理装置が実行する情報処理方法であって、
    前記情報処理装置は、セッション内容と該セッションの保持時刻とを有するセッション情報が記録されるセッションテーブルを記憶する記憶部を有し、
    前記セッション情報に対する処理の間、前記セッションテーブルの少なくとも処理対象領域をロックするロック工程と、
    前記ロック工程におけるロック後に、セッションの探索または追加のタイミングで、前記セッションテーブルのセッション情報を走査し、処理対象のセッション情報を探索する探索工程と、
    前記探索工程における走査の際に前記保持時刻を超過した前記セッション情報が発見された場合には、前記保持時刻を超過したセッション情報を前記セッションテーブルから削除する削除工程と、
    新たに受信したパケットのセッション情報の保持時刻を延長して更新する延長工程と、
    を含み、
    前記探索工程は、前記受信したパケットのセッション情報を前記セッションテーブルから探索し、
    前記延長工程は、前記探索工程において探索されたセッション情報の保持時刻を延長して更新することを特徴とする情報処理方法。
  4. コンピュータを、請求項1または2に記載の情報処理装置として機能させるための情報処理プログラム。
JP2018064298A 2018-03-29 2018-03-29 情報処理装置、情報処理方法及び情報処理プログラム Active JP6841785B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018064298A JP6841785B2 (ja) 2018-03-29 2018-03-29 情報処理装置、情報処理方法及び情報処理プログラム
US16/977,474 US11386066B2 (en) 2018-03-29 2019-03-25 Information processing device, method, and program with session table storing plurality of chains
PCT/JP2019/012597 WO2019189029A1 (ja) 2018-03-29 2019-03-25 情報処理装置、情報処理方法及び情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018064298A JP6841785B2 (ja) 2018-03-29 2018-03-29 情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2019175244A JP2019175244A (ja) 2019-10-10
JP6841785B2 true JP6841785B2 (ja) 2021-03-10

Family

ID=68058327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018064298A Active JP6841785B2 (ja) 2018-03-29 2018-03-29 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (3)

Country Link
US (1) US11386066B2 (ja)
JP (1) JP6841785B2 (ja)
WO (1) WO2019189029A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10764251B2 (en) * 2018-06-05 2020-09-01 Nxp Usa, Inc. Session setup in network applications
CN114422576B (zh) * 2022-01-24 2024-02-06 深圳壹账通智能科技有限公司 一种会话清理方法、装置、计算机设备和可读存储介质
CN115361433A (zh) * 2022-07-27 2022-11-18 北京仁科互动网络技术有限公司 基于阻塞队列的会话结束方法、装置和电子设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2002044905A1 (ja) 2000-11-29 2004-04-02 株式会社フレックス・ファーム コンテンツ提供におけるセッション管理方法
US7412454B2 (en) * 2003-09-03 2008-08-12 International Business Machines Corporation Data structure supporting random delete and timer function
US20100260174A1 (en) * 2009-04-09 2010-10-14 Research In Motion Limited Relay access node with separate control and transport signaling for session-based communications
JP5967187B2 (ja) * 2012-03-02 2016-08-10 日本電気株式会社 経路制御システム、コントロール装置及び経路制御方法
JP2014154057A (ja) 2013-02-13 2014-08-25 Hitachi Ltd 不正アクセス検知方法及び装置
US9772787B2 (en) * 2014-03-31 2017-09-26 Amazon Technologies, Inc. File storage using variable stripe sizes
JP6610124B2 (ja) * 2015-09-25 2019-11-27 富士ゼロックス株式会社 情報処理装置及びプログラム
EP3373148A4 (en) * 2015-11-05 2019-05-15 Murakumo Corporation DATABASE SYSTEM, TRANSACTION MANAGEMENT NODES, PROCEDURES AND PROGRAM
US9872072B2 (en) * 2016-03-21 2018-01-16 Google Llc Systems and methods for identifying non-canonical sessions
JP6683049B2 (ja) * 2016-07-20 2020-04-15 富士通株式会社 情報処理装置、情報処理方法、情報処理システム及びプログラム
US10623501B2 (en) * 2016-09-15 2020-04-14 Oracle International Corporation Techniques for configuring sessions across clients
CN108243115B (zh) * 2016-12-26 2021-06-29 新华三技术有限公司 报文处理方法及装置
US10849186B2 (en) * 2017-01-09 2020-11-24 Huawei Technologies Co., Ltd. System and methods for session management

Also Published As

Publication number Publication date
WO2019189029A1 (ja) 2019-10-03
US20210056092A1 (en) 2021-02-25
US11386066B2 (en) 2022-07-12
JP2019175244A (ja) 2019-10-10

Similar Documents

Publication Publication Date Title
JP6841785B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US11863587B2 (en) Webshell detection method and apparatus
WO2020029388A1 (zh) 文件传输方法、系统、计算机设备和存储介质
US9471646B2 (en) Method and server device for exchanging information items with a plurality of client entities
JP7056893B2 (ja) アプリケーションプログラミングインタフェースapi要求を伝送するための方法、装置、apiゲートウェイ、及びプログラム
CN109600385B (zh) 一种访问控制方法及装置
US20160094393A1 (en) Management apparatus, method of managing a network and storage medium
CN110198251B (zh) 一种获得客户端地址的方法及装置
CN109309655B (zh) 无状态通信安全签名方法、终端及服务器端
JP2018133692A (ja) 通信装置及びシステム及び方法
EP1782247A1 (en) System and method for managing a change to a cluster configuration
US8250148B2 (en) Reducing memory accesses in processing TCP/IP packets
RU2636700C1 (ru) Способ устранения уязвимостей устройств, имеющих выход в Интернет
US8997076B1 (en) Auto-updating an application without requiring repeated user authorization
JP6056857B2 (ja) 通信制御装置及び通信制御方法
CN107038174A (zh) 用于数据系统的数据同步方法和装置
CN106790441B (zh) 创建策略模板表的方法及装置、会话处理的方法及装置
JP6969676B2 (ja) 排他制御システム及び排他制御方法
RU2614559C1 (ru) Способ устранения уязвимостей роутера
JP2005321897A (ja) データ通信処理プログラムおよびウイルス駆除プログラム取得処理プログラム
US8825890B2 (en) Image processing device, control method therefor and computer readable medium
JP5504940B2 (ja) 仮想プライベートネットワークシステム、通信方法及びコンピュータプログラム
US10936431B2 (en) Method, device and computer readable medium for restoring files
JP6639754B2 (ja) 通信装置、動作手順管理方法及び動作手順管理プログラム
JP3651610B2 (ja) サーバ計算機保護装置、同装置のデータ要求解析方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210218

R150 Certificate of patent or registration of utility model

Ref document number: 6841785

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150