Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7577580B2 - Ssl通信処理装置及びssl通信処理方法 - Google Patents
[go: Go Back, main page]

JP7577580B2 - Ssl通信処理装置及びssl通信処理方法 - Google Patents

Ssl通信処理装置及びssl通信処理方法 Download PDF

Info

Publication number
JP7577580B2
JP7577580B2 JP2021045850A JP2021045850A JP7577580B2 JP 7577580 B2 JP7577580 B2 JP 7577580B2 JP 2021045850 A JP2021045850 A JP 2021045850A JP 2021045850 A JP2021045850 A JP 2021045850A JP 7577580 B2 JP7577580 B2 JP 7577580B2
Authority
JP
Japan
Prior art keywords
request
queues
ssl
queue
issuing
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
JP2021045850A
Other languages
English (en)
Other versions
JP2022144714A (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.)
PFU Ltd
Original Assignee
PFU 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 PFU Ltd filed Critical PFU Ltd
Priority to JP2021045850A priority Critical patent/JP7577580B2/ja
Publication of JP2022144714A publication Critical patent/JP2022144714A/ja
Application granted granted Critical
Publication of JP7577580B2 publication Critical patent/JP7577580B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、SSL通信処理装置及びSSL通信処理方法に関する。
例えば、特許文献1には、マルチコアを有するネットワークサービスプロセッサ内のワークを順序づけ、同期化しかつスケジューリングする装置であって、各ひとまとまりのワークは、このワークがいかに同期化されかつ順序づけられるべきかを示すタグによって特定され、異なるタグを有するワークを異なるプロセッサコアで並列に処理することによって、スループットが向上し、パケット処理は種々のステージに分割されることができ、各ステージは、順序づけおよび同期化に関する制約に応じて、異なるタグを有し、コアによって開始されるタグスイッチ操作は、ステージに応じてタグを切り換え、専用のタグスイッチバスが、タグスイッチ操作の待ち時間を最小限に抑える装置が開示されている。
また、特許文献2には、記憶部1aが、複数のリクエスト間の関連性に関する情報およびリクエストの送信に関する優先度を該リクエストに対応付けて記憶し、処理部1bが、処理の実行に関する第1のリクエストを受信すると、記憶部1aを参照して、第1のリクエストに関連する第2のリクエストと、第2のリクエストに対応する第1の優先度とを特定し、処理部1bが、第1のリクエストに応じた処理を実行する情報処理装置2に、第1の優先度よりも高い第2の優先度で第2のリクエストを送信する送信制御装置が開示されている。
また、特許文献3には、セキュリティ・オペレーションを処理する方法であって、プロセッサは、セキュリティ・オペレーションに対するいくつかの要求を処理するいくつかの実行ユニットを含み、これらの実行ユニットは、いくつかの要求の結果を、その要求に格納されているポインタに基づいて、遠隔メモリ内の要求に関連する出力データ構造に出力し、この実行ユニットは、要求待ち行列内の要求の順番とは異なる順番で結果を出力することができ、プロセッサは実行ユニットに結合されている要求ユニットも含み、要求ユニットは、要求の一部を遠隔メモリ内の要求待ち行列から取り出し、要求の一部に対する関連する入力データ構造を遠隔メモリから取り出し、さらに、要求ユニットは、取り出した要求を実行ユニットによる処理の可用性に基づいていくつかの実行ユニットに分配する方法が開示されている。
特表2008-512950 特開2019-040344 特表2003-216591
SSL通信の暗号化処理又は復号化処理を行うデバイスの性能を十分に発揮させるSSL通信処理装置を提供することを目的とする。
本発明に係るSSL通信処理装置は、SSL通信の暗号化処理又は復号化処理のリクエストを発行するリクエスト発行コアと、前記リクエスト発行コアにより発行されたリクエストをキューイングするリクエストキューを複数含むリクエストキュー集合体と、前記リクエストキューにキューイングされたリクエストを処理するデバイスとを有し、一つの前記リクエスト発行コアに対して、グループ化された複数のリクエストキューが割り当てられている。
好適には、前記リクエスト発行コアは、グループ化された複数のリクエストキューのうち、代表のリクエストキューに対してリクエストを発行し、このグループ化されたリクエストキューのうち、ラウンドロビンで選択されたリクエストキューが、前記代表のリクエストキューに対して発行されたリクエストをキューイングする。
好適には、前記デバイスは、互いに独立して並列処理できる複数の子デバイスを含み、グループ化された複数のリクエストキューは、互いに異なる子デバイスに割り当てられている。
好適には、前記デバイスは、前記リクエストキューよりも多いエンジンを含む。
また、本発明に係るSSL通信処理方法は、リクエスト発行コアが、SSL通信の暗号化処理又は復号化処理のリクエストを、このリクエスト発行コアに割り当てられたリクエストキューのグループに対して発行するステップと、前記グループに属するいずれかのリクエストキューが、前記リクエスト発行コアにより発行されたリクエストをキューイングするステップと、SSL通信の暗号化処理又は復号化処理を行うデバイスが、前記リクエストキューにキューイングされたリクエストを処理するステップとを有する。
SSL通信の暗号化処理又は復号化処理を行うデバイスの性能を十分に発揮させることができる。
ネットワーク装置1のハードウェア構成を例示する図である。 ネットワーク装置1の機能構成を例示する図である。 ネットワーク装置1におけるSSL処理(S10)を説明するフローチャートである。 変形例におけるネットワーク装置1の機能構成を例示する図である。 比較例1におけるネットワーク装置の機能構成を示す図である。 比較例2におけるネットワーク装置の機能構成を示す図である。
本発明の実施形態を、図面を参照して説明する。
図1は、ネットワーク装置1のハードウェア構成を例示する図である。
図1に例示するように、ネットワーク装置1は、リクエスト発行コア10と、リクエストキュー集合体12と、SSL処理デバイス14とを有する。
リクエスト発行コア10は、SSL(Secure Sockets Layer)通信の暗号化処理又は復号化処理のリクエストを発行する。例えば、リクエスト発行コア10は、複数のリクエスト発行コアを含み、これらのコアが並行してリクエストを発行する。
リクエストキュー集合体12は、複数のリクエストキュー120を含み、リクエスト発行コア10から発行されたリクエストをキューイングする。キューイングとは、先入れ先出し方式で、リクエストを保持することである。
SSL処理デバイス14は、SSL通信の暗号化処理又は復号化処理を行うエンジンを複数含むエンジン集合体であり、リクエストキュー集合体12にキューイングされたリクエストを順に処理する。
上記構成において、ネットワーク装置1のリクエスト発行コア10から、APIを介して、SSLアクセラレータのリクエストキュー(リクエストキュー120)に対して、暗号処理又は復号処理などのリクエストが発行される。
リクエストキュー120にキューイングされたリクエストは、SSLアクセラレータのエンジン(SSL処理デバイス14のエンジン)を使って処理され、リクエストが完了する。
リクエストの発行と完了は非同期であり、ネットワーク装置1が受けたデータを暗号化又は復号化する度に、リクエストを発行する。
(背景)
図5に示される比較例1のように、リクエスト発行コアと、リクエストキューが1対1で対応する設計とすることも考えられる。このような設計の場合、リクエストキューの数が エンジンの数以上であるときは、問題ないが、リクエストキューの数がエンジンの数よりも少ないと、エンジンが余り、有効活用されない。
また、リクエストキューはその時点で空いている1つのエンジンを使用して、1リクエストを処理する。使用する空きエンジンは自動的に割り当てられ、ソフトウェアでは制御できない。
すなわち、図5に示すように、使用可能なリクエストキュー数がエンジン数より少ないため、空きエンジンが発生する。エンジンをフル活用できないため、SSLアクセラレータは本来の性能を発揮できない。図5の例では、リクエスト発行コア数が6個、リクエストキュー数が30個(そのうち6個使用可能)であり、エンジンのEN7~EN30は使えない。
なお、リクエストキューの番号と、エンジンの番号に関連性はなく、空いているエンジンが自動的に割り当てられる。
そこで、本実施形態のネットワーク装置1では、SSLアクセラレータにおいて、複数のリクエストキューをグループ化し、そのグループの代表リクエストキューに対してリクエストを発行することでリクエスト処理を実行可能とする。
図2は、ネットワーク装置1の機能構成を例示する図である。
図2に例示するように、ネットワーク装置1は、複数のリクエスト発行コア10と、グループ化されたリクエストキュー120と、複数のエンジン140が含まれたSSL処理デバイス14とを有し、リクエスト発行コア10それぞれに、グループ化されたリクエストキュー120が割り当てられている。
より具体的には、複数のリクエストキュー120をまとめたグループをノードとし、リクエスト発行コア10と同数のノードを作成する。1つのノードにつき、1つの代表リクエストキュー122が設定される。
図3は、ネットワーク装置1におけるSSL処理(S10)を説明するフローチャートである。なお、本フローチャートでは、図2の1つのリクエスト発行コア10に着目して説明する。他のリクエスト発行コア10も同様に並行して処理を行っている。
図3に例示するように、ステップ100(S100)において、リクエスト発行コア10は、割り当てられたリクエストキューのグループ(ノード)の代表リクエストキュー122に対してリクエストを発行する。
ステップ110(S110)において、代表リクエストキュー122は、自身が属するグループ(ノード)内に割り当てられているリクエストキュー120を選んでリクエストを発行する。選び方はラウンドロビンとする。
ステップ120(S120)において、選ばれたリクエストキュー120は、発行されたリクエストをキューイングする。
ステップ130(S130)において、SSL処理デバイス14のエンジン140は、リクエストキュー120にキューイングされたリクエストを、処理する。
以上説明したように、本実施形態のネットワーク装置1によれば、SSLアクセラレータで使用されるリクエストキュー140を増やし、発行するリクエスト数を増やすことでエンジン140を有効に活用し、SSLアクセラレータの性能を発揮することができる。すなわち、リクエストキュー120の数が、エンジン140の数、以上の状態をつくることができ、リクエスト発行コアとリクエストキューの関係が、1:多になる。
これにより、図2の通り、リクエスト発行コア10がリクエストキュー120又はエンジン140の数より少なくとも、複数のリクエストキュー120から、リクエストを発行することができる。例えば、1番の代表リクエストキュー122にキューイングされた場合は、代表リクエストキューを含む、1番,7番,13番,19番,25番の5つのリクエストキュー120の内から1つを選択し、リクエストを発行する。図2では、1番のリクエスト発行コア10から発行されるリクエストについて、リクエストキュー120からエンジンに矢印を引いたが、他のリクエスト発行コア10から発行されるリクエストについても同様に、リクエストキュー120からエンジン140に対して矢印を引ける。これより、エンジンを余すことなく有効活用できる。なお、リクエストキュー120の番号と、エンジン140の番号に関連性はなく、空いているエンジン140が自動的に割り当てられる。
(変形例)
次に、上記実施形態の変形例として、SSLアクセラレータが、物理的には1つのデバイスだが、内部的に3つの子デバイスを持つ構造となっている場合を説明する。
この場合、図6に示すように、通信時、使用されるリクエスト発行コアに偏りが出た場合には、使用される子デバイスに偏りが生じる。より具体的には、図6において、3つの子デバイスA、B、Cに対し、リクエスト発行コアを均等に2つずつ割り当てた場合を比較例2として説明する。
各子デバイスのエンジンについては、A1~A10、B11~B20、C21~C30で示す。ここで、リクエスト発行コア1~4に偏った場合を考えると、リクエスト発行コア1及び2については、子デバイスAのみに割り当てられている。この時、A1~A10のエンジンのうち、空いているエンジンが自動的に割り当てられ、使用される。また、リクエスト発行コア3及び4については、子デバイスBのみに割り当てられている。ここで、B11~B20のエンジンのうち、空いているエンジンが使用される。その結果、子デバイスA、子デバイスBに偏って使用され、子デバイスCは、ほぼ使用されず、SSLアクセラレータとして、本来の3分の2程度の性能しか発揮されない。
性能が発揮されないことについては、下記2つの側面がある。
・エンジンに対する負荷が高い場合に性能発揮できない
例えば、30個全てのエンジンでの処理を必要とするほどに、リクエスト量が多い且つ計算量が重いリクエストが集中した場合、子デバイスA及びBにリクエストが偏ってしまうと、使用できるエンジンは、A1~A10及びB11~B20の20個となってしまう。30個全てのエンジンを使用できないため、SSLアクセラレータ本来の性能を発揮できない。
・各子デバイスが持つ固有機能をフル活用できない
各子デバイスにはエンジン以外にも、固有の機能が存在している。例えば、特定の暗号種別について処理時、エンジンとは別に各子デバイスが持つ固有の回路を使用して計算されることが考えられる。そのため、全デバイスでは3回路使用できるが、2デバイスでは2回路しか使用されず、性能が発揮できない。この問題は上記のような高負荷時に限らず発生する。
そこで、本変形例のネットワーク装置1では、グループ化された複数のリクエストキュー120が、互いに異なる子デバイスに割り当てられている。換言すると、グループ内の複数のリクエストキュー120が、複数の子デバイスにまたがって割り当てられている。より具体的には、図4に示すように、各子デバイスのリクエストキュー120及びエンジン140をなるべく均等に使用し、性能を発揮するよう構成されている。
具体的には、子デバイスを複数持つSSLアクセラレータとして、例えば、Silicom社のPE3ISLBTL(PCIe 3.0, x8 Crypto / Compression LBG Server Adapter)が挙げられる。このようなSSLアクセラレータにおいて、各子デバイスのリクエストキュー120をなるべく均等に使用するように、リクエスト発行コア10に対して割り当てる設計とする。
本変形例では、リクエスト発行コア10の数が6個、子デバイスの数が3個、子デバイスAのリクエストキュー120が1~10、子デバイスAのエンジン群15AがA1~A10、子デバイスBのリクエストキュー120が11~20、子デバイスBのエンジン群15BがB11~B20、子デバイスCのリクエストキューが21~30、子デバイスCのエンジン群15CがC21~C30である場合を説明する。なお、代表リクエストキュー122はキュー番号を丸で囲んで示す。また、リクエストキュー120の番号と、エンジン140の番号に関連性はなく、リクエストキュー120にキューイングされたリクエストは、そのリクエストキュー120と同じハッチングパターンで示されるエンジン140の中から、空いているエンジン140が自動的に割り当てられる。
上記設定により、下記の効果がある。
・使用されるリクエスト発行コア10に偏りが出ても、子デバイスを分散して処理できるため、SSL処理デバイス14側の性能を落とさずに処理ができる。例えば、リクエスト発行コアが1番~4番に偏った場合でも、本変形例では、各リクエスト発行コア10に対応するリクエストキュー120から、子デバイスA~Cの3つ全てを使用できるため、全ての子デバイスの固有機能を使用できる。また、全ての子デバイスの全エンジン140を使用できる。よって、全ての子デバイスを使わない場合と比べて、性能劣化を軽減できる。
・1つの子デバイスにエラーが起こり、一時的に処理不可状態となる時でも、他の子デバイスがリクエスト処理可能となるので、処理を継続できる。例えば、子デバイスAが処理不可能となった場合には、リクエストキュー120の1番~10番が使用不可能となるが、11番~30番のリクエストキュー120については使用できるため、全てのリクエスト発行コア10について、リクエストの発行と処理を継続できる。
このように、本変形例のネットワーク装置1によれば、使用されるリクエスト発行コア10に偏りが出ても、子デバイスを分散して処理できるため、SSLアクセラレータ全体としての性能を落とさずに処理ができる。
さらに、1つの子デバイスにエラーが起こり、一時的に処理不可状態になる場合でも、他の子デバイスがリクエスト処理を実行できるため、処理を継続できる。
1…ネットワーク装置
10…リクエスト発行コア
12…リクエストキュー集合体
120…リクエストキュー
122…代表リクエストキュー
14…SSL処理デバイス
140…エンジン
15…エンジン群

Claims (5)

  1. SSL通信の暗号化処理又は復号化処理のリクエストを発行するリクエスト発行コアと、
    前記リクエスト発行コアにより発行されたリクエストをキューイングするリクエストキューを複数含むリクエストキュー集合体と、
    前記リクエストキューにキューイングされたリクエストを処理するデバイスと
    を有し、
    一つの前記リクエスト発行コアに対して、グループ化された複数のリクエストキューが割り当てられている
    SSL通信処理装置。
  2. 前記リクエスト発行コアは、グループ化された複数のリクエストキューのうち、代表のリクエストキューに対してリクエストを発行し、
    このグループ化されたリクエストキューのうち、ラウンドロビンで選択されたリクエストキューが、前記代表のリクエストキューに対して発行されたリクエストをキューイングする
    請求項1に記載のSSL通信処理装置。
  3. 前記デバイスは、互いに独立して並列処理できる複数の子デバイスを含み、
    グループ化された複数のリクエストキューは、互いに異なる子デバイスに割り当てられている
    請求項1に記載のSSL通信処理装置。
  4. 前記デバイスは、前記リクエストキューよりも多いエンジンを含む
    請求項2に記載のSSL通信処理装置。
  5. リクエスト発行コアが、SSL通信の暗号化処理又は復号化処理のリクエストを、このリクエスト発行コアに割り当てられたリクエストキューのグループに対して発行するステップと、
    前記グループに属するいずれかのリクエストキューが、前記リクエスト発行コアにより発行されたリクエストをキューイングするステップと、
    SSL通信の暗号化処理又は復号化処理を行うデバイスが、前記リクエストキューにキューイングされたリクエストを処理するステップと
    を有するSSL通信処理方法。
JP2021045850A 2021-03-19 2021-03-19 Ssl通信処理装置及びssl通信処理方法 Active JP7577580B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021045850A JP7577580B2 (ja) 2021-03-19 2021-03-19 Ssl通信処理装置及びssl通信処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021045850A JP7577580B2 (ja) 2021-03-19 2021-03-19 Ssl通信処理装置及びssl通信処理方法

Publications (2)

Publication Number Publication Date
JP2022144714A JP2022144714A (ja) 2022-10-03
JP7577580B2 true JP7577580B2 (ja) 2024-11-05

Family

ID=83455084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021045850A Active JP7577580B2 (ja) 2021-03-19 2021-03-19 Ssl通信処理装置及びssl通信処理方法

Country Status (1)

Country Link
JP (1) JP7577580B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001292172A (ja) 2000-03-02 2001-10-19 Alcatel Internetworking Inc 限定優先度キュースケジューラ
JP2017521806A (ja) 2014-06-26 2017-08-03 グバーネット インコーポレイテッドGubernet Inc. 多重プロセッシング環境でのスケジューリングの方法及びその装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001292172A (ja) 2000-03-02 2001-10-19 Alcatel Internetworking Inc 限定優先度キュースケジューラ
JP2017521806A (ja) 2014-06-26 2017-08-03 グバーネット インコーポレイテッドGubernet Inc. 多重プロセッシング環境でのスケジューリングの方法及びその装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
山下 克司,つなぐだけではもう通用しない 理論派ネットワーキング 第3部 ネットワークとアプリケーション(2),日経コミュニケーション 第460号,日本,日経BP社,2006年04月15日,第460号,pp.114-119,技術雑誌(国内) 2006-01125-005
山下 克司,困ったときの現場ノウハウ,日経コミュニケーション 第392号,日本,日経BP社,2003年06月09日,第392号,pp.126-129,技術雑誌(国内) 2004-00524-007

Also Published As

Publication number Publication date
JP2022144714A (ja) 2022-10-03

Similar Documents

Publication Publication Date Title
US7401154B2 (en) Pipelined high speed data transfer mechanism
CN108363615B (zh) 用于可重构处理系统的任务分配方法和系统
CN100533387C (zh) 执行作业步的系统和方法
CN108762896B (zh) 一种基于Hadoop集群任务调度方法及计算机设备
CN102546402B (zh) 支持基于关键项的分布式进程的方法和计算实体
EP2240852B1 (en) Scalable sockets
CN113691611B (zh) 一种区块链的分布式高并发事务处理方法及系统、设备、存储介质
US20050081208A1 (en) Framework for pluggable schedulers
US20070283355A1 (en) Computer System, Servers Constituting the Same, and Job Execution Control Method and Program
WO2012037760A1 (zh) 提升告警处理效率的方法、服务器及系统
CN106776008A (zh) 一种基于zookeeper实现负载均衡的方法及系统
US20180335957A1 (en) Lock-free datapath design for efficient parallel processing storage array implementation
CN110300188A (zh) 数据传输系统、方法和设备
Chen et al. Optimizing network transfers for data analytic jobs across geo-distributed datacenters
CN108605017A (zh) 查询计划和操作感知通信缓冲区管理
JP2005521945A (ja) 共通作業キュー環境における最適格サーバ
US8775637B2 (en) Recording medium storing communication program, information processing apparatus, and communication procedure
WO2008085324A1 (en) Assigning tasks to threads requiring limited resources using programmable queues
CA2399186C (en) Data transfer apparatus and data transfer method
CN107977232A (zh) 一种数据处理方法、数据处理电路和网络设备
JP7577580B2 (ja) Ssl通信処理装置及びssl通信処理方法
CN107291638A (zh) 并行处理装置和控制通信的方法
JP4183712B2 (ja) マルチプロセッサシステムにおいてプロセッサタスクを移動するデータ処理方法、システムおよび装置
CN115580583A (zh) 微服务架构下的服务分流方法及装置
JP2002140201A (ja) データベース更新方法及びそれを用いたデータベース管理システム

Legal Events

Date Code Title Description
RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20221118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231215

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20231225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240820

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20241023

R150 Certificate of patent or registration of utility model

Ref document number: 7577580

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150