JP6943790B2 - セッション情報セットをキャッシュするサーバ、及び、セッション情報セットのキャッシュ制御方法 - Google Patents

セッション情報セットをキャッシュするサーバ、及び、セッション情報セットのキャッシュ制御方法 Download PDF

Info

Publication number
JP6943790B2
JP6943790B2 JP2018039131A JP2018039131A JP6943790B2 JP 6943790 B2 JP6943790 B2 JP 6943790B2 JP 2018039131 A JP2018039131 A JP 2018039131A JP 2018039131 A JP2018039131 A JP 2018039131A JP 6943790 B2 JP6943790 B2 JP 6943790B2
Authority
JP
Japan
Prior art keywords
cache
session information
information set
session
connection
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
JP2018039131A
Other languages
English (en)
Other versions
JP2019153189A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018039131A priority Critical patent/JP6943790B2/ja
Priority to US16/285,586 priority patent/US10841394B2/en
Publication of JP2019153189A publication Critical patent/JP2019153189A/ja
Application granted granted Critical
Publication of JP6943790B2 publication Critical patent/JP6943790B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、概して、セッション情報セットのキャッシュ制御に関する。
セッションIDが関連付けられた接続要求に応答して接続が行われる(データの送受信が可能な状態が確立される)技術の一例として、TLS(Transport Layer Security)が知られている(TLSの一種(例えば拡張)として、DTLS(Datagram Transport Layer Security)という技術も知られている)。TLSでは、初回のセッションでは、フルのハンドシェークがクライアントとサーバ間で行われることで、セッションが確立する。
また、TLSでは、セッション再開がサポートされている。セッション再開が行われれば、フルのハンドシェークに比べて、リソース量(セッション確立のために必要とされる計算リソース量(例えば、CPU使用率のような演算量)、及び、通信量(セッション確立のためにクライアントとサーバ間で送受信されるデータの総量)を削減することができる。
セッション再開のためには、セッションに必要なセッション情報セットがサーバにキャッシュされている必要がある。言い換えれば、サーバでのセッション情報セットのキャッシュヒット率が高ければ、セッション再開の確率が高い。
一般に、セッション情報セットのキャッシュ方式としては、FIFO(First-In First-Out)方式が採用される。
また、サーバでのキャッシュヒット率の向上を狙った技術として、非特許文献1に開示の技術が知られている。非特許文献1によれば、クライアントが、サーバに、当該クライアントが次に接続する予想時刻である次回接続予想時刻を知らせ、サーバは、当該クライアントから知らされた次回接続予想時刻を基に、当該クライアントのセッション情報セットをキャッシュするか否かを決定する。
Ryan Stevens and Hao Chen, "Predictive Eviction: A Novel Policy forOptimizing TLS Session Cache Performance", GLOBECOM 2015.(http://web.cs.ucdavis.edu/~hchen/paper/globecom2015.pdf)
一般に、クライアントに比べて、サーバの方が、通信する相手が多く、故に、キャッシュするセッション情報セットの数も多い。特に、IoT(Internet of things)では、センサー機器等の多くのIoT機器がクライアントとなるため、この傾向は大きい。
サーバにおいて、セッション情報セットのキャッシュ領域の容量よりもセッション情報セットの総量が多い場合、溢れたセッション情報セットはキャッシュ領域から削除されることになる。サーバは、削除されたセッション情報セット中のセッションIDをクライアントから受けても、キャッシュミスヒットが生じて、セッション再開は不可能であり、リソース量及び通信量の大きいフルのハンドシェークが必要になる。通信効率の向上のためには、セッション情報セットのキャッシュヒット率の向上が重要と考えられる。
しかし、非特許文献1の技術では、各クライアントが次の接続予想時刻をサーバに知らせる必要があるため、クライアントとサーバ間の通信量が増えてしまう。また、非特許文献1の技術では、各クライアントに、次の接続時刻を予想する機能と当該予想時刻を知らせる機能を追加しなければならず、サーバに比べて多く存在するクライアントの各々にそのような機能を追加することは、負担である。このような課題は、クライアントの数が膨大となる傾向にあるIoTでは特に大きい。
一方、一般に採用されているFIFO方式では、非特許文献1の技術のような課題はないが、キャッシュヒット率の向上は期待できない。例えば、同じ間隔で接続要求をそれぞれ送信するようになっている複数のクライアントに対して、キャッシュ領域に格納可能なセッション情報セットの数が、クライアントの数よりも少ない場合、キャッシュヒット率がゼロになってしまう。
上記のような課題は、TLS(又はDTLS)に限らず、セッションIDが関連付けられた接続要求に応答して接続が行われる他の技術に関してもあり得る。
サーバは、クライアントからの接続要求に関してキャッシュミスヒットがある場合(クライアントから受信された接続要求に関連付けられているセッションIDに一致するセッションIDを含んだセッション情報セットがキャッシュ領域にキャッシュされていない場合)、当該クライアントからの最新の接続要求の受信に関わる時刻と当該クライアントの接続要求周期との合計である次回接続予想時刻を算出する。そして、サーバは、少なくともキャッシュ領域が満杯の場合に、当該クライアントについて算出された次回接続予想時刻に基づいて、上記最新の接続要求に関連付けられているセッションIDを含んだセッション情報セットをキャッシュ領域にキャッシュするか否かを決定する。
各クライアントから次回接続予想時刻をサーバに知らせること無しに、クライアントの次回接続予想時刻に基づくキャッシュ制御ができる。そして、各クライアントについて、次回接続予想時刻は、当該クライアントとの接続の実績としての接続要求周期に基づいており、そのような予想時刻を基にキャッシュ制御が行われるので、キャッシュヒット率の向上が期待できる。つまり、各クライアントから次回接続予想時刻をサーバに知らせること無しに、キャッシュヒット率の向上が期待できる。
本発明の一実施形態に係るクライアントサーバシステムの構成を示す。 IoTサーバの構成を示す。 セッションキャッシュDBの構成を示す。 接続要求周期DBの構成を示す。 本発明の一実施形態で行われるキャッシュ制御の概要を示す。 IoT機器とIoTサーバ間の処理の流れを示す。 接続要求を受信したIoTサーバにより行われる一連の処理の流れを示す。 接続要求を受信したIoTサーバにより行われる一連の処理の変形例に係る部分を示す。
以下の説明では、「インターフェース部」は、1以上のインターフェースでよい。当該1以上のインターフェースは、1以上の同種の通信インターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ部」は、1以上のメモリであり、典型的には主記憶デバイスでよい。メモリ部における少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
また、以下の説明では、「PDEV部」は、1以上のPDEVであり、典型的には補助記憶デバイスでよい。「PDEV」は、物理的な記憶デバイス(Physical storage DEVice)を意味し、典型的には、不揮発性の記憶デバイス、例えばHDD(Hard Disk Drive)又はSSD(Solid State Drive)である。
また、以下の説明では、「記憶部」は、メモリ部とPDEV部の少なくとも一部とのうちの少なくとも1つ(典型的には少なくともメモリ部)である。
また、以下の説明では、「演算部」は、1以上の演算モジュールである。少なくとも1つの演算モジュールは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサであるが、GPU(Graphics Processing Unit)のような他種の演算モジュールでもよい。少なくとも1つの演算モジュールとしてのプロセッサは、シングルコアでもよいしマルチコアでもよい。少なくとも1つの演算モジュールは、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))といった広義の演算モジュールでもよい。
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
また、以下の説明では、「kkk部」(インターフェース部、記憶部及び演算部を除く)の表現にて機能を説明することがあるが、機能は、1以上のコンピュータプログラムが演算部によって実行されることで実現されてもよいし、1以上のハードウェア回路(例えばFPGA又はASIC)によって実現されてもよい。プログラムが演算部によって実行されることで機能が実現される場合、定められた処理が、適宜に記憶部及び/又はインターフェース部等を用いながら行われるため、機能は演算部の少なくとも一部とされてもよい。機能を主語として説明された処理は、演算部あるいはその演算部を有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が1つの機能にまとめられたり、1つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、「情報セット」とは、アプリケーションプログラムのようなプログラムから見た1つの論理的な電子データの塊であり、例えば、レコード、ファイル、キーバリューペア及びタプルのうちのいずれでもよい。
また、以下の説明では、「時刻」の単位は、年月日時分秒でもよいし、それよりも粗くても細かくてもよいし、それらとは異なる単位でもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別する場合は、参照符号を使用することがある。例えば、IoT機器を区別しない場合には、「IoT機器101」と言い、IoT機器を区別する場合には、「IoT機器101A」、「IoT機器101B」のように言う。
以下、図面を参照して、本発明の一実施形態を説明する。なお、本実施形態では、セッションIDが関連付けられた接続要求に応答して接続が行われる技術の一例として、TLSが採用されているが、本発明は、セッションIDが関連付けられた接続要求に応答して接続が行われる他の技術にも適用可能である。また、本実施形態では、IoTでのクライアントサーバ間の通信が例として採用されているが、本発明は、他のクライアントサーバ間通信にも適用可能である。
図1は、本発明の一実施形態に係るクライアントサーバシステムの構成を示す。
複数のIoT機器101(例えばIoT機器101A〜101C)の各々がクライアントの一例として存在し、IoTサーバ103が、サーバの一例として存在する。複数のIoT機器101の各々とIoTサーバ103との間で、無線通信ネットワークのような通信ネットワーク102を介して、通信が行われる。
IoT機器101として、種々の機器を採用し得る。例えば、各IoT機器101は、工場に設置されているセンサー機器(及び他種の機器)でよく、IoTサーバ103は、当該工場内の各IoT機器101からデータを収集するサーバでよい。
なお、図1において、“ノードA”、“ノードB”といった表記は、IoT機器101に割り振られているノードID(クライアントIDの一例)である。
図2は、IoTサーバ103の構成を示す。
IoTサーバ103は、典型的には計算機システム(1以上の計算機)であり、インターフェース部201、記憶部202及びそれらに接続された演算部203を有する。
インターフェース部201経由で、各IoT機器101と通信が行われる。
記憶部202は、演算部203により実行される1以上のコンピュータプログラムや演算部203により参照又は更新される情報を格納する。そのような情報の一例として、セッションキャッシュDB(データベース)211、及び、接続要求周期DB212がある。セッションキャッシュDB211を格納した記憶領域の全部又は一部が、キャッシュ領域の一例である。
演算部203が1以上のコンピュータプログラムを実行することにより、接続制御部221及びキャッシュ制御部222といった機能が実現される。
接続制御部221は、Iot機器101との接続を制御する。接続制御部221は、次回接続予想時刻及び接続オーバー時刻を算出する時刻算出部231と、接続要求周期を算出(更新)する周期算出部232とを有する。「次回接続予想時刻」、「接続オーバー時刻」及び「接続要求周期」については、後述する。
キャッシュ制御部222は、セッション情報セットのキャッシュを制御する。キャッシュ制御部222は、セッション情報セットのキャッシュ優先度を算出(決定)する優先度算出部241を有する。「セッション情報セット」及び「キャッシュ優先度」については、後述する。
本実施形態では、IoT機器101のIoTサーバ103への接続は、TLSに従う。また、本実施形態では、説明を簡単にするために、1つのIoT機器101とIoTサーバ103との間では1つのセッションが行われるものとする。
TLSによれば、初回のセッションでは、フルのハンドシェークが行われる。フルのハンドシェークの概要は、例えば、下記(F1)〜(F4)である。
(F1)IoT機器101が、任意のセッションID(ダミーのセッションID)を関連付けた接続要求(ClientHello)をIoTサーバ103に送信する。「セッションIDを関連付けた接続要求を送信する」とは、セッションIDを含んだ接続要求を送信することでもよいし、接続要求の送信後にセッションIDを送信することであってもよい。
(F2)IoTサーバ103(接続制御部221)が、正式なセッションIDを関連付けた応答(ServerHello)をIoT機器101に返す。これにより、IoTサーバ103とIoT機器101との間でセッションIDが共有される。
(F3)IoTサーバ103(接続制御部221)とIoT機器101との間で、相互認証処理が行われる。
(F4)IoTサーバ103(接続制御部221)とIoT機器101との間で、暗号化通信のための共通鍵の共有のためのやり取りが行われる。
一方、TSLによれば、IoT機器101が、正式なセッションIDを関連付けた接続要求をIoTサーバ103に送信し、IoTサーバ103において、当該セッションIDと一致するセッションIDを含んだセッション情報セットがキャッシュされているキャッシュヒットがあれば、セッション再開が行われる。セッション再開では、フルのハンドシェークにおいて行われる相互認証処理と共通鍵共有のやり取りの一部が省略される。つまり、セッション確立に必要なハンドシェークが簡略化される。
本実施形態では、IoT機器101からの接続要求に関してキャッシュミスヒットが生じた場合、接続制御部221が、IoT機器101からの最新の接続要求の受信に関わる時刻と当該IoT機器101の接続要求周期との合計である次回接続予想時刻を算出する。そして、キャッシュ制御部222が、少なくともキャッシュ領域が満杯の場合に、当該IoT機器101について算出された次回接続予想時刻に基づいて、当該IoT機器101の最新の接続要求に関連付けられているセッションIDを含んだセッション情報セットをキャッシュ領域にキャッシュするか否かを決定する。これにより、各IoT機器101から次回接続予想時刻をIoTサーバ103に知らせること無しに、キャッシュヒット率の向上が期待できる。
なお、「接続要求の受信に関わる時刻」は、当該接続要求を受信した時の現在時刻でもよいし、キャッシュヒット有無の判定のためにキャッシュ領域にアクセスしたときの時刻でもよいし、セッション終了に関わるアクセスを受信した時の現在時刻でもよいし、接続要求に埋め込まれているタイムスタンプが示す時刻でもよい。
また、「キャッシュ領域が満杯」とは、キャッシュされている全セッション情報セットの総容量が容量上限(例えば、キャッシュ領域の容量、又は、その所定割合)に達したことである。ここで言う「総容量」は、キャッシュされているセッション情報セットの数でもよく、同様に、「容量上限」は、キャッシュ領域にキャッシュ可能なセッション情報セットの数の最大値でよい。
以下、本実施形態を詳細に説明する。
図3は、セッションキャッシュDB211の構成を示す。
セッションキャッシュDB211は、セッション情報セットのDBである。セッションキャッシュDB211は、セッション毎にレコードを有する。各レコードは、セッション情報セット301、ノードID302、次回接続予想時刻303及び接続オーバー時刻304といった情報を格納する。以下、1つのセッションを例に取る(図3の説明において「対象セッション」)。
セッション情報セット301は、対象セッションのセッション情報セットである。ノードID302は、対象セッションに対応したIoT機器101のノードIDを示す。次回接続予想時刻303は、対象セッションに対応した次の接続要求(セッション再開の要求)の受信に関わる予想時刻を示す。接続オーバー時刻304は、対象セッションに対応したセッション情報セットを次の接続要求を受信しないままキャッシュしておく最大時刻(許容される最も将来の時刻)を示す。接続オーバー時刻304は、対象セッションの次回接続予想時刻と、対象セッションに対応したクライアントについての許容遅延時間との合計(すなわち、次回接続予想時刻に許容遅延時間が加算されることにより得られた時刻)である。接続オーバー時刻及び次回接続予想時刻のいずれも、時刻算出部231により算出される。「許容遅延時間」は、次回接続予想時刻から接続要求の受信が遅延することが許容される時間である。
このように、キャッシュ領域にキャッシュされている各セッション情報セット301には、当該セッション情報セット301について算出された次回接続予想時刻303が関連付けられている。これにより、キャッシュミスヒットに関して算出された次回接続予想時刻を、キャッシュ領域にキャッシュされている各セッション情報セット301の次回接続予想時刻303と比較して、キャッシュミスヒットに関する新たなセッション情報セットをキャッシュするか否かを決定することができる。
キャッシュ領域は、上述したように、セッションキャッシュDB211を格納する記憶領域の全部又は一部である。セッション情報セット301、ノードID302、次回接続予想時刻303及び接続オーバー時刻304のうち、少なくともセッション情報セット301がキャッシュ領域に格納される対象でよい。言い換えれば、セッションキャッシュDB211を構成する各レコードは、論理的なレコードでよい。例えば、レコードの一部が、主記憶デバイスとしてのメモリ部上にあり、レコードの残りが、補助記憶デバイスとしてのPDEV部上にあってもよい。
また、キャッシュ領域の容量上限の一例として、セッションキャッシュDB211に格納可能なセッション情報セットの数の最大値が定められている。具体的には、例えば、図3に例示するように、セッションキャッシュDB211を構成するレコードの最大数は5である。
なお、「セッション情報セット」は、セッションIDの他、通信の際に参照される情報(例えば、暗号化方式を示す情報、相互認証処理で参照された情報)を含んでよい。図3では、セッション情報セット301には、セッションIDのみ示されている。セッション情報セットは、更に、クライアントID(例えば、クライアント証明書のハッシュ値)を含んでもよい。
セッションキャッシュDB211に対するアクセスは、キャッシュ制御部222により行われる。例えば、キャッシュ制御部222は、IoT機器101からのセッションIDをキーにキャッシュ領域を検索し、ヒットしたセッション情報セットを読み出す。セッションIDの他に、IoT機器101のクライアントIDもキーにされてもよい。また、例えば、キャッシュ制御部222は、セッション情報セット301、ノードID302、次回接続予想時刻303及び接続オーバー時刻304を含んだレコードをセッションキャッシュDB211に追加(挿入)できる。つまり、キャッシュ制御部222は、新たなセッション情報セットをキャッシュできる。また、例えば、キャッシュ制御部222は、レコード(セッション情報セット)をセッションキャッシュDB211(キャッシュ領域)から削除できる。セッション情報セットの追加や削除は、キャッシュ優先度に基づいてよい。キャッシュ優先度は、優先度算出部241により決定される。また、キャッシュ制御部222は、レコードを、次回接続予想時刻303及び接続オーバー時刻304のいずれかをキーにソートできる。
図4は、接続要求周期DB212の構成を示す。
接続要求周期DB212は、接続要求周期のDBである。接続要求周期DB212は、IoT機器101毎にレコードを有する。各レコードは、ノードID401、接続要求周期402及び接続要求間隔履歴403といった情報を格納する。以下、1つのIoT機器101を例に取る(図4の説明において「対象IoT機器101」)。
ノードID401は、対象IoT機器101のノードIDを示す。接続要求周期402は、対象IoT機器101の接続要求周期を示す。接続要求周期は、周期算出部232により算出される。接続要求間隔履歴403は、接続要求間隔(接続要求の受信間隔)の履歴(例えば、直近N回分(図ではN=3)の接続要求間隔)を示す。
接続要求間隔DB212を構成する各レコードは、論理的なレコードでよい。例えば、レコードの一部が、主記憶デバイスとしてのメモリ部上にあり、レコードの残りが、補助記憶デバイスとしてのPDEV部上にあってもよい。
接続制御部221における周期算出部232が、各IoT機器101について、当該IoT機器101の接続要求間隔履歴403を参照し、当該IoT機器101の最新の接続要求間隔(最新の接続要求の受信に関わる時刻と1つ前の接続要求の受信に関わる時刻との間隔)を含む複数の接続要求間隔に基づき、当該IoT機器101の接続要求周期を更新する。これにより、接続要求周期として適切な接続要求周期が得られることが期待でき、以って、キャッシュ制御の際に参照される次回接続予想時刻の適切性の向上が期待できる。接続要求周期の更新は、接続要求の処理における任意のタイミング(例えば、セッション終了に関わるアクセスを受信した時)に行われてよい。また、「接続要求周期」は、複数の接続要求間隔に基づく値(例えば、平均値、最大値又は最小値)である。
また、ノードIDは、TLSに従うセッション(例えば、フルのハンドシェークでの相互認証処理)において入手されるIDであり、IoT機器101を一意に特定可能なIDである。このような当然に入手されるノードIDを利用することで(有効活用することで)、IoT機器101と接続要求周期(及び接続要求間隔履歴)との対応関係を正確に維持することができる。なお、ノードIDは、例えば、IoT機器101から入手されるクライアント証明書のハッシュ値でよい。
図5は、本実施形態で行われるキャッシュ制御の概要を示す。なお、以下の説明では、「セッションn」(nは自然数)は、セッションID=nのセッションを意味する。また、図5の説明では、便宜上、IoT機器101を、ノードIDを使用して呼ぶことにする。具体的には、例えば、「ノードA」は、IoT機器101Aを意味する(図1参照)。
例えば、時刻t=90のときに、キャッシュ領域が満杯であるとする。例えば、セッションキャッシュDB211には、セッション1〜5にそれぞれ対応した5件のセッション情報セット(5件のレコード)が格納されている。セッション1〜5は、ノードA〜Eにそれぞれ対応している。
そして、時刻t=100のときに、ノードFからセッション6が生じたとする。セッション6のセッション情報セットはキャッシュされていないため(セッション6に対応したレコードがセッションキャッシュDB211に無いため)、キャッシュミスヒットが生じる。
この場合、時刻算出部231は、ノードFについてセッション6に対応した次回接続予想時刻を算出する。ここでは、例えば、セッション6の次回接続予想時刻は、現在時刻とノードFの接続間隔周期との合計である。この段落で言う「現在時刻」は、セッション6に関する接続要求の受信に関わる時刻の一例であり、例えば、セッション6に関するキャッシュアクセス時刻(例えば、セッション6についてのキャッシュヒット有無の判定のためにセッションキャッシュDB211にアクセスした時刻)である。また、この段落で言う「接続間隔周期」は、ノードFの最近の接続要求間隔と接続要求間隔履歴とに基づき更新された最新の周期である(図5の例によれば、当該周期は“25”から“30”に更新されている)。
優先度算出部241は、少なくともキャッシュ領域が満杯の場合に、セッション6のセッション情報セットのキャッシュ優先度と、キャッシュ領域にキャッシュされている各セッション情報セット(セッション1〜5の各々のセッション情報セット)のキャッシュ優先度とを算出する。キャッシュ制御部222は、それらのキャッシュ優先度を基に、セッション6のセッション情報セットをキャッシュ領域にキャッシュするか否かを決定する。各セッション情報セットのキャッシュ優先度は、当該セッション情報セットに関連付けられる次回接続予想時刻に基づく。接続オーバー時刻が無い場合、キャッシュ優先度が高いことと、次回接続予想時刻が現在時刻に近いこととが同義でよい。言い換えれば、キャッシュ優先度の算出と次回接続予想時刻の取得とが同義でよい。キャッシュ優先度の高さに応じて、セッション6のセッション情報セットをキャッシュするか否かと、セッション6のセッション情報セットのキャッシュのためにセッションキャッシュDB211から削除するセッション情報セットの決定とを行うことができる。例えば、キャッシュ制御部222は、セッション6のセッション情報セットのキャッシュ優先度が、キャッシュ領域にキャッシュされているいずれのセッション情報セットのキャッシュ優先度よりも低い最低優先度か否かの判定(最低優先度判定)を行う。当該判定の結果が偽の場合、キャッシュ制御部222は、キャッシュ領域にキャッシュされているセッション情報セットのうちキャッシュ優先度が最も低いセッション情報セット(図5の例によれば、次回接続予想時刻が現在時刻t=100から最も遠いセッション5のセッション情報セット)をキャッシュ領域から削除する。キャッシュ制御部222は、セッション6のセッション情報セットをキャッシュ(追加)する。
一方、キャッシュ制御部222は、最低優先度判定の結果が真の場合、セッション6のセッション情報セットを破棄する(或いは、セッション6のセッション情報セットを未作成のまま終了する)。
なお、優先度算出部241により算出される、各セッション情報セットのキャッシュ優先度は、当該セッション情報セットに関連付けられる次回接続予想時刻に加えて、当該セッション情報セットに関連付けられる接続オーバー時刻にも基づいていてよい。各セッション情報セットについて、接続オーバー時刻は、時刻算出部231により算出される。例えば、セッション6のセッション情報セットに関連付けられる次回接続予想時刻と、当該セッション情報セットに対応したノードFに関連付けられている許容遅延時間との合計である。これにより、未使用のままセッション情報セットがキャッシュ領域に残り続けるといったことを回避できる適切なキャッシュ優先度が期待でき、結果として、キャッシュヒット率の向上が期待できる。
少なくとも1つのIoT機器101(ノード)についての許容遅延時間は、当該IoT機器以外のいずれかのIoT機器101についての許容遅延時間と異なっていてよい。これにより、IoT機器101の種類等に応じた適切な接続オーバー時刻が期待でき、以って、キャッシュヒット率の向上が期待できる。
また、各IoT機器101についての許容遅延時間は、当該IoT機器101に対応した接続要求周期と、当該IoT機器101の接続要求間隔履歴とのうちの少なくとも1つに基づいていてよい。これにより、IoT機器101の接続要求間隔の状況に適切な接続オーバー時刻が期待でき、以って、キャッシュヒット率の向上が期待できる。
また、キャッシュ優先度の関係として、下記(R1)〜(R3)の関係が採用されてよい。(R1)によれば、接続オーバー時刻を過ぎても未使用のままキャッシュ領域に残っているセッション情報セットを優先的にキャッシュ領域から削除することができる。(R2)によれば、接続オーバー時刻を過ぎても未使用のままキャッシュ領域に残っているセッション情報セットのうち、最も未使用である期間の長いセッション情報セットを優先的にキャッシュ領域から削除することができる。(R3)によれば、接続オーバー時刻に未到達であるが故に近い将来使用され得るセッション情報セットのうち、使用されることが最も遅いと予想されるセッション情報セットを優先的にキャッシュ領域から削除することができる。
(R1)現在時刻よりも過去の時刻が接続オーバー時刻であるセッション情報セットのキャッシュ優先度は、現在時刻又はそれよりも将来の時刻が接続オーバー時刻であるセッション情報セットのキャッシュ優先度より低い。
(R2)現在時刻よりも過去の時刻が接続オーバー時刻であるセッション情報セットに関し、接続オーバー時刻が現在時刻から遠い程、キャッシュ優先度が低い。
(R3)現在時刻又はそれよりも将来の時刻が接続オーバー時刻であるセッション情報セットに関し、次回接続予想時刻が現在時刻から遠い程、キャッシュ優先度が低い。
以下、本実施形態で行われる処理の例を説明する。
図6は、IoT機器101とIoTサーバ103間の処理の流れを示す。
例えば、IoT機器101A〜101Cの各々が、図4に例示の接続要求周期で接続要求を発行する。具体的には、例えば、IoT機器101Aが、接続要求周期“30”で、接続要求をIoTサーバ103に送信する(601A)。IoT機器101Bが、接続要求周期“70”で、接続要求をIoTサーバ103に送信する(601B)。IoT機器101Cが、接続要求周期“60”で、接続要求をIoTサーバ103に送信する(601C)。
IoTサーバ103は、接続要求の受信の都度に、接続制御とキャッシュ制御とを含む一連の処理(650)を行う。
図7は、接続要求を受信したIoTサーバ103により行われる一連の処理の流れを示す。以下、図7の説明において、当該受信した接続要求を「対象接続要求」と言い、対象接続要求に関連付けられているセッションIDに対応したセッションを「対象セッション」と言い、対象セッションのセッション情報セットを「対象セッション情報セット」と言い、対象接続要求の送信元のIoT機器101を、「対象ノード」と言う。
キャッシュ制御部222が、対象セッション情報セットがセッションキャッシュDB211に存在するキャッシュヒットがあるか否かを判定する(S700)。
S700の判定結果が真の場合(S700:Yes)、つまりキャッシュヒットがある場合、次の処理が行われる。すなわち、接続制御部221が、ヒットした対象セッション情報セットを用いたセッション再開の処理を行う(S711)。この処理では、簡略化されたハンドシェークが行われればよい。S712において、周期算出部232が、最新の接続要求間隔を基に、対象ノードの接続要求周期を更新する。また、S712において、時刻算出部231が、現在時刻(例えばS700のときの時刻)と当該接続要求周期とから対象セッションの次回接続予想時刻を算出し、且つ、当該次回接続予想時刻と対象ノードの許容遅延時間とから接続オーバー時刻を算出する。キャッシュ制御部222が、対象セッションに対応したキャッシュレコード(セッションキャッシュDB211内のレコード)を更新する(S713)。具体的には、キャッシュ制御部222が、キャッシュされている対象セッション情報に関連付けられている次回接続予想時刻303及び接続オーバー時刻304を、S712で算出された次回接続予想時刻及び接続オーバー時刻に更新する。
S700の判定結果が偽の場合(S700:No)、つまりキャッシュミスヒットがある場合、次の処理が行われる。すなわち、接続制御部221が、セッション確立処理を行う(S721)。この処理では、フルのハンドシェークが行われる。S722において、S712と同じ処理が行われる。キャッシュ制御部222が、キャッシュ領域が満杯か否かを判断する(S723)。S723の判定結果が偽の場合(S723:No)、キャッシュ制御部222が、対象セッション情報セットを含んだキャッシュレコードをセッションキャッシュDB211に追加(対象セッション情報セットをキャッシュ)する(S724)。一方、S723の判定結果が真の場合(S723:Yes)、キャッシュ制御部222が、対象セッション情報セットのキャッシュ優先度と、キャッシュされている各セッション情報セットのキャッシュ優先度とを算出する(S725)。キャッシュ制御部222は、対象セッション情報セットのキャッシュ優先度が、キャッシュされているいずれのセッション情報セットのキャッシュ優先度よりも低い最低優先度か否かを判定する(S726)。S726の判定結果が真の場合(S726:Yes)、キャッシュ制御部222は、対象セッション情報セットを破棄する(S727)。S726の判定結果が偽の場合(S726:No)、キャッシュ制御部222は、最低のキャッシュ優先度のセッション情報セットを含んだキャッシュレコードをセッションキャッシュDB211から削除し、対象セッション情報セットを含んだキャッシュレコードをセッションキャッシュDB211に追加する(S728)。
なお、S700〜S728のいずれかのタイミング(例えばS728)において、キャッシュ制御部222は、ガベージがあればそれをセッションキャッシュDB211から削除してよい。ここで言う「ガベージ」とは、現在時刻よりも過去の時刻が接続オーバー時刻であるセッション情報セットを含んだキャッシュレコードである。ガベージが削除されることで、新たなセッション情報セットのキャッシュが可能となり、結果として、キャッシュヒット率の向上が期待できる。
図8は、接続要求を受信したIoTサーバ103により行われる一連の処理の変形例に係る部分を示す。本変形例では、キャッシュ優先度に、接続オーバー時刻が考慮されないでもよい。
例えば、S700:Noの場合、キャッシュ制御部222が、キャッシュ領域が満杯か否かを判定する(S801)。S801の判定結果が偽の場合(S801:No)、S724以降の処理が行われる。
S801の判定結果が真の場合(S801:Yes)、キャッシュ制御部222は、ガベージがあるか否か、すなわち、現在時刻よりも過去の時刻が接続オーバー時刻であるセッション情報セットを含んだキャッシュレコードがセッションキャッシュDB211にあるか否かを判定する(S802)。S802の判定結果が真の場合(S802:Yes)、キャッシュ制御部222は、少なくとも1つのガベージをセッションキャッシュDB211から削除する。これにより、キャッシュヒット有無判定のためのキャッシュアクセスの際にガベージ有無判定が行われる。つまり、効率的にガベージ削除が行われる。
S802の判定結果が偽の場合(S802:No)、キャッシュ領域が満杯のため、S721、S722及びS725以降が行われる。
なお、S802及びS803は、接続要求を受信した場合に行われる一連の処理とは非同期に(例えば定期的に)行われてもよいが、上述の実施形態や変形例のように、接続要求を受信した場合に行われる一連の処理において行われることで、効率的にガベージを削除することができる。
以上、一実施形態及び一変形例を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態及び変形例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、実施形態では、説明を簡単にするために、IoT機器101とセッションIDは1:1としたが(1つのIoT機器101とIoTサーバ103との間では1つのセッションが行われるものとしたが)、IoT機器101とセッションIDは1:多でもよい。IoTサーバ103の記憶部では、各IoT機器101について、セッション別に、セッションID、接続要求周期、接続要求間隔履歴、及び許容遅延時間の少なくとも1つが管理されてもよい。例えば、或るクライアントの或るセッションについての次回接続予想時刻に加算される接続要求周期は、当該或るクライアントの当該或るセッションに対応した接続要求周期でよい。
103…IoTサーバ

Claims (9)

  1. セッションIDが関連付けられた接続要求をいずれかのクライアントから受信した場合に、当該セッションIDに一致するセッションIDを含んだセッション情報セットがキャッシュ領域にキャッシュされているキャッシュヒットがあれば、当該キャッシュされているセッション情報セットを用いたセッション再開を行うサーバであって、
    当該接続要求の受信に関わる時刻と当該クライアントの接続要求周期との合計である次回接続予想時刻を算出する接続制御部と、
    少なくとも前記キャッシュ領域が満杯の場合に、当該クライアントについて算出された次回接続予想時刻に基づいて、当該接続要求に関連付けられているセッションIDを含んだセッション情報セットである対象セッション情報セットを前記キャッシュ領域にキャッシュするか否かを決定するキャッシュ制御部と
    を有し、
    前記キャッシュ制御部は、前記対象セッション情報セットを前記キャッシュ領域にキャッシュするか否かを、前記対象セッション情報セットのキャッシュ優先度と、前記キャッシュ領域にキャッシュされている全セッション情報セットの各々のキャッシュ優先度とを基に決定し、
    各セッション情報セットのキャッシュ優先度は、当該セッション情報セットに関連付けられる次回接続予想時刻に基づく、
    サーバ。
  2. 前記接続制御部が、当該クライアントからの接続要求の最新の受信間隔を含む複数の接続要求間隔に基づき、当該クライアントの接続要求周期を更新する、
    請求項1に記載のサーバ。
  3. 前記キャッシュ制御部は、前記対象セッション情報セットのキャッシュ優先度が、前記キャッシュ領域にキャッシュされている少なくとも1つのセッション情報セットのキャッシュ優先度よりも高い場合、前記キャッシュ領域にキャッシュされているセッション情報セットのうちキャッシュ優先度が最も低いセッション情報セットを前記キャッシュ領域から削除する、
    請求項に記載のサーバ。
  4. 前記キャッシュ領域にキャッシュされている各セッション情報セットには、当該セッション情報セットについて算出された次回接続予想時刻が関連付けられている、
    請求項1に記載のサーバ。
  5. 前記各セッション情報セットのキャッシュ優先度は、当該セッション情報セットに関連付けられる次回接続予想時刻に加えて、当該セッション情報セットに関連付けられる接続オーバー時刻にも基づいており、
    前記各セッション情報セットについて、接続オーバー時刻は、当該セッション情報セットに関連付けられる次回接続予想時刻と、当該セッション情報セットに対応したクライアントに関連付けられている許容遅延時間との合計である、
    請求項に記載のサーバ。
  6. 現在時刻よりも過去の時刻が接続オーバー時刻であるセッション情報セットのキャッシュ優先度は、前記現在時刻又はそれよりも将来の時刻が接続オーバー時刻であるセッション情報セットのキャッシュ優先度より低く、
    前記現在時刻よりも過去の時刻が接続オーバー時刻であるセッション情報セットに関し、接続オーバー時刻が前記現在時刻から遠い程、キャッシュ優先度が低く、
    前記現在時刻又はそれよりも将来の時刻が接続オーバー時刻であるセッション情報セットに関し、次回接続予想時刻が前記現在時刻から遠い程、キャッシュ優先度が低い、
    請求項に記載のサーバ。
  7. 1以上のクライアントの各々のクライアントIDに、当該クライアントの接続要求周期とそれの基になる接続要求間隔履歴とのうちの少なくとも1つが関連付けられており、
    前記1以上のクライアントの各々について、当該クライアントのクライアントIDは、当該クライアントとの接続のためのセッションにおいて入手されるクライアントIDである、
    請求項1に記載のサーバ。
  8. いずれかのクライアントから受信された接続要求に関連付けられているセッションIDに一致するセッションIDを含んだセッション情報セットがキャッシュ領域にキャッシュされていないキャッシュミスヒットがある場合に、
    前記クライアントからの最新の接続要求の受信に関わる時刻と前記クライアントの接続要求周期との合計である次回接続予想時刻を算出し、
    少なくとも前記キャッシュ領域が満杯の場合に、前記クライアントについて算出された次回接続予想時刻に基づいて、前記最新の接続要求に関連付けられているセッションIDを含んだセッション情報セットである対象セッション情報セットを前記キャッシュ領域にキャッシュするか否かを決定
    前記対象セッション情報セットを前記キャッシュ領域にキャッシュするか否かは、前記対象セッション情報セットのキャッシュ優先度と、前記キャッシュ領域にキャッシュされている全セッション情報セットの各々のキャッシュ優先度とを基に決定され、
    各セッション情報セットのキャッシュ優先度は、当該セッション情報セットに関連付けられる次回接続予想時刻に基づく、
    キャッシュ制御方法。
  9. いずれかのクライアントから受信された接続要求に関連付けられているセッションIDに一致するセッションIDを含んだセッション情報セットがキャッシュ領域にキャッシュされていないキャッシュミスヒットがある場合に、
    前記クライアントからの最新の接続要求の受信に関わる時刻と前記クライアントの接続要求周期との合計である次回接続予想時刻を算出し、
    少なくとも前記キャッシュ領域が満杯の場合に、前記クライアントについて算出された次回接続予想時刻に基づいて、前記最新の接続要求に関連付けられているセッションIDを含んだセッション情報セットである対象セッション情報セットを前記キャッシュ領域にキャッシュするか否かを決定する、
    ことを計算機に実行させるコンピュータプログラムであって、
    前記対象セッション情報セットを前記キャッシュ領域にキャッシュするか否かは、前記対象セッション情報セットのキャッシュ優先度と、前記キャッシュ領域にキャッシュされている全セッション情報セットの各々のキャッシュ優先度とを基に決定され、
    各セッション情報セットのキャッシュ優先度は、当該セッション情報セットに関連付けられる次回接続予想時刻に基づく、
    コンピュータプログラム
JP2018039131A 2018-03-05 2018-03-05 セッション情報セットをキャッシュするサーバ、及び、セッション情報セットのキャッシュ制御方法 Active JP6943790B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018039131A JP6943790B2 (ja) 2018-03-05 2018-03-05 セッション情報セットをキャッシュするサーバ、及び、セッション情報セットのキャッシュ制御方法
US16/285,586 US10841394B2 (en) 2018-03-05 2019-02-26 Server for caching session information set and method of controlling cache of session information set

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018039131A JP6943790B2 (ja) 2018-03-05 2018-03-05 セッション情報セットをキャッシュするサーバ、及び、セッション情報セットのキャッシュ制御方法

Publications (2)

Publication Number Publication Date
JP2019153189A JP2019153189A (ja) 2019-09-12
JP6943790B2 true JP6943790B2 (ja) 2021-10-06

Family

ID=67768248

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018039131A Active JP6943790B2 (ja) 2018-03-05 2018-03-05 セッション情報セットをキャッシュするサーバ、及び、セッション情報セットのキャッシュ制御方法

Country Status (2)

Country Link
US (1) US10841394B2 (ja)
JP (1) JP6943790B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202119260A (zh) * 2019-11-06 2021-05-16 財團法人資訊工業策進會 資料解讀裝置、方法及其電腦程式產品
TWI746261B (zh) * 2020-11-12 2021-11-11 財團法人工業技術研究院 基於對話類型的快取管理方法及系統
US20240045800A1 (en) * 2022-08-08 2024-02-08 Google Llc High Performance Cache Eviction

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8490165B2 (en) * 2010-06-23 2013-07-16 International Business Machines Corporation Restoring secure sessions
WO2015001671A1 (ja) * 2013-07-05 2015-01-08 株式会社日立製作所 通信制御装置、通信制御装置の制御方法、及び情報処理システム
EP3038299A4 (en) * 2013-09-25 2016-09-28 Huawei Tech Co Ltd METHOD FOR RECORDING SESSION INFORMATION AND RECORD SERVER

Also Published As

Publication number Publication date
US10841394B2 (en) 2020-11-17
US20190273803A1 (en) 2019-09-05
JP2019153189A (ja) 2019-09-12

Similar Documents

Publication Publication Date Title
US10467105B2 (en) Chained replication techniques for large-scale data streams
US11157324B2 (en) Partitioning for delayed queues in a distributed network
US9471585B1 (en) Decentralized de-duplication techniques for largescale data streams
Dautrich et al. Burst {ORAM}: Minimizing {ORAM} response times for bursty access patterns
KR101303989B1 (ko) 분산 스토리지 시스템
US9330108B2 (en) Multi-site heat map management
EP3128420B1 (en) Service flow control method, controller and system in object-based storage system
US10645152B2 (en) Information processing apparatus and memory control method for managing connections with other information processing apparatuses
US9703504B2 (en) Storage system, recording medium storing data rebalancing program, and data rebalancing method
JP7300347B2 (ja) クライアント又はサーバとの接続を制御する方法
JP4621273B2 (ja) データ同期方法、データ同期プログラム、データベースサーバ装置、および、データベースシステム
JP6943790B2 (ja) セッション情報セットをキャッシュするサーバ、及び、セッション情報セットのキャッシュ制御方法
US7725631B2 (en) Information system and information storage method of information system
US10862672B2 (en) Witness blocks in blockchain applications
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
US10133505B1 (en) Cooperative host and data storage system services for compression and encryption
JP2012146083A (ja) セッション管理システム、セッション管理装置、サーバ装置およびセッション管理方法
McCullough et al. Stout: An adaptive interface to scalable cloud storage
US8359601B2 (en) Data processing method, cluster system, and data processing program
WO2008058898A1 (en) Throttling an asynchronous remote copying system
JPH1165915A (ja) 情報処理装置
Shahapure et al. Replication: A technique for scalability in cloud computing
US8566521B2 (en) Implementing cache offloading
WO2019109209A1 (zh) 一种存储器数据替换方法、服务器节点和数据存储系统
WO2020238748A1 (zh) 数据同步的处理方法、装置、电子设备及计算机存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200318

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210325

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: 20210810

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210909

R150 Certificate of patent or registration of utility model

Ref document number: 6943790

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150