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 communication processing device and SSL communication processing method - Google Patents
[go: Go Back, main page]

JP7577580B2 - SSL communication processing device and SSL communication processing method - Google Patents

SSL communication processing device and SSL communication processing method 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
Japanese (ja)
Other versions
JP2022144714A (en
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/en
Publication of JP2022144714A publication Critical patent/JP2022144714A/en
Application granted granted Critical
Publication of JP7577580B2 publication Critical patent/JP7577580B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、SSL通信処理装置及びSSL通信処理方法に関する。 The present invention relates to an SSL communication processing device and an SSL communication processing method.

例えば、特許文献1には、マルチコアを有するネットワークサービスプロセッサ内のワークを順序づけ、同期化しかつスケジューリングする装置であって、各ひとまとまりのワークは、このワークがいかに同期化されかつ順序づけられるべきかを示すタグによって特定され、異なるタグを有するワークを異なるプロセッサコアで並列に処理することによって、スループットが向上し、パケット処理は種々のステージに分割されることができ、各ステージは、順序づけおよび同期化に関する制約に応じて、異なるタグを有し、コアによって開始されるタグスイッチ操作は、ステージに応じてタグを切り換え、専用のタグスイッチバスが、タグスイッチ操作の待ち時間を最小限に抑える装置が開示されている。 For example, US Patent Publication 2007/0139963 discloses an apparatus for sequencing, synchronizing, and scheduling work in a network services processor having multiple cores, where each piece of work is identified by a tag that indicates how the work should be synchronized and sequenced, where work with different tags is processed in parallel by different processor cores to improve throughput, where packet processing can be divided into various stages, where each stage has a different tag depending on sequencing and synchronization constraints, where tag switch operations initiated by the cores switch tags depending on the stage, and where a dedicated tag switch bus minimizes the latency of the tag switch operations.

また、特許文献2には、記憶部1aが、複数のリクエスト間の関連性に関する情報およびリクエストの送信に関する優先度を該リクエストに対応付けて記憶し、処理部1bが、処理の実行に関する第1のリクエストを受信すると、記憶部1aを参照して、第1のリクエストに関連する第2のリクエストと、第2のリクエストに対応する第1の優先度とを特定し、処理部1bが、第1のリクエストに応じた処理を実行する情報処理装置2に、第1の優先度よりも高い第2の優先度で第2のリクエストを送信する送信制御装置が開示されている。 Patent document 2 also discloses a transmission control device in which a memory unit 1a stores information regarding the relationship between multiple requests and a priority for sending the request in association with the request, and when a processing unit 1b receives a first request for executing a process, the processing unit 1b refers to the memory unit 1a to identify a second request related to the first request and a first priority corresponding to the second request, and the processing unit 1b transmits the second request at a second priority higher than the first priority to an information processing device 2 that executes the process according to the first request.

また、特許文献3には、セキュリティ・オペレーションを処理する方法であって、プロセッサは、セキュリティ・オペレーションに対するいくつかの要求を処理するいくつかの実行ユニットを含み、これらの実行ユニットは、いくつかの要求の結果を、その要求に格納されているポインタに基づいて、遠隔メモリ内の要求に関連する出力データ構造に出力し、この実行ユニットは、要求待ち行列内の要求の順番とは異なる順番で結果を出力することができ、プロセッサは実行ユニットに結合されている要求ユニットも含み、要求ユニットは、要求の一部を遠隔メモリ内の要求待ち行列から取り出し、要求の一部に対する関連する入力データ構造を遠隔メモリから取り出し、さらに、要求ユニットは、取り出した要求を実行ユニットによる処理の可用性に基づいていくつかの実行ユニットに分配する方法が開示されている。 Patent document 3 also discloses a method of processing security operations, in which a processor includes a number of execution units that process a number of requests for security operations, the execution units output results of the requests to an output data structure associated with the requests in a remote memory based on pointers stored in the requests, the execution units can output the results in an order different from the order of the requests in the request queue, the processor also includes a request unit coupled to the execution units, the request unit retrieves some of the requests from the request queue in the remote memory and retrieves associated input data structures for some of the requests from the remote memory, and the request unit distributes the retrieved requests to the execution units based on availability for processing by the execution units.

特表2008-512950Special table 2008-512950 特開2019-040344Patent Publication No. 2019-040344 特表2003-216591Special table 2003-216591

SSL通信の暗号化処理又は復号化処理を行うデバイスの性能を十分に発揮させるSSL通信処理装置を提供することを目的とする。 The objective is to provide an SSL communication processing device that fully utilizes the performance of a device that performs encryption or decryption processing of SSL communications.

本発明に係るSSL通信処理装置は、SSL通信の暗号化処理又は復号化処理のリクエストを発行するリクエスト発行コアと、前記リクエスト発行コアにより発行されたリクエストをキューイングするリクエストキューを複数含むリクエストキュー集合体と、前記リクエストキューにキューイングされたリクエストを処理するデバイスとを有し、一つの前記リクエスト発行コアに対して、グループ化された複数のリクエストキューが割り当てられている。 The SSL communications processing device according to the present invention includes a request issuing core that issues requests for encryption or decryption processing of SSL communications, a request queue collection including multiple request queues that queue the requests issued by the request issuing core, and a device that processes the requests queued in the request queues, and multiple grouped request queues are assigned to one of the request issuing cores.

好適には、前記リクエスト発行コアは、グループ化された複数のリクエストキューのうち、代表のリクエストキューに対してリクエストを発行し、このグループ化されたリクエストキューのうち、ラウンドロビンで選択されたリクエストキューが、前記代表のリクエストキューに対して発行されたリクエストをキューイングする。 Preferably, the request issuing core issues a request to a representative request queue from among the multiple grouped request queues, and a request queue selected in a round robin fashion from among the grouped request queues queues the request issued to the representative request queue.

好適には、前記デバイスは、互いに独立して並列処理できる複数の子デバイスを含み、グループ化された複数のリクエストキューは、互いに異なる子デバイスに割り当てられている。 Preferably, the device includes multiple child devices that can be processed in parallel independently of each other, and the multiple grouped request queues are assigned to different child devices.

好適には、前記デバイスは、前記リクエストキューよりも多いエンジンを含む。 Preferably, the device includes more engines than the request queue.

また、本発明に係るSSL通信処理方法は、リクエスト発行コアが、SSL通信の暗号化処理又は復号化処理のリクエストを、このリクエスト発行コアに割り当てられたリクエストキューのグループに対して発行するステップと、前記グループに属するいずれかのリクエストキューが、前記リクエスト発行コアにより発行されたリクエストをキューイングするステップと、SSL通信の暗号化処理又は復号化処理を行うデバイスが、前記リクエストキューにキューイングされたリクエストを処理するステップとを有する。 The SSL communication processing method according to the present invention also includes a step in which a request issuing core issues a request for encryption or decryption of SSL communication to a group of request queues assigned to the request issuing core, a step in which one of the request queues belonging to the group queues the request issued by the request issuing core, and a step in which a device performing encryption or decryption of SSL communication processes the request queued in the request queue.

SSL通信の暗号化処理又は復号化処理を行うデバイスの性能を十分に発揮させることができる。 This allows the device performing encryption or decryption processing for SSL communications to perform to its full potential.

ネットワーク装置1のハードウェア構成を例示する図である。FIG. 2 is a diagram illustrating an example of a hardware configuration of a network device 1. ネットワーク装置1の機能構成を例示する図である。FIG. 2 is a diagram illustrating an example of a functional configuration of a network device 1. ネットワーク装置1におけるSSL処理(S10)を説明するフローチャートである。10 is a flowchart illustrating an SSL process (S10) in the network device 1. 変形例におけるネットワーク装置1の機能構成を例示する図である。FIG. 13 is a diagram illustrating an example of a functional configuration of a network device 1 according to a modified example. 比較例1におけるネットワーク装置の機能構成を示す図である。FIG. 11 is a diagram illustrating a functional configuration of a network device in a first comparative example. 比較例2におけるネットワーク装置の機能構成を示す図である。FIG. 11 is a diagram illustrating a functional configuration of a network device in a second comparative example.

本発明の実施形態を、図面を参照して説明する。
図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が受けたデータを暗号化又は復号化する度に、リクエストを発行する。
An embodiment of the present invention will be described with reference to the drawings.
FIG. 1 is a diagram illustrating an example of a hardware configuration of a network device 1.
As illustrated in FIG. 1, the network device 1 includes a request issuing core 10, a request queue collection 12, and an SSL processing device 14.
The request issuing core 10 issues requests for encryption or decryption processing of SSL (Secure Sockets Layer) communication. For example, the request issuing core 10 includes a plurality of request issuing cores, which issue requests in parallel.
The request queue aggregate 12 includes a plurality of request queues 120, and queues requests issued from the request issuing core 10. Queuing refers to holding requests on a first-in, first-out basis.
The SSL processing device 14 is an engine group including a plurality of engines that perform encryption or decryption processing of SSL communications, and processes the requests queued in the request queue group 12 in order.
In the above configuration, a request for encryption processing, decryption processing, or the like is issued from the request issuing core 10 of the network device 1 to the request queue (request queue 120) of the SSL accelerator via the API.
The requests queued in the request queue 120 are processed using the engine of the SSL accelerator (the engine of the SSL processing device 14) and the requests are completed.
The issuance and completion of a request are asynchronous, and the network device 1 issues a request every time it encrypts or decrypts received data.

(背景)
図5に示される比較例1のように、リクエスト発行コアと、リクエストキューが1対1で対応する設計とすることも考えられる。このような設計の場合、リクエストキューの数が エンジンの数以上であるときは、問題ないが、リクエストキューの数がエンジンの数よりも少ないと、エンジンが余り、有効活用されない。
また、リクエストキューはその時点で空いている1つのエンジンを使用して、1リクエストを処理する。使用する空きエンジンは自動的に割り当てられ、ソフトウェアでは制御できない。
すなわち、図5に示すように、使用可能なリクエストキュー数がエンジン数より少ないため、空きエンジンが発生する。エンジンをフル活用できないため、SSLアクセラレータは本来の性能を発揮できない。図5の例では、リクエスト発行コア数が6個、リクエストキュー数が30個(そのうち6個使用可能)であり、エンジンのEN7~EN30は使えない。
なお、リクエストキューの番号と、エンジンの番号に関連性はなく、空いているエンジンが自動的に割り当てられる。
(background)
It is also possible to design the request issuing cores and the request queues in a one-to-one correspondence, as in Comparative Example 1 shown in Fig. 5. In this type of design, if the number of request queues is equal to or greater than the number of engines, there is no problem, but if the number of request queues is less than the number of engines, the engines will be left surplus and will not be used effectively.
In addition, the request queue uses one free engine at a time to process one request. The free engine to be used is assigned automatically and cannot be controlled by software.
That is, as shown in Fig. 5, the number of available request queues is less than the number of engines, resulting in free engines. Since the engines cannot be fully utilized, the SSL accelerator cannot demonstrate its original performance. In the example of Fig. 5, the number of request issuing cores is 6, the number of request queues is 30 (of which 6 are available), and engines EN7 to EN30 cannot be used.
There is no correlation between the request queue number and the engine number, and an available engine is automatically assigned.

そこで、本実施形態のネットワーク装置1では、SSLアクセラレータにおいて、複数のリクエストキューをグループ化し、そのグループの代表リクエストキューに対してリクエストを発行することでリクエスト処理を実行可能とする。 Therefore, in the network device 1 of this embodiment, the SSL accelerator groups multiple request queues and issues a request to the representative request queue of that group, making it possible to execute request processing.

図2は、ネットワーク装置1の機能構成を例示する図である。
図2に例示するように、ネットワーク装置1は、複数のリクエスト発行コア10と、グループ化されたリクエストキュー120と、複数のエンジン140が含まれたSSL処理デバイス14とを有し、リクエスト発行コア10それぞれに、グループ化されたリクエストキュー120が割り当てられている。
より具体的には、複数のリクエストキュー120をまとめたグループをノードとし、リクエスト発行コア10と同数のノードを作成する。1つのノードにつき、1つの代表リクエストキュー122が設定される。
FIG. 2 is a diagram illustrating an example of the functional configuration of the network device 1. As shown in FIG.
As illustrated in FIG. 2, the network device 1 has a plurality of request issuing cores 10, grouped request queues 120, and an SSL processing device 14 including a plurality of engines 140, and each of the request issuing cores 10 is assigned a grouped request queue 120.
More specifically, a group of a plurality of request queues 120 is treated as a node, and the same number of nodes are created as the number of request issuing cores 10. One representative request queue 122 is set for each node.

図3は、ネットワーク装置1におけるSSL処理(S10)を説明するフローチャートである。なお、本フローチャートでは、図2の1つのリクエスト発行コア10に着目して説明する。他のリクエスト発行コア10も同様に並行して処理を行っている。
図3に例示するように、ステップ100(S100)において、リクエスト発行コア10は、割り当てられたリクエストキューのグループ(ノード)の代表リクエストキュー122に対してリクエストを発行する。
ステップ110(S110)において、代表リクエストキュー122は、自身が属するグループ(ノード)内に割り当てられているリクエストキュー120を選んでリクエストを発行する。選び方はラウンドロビンとする。
Fig. 3 is a flowchart for explaining the SSL processing (S10) in the network device 1. Note that this flowchart will be explained focusing on one request issuing core 10 in Fig. 2. The other request issuing cores 10 also perform similar processing in parallel.
As illustrated in FIG. 3, in step 100 (S100), the request issuing core 10 issues a request to the representative request queue 122 of the assigned request queue group (node).
In step 110 (S110), the representative request queue 122 selects a request queue 120 assigned to the group (node) to which it belongs and issues a request. The selection method is round robin.

ステップ120(S120)において、選ばれたリクエストキュー120は、発行されたリクエストをキューイングする。
ステップ130(S130)において、SSL処理デバイス14のエンジン140は、リクエストキュー120にキューイングされたリクエストを、処理する。
In step 120 (S120), the selected request queue 120 queues the issued request.
In step 130 (S 130 ), the engine 140 of the SSL processing device 14 processes the request queued in the request queue 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が自動的に割り当てられる。
As described above, according to the network device 1 of this embodiment, by increasing the number of request queues 140 used in the SSL accelerator and increasing the number of requests issued, the engines 140 can be effectively utilized and the performance of the SSL accelerator can be demonstrated. In other words, it is possible to create a state in which the number of request queues 120 is equal to or greater than the number of engines 140, and the relationship between the request issuing cores and the request queues becomes 1:many.
2, the request issuing core 10 can issue requests from a plurality of request queues 120, the number of which is at least the number of request queues 120 or engines 140. For example, when a request is queued in the representative request queue 122, one of the five request queues 120, including the representative request queue, namely, the 1st, 7th, 13th, 19th, and 25th request queues 120 is selected and the request is issued. In FIG. 2, an arrow is drawn from the request queue 120 to the engine for the request issued from the request issuing core 10, but an arrow can be drawn from the request queue 120 to the engine 140 for the requests issued from the other request issuing cores 10. This allows the engines to be used effectively without being wasted. Note that there is no correlation between the numbers of the request queues 120 and the numbers of the engines 140, and an available engine 140 is automatically assigned.

(変形例)
次に、上記実施形態の変形例として、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程度の性能しか発揮されない。
(Modification)
Next, as a modification of the above embodiment, a case will be described in which the SSL accelerator is physically one device but has three child devices internally.
In this case, if there is a bias in the request issuing cores used during communication, there will be a bias in the child devices used, as shown in Fig. 6. More specifically, a case in which two request issuing cores are evenly assigned to each of three child devices A, B, and C in Fig. 6 will be described as Comparative Example 2.
The engines of each child device are indicated as A1 to A10, B11 to B20, and C21 to C30. Considering a case where the request issuing cores 1 to 4 are biased, the request issuing cores 1 and 2 are assigned only to the child device A. At this time, among the engines A1 to A10, an available engine is automatically assigned and used. Furthermore, the request issuing cores 3 and 4 are assigned only to the child device B. Here, among the engines B11 to B20, an available engine is used. As a result, the engines are biased toward the child devices A and B, while the child device C is hardly used at all, and only about two-thirds of the original performance is exhibited as an SSL accelerator.

性能が発揮されないことについては、下記2つの側面がある。
・エンジンに対する負荷が高い場合に性能発揮できない
例えば、30個全てのエンジンでの処理を必要とするほどに、リクエスト量が多い且つ計算量が重いリクエストが集中した場合、子デバイスA及びBにリクエストが偏ってしまうと、使用できるエンジンは、A1~A10及びB11~B20の20個となってしまう。30個全てのエンジンを使用できないため、SSLアクセラレータ本来の性能を発揮できない。
・各子デバイスが持つ固有機能をフル活用できない
各子デバイスにはエンジン以外にも、固有の機能が存在している。例えば、特定の暗号種別について処理時、エンジンとは別に各子デバイスが持つ固有の回路を使用して計算されることが考えられる。そのため、全デバイスでは3回路使用できるが、2デバイスでは2回路しか使用されず、性能が発揮できない。この問題は上記のような高負荷時に限らず発生する。
There are two aspects to this lack of performance:
- Unable to demonstrate performance when engines are under heavy load For example, if there is a concentration of requests with a large volume and heavy calculations that require processing by all 30 engines, and the requests are concentrated on child devices A and B, the number of engines that can be used will be limited to 20, A1 to A10 and B11 to B20. Since all 30 engines cannot be used, the SSL accelerator cannot demonstrate its inherent performance.
- The unique functions of each child device cannot be fully utilized Each child device has its own unique functions in addition to the engine. For example, when processing a specific encryption type, calculations may be performed using a unique circuit that each child device has, separate from the engine. As a result, while three circuits can be used across all devices, only two circuits are used across two devices, and performance cannot be achieved. This problem does not only occur during high loads such as those described above.

そこで、本変形例のネットワーク装置1では、グループ化された複数のリクエストキュー120が、互いに異なる子デバイスに割り当てられている。換言すると、グループ内の複数のリクエストキュー120が、複数の子デバイスにまたがって割り当てられている。より具体的には、図4に示すように、各子デバイスのリクエストキュー120及びエンジン140をなるべく均等に使用し、性能を発揮するよう構成されている。 Therefore, in the network device 1 of this modified example, the multiple grouped request queues 120 are assigned to different child devices. In other words, the multiple request queues 120 in a group are assigned across multiple child devices. More specifically, as shown in FIG. 4, the request queues 120 and engines 140 of each child device are used as evenly as possible to maximize performance.

具体的には、子デバイスを複数持つ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が自動的に割り当てられる。
Specifically, an example of an SSL accelerator having multiple child devices is PE3ISLBTL (PCIe 3.0, x8 Crypto/Compression LBG Server Adapter) made by Silicon Corp. In such an SSL accelerator, the request queues 120 of the child devices are assigned to the request issuing core 10 so as to be used as evenly as possible.
In this modified example, the number of request issuing cores 10 is six, the number of child devices is three, the request queues 120 of child device A are 1 to 10, the engine group 15A of child device A are A1 to A10, the request queues 120 of child device B are 11 to 20, the engine group 15B of child device B are B11 to B20, the request queues of child device C are 21 to 30, and the engine group 15C of child device C are C21 to C30. Note that the queue numbers of the representative request queue 122 are indicated by circles. There is no correlation between the numbers of the request queues 120 and the numbers of the engines 140, and a request queued in the request queue 120 is automatically assigned an available engine 140 from among the engines 140 indicated by the same hatching pattern as the request queue 120.

上記設定により、下記の効果がある。
・使用されるリクエスト発行コア10に偏りが出ても、子デバイスを分散して処理できるため、SSL処理デバイス14側の性能を落とさずに処理ができる。例えば、リクエスト発行コアが1番~4番に偏った場合でも、本変形例では、各リクエスト発行コア10に対応するリクエストキュー120から、子デバイスA~Cの3つ全てを使用できるため、全ての子デバイスの固有機能を使用できる。また、全ての子デバイスの全エンジン140を使用できる。よって、全ての子デバイスを使わない場合と比べて、性能劣化を軽減できる。
・1つの子デバイスにエラーが起こり、一時的に処理不可状態となる時でも、他の子デバイスがリクエスト処理可能となるので、処理を継続できる。例えば、子デバイスAが処理不可能となった場合には、リクエストキュー120の1番~10番が使用不可能となるが、11番~30番のリクエストキュー120については使用できるため、全てのリクエスト発行コア10について、リクエストの発行と処理を継続できる。
The above settings have the following effects:
Even if the request issuing cores 10 used are unevenly distributed, processing can be distributed among the child devices, allowing processing to be performed without degrading the performance of the SSL processing device 14. For example, even if the request issuing cores used are unevenly distributed among the first to fourth request issuing cores, in this modified example, all three child devices A to C can be used from the request queues 120 corresponding to the respective request issuing cores 10, allowing the unique functions of all child devices to be used. In addition, all engines 140 of all child devices can be used. Therefore, performance degradation can be reduced compared to when not using all child devices.
Even if an error occurs in one child device and it becomes temporarily unable to process, the other child devices can process requests, so processing can continue. For example, if child device A becomes unable to process, request queues 120 No. 1 to 10 become unusable, but request queues 120 No. 11 to 30 can be used, so all request issuing cores 10 can continue to issue and process requests.

このように、本変形例のネットワーク装置1によれば、使用されるリクエスト発行コア10に偏りが出ても、子デバイスを分散して処理できるため、SSLアクセラレータ全体としての性能を落とさずに処理ができる。
さらに、1つの子デバイスにエラーが起こり、一時的に処理不可状態になる場合でも、他の子デバイスがリクエスト処理を実行できるため、処理を継続できる。
In this manner, according to the network device 1 of this modified example, even if the request issuing cores 10 used are unevenly distributed, processing can be distributed among child devices, so processing can be performed without degrading the performance of the SSL accelerator as a whole.
Furthermore, even if an error occurs in one child device and it becomes temporarily unable to process, other child devices can still process the request, so processing can continue.

1…ネットワーク装置
10…リクエスト発行コア
12…リクエストキュー集合体
120…リクエストキュー
122…代表リクエストキュー
14…SSL処理デバイス
140…エンジン
15…エンジン群
Reference Signs List 1 network device 10 request issuing core 12 request queue aggregate 120 request queue 122 representative request queue 14 SSL processing device 140 engine 15 engine group

Claims (5)

SSL通信の暗号化処理又は復号化処理のリクエストを発行するリクエスト発行コアと、
前記リクエスト発行コアにより発行されたリクエストをキューイングするリクエストキューを複数含むリクエストキュー集合体と、
前記リクエストキューにキューイングされたリクエストを処理するデバイスと
を有し、
一つの前記リクエスト発行コアに対して、グループ化された複数のリクエストキューが割り当てられている
SSL通信処理装置。
a request issuing core that issues a request for encryption or decryption of SSL communication;
a request queue assembly including a plurality of request queues for queuing requests issued by the request issuing core;
a device for processing requests queued in the request queue;
A plurality of grouped request queues are assigned to one of the request issuing cores.
前記リクエスト発行コアは、グループ化された複数のリクエストキューのうち、代表のリクエストキューに対してリクエストを発行し、
このグループ化されたリクエストキューのうち、ラウンドロビンで選択されたリクエストキューが、前記代表のリクエストキューに対して発行されたリクエストをキューイングする
請求項1に記載のSSL通信処理装置。
the request issuing core issues a request to a representative request queue among the grouped request queues;
2. The SSL communications processing device according to claim 1, wherein a request queue selected in a round robin manner from among the grouped request queues queues a request issued to the representative request queue.
前記デバイスは、互いに独立して並列処理できる複数の子デバイスを含み、
グループ化された複数のリクエストキューは、互いに異なる子デバイスに割り当てられている
請求項1に記載のSSL通信処理装置。
The device includes a plurality of child devices that can operate in parallel independently of each other;
The SSL communications processing device according to claim 1 , wherein the plurality of grouped request queues are assigned to different child devices.
前記デバイスは、前記リクエストキューよりも多いエンジンを含む
請求項2に記載のSSL通信処理装置。
The SSL communications processing apparatus of claim 2 , wherein the device includes more engines than the request queues.
リクエスト発行コアが、SSL通信の暗号化処理又は復号化処理のリクエストを、このリクエスト発行コアに割り当てられたリクエストキューのグループに対して発行するステップと、
前記グループに属するいずれかのリクエストキューが、前記リクエスト発行コアにより発行されたリクエストをキューイングするステップと、
SSL通信の暗号化処理又は復号化処理を行うデバイスが、前記リクエストキューにキューイングされたリクエストを処理するステップと
を有するSSL通信処理方法。
A request issuing core issues a request for encryption or decryption of SSL communication to a group of request queues assigned to the request issuing core;
queuing a request issued by the request issuing core in one of the request queues belonging to the group;
A device that performs encryption or decryption processing of SSL communication processes requests queued in the request queue.
JP2021045850A 2021-03-19 2021-03-19 SSL communication processing device and SSL communication processing method Active JP7577580B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021045850A JP7577580B2 (en) 2021-03-19 2021-03-19 SSL communication processing device and SSL communication processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021045850A JP7577580B2 (en) 2021-03-19 2021-03-19 SSL communication processing device and SSL communication processing method

Publications (2)

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

Family

ID=83455084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021045850A Active JP7577580B2 (en) 2021-03-19 2021-03-19 SSL communication processing device and SSL communication processing method

Country Status (1)

Country Link
JP (1) JP7577580B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001292172A (en) 2000-03-02 2001-10-19 Alcatel Internetworking Inc Limited priority queue scheduler
JP2017521806A (en) 2014-06-26 2017-08-03 グバーネット インコーポレイテッドGubernet Inc. Scheduling method and apparatus in a multiprocessing environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001292172A (en) 2000-03-02 2001-10-19 Alcatel Internetworking Inc Limited priority queue scheduler
JP2017521806A (en) 2014-06-26 2017-08-03 グバーネット インコーポレイテッドGubernet Inc. Scheduling method and apparatus in a multiprocessing environment

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 (en) 2022-10-03

Similar Documents

Publication Publication Date Title
US7401154B2 (en) Pipelined high speed data transfer mechanism
CN108363615B (en) Task allocation method and system for reconfigurable processing systems
CN100533387C (en) System and method for executing job step
CN108762896B (en) Hadoop cluster-based task scheduling method and computer equipment
CN102546402B (en) Method for supporting distributed key-based processes and computing entity
EP2240852B1 (en) Scalable sockets
CN113691611B (en) Distributed high-concurrency transaction processing method, system, device, and storage medium of a blockchain
US20050081208A1 (en) Framework for pluggable schedulers
US20070283355A1 (en) Computer System, Servers Constituting the Same, and Job Execution Control Method and Program
WO2012037760A1 (en) Method, server and system for improving alarm processing efficiency
CN106776008A (en) A kind of method and system that load balancing is realized based on zookeeper
US20180335957A1 (en) Lock-free datapath design for efficient parallel processing storage array implementation
CN110300188A (en) Data transmission system, method and apparatus
Chen et al. Optimizing network transfers for data analytic jobs across geo-distributed datacenters
CN108605017A (en) Query planning and operation-aware communication buffer management
JP2005521945A (en) Optimal server in common work queue environment
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 (en) A kind of data processing method, data processing circuit and the network equipment
JP7577580B2 (en) SSL communication processing device and SSL communication processing method
CN107291638A (en) Parallel processing apparatus and the method for control communication
JP4183712B2 (en) Data processing method, system and apparatus for moving processor task in multiprocessor system
CN115580583A (en) Service distribution method and device under microservice architecture
JP2002140201A (en) Method for updating database and database management system using the same

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