[go: up one dir, main page]

JP2019161641A - ハードウェアオフロードを有するアクセラレートされたquicパケット処理のための技術 - Google Patents

ハードウェアオフロードを有するアクセラレートされたquicパケット処理のための技術 Download PDF

Info

Publication number
JP2019161641A
JP2019161641A JP2019009999A JP2019009999A JP2019161641A JP 2019161641 A JP2019161641 A JP 2019161641A JP 2019009999 A JP2019009999 A JP 2019009999A JP 2019009999 A JP2019009999 A JP 2019009999A JP 2019161641 A JP2019161641 A JP 2019161641A
Authority
JP
Japan
Prior art keywords
packet
quiic
quic
computing device
network controller
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.)
Granted
Application number
JP2019009999A
Other languages
English (en)
Other versions
JP7332300B2 (ja
Inventor
デヴァル マナシ
Manasi Deval
デヴァル マナシ
バウアーズ グレゴリー
Bowers Gregory
バウアーズ グレゴリー
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2019161641A publication Critical patent/JP2019161641A/ja
Application granted granted Critical
Publication of JP7332300B2 publication Critical patent/JP7332300B2/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】アクセラレートされたQUICパケット処理の技術を提供する。
【解決手段】コンピューティングデバイスは、ネットワークコントローラをQUIC接続に関連づけられた暗号化キーでプログラムし、QUICパケットをネットワークコントローラに渡すネットワークコントローラドライバである。QUICパケットは、QUICヘッダと平文ペイロードとを含むUDPパケットを含み、QUIC接続に関連づけられるネットワークコントローラドライバを含む。ネットワークコントローラは、QUICパケットの平文ペイロードを暗号化キーで暗号化してQUICパケットの暗号化されたペイロードを生成する暗号アクセラレータを含み、暗号化されたペイロードを含むQUICパケットをQUIC接続に関連づけられたリモートコンピューティングデバイスに送信する。
【選択図】図1

Description

QUIC(クイックUDPインターネット接続(Quick UDP Internet Connections))は、トランスミッションコントロールプロトコル(Transmission Control Protocol;TCP)のような従来のネットワークプロトコルに取って代わるために使用され得る比較的新しいネットワークプロトコルである。QUICは、UDP(ユーザデータグラムプロトコル(User Datagram Protocol))の上に構築されたトランスポートレイヤプロトコルである。QUICは、UDPを通じての2つのエンドポイント間の多重された接続のセットをサポートし、低減された接続及びトランスポートレイテンシと共にTLS/SSLと同等のセキュリティ保護を、並びに輻輳を回避するために各方向における帯域幅推定を提供し得る。ゆえに、QUICは、TCPのような従来のプロトコルと比較して改善された暗号化及び改善された接続レイテンシを提供することが意図され、同時に、柔軟な輻輳管理及び既存のネットワークインフラストラクチャとの互換性も提供する。比較的新しくはあるが、QUICは全インターネットトラフィックのうち7%をすでに形成し、特定の大規模ネットワークユーザがQUICを現在有効にしている。現在のQUICプロトコル実装(例えば、ユーザモードプロトコルスタック及びライブラリ)はソフトウェアで十分に実装されている。
関連出願の相互参照
本出願は、2018年3月16日に出願された米国仮特許出願第62/644,045号の利益を主張する。
本明細書で説明される概念は、添付図面において限定としてでなく例として示される。例示の簡潔さ及び明確さのため、図に示される要素は必ずしも縮尺どおりに描かれていない。適切と考えられる場合、参照ラベルは、対応する又は類似の要素を示すために複数の図の中で繰り返されている。
アクセラレートされたQUICパケット処理のためのシステムの少なくとも1つの実施例の簡略ブロック図である。 図1のコンピューティングデバイスの環境の少なくとも1つの実施例の簡略ブロック図である。 図1〜2のシステムにより実行できるハードウェアオフロードでQUICパケット処理をアクセラレートする方法の少なくとも1つの実施例の簡略相互作用図である。 図1〜2のコンピューティングデバイスにより実行できるアクセラレートされたラージパケットセグメンテーションのための方法の少なくとも1つの実施例の簡略フロー図である。 図1〜2のコンピューティングデバイスにより実行できるアクセラレートされたパケット暗号化のための方法の少なくとも1つの実施例の簡略フロー図である。 図1〜2のコンピューティングデバイスにより実行できるアクセラレートされたパケット解読のための方法の少なくとも1つの実施例の簡略フロー図である。 図1〜2のコンピューティングデバイスにより実行できるアクセラレートされた受信側スケーリング及びフィルタリングのための方法の少なくとも1つの実施例の簡略フロー図である。
本開示の概念は様々な変更及び代替形式を受け入れる余地があるが、その具体的な実施例が図面に例として示されており、本明細書で詳細に説明される。しかしながら、本開示の概念を開示される特定の形式に限定する意図はないことが理解されるべきであり、逆に、その意図は本開示及び別記の特許請求の範囲と一貫する全ての変更、均等物、及び代替物をカバーすることである。
明細書における「1つの実施例」、「実施例」、「例示的な実施例」等への参照は、説明される実施例が特定の特徴、構造、又は特性を含み得るが、あらゆる実施例が必ずその特定の特徴、構造、又は特性を含んでもよく、あるいは含まなくてもよいことを示す。さらに、こうした表現は、必ずしも同じ実施例を参照するわけではない。さらに、特定の特徴、構造、又は特性が一実施例と関連して説明されるとき、明示的に説明されるか否かにかかわらず、他の実施例と関連してこうした特徴、構造、又は特性を達成することは当業者の知識の範囲内であると考えられる。さらに、「少なくとも1つのA、B、及びC」の形式のリストに含まれる項目は、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)、又は(A、B、及びC)を意味し得ることが十分理解されるべきである。同様に、「A、B、又はCのうち少なくとも1つ」の形式で列挙された項目は、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)、又は(A、B、及びC)を意味し得る。
開示される実施例は、いくつかの場合、ハードウェア、ファームウェア、ソフトウェア、又はこれらの任意の組み合わせで実現されてよい。開示される実施例は、1つ以上のプロセッサにより読み出し及び実行できる、一時的又は非一時的なマシン読取可能(例えば、コンピュータ読取可能)記憶媒体により搬送された命令又は該記憶媒体に記憶された命令として実現されてもよい。マシン読取可能記憶媒体は、任意の記憶デバイス、機構、又はマシンにより読取可能な形式の情報を記憶又は送信する他の物理的構造(例えば、揮発又は不揮発性のメモリ、媒体ディスク、又は他の媒体デバイス)として具現化されてよい。
図面において、いくつかの構造的又は方法の特徴が具体的な配置及び/又は順序づけで示されることがある。しかしながら、こうした具体的な配置及び/又は順序づけは要求されない可能性があることが十分理解されるべきである。むしろ、いくつかの実施例において、こうした特徴は、例示的な図に示されるのとは異なる方式及び/又は順序で配置されることがある。さらに、特定の図に構造的又は方法の特徴を含むことは、こうした特徴が全ての実施例で要求されることを示すようには意図されず、いくつかの実施例において、含まれなくてもよく、あるいは他の特徴と組み合わせられてもよい。
次に図1を参照し、アクセラレートされた(accelerated)QUICパケット処理のためのシステム100が、ネットワーク104を通じて通信する複数のコンピューティングデバイス102を含む。各コンピューティングデバイスは、QUICプロトコルネットワークトラフィックのためのハードウェアアクセラレータサポートを含む。送信において、ハードウェアアクセラレータはQUICペイロードを暗号化し、ラージ(large)QUICパケットを必要に応じてより小さいパケットにセグメント化する。受信において、ハードウェアアクセラレータはQUICペイロードを解読し、複数の利用可能な方法のうち1つを使用して受信キューを選択して、多くのプロセッサ120コアにわたりホスト処理を分配する。ゆえに、コンピューティングデバイス102は、現在の解決策により使用されるソフトウェアのみのQUICと比較されたとき、大きく改善されたQUICプロトコル性能を提供し、改善されたスループット及び低減されたプロセッサ使用量を提供し得る。さらに、ハードウェアアクセラレートされたQUICプロトコルパケット処理は、ホストプロセッサのプロセッササイクル使用量を低減し、クラウドサービスプロバイダに価値を提供し得る。
各コンピューティングデバイス102は、本明細書で説明される機能を実行できる任意のタイプの計算又はコンピュータデバイスとして具現化されてよく、コンピュータ、サーバ、ワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、モバイルコンピューティングデバイス、ウェアラブルコンピューティングデバイス、ネットワーク電化製品、ウェブ電化製品、分散コンピューティングシステム、プロセッサベースのシステム、及び/又は消費者電子デバイスを限定なく含む。図1に示されるように、コンピューティングデバイス102は、プロセッサ120、入力/出力サブシステム124、メモリ126、データ記憶デバイス128、通信サブシステム130、アクセラレータ140、及び/又はサーバ若しくは同様のコンピューティングデバイスで一般に見られる他のコンポーネント及びデバイスを例示的に含む。当然ながら、コンピューティングデバイス102は、他の実施例において、サーバコンピュータで一般に見られるもののような他の又はさらなるコンポーネント(例えば、様々な入力/出力デバイス)を含んでもよい。さらに、いくつかの実施例において、例示的なコンポーネントの1つ以上が別のコンポーネントに組み込まれ、あるいはその他の方法で別のコンポーネントの一部を形成してもよい。例えば、メモリ126又はその一部が、いくつかの実施例においてプロセッサ120に組み込まれてもよい。
プロセッサ120は、本明細書で説明される機能を実行できる任意のタイプのプロセッサとして具現化されてよい。プロセッサ120は例示的にマルチコアプロセッサであるが、他の実施例において、プロセッサ120はシングル若しくはマルチコアプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、又は他のプロセッサ若しくは処理/制御回路として具現化されてもよい。例示的なプロセッサ120は複数のプロセッサコア122を含み、その各々はプログラムされた命令を実行できる独立した汎用処理ユニットである。例えば、各プロセッサコア122は、IA‐32又はIntel(登録商標)64のような汎用命令セットアーキテクチャ(instruction set architecture;ISA)からの命令を実行してもよい。1つのプロセッサコア122で例示されているが、いくつかの実施例においてプロセッサ120は、より多数のプロセッサコア122、例えば、4つのプロセッサコア122、14個のプロセッサコア122、28個のプロセッサコア122、又は異なる数を含んでもよい。さらに、単一のプロセッサ120を含むものとして例示されているが、いくつかの実施例においてコンピューティングデバイス102は、複数のプロセッサ120を有するマルチソケットサーバとして具現化されてもよい。
メモリ126は、本明細書で説明される機能を実行できる任意のタイプの揮発又は不揮発性のメモリ又はデータ記憶装置として具現化されてよい。動作において、メモリ126は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ、及びドライバのような、コンピューティングデバイス102の動作の間に使用される様々なデータ及びソフトウェアを記憶してよい。メモリ126は、I/Oサブシステム124を介してプロセッサ120に通信可能に結合され、I/Oサブシステム124は、プロセッサ120、アクセラレータ134、メモリ126、及びコンピューティングデバイス102の他のコンポーネントとの入力/出力動作を容易にする回路及び/又はコンポーネントとして具現化されてよい。例えば、I/Oサブシステム124は、メモリコントローラハブ、入力/出力制御ハブ、センサハブ、ファームウェアデバイス、通信リンク(すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、光ガイド、印刷回路板トレース等)、及び/又は入力/出力動作を容易にする他のコンポーネント及びサブシステムとして具現化され、あるいはその他の方法で含んでもよい。いくつかの実施例において、I/Oサブシステム124は、システムオンチップ(SoC)の一部を形成し、プロセッサ120、メモリ126、及びコンピューティングデバイス102の他のコンポーネントと共に単一の集積回路チップに組み込まれてもよい。
データ記憶デバイス128は、例えば、メモリデバイス及び回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ、不揮発フラッシュメモリ、又は他のデータ記憶デバイスのような、データの短期又は長期記憶について構成された任意のタイプの1つ又は複数のデバイスとして具現化されてよい。コンピューティングデバイス102は、通信サブシステム130をさらに含み、通信サブシステム130は、コンピュータネットワーク104を通じてコンピューティングデバイス102と他のリモートデバイスとの間の通信を可能にできる任意の通信回路、デバイス、又はこれらの集合として具現化されてよい。例えば、通信サブシステム130は、ネットワークインターフェースコントローラ(network interface controller;NIC)132、又はリモートデバイスとの間でネットワークデータを送信及び/又は受信する他のネットワークコントローラとして具現化され、あるいはその他の方法で含んでもよい。NIC132は、任意のネットワークインターフェースカード、ネットワークアダプタ、ホストファブリックインターフェース、ネットワークコプロセッサ、又はコンピューティングデバイス102をネットワーク104に接続する他のコンポーネントとして具現化されてよい。通信サブシステム130は、任意の1つ以上の通信技術(例えば、有線又は無線通信)及び関連プロトコル(例えば、イーサネット(登録商標)、InfiniBand(登録商標)、Bluetooth(登録商標)、Wi‐Fi(登録商標)、WiMAX(登録商標)、3G、4G LTE(登録商標)等)を使用してこうした通信を達成するように構成されてよい。いくつかの実施例において、通信サブシステム132及び/又はNIC132は、SoCの一部を形成し、プロセッサ120及びコンピューティングデバイス102の他のコンポーネントと共に単一の集積回路チップに組み込まれてもよい。
図1に示されるように、コンピューティングデバイス102は、アクセラレータ134をさらに含んでよい。アクセラレータ134は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、組み込みデジタル論理ブロック、コプロセッサ、又はアクセラレートされたネットワーク機能を実行できる他のデジタル論理デバイスとして具現化されてよい。別個のコンポーネントとして例示されているが、いくつかの実施例において、アクセラレータ134はNIC132に組み込まれ、あるいはその他の方法で結合されてもよいことが理解されるべきである。さらに、又は別法として、いくつかの実施例において、アクセラレータ134は、プロセッサ120及びNIC132と共にマルチチップパッケージに含まれるFPGAとして具現化されてもよい。アクセラレータ134は、コヒーレント及び/又は非コヒーレントインターコネクトを含む複数の高速接続インターフェースを介してプロセッサ120及び/又はNIC132に結合されてもよい。
コンピューティングデバイス102は、1つ以上の周辺デバイス136をさらに含んでよい。周辺デバイス136は、任意数のさらなる入力/出力デバイス、インターフェースデバイス、及び/又は他の周辺デバイスを含んでよい。例えば、いくつかの実施例において、周辺デバイス136は、タッチスクリーン、グラフィックス回路、グラフィカル処理ユニット(GPU)及び/又はプロセッサグラフィックス、オーディオデバイス、マイクロフォン、カメラ、キーボード、マウス、ネットワークインターフェース、及び/又は他の入力/出力デバイス、インターフェースデバイス、及び/又は周辺デバイスを含んでもよい。
さらに、又は別法として、コンピューティングデバイス102に含まれるものとして例示されているが、プロセッサ120、メモリ126、データ記憶デバイス128、NIC132、及び/又はアクセラレータ134のようなコンピューティングデバイス102の1つ以上のコンポーネントが、複数のラック、スレッド、又は他のコンピューティングシャーシの中で物理的に分けられ、あるいはその他の方法で分散されてもよいことが理解されるべきである。こうした実施例において、コンピューティングデバイス102の1つ以上が、複数の分けられたコンポーネントからプールされ、あるいはその他の方法で構成されてもよい。こうした実施例において、NIC132は、仮想スイッチ又は他の仮想化環境に含まれてもよい。
コンピューティングデバイス102は、ネットワーク104を通じて互いに及び/又はシステム100の他のデバイスとデータを送信及び受信するように構成されてよい。ネットワーク104は、任意数の様々な有線及び/又は無線ネットワークとして具現化されてよい。例えば、ネットワーク104は、有線若しくは無線のローカルエリアネットワーク(LAN)及び/又は有線若しくは無線のワイドエリアネットワーク(WAN)として具現化され、あるいはその他の方法で含んでもよい。そのようなものとして、ネットワーク104は、システム100のデバイス間の通信を容易にするための、さらなるコンピュータ、ルータ、及びスイッチのような任意数のさらなるデバイスを含んでもよい。例示的な実施例において、ネットワーク104は、ローカルイーサネットネットワークとして具現化される。
次に図2を参照し、例示的な実施例において、コンピューティングデバイス102は、動作の間に環境200を確立する。例示的な環境200は、アプリケーション202、QUICプロトコルスタック204、NICドライバ206、及びNIC132を含む。NIC132は、暗号アクセラレータ208、大容量送信オフロード(large send offload;LSO)アクセラレータ210、及び受信側スケーリング(receive-side scaling;RSS)アクセラレータ212をさらに含む。図示されるように、環境200の様々なコンポーネントは、ハードウェア、マイクロコード、ファームウェア、ソフトウェア、又はこれらの組み合わせとして具現化されてよい。そのようなものとして、いくつかの実施例において、環境200のコンポーネントの1つ以上が、回路又は電子デバイスの集合(例えば、アプリケーション回路202、QUICプロトコルスタック回路204、ドライバ回路206、暗号アクセラレータ回路208、LSOアクセラレータ回路210、及び/又はRSSアクセラレータ回路212)として具現化されてもよい。こうした実施例において、アプリケーション回路202、QUICプロトコルスタック回路204、ドライバ回路206、暗号アクセラレータ回路208、LSOアクセラレータ回路210、及び/又はRSSアクセラレータ回路212のうち1つ以上が、プロセッサ120、NIC132、アクセラレータ134、I/Oサブシステム124、及び/又はコンピューティングデバイス102の他のコンポーネントの一部を形成してもよいことが十分理解されるべきである。例示的な実施例において、アプリケーション202、QUICプロトコルスタック204、及びNICドライバ206は、プロセッサ120の1つ以上のプロセッサコア122により実行され、暗号アクセラレータ208、LSOアクセラレータ210、及びRSSアクセラレータ212は、ハードウェア、ファームウェア、マイクロコード、又はNIC132の他のリソースとして具現化される。さらに、又は別法として、いくつかの実施例において、暗号アクセラレータ208、LSOアクセラレータ210、及び/又はRSSアクセラレータ212は、1つ以上のスタンドアロンアクセラレータ134として具現化され、あるいはその他の方法で含まれてもよい。さらに、いくつかの実施例において、例示的なコンポーネントの1つ以上が別のコンポーネントの一部を形成してもよく、かつ/あるいは、例示的なコンポーネントの1つ以上が互いから独立していてもよい。
アプリケーション202は、送信されるネットワークデータを生成し、かつ/あるいは受信したネットワークデータを処理するように構成されてよい。例えば、アプリケーション202は、パケットデータをメモリ126内の1つ以上のアプリケーションバッファに記憶してもよい。アプリケーション202は、任意のクライアント、サーバ、又はコンピューティングデバイス102により実行される他のネットワークアプリケーションとして具現化されてよい。
QUICプロトコルスタック204は、送信されるQUICパケットを生成するように構成される。各QUICパケットは、QUICヘッダと平文ペイロードとを含むUDPパケットとして具現化されてよい。各QUICパケットは、リモートホスト(例えば、リモートコンピューティングデバイス102)とのQUIC接続に関連づけられてよい。ペイロードは、複数の多重されたQUICストリームを含んでよく、ゆえに、複数のQUICストリームヘッダを含んでもよい。各QUICパケットのQUICヘッダは、パケット番号を含む。いくつかの実施例において、各QUICパケットは、ネットワーク104及び/又はシステム100の他のデバイスによりサポートされる最大セグメントサイズ(maximum segment size;MSS)より大きくてもよい。QUICプロトコルスタック204は、各QUICパケットから生成されるセグメント化されたQUICパケットの数を、そのQUICパケットの長さに基づいて計算し、生成されることになるセグメント化されたQUICパケットの数に基づいて次のQUICパケットのパケット番号を更新するように構成されてよい。QUICプロトコルスタック204は、コンピューティングデバイス102の1つ以上のプロセッサコア122により、受信したネットワークパケットを処理するようにさらに構成される。プロセッサコア122は、これらパケットが関連づけられた受信キューに転送されたことに応答してネットワークパケットを処理してよい。
NICドライバ206は、NIC132を各QUIC接続に関連づけられた暗号化キーでプログラムする(program)ように構成される。NICドライバ206は、QUICパケットを送信のためにネットワークコントローラ132に渡すようにさらに構成される。NICドライバ206は、NIC132が大容量送信オフロード(LSO)が可能であるかどうかを決定し、そうでない場合、QUICパケットを複数のセグメント化されたQUICパケットにセグメント化するようにさらに構成されてもよい。NICドライバ206は、NIC132を所定のエントロピーソースで構成するようにさらに構成されてもよい。エントロピーソースは、QUIC接続識別子又はQUICショートパケットタイプフィールドのようなQUICヘッダのフィールドとして、QUICストリーム識別子のような平文ペイロードのフィールドとして、UDPソースIPアドレスとUDP宛先IPアドレスとUDPソースポートとUDP宛先ポートとを含むタプルとして、又は各々の受信したネットワークパケットから抽出された他のデータとして具現化されてよい。NICドライバ206は、NIC132を所定の割り当て機能(assignment function)で構成するようにさらに構成されてもよく、所定の割り当て機能は、ハッシュ機能、フィルタ機能、又は入力としてエントロピーソースを使用する他の機能として具現化されてよい。ドライバ206は、プロセッサコア122をそれぞれの受信キューに関連づけるようにさらに構成されてもよい。
LSOアクセラレータ210は、QUICパケットが所定のMSSより大きいかどうかを決定し、そうである場合、QUICパケットを複数のセグメント化されたQUICパケットにセグメント化するように構成される。セグメント化されたQUICパケットの各々は平文ペイロードを含み、所定のMSS以下である。LSOアクセラレータ210は、QUICパケットからQUICヘッダをセグメント化されたQUICパケットの各々にコピーし、セグメント化されたQUICパケットの各々のQUICヘッダのパケット番号を更新するようにさらに構成されてもよい。
暗号アクセラレータ208は、各々のQUICパケット及び/又はセグメント化されたQUICパケットの平文ペイロードを暗号化キーで暗号化して暗号化されたペイロードを生成するように構成される。いくつかの実施例において、QUIC暗号化は、ペイロードの暗号化の後、パケット番号を別個に暗号化してもよい。暗号アクセラレータ208は、各々のQUICパケット及び/又はセグメント化されたQUICパケットの認証データを計算し、認証データをそれぞれのQUICパケットに追加するようにさらに構成されてもよい。暗号アクセラレータ208は、受信したQUICパケットの暗号化されたペイロードを暗号化キーで解読して対応する平文ペイロードを生成するようにさらに構成される。暗号アクセラレータ208は、受信したQUICパケットに含まれる認証データを使用して受信したQUICパケットを検証するようにさらに構成されてもよい。
RSSアクセラレータ212は、暗号化されたペイロードを解読したことに応答して、各々の受信したQUICパケットについて所定の割り当て機能を所定のエントロピーソースで評価してキュー識別子を生成するように構成される。RSSアクセラレータ212は、各々の受信したQUICパケットを対応するキュー識別子に関連づけられた受信キューに転送するようにさらに構成される。
NIC132は、平文ペイロードを暗号化したことに応答して、暗号化されたペイロードを含むQUICパケット及び/又はセグメント化されたQUICパケットを、QUIC接続に関連づけられたリモートホストに送信するように構成される。NIC132は、リモートホストからネットワークパケットを受信し、各々の受信したネットワークパケットがQUICパケットであるかどうかを決定するようにさらに構成される。受信したネットワークパケットがQUICパケットである場合、NIC132は、上述されたように、受信したQUICパケットを暗号アクセラレータ208及び/又はRSSアクセラレータ212で処理してよい。
次に図3を参照し、使用において、システム100の2つのコンピューティングデバイス102a、102bが、アクセラレートされたQUICパケット処理のための方法300を実行し得る。いくつかの実施例において、方法300の動作は、図2に示される各コンピューティングデバイス102の環境200の1つ以上のコンポーネントにより実行されてもよいことが十分理解されるべきである。例示的な例において、コンピューティングデバイス102aは送信機であり、コンピューティングデバイス102bは受信機である。しかしながら、いくつかの実施例において、各コンピューティングデバイス102a、102bは、送信機及び受信機の双方の動作を実行してもよい。方法300はブロック302で開始し、ブロック302において、プロセッサコア122aを有するコンピューティングデバイス102aは、QUICパケットを作成する。例えば、QUICパケットは、アプリケーション202、QUICプロトコルスタック204、及びNICドライバ206のうち1つ以上により生成されてもよい。QUICパケットは、QUICヘッダ及び平文ペイロードを含んでよく、平文ペイロードは、1つ以上の多重されたQUICストリームを含んでよい。プロセッサ122aは、QUICパケットを処理のためにNIC132aに渡す。
ブロック304において、NIC132aを有するコンピューティングデバイス102aは、大容量送信オフロード(LSO)アクセラレーション(acceleration)を実行してよい。いくつかの実施例において、プロセッサ122aにより生成されたQUICパケットは、ネットワーク104又はシステム100の他のデバイスの最大セグメントサイズ(MSS)より大きくてもよい。NIC132aは、ラージQUICパケットを送信のために複数のより小さいQUICパケットにセグメント化してよい。LSOアクセラレーションのための方法の1つの可能な実施例が、以下で図4に関連してさらに説明される。
ブロック306において、NIC132aを有するコンピューティングデバイス102aは、送信される1つ以上のQUICパケットの平文ペイロードを暗号化する。NIC132aは、アプリケーションレイヤ暗号化プロトコルを含むQUICプロトコルに適した任意の暗号化プロトコルを使用してペイロードを暗号化してよい。NIC132aは、各QUIC接続について暗号化キーでコア122aによりプログラムされてよい。暗号化のアクセラレーションのための方法の1つの可能な実施例が、以下で図5に関連してさらに説明される。
ブロック308において、NIC132aを有するコンピューティングデバイス102aは、暗号化されたQUICパケットをリモートコンピューティングデバイス102bに送信する。ブロック310において、NIC132bを有するコンピューティングデバイス102bは、暗号化されたQUICパケットを受信する。NIC132bは、受信したパケットをQUICパケットとして認識し、次いでさらなる処理(例えば、解読及び/又は受信側スケーリング及びフィルタリング)を実行してよい。例えば、NIC132は、QUICパケットを特定の宛先ポートを有するUDPパケットとして認識してもよい。
ブロック312において、NIC132bを有するコンピューティングデバイス102bは、受信したQUICパケットの暗号化されたペイロードを解読する。NIC132bは、QUICプロトコルに適した任意の暗号化プロトコルを使用してペイロードを解読してよい。NIC132bは、各QUIC接続について暗号化キーでコア122bによりプログラムされてよい。解読のアクセラレーションのための方法の1つの可能な実施例が、以下で図6に関連してさらに説明される。
ブロック314において、NIC132bを有するコンピューティングデバイス102bは、受信したQUICパケットの受信側スケーリング(RSS)及びフィルタリングを実行する。NIC132bは、受信したQUICパケットを処理のために1つ以上のプロセッサコア122(例えば、例示のプロセッサコア122b、122c)に分散する。NIC132bは、1つ以上の割り当て機能及び関連づけられたエントロピーソースでプログラムされてQUICパケットのプロセッサコア122への分散を制御してもよい。例えば、NIC132bは、QUICパケットをプロセッサコア122間で均等に分散してもよく、あるいは、NIC132bは、特定のプロセッサコア122に対して受信したQUICパケットをフィルタしてもよい。RSS及びフィルタリングアクセラレーションのための方法の1つの可能な実施例が、以下で図7に関連して説明される。
ブロック316a、316bにおいて、プロセッサコア122b、122cを有するコンピューティングデバイス102bは、それぞれ、受信したQUICパケットを処理する。コンピューティングデバイス102bは、例えば、QUICヘッダをQUICプロトコルスタック204で処理し、解読されたペイロードデータをアプリケーション202で処理してもよい。パケットを処理のためにプロセッサコア122に分散した後、方法300は完了する。方法300は、さらなるパケットを処理するために繰り返されてよい。
次に図4を参照し、使用において、コンピューティングデバイス102は、アクセラレートされたラージパケットセグメンテーションのための方法400を実行し得る。方法400は、例えば、上述されたように図3のブロック304と関連して実行されてもよい。いくつかの実施例において、方法400の動作は、図2に示されるコンピューティングデバイス102の環境200の1つ以上のコンポーネントにより実行されてもよいことが十分理解されるべきである。方法400はブロック402で開始し、ブロック402において、コンピューティングデバイス102のQUICプロトコルスタック204は、トランジットセグメンテーションオフロード(transit segmentation offload;TSO)能力としても知られるNIC132の大容量送信オフロード(LSO)能力についてNICドライバ206に問い合わせる。QUICプロトコルスタック204は、例えば、QUICプロトコルスタック204の初期化の間、及び/又はその他の方法で出ていくQUICパケットを処理する前に、NICドライバ206に問い合わせてもよい。ブロック404において、コンピューティングデバイス102は、NIC132がLSOアクセラレーションを実行できるかどうかを決定する。そうでない場合、方法400はブロック406に分岐し、ブロック406において、コンピューティングデバイス102は、ラージQUICパケットのソフトウェアセグメンテーションを実行する。例えば、QUICプロトコルスタック204及び/又はドライバ206は、プロセッサ120の処理リソースを使用してラージQUICパケットをより小さいQUICパケットにセグメント化してもよい。ブロック404を再び参照し、NIC132がLSOアクセラレーションが可能である場合、方法400はブロック408に進む。
ブロック408において、QUICプロトコルスタック204は、QUICヘッダ及びペイロードを有するラージパケットをNICドライバ206に渡す。QUICプロトコルスタック204は、アプリケーションバッファ又は他のメモリバッファ内にアプリケーション202により提供されるデータに基づいてパケットを生成してよい。QUICプロトコルスタック204は、ヘッダ又は他のデータでパケットデータを追加し、あるいはその他の方法でフレーム化して、QUICパケットを作成してよい。QUICヘッダはパケット番号を含み、パケット番号はQUICプロトコルスタック204により記憶され、更新されてよい。結果的なラージパケットは、ネットワーク104及び/又はシステム100の他のデバイスの最大セグメントサイズ(MSS)より大きいサイズを有する。ラージパケットのペイロードは、1つ以上のQUICストリームヘッダを含んでよく、該QUICストリームヘッダは、ペイロード内でセグメント境界にマッチする位置に作成されてよい。ブロック410において、QUICプロトコルスタック204は、セグメンテーションにより生成されるセグメント化されたQUICパケットの数に基づいて、送信される次のパケットのパケット番号を計算する。例示的な例において、QUICプロトコルスタック204は、ラージQUICパケットのサイズに基づいて、LSOアクセラレータ210が3つのセグメント化されたQUICパケットを生成すると決定してもよい。この例示的な例において、QUICプロトコルスタック204は、パケット番号を3だけインクリメントしてもよい。その結果、次に送信されるQUICパケットは、正しいパケット番号を含むことになる。QUICプロトコルスタック204は、パケットセグメンテーションを実際に実行することなく次のQUICパケットのパケット番号を計算し得ることに留意する。
ブロック412において、NICドライバ206は、QUICプロトコルスタックから受信したラージQUICパケットがLSOアクセラレータ210の任意のハードウェア固有要件に合うかどうかを検証する。ブロック414において、NICドライバ206は、ラージパケットがLSOアクセラレータ210の要件を満たすかどうかを確認する。そうでない場合、方法400はブロック406に分岐して、上述されたようにソフトウェアセグメンテーションを実行する。NICドライバ206は、QUICプロトコルスタック204にエラーをさらに示してもよい。ブロック414を再び参照し、ラージパケットがLSOアクセラレータ210の要件を満たす場合、方法400はブロック416に進む。
ブロック416において、NICドライバ206は、ラージパケットをNIC132に渡す。ブロック418において、NIC132のLSOアクセラレータ210は、ラージパケットを複数のより小さいパケットにセグメント化する。(任意のヘッダを含む)より小さいパケットの各々は、ネットワーク104のMSSより小さいサイズを有する。より小さいパケットの各々は、ラージQUICパケットからコピーされ又はその他の方法で抽出されたペイロードデータを含んでよい。ブロック420において、NIC132のLSOアクセラレータ210は、ラージQUICパケットのための供給されたQUICヘッダを使用して、ワイヤ(すなわち、ネットワーク104)で送信されることになるより小さいQUICパケットの各々のためのQUICヘッダを構築する。NIC132は、例えば、ラージパケットのQUICヘッダをより小さいQUICパケットの各々にコピーしてもよい。NIC132は、ワイヤで送信されることになるより小さいパケットの各々のQUICヘッダ内のパケット番号を、例えば、このことに応じてパケット番号をインクリメントすることにより、さらに更新してもよい。いくつかの実施例において、NIC132は、QUICヘッダを複製することと同様に、QUICペイロードの先頭からQUICストリームヘッダをさらに複製してもよい。別法として、上述されたように、QUICストリームヘッダは、QUICプロトコルスタック204及び/又はドライバ206によりセグメント境界でラージペイロードに含まれていてもよい。ラージQUICパケットを複数のより小さいQUICパケットにセグメント化した後、方法400はブロック408にループバックし、さらなるラージQUICパケットを処理する。上述されたように、セグメンテーションが完了した後、セグメント化されたQUICパケットはNIC132により暗号化され、次いでリモートデバイスに送信されてよい。
次に図5を参照し、使用において、コンピューティングデバイス102は、アクセラレートされたパケット暗号化のための方法500を実行し得る。方法500は、例えば、上述されたように図3のブロック306と関連して実行されてもよい。いくつかの実施例において、方法500の動作は、図2に示されるコンピューティングデバイス102の環境200の1つ以上のコンポーネントにより実行されてもよいことが十分理解されるべきである。方法500はブロック502で開始し、ブロック502において、NICドライバ206は、NIC132をQUIC接続に関連づけられた1つ以上の暗号化キーで(例えば、特定のQUIC接続IDで)プログラムする。NIC132は、QUIC接続がリモートホストでオープンされたとき又はQUIC接続がその他の方法で初期化されたとき、暗号化キーでプログラムされてよい。暗号化キーは、例えば、セキュアキー交換又は他のセキュアプロセスを使用して、リモートホストとの間で確立されてもよい。暗号化キーは、関連づけられたQUIC接続の存続期間の間、NIC132により記憶されてよい。いくつかの実施例において、暗号化キーは、関連づけられたQUIC接続の存続期間の間、必要に応じて、QUICプロトコルスタック204により更新されてもよい。
ブロック504において、NICドライバ206は、QUICパケットを送信のためにNIC132に渡す。いくつかの実施例において、ブロック506において、NIC132は、図3及び図4と関連して上述されたように、大容量送信オフロード(LSO)アクセラレーションを実行してもよい。当然ながら、いくつかの実施例において、供給されたQUICパケットはMSSより小さくてもよく、あるいはその他の方法でハードウェアLSOアクセラレーションを要求しなくてもよい。
ブロック508において、NIC132は、関連づけられたQUIC接続に対してプログラムされた暗号化キーを使用して、QUICパケットの(又は、必要に応じて、LSOアクセラレーションから出力されたセグメント化されたQUICパケットの)平文ペイロードを暗号化する。NIC132は、各QUICパケットの平文ペイロードを暗号化されたペイロードで置換してよい。NIC132は、QUICプロトコルに適した任意の暗号化プロトコルを使用してペイロードを暗号化してよい。例えば、NIC132は、TLS/SSL又はHTTPセキュア(HTTPS)暗号化のような1つ以上のアプリケーションレイヤ暗号化プロトコルを実行してもよい。さらに、平文ペイロードとして説明されているが、いくつかの実施例において、QUICパケットのペイロードは、NIC132により暗号化される前に、スクランブルされ、暗号化され、あるいはその他の方法で前処理されてもよいことが理解されるべきである。いくつかの実施例において、NIC132は、ペイロードの暗号化の後、パケット番号を別個に暗号化してもよい。ブロック510において、NIC132は、チェックサム、署名、認証タグ、又はQUICパケットが本物であるか又はその他の方法で改ざんされていないことを検証するために使用できる他の情報を計算してもよい。ブロック512において、NIC132は、認証データを各QUICパケットに追加する。認証データを追加した後、方法500はブロック504にループバックし、パケットデータを処理することを継続する。上述されたように、暗号化が完了した後、暗号化されたQUICパケットはリモートホストに送信される。
次に図6を参照し、使用において、コンピューティングデバイス102は、アクセラレートされたパケット解読のための方法600を実行し得る。方法600は、例えば、上述されたように図3のブロック312と関連して実行されてもよい。いくつかの実施例において、方法600の動作は、図2に示されるコンピューティングデバイス102の環境200の1つ以上のコンポーネントにより実行されてもよいことが十分理解されるべきである。方法600はブロック602で開始し、ブロック602において、NICドライバ206は、NIC132をQUIC接続に関連づけられた1つ以上の暗号化キーで(例えば、特定のQUIC接続IDで)プログラムする。上述されたように、NIC132は、QUIC接続がリモートホストでオープンされたとき又はQUIC接続がその他の方法で初期化されたとき、暗号化キーでプログラムされてよい。暗号化キーは、例えば、セキュアキー交換又は他のセキュアプロセスを使用して、リモートホストとの間で確立されてもよい。暗号化キーは、関連づけられたQUIC接続の存続期間の間、NIC132により記憶されてよい。いくつかの実施例において、暗号化キーは、関連づけられたQUIC接続の存続期間の間、必要に応じて、QUICプロトコルスタック204により更新されてもよい。
ブロック604において、NIC132は、リモートホストからネットワーク104を通じて受信したQUICパケットを認識する。NIC132は、入ってくるネットワークパケットのパケットヘッダを解析し、実行時構成(runtime configuration)を介してQUICパケットを認識してよい。例えば、NIC132は、QUICパケットを特定の宛先ポートを有するUDPパケットとして認識してもよい。この例において、ポート番号はNICドライバ206により供給される。
ブロック606において、NIC132は、関連づけられたQUIC接続に対してプログラムされた暗号化キーを使用して、受信したQUICパケットの暗号化されたペイロードを解読する。NIC132は、各QUICパケットの暗号化されたペイロードを、解読された平文ペイロードで置換してよい。NIC132は、QUICプロトコルに適した任意の暗号化プロトコルを使用してペイロードを解読してよい。例えば、NIC132は、TLS/SSL又はHTTPセキュア(HTTPS)暗号化のような1つ以上のアプリケーションレイヤ暗号化プロトコルを実行してもよい。さらに、平文ペイロードとして説明されているが、いくつかの実施例において、NIC132による解読の後のQUICパケットのペイロードは、さらにデスクランブルされ、解読され、あるいはその他の方法で後処理されてもよいことが理解されるべきである。いくつかの実施例において、NIC132は、ペイロードの解読の前、パケット番号を別個に解読してもよい。ブロック608において、NIC132は、QUICパケットに含まれる認証データを使用して、受信したQUICパケットを検証する。例えば、NIC132は、チェックサム、署名、認証タグ、又はQUICパケットが本物であるか又はその他の方法で改ざんされていないことを検証するために使用できる他の情報を検証してもよい。QUICパケットを解読し、検証した後、方法600はブロック604にループバックし、QUICパケットを処理することを継続する。図3と関連して上述されたように、解読の後、受信したパケットは、受信側スケーリング又はフィルタリングを使用する処理のためにプロセッサコア122に転送されてよい。
次に図7を参照し、使用において、コンピューティングデバイス102は、アクセラレートされた受信側スケーリング及びフィルタリングのための方法700を実行し得る。方法700は、例えば、上述されたように図3のブロック314と関連して実行されてもよい。いくつかの実施例において、方法700の動作は、図2に示されるコンピューティングデバイス102の環境200の1つ以上のコンポーネントにより実行されてもよいことが十分理解されるべきである。方法700はブロック702で開始し、ブロック702において、NICドライバ206は、1つ以上の受信キューをコンピューティングデバイス102のプロセッサコア122に関連づける。以下でさらに説明されるように、各プロセッサコア122は、そのプロセッサコア122に関連づけられた1つ以上の受信キューから受信したQUICパケットを処理する。各受信キューは関連づけられたキュー識別子を有し、これは整数値として具現化されてもよい。
ブロック704において、NICドライバ206は、NIC132を、受信したQUICパケット内のエントロピーの1つ以上のソースで構成する。例えば、NICドライバ206は、QUIC接続ID又はQUICショートパケットタイプフィールドのようなQUICヘッダの1つ以上のフィールドを指定してもよい。別の例として、NICドライバ206は、QUICストリームIDのような平文ペイロード内の1つ以上のフィールドを指定してもよい。ゆえに、いくつかの実施例において、QUICパケットの平文コンテンツに基づいてRSS及び/又はフィルタリングを実行することは、NIC132によりハードウェアで解読を実行することをさらに要求する。別の例として、NICドライバ206は、ソースIPアドレスとソースUDPポートと宛先IPアドレスと宛先UDPポートとを含むUDP4タプルを指定してもよい。
ブロック706において、NICドライバ206は、NIC132を、エントロピーの所与のソースに基づいて値の範囲を生成する割り当て機能で構成する。以下でさらに説明されるように、割り当て機能により出力された値の範囲は、受信したQUICパケットを処理するために使用される受信キューのキュー識別子に対応する。いくつかの実施例において、割り当て機能は、受信したQUICパケットを受信キューにわたり均等に(及び、これにより、対応するプロセッサコア122にわたり均等に)分配するために使用されてもよい。例えば、割り当て機能は、値の範囲にわたり一様に動作するハッシュ機能として具現化されてもよい。別の例として、割り当て機能は、スケジューリング機能(例えば、ラウンドロビンスケジューリング、優先度スケジューリング、又は他のスケジューリングアルゴリズム)として具現化されてもよい。さらに、又は別法として、いくつかの実施例においてQUICパケットをプロセッサコア122にわたり均等に分配するのでなく、いくつかの実施例において割り当て機能は、特定のQUICパケットを特定のプロセッサコア122に割り当てるフィルタリング機能を実行してもよい。例えば、割り当て機能は、特定の値(及び、ゆえに特定の受信キュー)を特定のアプリケーション、接続ID、又は他のパケットデータに割り当ててもよい。この例において、特定のアプリケーション、QUIC接続、又は他のパケットデータに関連づけられたすべてのQUICパケットは、同じプロセッサコア122により処理されてもよい。
ブロック708において、NIC132は、リモートホストからネットワーク104を通じて受信したQUICパケットを認識する。上述されたように、NIC132は、入ってくるネットワークパケットのパケットヘッダを解析し、実行時構成を介してQUICパケットを認識してよい。例えば、NIC132は、QUICパケットを特定の宛先ポートを有するUDPパケットとして認識してもよい。この例において、ポート番号はNICドライバ206により供給される。いくつかの実施例において、ブロック710において、NIC132は、図3及び図6と関連して上述されたように、QUICパケットペイロードを解読し、検証してもよい。
ブロック712において、NIC132は、割り当て機能を構成されたエントロピーソースで評価してキュー識別子を決定する。例えば、NIC132は、ネットワークパケットから1つ以上のフィールド(例えば、QUIC接続ID、QUICショートパケットタイプフィールド、QUICストリームID、UDP4タプル、又は他のフィールド)を抽出し、抽出されたフィールドを割り当て機能への入力として提供してもよい。割り当て機能は、キュー識別子に対応する値を出力する。ブロック714において、NIC132は、受信したQUICパケットを識別された受信キューに転送する。例えば、NIC132は、受信したQUICパケットをメモリ126内の適切な位置に記憶してもよい。
ブロック716において、プロセッサコア122は、関連づけられた受信キュー内の受信したQUICパケットを処理する。プロセッサコア122は、例えば、割り込み、DMA完了、又はNIC132により生成される別の通知に応答して、QUICパケットを処理してもよい。プロセッサコア122は、パケットヘッダ及び平文ペイロードを含むQUICパケットに対して任意のネットワーク又は他のアプリケーション処理を実行してよい。いくつかの実施例において、ブロック718において、QUICプロトコルスタック204は、受信したパケットの1つ以上のQUICヘッダを処理してもよい。いくつかの実施例において、ブロック720において、アプリケーション202は、QUICパケットの平文ペイロードを処理してもよい。QUICパケットデータを適切なプロセッサコア122に転送した後、方法700はブロック708にループバックし、入ってくるネットワークパケットデータを処理することを継続する。
いくつかの実施例において、方法300、400、500、600、及び/又は700はコンピュータ読取可能媒体に記憶された様々な命令として具現化されてよく、該命令がプロセッサ120、NIC132、アクセラレータ134、及び/又はコンピューティングデバイス102の他のコンポーネントにより実行されて、コンピューティングデバイス102にそれぞれの方法300、400、500、600、及び/又は700を実行させてもよい。コンピュータ読取可能媒体は、これらに限られないがメモリ126、データ記憶デバイス128、ファームウェアデバイス、マイクロコード、コンピューティングデバイス102の他のメモリ若しくはデータ記憶デバイス、コンピューティングデバイス102の周辺デバイス136により読み取り可能なポータブル媒体、及び/又は他の媒体を含む、コンピューティングデバイス102により読み取りが可能な任意のタイプの媒体として具現化されてよい。
本明細書で開示される技術の例示的な例が以下で提供される。技術の実施例は、以下で説明される例のうち任意の1つ以上及び任意の組み合わせを含み得る。
例1は、アクセラレートされたパケット処理のためのコンピューティングデバイスを含み、当該コンピューティングデバイスは、ネットワークコントローラと、(i)上記ネットワークコントローラをQUIC接続に関連づけられた暗号化キーでプログラムし、(ii)第1のQUICパケットを上記ネットワークコントローラに渡すネットワークコントローラドライバであり、上記第1のQUICパケットは、QUICヘッダと平文ペイロードとを含むUDPパケットを含み、上記第1のQUICパケットは上記QUIC接続に関連づけられる、ネットワークコントローラドライバと、を含み、上記ネットワークコントローラは、上記第1のQUICパケットの上記平文ペイロードを上記暗号化キーで暗号化して上記第1のQUICパケットの暗号化されたペイロードを生成する暗号アクセラレータを含み、上記ネットワークコントローラは、上記平文ペイロードの暗号化に応答して、上記暗号化されたペイロードを含む上記第1のQUICパケットを上記QUIC接続に関連づけられたリモートコンピューティングデバイスに送信する。
例2は、例1に記載の構成要件を含み、上記第1のQUICパケットの上記平文ペイロードを暗号化することは、上記平文ペイロードをアプリケーションレイヤ暗号化プロトコルで暗号化することを含む。
例3は、例1及び2のうちいずれか1つに記載の構成要件を含み、上記暗号アクセラレータはさらに、(i)上記第1のQUICパケットの認証データを計算し、(ii)上記認証データを上記第1のQUICパケットに追加し、上記第1のQUICパケットを送信することは、上記認証データの追加に応答して上記第1のQUICパケットを送信することを含む。
例4は、例1〜3のうちいずれか1つに記載の構成要件を含み、上記ネットワークコントローラは、上記第1のQUICパケットを複数のセグメント化されたQUICパケットにセグメント化する大容量送信オフロードアクセラレータをさらに含み、上記セグメント化されたQUICパケットの各々は平文ペイロードを含み、所定のサイズ以下であり、上記平文ペイロードを暗号化することは、上記セグメント化されたQUICパケットの各々の上記平文ペイロードを上記暗号化キーで暗号化して上記セグメント化されたQUICパケットの各々の暗号化されたペイロードを生成することを含み、上記第1のQUICパケットを送信することは、上記複数のセグメント化されたQUICパケットを送信することを含む。
例5は、例1〜4のうちいずれか1つに記載の構成要件を含み、上記大容量送信オフロードアクセラレータはさらに、上記第1のQUICパケットから上記QUICヘッダを上記セグメント化されたQUICパケットの各々にコピーし、上記セグメント化されたQUICパケットの各々の上記QUICヘッダのパケット番号を更新する。
例6は、例1〜5のうちいずれか1つに記載の構成要件を含み、上記第1のQUICパケットを生成し、上記第1のQUICパケットの上記QUICヘッダはパケット番号を含み、上記第1のQUICパケットの長さに基づいて上記第1のQUICパケットから生成されるセグメント化されたQUICパケットの数を計算し、上記第1のQUICパケットの上記パケット番号と上記セグメント化されたQUICパケットの数とに基づいて、次のQUICパケットのための次パケット番号を計算するQUICプロトコルスタック、をさらに含む。
例7は、例1〜6のうちいずれか1つに記載の構成要件を含み、上記ネットワークコントローラドライバはさらに、上記ネットワークコントローラが大容量送信オフロードが可能かどうかを決定し、上記ネットワークコントローラが大容量送信オフロードが可能でないとの決定に応答して上記第1のQUICパケットを上記複数のセグメント化されたQUICパケットにセグメント化する。
例8は、アクセラレートされたパケット処理のためのコンピューティングデバイスを含み、当該コンピューティングデバイスは、ネットワークコントローラと、上記ネットワークコントローラをQUIC接続に関連づけられた暗号化キーでプログラムするネットワークコントローラドライバと、を含み、上記ネットワークコントローラは、(i)リモートコンピューティングデバイスから第1のネットワークパケットを受信し、(ii)上記第1のネットワークパケットがQUICパケットを含むかどうかを決定し、上記QUICパケットは、QUICヘッダと暗号化されたペイロードとを含むUDPパケットを含み、上記QUICパケットは上記QUIC接続に関連づけられ、上記ネットワークコントローラは、上記第1のネットワークパケットがQUICパケットを含むとの決定に応答して上記第1のネットワークパケットの上記暗号化されたペイロードを上記暗号化キーで解読して上記第1のネットワークパケットの平文ペイロードを生成する暗号アクセラレータを含む。
例9は、例8に記載の構成要件を含み、上記第1のネットワークパケットの上記暗号化されたペイロードを解読することは、上記暗号化されたペイロードをアプリケーションレイヤ暗号化プロトコルで解読することを含む。
例10は、例8及び9のうちいずれか1つに記載の構成要件を含み、上記第1のネットワークパケットは認証データをさらに含み、上記暗号アクセラレータはさらに、上記第1のネットワークパケットがQUICパケットを含むとの決定に応答して上記第1のネットワークパケットを上記認証データで検証する。
例11は、例8〜10のうちいずれか1つに記載の構成要件を含み、第1のプロセッサコアとQUICプロトコルスタックとをさらに含み、上記ネットワークコントローラは、(i)上記暗号化されたペイロードの解読に応答して所定の割り当て機能を所定のエントロピーソースで評価してキュー識別子を生成し、(ii)上記所定の割り当て機能の評価に応答して上記第1のネットワークパケットを上記キュー識別子に関連づけられた受信キューに転送する受信側スケーリングアクセラレータをさらに含み、上記QUICプロトコルスタックは、上記第1のプロセッサコアにより、上記第1のネットワークパケットの上記受信キューへの転送に応答して上記第1のネットワークパケットを処理し、上記第1のプロセッサコアは上記受信キューに関連づけられる。
例12は、例8〜11のうちいずれか1つに記載の構成要件を含み、上記ネットワークコントローラドライバはさらに、上記ネットワークコントローラを上記所定のエントロピーソースで構成する。
例13は、例8〜12のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、上記第1のネットワークパケットの上記QUICヘッダのフィールドを含む。
例14は、例8〜13のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、QUIC接続識別子又はQUICショートパケットタイプフィールドを含む。
例15は、例8〜14のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、上記第1のネットワークパケットの上記平文ペイロードのフィールドを含む。
例16は、例8〜15のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、QUICストリーム識別子を含む。
例17は、例8〜16のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、上記第1のネットワークパケットのUDPソースIPアドレスとUDP宛先IPアドレスとUDPソースポートとUDP宛先ポートとを含むタプルを含む。
例18は、例8〜17のうちいずれか1つに記載の構成要件を含み、上記ネットワークコントローラドライバはさらに、上記ネットワークコントローラを上記所定の割り当て機能で構成する。
例19は、例8〜18のうちいずれか1つに記載の構成要件を含み、上記所定の割り当て機能は、上記エントロピーソースに基づくフィルタ機能を含む。
例20は、例8〜19のうちいずれか1つに記載の構成要件を含み、上記ネットワークコントローラドライバはさらに、上記第1のプロセッサコアを上記受信キューに関連づける。
例21は、アクセラレートされたパケット処理のための方法を含み、当該方法は、コンピューティングデバイスにより、上記コンピューティングデバイスのネットワークコントローラをQUIC接続に関連づけられた暗号化キーでプログラムするステップと、上記コンピューティングデバイスにより、第1のQUICパケットを上記コンピューティングデバイスの上記ネットワークコントローラに渡すステップであり、上記第1のQUICパケットは、QUICヘッダと平文ペイロードとを含むUDPパケットを含み、上記第1のQUICパケットは上記QUIC接続に関連づけられる、ステップと、上記ネットワークコントローラにより、上記第1のQUICパケットの上記平文ペイロードを上記暗号化キーで暗号化して上記第1のQUICパケットの暗号化されたペイロードを生成するステップと、上記ネットワークコントローラにより、上記平文ペイロードの暗号化に応答して、上記暗号化されたペイロードを含む上記第1のQUICパケットを上記QUIC接続に関連づけられたリモートコンピューティングデバイスに送信するステップと、を含む。
例22は、例21に記載の構成要件を含み、上記第1のQUICパケットの上記平文ペイロードを暗号化することは、上記平文ペイロードをアプリケーションレイヤ暗号化プロトコルで暗号化することを含む。
例23は、例21及び22のうちいずれか1つに記載の構成要件を含み、上記ネットワークコントローラにより、上記第1のQUICパケットの認証データを計算するステップと、上記ネットワークコントローラにより、上記認証データを上記第1のQUICパケットに追加するステップと、をさらに含み、上記第1のQUICパケットを送信するステップは、上記認証データを追加したことに応答して上記第1のQUICパケットを送信するステップを含む。
例24は、例21〜23のうちいずれか1つに記載の構成要件を含み、上記ネットワークコントローラにより、上記第1のQUICパケットを複数のセグメント化されたQUICパケットにセグメント化するステップ、をさらに含み、上記セグメント化されたQUICパケットの各々は平文ペイロードを含み、所定のサイズ以下であり、上記平文ペイロードを暗号化することは、上記セグメント化されたQUICパケットの各々の上記平文ペイロードを上記暗号化キーで暗号化して上記セグメント化されたQUICパケットの各々の暗号化されたペイロードを生成することを含み、上記第1のQUICパケットを送信するステップは、上記複数のセグメント化されたQUICパケットを送信するステップを含む。
例25は、例21〜24のうちいずれか1つに記載の構成要件を含み、上記ネットワークコントローラにより、上記第1のQUICパケットから上記QUICヘッダを上記セグメント化されたQUICパケットの各々にコピーするステップと、上記ネットワークコントローラにより、上記セグメント化されたQUICパケットの各々の上記QUICヘッダのパケット番号を更新するステップと、をさらに含む。
例26は、例21〜25のうちいずれか1つに記載の構成要件を含み、上記コンピューティングデバイスにより、上記第1のQUICパケットを生成するステップであり、上記第1のQUICパケットの上記QUICヘッダはパケット番号を含む、ステップと、上記コンピューティングデバイスにより、上記第1のQUICパケットの長さに基づいて上記第1のQUICパケットから生成されるセグメント化されたQUICパケットの数を計算するステップと、上記コンピューティングデバイスにより、上記第1のQUICパケットの上記パケット番号と上記セグメント化されたQUICパケットの数とに基づいて、次のQUICパケットのための次パケット番号を計算するステップと、をさらに含む。
例27は、例21〜26のうちいずれか1つに記載の構成要件を含み、上記コンピューティングデバイスにより、上記ネットワークコントローラが大容量送信オフロードが可能かどうかを決定するステップと、上記コンピューティングデバイスのプロセッサコアにより、上記ネットワークコントローラが大容量送信オフロードが可能でないと決定したことに応答して上記第1のQUICパケットを上記複数のセグメント化されたQUICパケットにセグメント化するステップと、をさらに含む。
例28は、アクセラレートされたパケット処理のための方法を含み、当該方法は、コンピューティングデバイスにより、上記コンピューティングデバイスのネットワークコントローラをQUIC接続に関連づけられた暗号化キーでプログラムするステップと、上記ネットワークコントローラにより、リモートコンピューティングデバイスから第1のネットワークパケットを受信するステップと、上記ネットワークコントローラにより、上記第1のネットワークパケットがQUICパケットを含むかどうかを決定するステップであり、上記QUICパケットは、QUICヘッダと暗号化されたペイロードとを含むUDPパケットを含み、上記QUICパケットは上記QUIC接続に関連づけられる、ステップと、上記ネットワークコントローラにより、上記第1のネットワークパケットがQUICパケットを含むと決定したことに応答して、上記第1のネットワークパケットの上記暗号化されたペイロードを上記暗号化キーで解読して上記第1のネットワークパケットの平文ペイロードを生成するステップと、を含む。
例29は、例28に記載の構成要件を含み、上記第1のネットワークパケットの上記暗号化されたペイロードを解読することは、上記暗号化されたペイロードをアプリケーションレイヤ暗号化プロトコルで解読することを含む。
例30は、例28及び29のうちいずれか1つに記載の構成要件を含み、上記第1のネットワークパケットは認証データをさらに含み、当該方法は、上記ネットワークコントローラにより、上記第1のネットワークパケットがQUICパケットを含むと決定したことに応答して上記第1のネットワークパケットを上記認証データで検証するステップをさらに含む。
例31は、例28〜30のうちいずれか1つに記載の構成要件を含み、上記ネットワークコントローラにより、上記暗号化されたペイロードを解読したことに応答して所定の割り当て機能を所定のエントロピーソースで評価してキュー識別子を生成するステップと、上記ネットワークコントローラにより、上記所定の割り当て機能を評価したことに応答して上記第1のネットワークパケットを上記キュー識別子に関連づけられた受信キューに転送するステップと、上記コンピューティングデバイスの第1のプロセッサコアにより、上記第1のネットワークパケットを上記受信キューに転送したことに応答して上記第1のネットワークパケットを処理するステップであり、上記第1のプロセッサコアは上記受信キューに関連づけられる、ステップと、をさらに含む。
例32は、例28〜31のうちいずれか1つに記載の構成要件を含み、上記コンピューティングデバイスにより、上記ネットワークコントローラを上記所定のエントロピーソースで構成するステップ、をさらに含む。
例33は、例28〜32のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、上記第1のネットワークパケットの上記QUICヘッダのフィールドを含む。
例34は、例28〜33のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、QUIC接続識別子又はQUICショートパケットタイプフィールドを含む。
例35は、例28〜34のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、上記第1のネットワークパケットの上記平文ペイロードのフィールドを含む。
例36は、例28〜35のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、QUICストリーム識別子を含む。
例37は、例28〜36のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、上記第1のネットワークパケットのUDPソースIPアドレスとUDP宛先IPアドレスとUDPソースポートとUDP宛先ポートとを含むタプルを含む。
例38は、例28〜37のうちいずれか1つに記載の構成要件を含み、上記コンピューティングデバイスにより、上記ネットワークコントローラを上記所定の割り当て機能で構成するステップ、をさらに含む。
例39は、例28〜38のうちいずれか1つに記載の構成要件を含み、上記所定の割り当て機能は、上記エントロピーソースに基づくフィルタ機能を含む。
例40は、例28〜39のうちいずれか1つに記載の構成要件を含み、上記コンピューティングデバイスにより、上記第1のプロセッサコアを上記受信キューに関連づけるステップ、をさらに含む。
例41は、記憶された複数の命令を含む1つ以上のコンピュータ読取可能記憶媒体を含み、上記命令は、実行されたことに応答してコンピューティングデバイスに、上記コンピューティングデバイスのネットワークコントローラをQUIC接続に関連づけられた暗号化キーでプログラムするステップと、第1のQUICパケットを上記コンピューティングデバイスの上記ネットワークコントローラに渡すステップであり、上記第1のQUICパケットは、QUICヘッダと平文ペイロードとを含むUDPパケットを含み、上記第1のQUICパケットは上記QUIC接続に関連づけられる、ステップと、上記第1のQUICパケットの上記平文ペイロードを上記暗号化キーで暗号化して上記第1のQUICパケットの暗号化されたペイロードを生成するステップと、上記平文ペイロードの暗号化に応答して、上記暗号化されたペイロードを含む上記第1のQUICパケットを上記QUIC接続に関連づけられたリモートコンピューティングデバイスに送信するステップと、を実行させる。
例42は、例41に記載の構成要件を含み、上記第1のQUICパケットの上記平文ペイロードを暗号化することは、上記平文ペイロードをアプリケーションレイヤ暗号化プロトコルで暗号化することを含む。
例43は、例41及び42のうちいずれか1つに記載の構成要件を含み、記憶された複数の命令をさらに含み、上記命令は、実行されたことに応答して上記コンピューティングデバイスに、上記ネットワークコントローラにより、上記第1のQUICパケットの認証データを計算するステップと、上記ネットワークコントローラにより、上記認証データを上記第1のQUICパケットに追加するステップと、を実行させ、上記第1のQUICパケットを送信するステップは、上記認証データを追加したことに応答して上記第1のQUICパケットを送信するステップを含む。
例44は、例41〜43のうちいずれか1つに記載の構成要件を含み、記憶された複数の命令をさらに含み、上記命令は、実行されたことに応答して上記コンピューティングデバイスに、上記ネットワークコントローラにより、上記第1のQUICパケットを複数のセグメント化されたQUICパケットにセグメント化するステップ、を実行させ、上記セグメント化されたQUICパケットの各々は平文ペイロードを含み、所定のサイズ以下であり、上記平文ペイロードを暗号化することは、上記セグメント化されたQUICパケットの各々の上記平文ペイロードを上記暗号化キーで暗号化して上記セグメント化されたQUICパケットの各々の暗号化されたペイロードを生成することを含み、上記第1のQUICパケットを送信するステップは、上記複数のセグメント化されたQUICパケットを送信するステップを含む。
例45は、例41〜44のうちいずれか1つに記載の構成要件を含み、記憶された複数の命令をさらに含み、上記命令は、実行されたことに応答して上記コンピューティングデバイスに、上記ネットワークコントローラにより、上記第1のQUICパケットから上記QUICヘッダを上記セグメント化されたQUICパケットの各々にコピーするステップと、上記ネットワークコントローラにより、上記セグメント化されたQUICパケットの各々の上記QUICヘッダのパケット番号を更新するステップと、を実行させる。
例46は、例41〜45のうちいずれか1つに記載の構成要件を含み、記憶された複数の命令をさらに含み、上記命令は、実行されたことに応答して上記コンピューティングデバイスに、上記コンピューティングデバイスにより、上記第1のQUICパケットを生成するステップであり、上記第1のQUICパケットの上記QUICヘッダはパケット番号を含む、ステップと、上記コンピューティングデバイスにより、上記第1のQUICパケットの長さに基づいて上記第1のQUICパケットから生成されるセグメント化されたQUICパケットの数を計算するステップと、上記コンピューティングデバイスにより、上記第1のQUICパケットの上記パケット番号と上記セグメント化されたQUICパケットの数とに基づいて、次のQUICパケットのための次パケット番号を計算するステップと、を実行させる。
例47は、例41〜46のうちいずれか1つに記載の構成要件を含み、記憶された複数の命令をさらに含み、上記命令は、実行されたことに応答して上記コンピューティングデバイスに、上記ネットワークコントローラが大容量送信オフロードが可能かどうかを決定するステップと、上記コンピューティングデバイスのプロセッサコアにより、上記ネットワークコントローラが大容量送信オフロードが可能でないと決定したことに応答して上記第1のQUICパケットを上記複数のセグメント化されたQUICパケットにセグメント化するステップと、を実行させる。
例48は、記憶された複数の命令を含む1つ以上のコンピュータ読取可能記憶媒体を含み、上記命令は、実行されたことに応答してコンピューティングデバイスに、上記コンピューティングデバイスのネットワークコントローラをQUIC接続に関連づけられた暗号化キーでプログラムするステップと、上記ネットワークコントローラにより、リモートコンピューティングデバイスから第1のネットワークパケットを受信するステップと、上記ネットワークコントローラにより、上記第1のネットワークパケットがQUICパケットを含むかどうかを決定するステップであり、上記QUICパケットは、QUICヘッダと暗号化されたペイロードとを含むUDPパケットを含み、上記QUICパケットは上記QUIC接続に関連づけられる、ステップと、上記ネットワークコントローラにより、上記第1のネットワークパケットがQUICパケットを含むと決定したことに応答して、上記第1のネットワークパケットの上記暗号化されたペイロードを上記暗号化キーで解読して上記第1のネットワークパケットの平文ペイロードを生成するステップと、を実行させる。
例49は、例48に記載の構成要件を含み、上記第1のネットワークパケットの上記暗号化されたペイロードを解読することは、上記暗号化されたペイロードをアプリケーションレイヤ暗号化プロトコルで解読することを含む。
例50は、例48及び49のうちいずれか1つに記載の構成要件を含み、上記第1のネットワークパケットは認証データをさらに含み、当該1つ以上のコンピュータ読取可能記憶媒体は、記憶された複数の命令をさらに含み、上記命令は、実行されたことに応答して上記コンピューティングデバイスに、上記ネットワークコントローラにより、上記第1のネットワークパケットがQUICパケットを含むと決定したことに応答して上記第1のネットワークパケットを上記認証データで検証するステップを実行させる。
例51は、例48〜50のうちいずれか1つに記載の構成要件を含み、記憶された複数の命令をさらに含み、上記命令は、実行されたことに応答して上記コンピューティングデバイスに、上記ネットワークコントローラにより、上記暗号化されたペイロードを解読したことに応答して所定の割り当て機能を所定のエントロピーソースで評価してキュー識別子を生成するステップと、上記ネットワークコントローラにより、上記所定の割り当て機能を評価したことに応答して上記第1のネットワークパケットを上記キュー識別子に関連づけられた受信キューに転送するステップと、上記コンピューティングデバイスの第1のプロセッサコアにより、上記第1のネットワークパケットを上記受信キューに転送したことに応答して上記第1のネットワークパケットを処理するステップであり、上記第1のプロセッサコアは上記受信キューに関連づけられる、ステップと、を実行させる。
例52は、例48〜51のうちいずれか1つに記載の構成要件を含み、記憶された複数の命令をさらに含み、上記命令は、実行されたことに応答して上記コンピューティングデバイスに、上記ネットワークコントローラを上記所定のエントロピーソースで構成するステップ、を実行させる。
例53は、例48〜52のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、上記第1のネットワークパケットの上記QUICヘッダのフィールドを含む。
例54は、例48〜53のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、QUIC接続識別子又はQUICショートパケットタイプフィールドを含む。
例55は、例48〜54のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、上記第1のネットワークパケットの上記平文ペイロードのフィールドを含む。
例56は、例48〜55のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、QUICストリーム識別子を含む。
例57は、例48〜56のうちいずれか1つに記載の構成要件を含み、上記エントロピーソースは、上記第1のネットワークパケットのUDPソースIPアドレスとUDP宛先IPアドレスとUDPソースポートとUDP宛先ポートとを含むタプルを含む。
例58は、例48〜57のうちいずれか1つに記載の構成要件を含み、記憶された複数の命令をさらに含み、上記命令は、実行されたことに応答して上記コンピューティングデバイスに、上記ネットワークコントローラを上記所定の割り当て機能で構成するステップ、を実行させる。
例59は、例48〜58のうちいずれか1つに記載の構成要件を含み、上記所定の割り当て機能は、上記エントロピーソースに基づくフィルタ機能を含む。
例60は、例48〜59のうちいずれか1つに記載の構成要件を含み、記憶された複数の命令をさらに含み、上記命令は、実行されたことに応答して上記コンピューティングデバイスに、上記第1のプロセッサコアを上記受信キューに関連づけるステップ、を実行させる。

Claims (26)

  1. アクセラレートされたパケット処理のためのコンピューティングデバイスであって、
    ネットワークコントローラと、
    (i)前記ネットワークコントローラをQUIC接続に関連づけられた暗号化キーでプログラムし、(ii)第1のQUICパケットを前記ネットワークコントローラに渡すネットワークコントローラドライバであり、前記第1のQUICパケットは、QUICヘッダと平文ペイロードとを含むUDPパケットを含み、前記第1のQUICパケットは前記QUIC接続に関連づけられる、ネットワークコントローラドライバと、を含み、
    前記ネットワークコントローラは、前記第1のQUICパケットの前記平文ペイロードを前記暗号化キーで暗号化して前記第1のQUICパケットの暗号化されたペイロードを生成する暗号アクセラレータを含み、
    前記ネットワークコントローラは、前記平文ペイロードの暗号化に応答して、前記暗号化されたペイロードを含む前記第1のQUICパケットを前記QUIC接続に関連づけられたリモートコンピューティングデバイスに送信する、コンピューティングデバイス。
  2. 前記第1のQUICパケットの前記平文ペイロードを暗号化することは、前記平文ペイロードをアプリケーションレイヤ暗号化プロトコルで暗号化することを含む、請求項1に記載のコンピューティングデバイス。
  3. 前記ネットワークコントローラは、前記第1のQUICパケットを複数のセグメント化されたQUICパケットにセグメント化する大容量送信オフロードアクセラレータをさらに含み、前記セグメント化されたQUICパケットの各々は平文ペイロードを含み、所定のサイズ以下であり、
    前記平文ペイロードを暗号化することは、前記セグメント化されたQUICパケットの各々の前記平文ペイロードを前記暗号化キーで暗号化して前記セグメント化されたQUICパケットの各々の暗号化されたペイロードを生成することを含み、
    前記第1のQUICパケットを送信することは、前記複数のセグメント化されたQUICパケットを送信することを含む、請求項1に記載のコンピューティングデバイス。
  4. 前記大容量送信オフロードアクセラレータはさらに、
    前記第1のQUICパケットから前記QUICヘッダを前記セグメント化されたQUICパケットの各々にコピーし、
    前記セグメント化されたQUICパケットの各々の前記QUICヘッダのパケット番号を更新する、請求項3に記載のコンピューティングデバイス。
  5. 前記第1のQUICパケットを生成し、前記第1のQUICパケットの前記QUICヘッダはパケット番号を含み、
    前記第1のQUICパケットの長さに基づいて前記第1のQUICパケットから生成されるセグメント化されたQUICパケットの数を計算し、
    前記第1のQUICパケットの前記パケット番号と前記セグメント化されたQUICパケットの数とに基づいて、次のQUICパケットのための次パケット番号を計算するQUICプロトコルスタック、をさらに含む請求項3に記載のコンピューティングデバイス。
  6. コンピューティングデバイスのネットワークコントローラをQUIC接続に関連づけられた暗号化キーでプログラムするステップと、
    第1のQUICパケットを前記コンピューティングデバイスの前記ネットワークコントローラに渡すステップであり、前記第1のQUICパケットは、QUICヘッダと平文ペイロードとを含むUDPパケットを含み、前記第1のQUICパケットは前記QUIC接続に関連づけられる、ステップと、
    前記ネットワークコントローラにより、前記第1のQUICパケットの前記平文ペイロードを前記暗号化キーで暗号化して前記第1のQUICパケットの暗号化されたペイロードを生成するステップと、
    前記ネットワークコントローラにより、前記平文ペイロードの暗号化に応答して、前記暗号化されたペイロードを含む前記第1のQUICパケットを前記QUIC接続に関連づけられたリモートコンピューティングデバイスに送信するステップと、
    を前記コンピューティングデバイスに実行させるコンピュータプログラム。
  7. 前記ネットワークコントローラにより、前記第1のQUICパケットの認証データを計算するステップと、
    前記ネットワークコントローラにより、前記認証データを前記第1のQUICパケットに追加するステップと、
    を前記コンピューティングデバイスにさらに実行させ、
    前記第1のQUICパケットを送信することは、前記認証データを追加したことに応答して前記第1のQUICパケットを送信することを含む、請求項6に記載のコンピュータプログラム。
  8. 前記ネットワークコントローラにより、前記第1のQUICパケットを複数のセグメント化されたQUICパケットにセグメント化するステップであり、前記セグメント化されたQUICパケットの各々は平文ペイロードを含み、所定のサイズ以下である、ステップ、
    を前記コンピューティングデバイスにさらに実行させ、
    前記平文ペイロードを暗号化することは、前記セグメント化されたQUICパケットの各々の前記平文ペイロードを前記暗号化キーで暗号化して前記セグメント化されたQUICパケットの各々の暗号化されたペイロードを生成することを含み、
    前記第1のQUICパケットを送信することは、前記複数のセグメント化されたQUICパケットを送信することを含む、請求項6に記載のコンピュータプログラム。
  9. 前記ネットワークコントローラにより、前記第1のQUICパケットから前記QUICヘッダを前記セグメント化されたQUICパケットの各々にコピーするステップと、
    前記ネットワークコントローラにより、前記セグメント化されたQUICパケットの各々の前記QUICヘッダのパケット番号を更新するステップと、
    を前記コンピューティングデバイスにさらに実行させる、請求項8に記載のコンピュータプログラム。
  10. アクセラレートされたパケット処理のためのコンピューティングデバイスであって、
    ネットワークコントローラと、
    前記ネットワークコントローラをQUIC接続に関連づけられた暗号化キーでプログラムするネットワークコントローラドライバと、を含み、
    前記ネットワークコントローラは、(i)リモートコンピューティングデバイスから第1のネットワークパケットを受信し、(ii)前記第1のネットワークパケットがQUICパケットを含むかどうかを決定し、前記QUICパケットは、QUICヘッダと暗号化されたペイロードとを含むUDPパケットを含み、前記QUICパケットは前記QUIC接続に関連づけられ、
    前記ネットワークコントローラは、前記第1のネットワークパケットがQUICパケットを含むとの決定に応答して前記第1のネットワークパケットの前記暗号化されたペイロードを前記暗号化キーで解読して前記第1のネットワークパケットの平文ペイロードを生成する暗号アクセラレータを含む、コンピューティングデバイス。
  11. 第1のプロセッサコアとQUICプロトコルスタックとをさらに含み、
    前記ネットワークコントローラは、(i)前記暗号化されたペイロードの解読に応答して所定の割り当て機能を所定のエントロピーソースで評価してキュー識別子を生成し、(ii)前記所定の割り当て機能の評価に応答して前記第1のネットワークパケットを前記キュー識別子に関連づけられた受信キューに転送する受信側スケーリングアクセラレータをさらに含み、
    前記QUICプロトコルスタックは、前記第1のプロセッサコアにより、前記第1のネットワークパケットの前記受信キューへの転送に応答して前記第1のネットワークパケットを処理し、前記第1のプロセッサコアは前記受信キューに関連づけられる、請求項10に記載のコンピューティングデバイス。
  12. 前記ネットワークコントローラドライバはさらに、前記ネットワークコントローラを前記所定のエントロピーソースで構成する、請求項11に記載のコンピューティングデバイス。
  13. 前記エントロピーソースは、前記第1のネットワークパケットの前記QUICヘッダのフィールドを含む、請求項11に記載のコンピューティングデバイス。
  14. 前記エントロピーソースは、QUIC接続識別子又はQUICショートパケットタイプフィールドを含む、請求項13に記載のコンピューティングデバイス。
  15. 前記エントロピーソースは、前記第1のネットワークパケットの前記平文ペイロードのフィールドを含む、請求項11に記載のコンピューティングデバイス。
  16. 前記エントロピーソースは、QUICストリーム識別子を含む、請求項15に記載のコンピューティングデバイス。
  17. 前記エントロピーソースは、前記第1のネットワークパケットのUDPソースIPアドレスとUDP宛先IPアドレスとUDPソースポートとUDP宛先ポートとを含むタプルを含む、請求項11に記載のコンピューティングデバイス。
  18. 前記ネットワークコントローラドライバはさらに、前記ネットワークコントローラを前記所定の割り当て機能で構成する、請求項11に記載のコンピューティングデバイス。
  19. 前記所定の割り当て機能は、前記エントロピーソースに基づくフィルタ機能を含む、請求項11に記載のコンピューティングデバイス。
  20. コンピューティングデバイスのネットワークコントローラをQUIC接続に関連づけられた暗号化キーでプログラムするステップと、
    前記ネットワークコントローラにより、リモートコンピューティングデバイスから第1のネットワークパケットを受信するステップと、
    前記ネットワークコントローラにより、前記第1のネットワークパケットがQUICパケットを含むかどうかを決定するステップであり、前記QUICパケットは、QUICヘッダと暗号化されたペイロードとを含むUDPパケットを含み、前記QUICパケットは前記QUIC接続に関連づけられる、ステップと、
    前記ネットワークコントローラにより、前記第1のネットワークパケットがQUICパケットを含むと決定したことに応答して、前記第1のネットワークパケットの前記暗号化されたペイロードを前記暗号化キーで解読して前記第1のネットワークパケットの平文ペイロードを生成するステップと、
    を前記コンピューティングデバイスに実行させるコンピュータプログラム。
  21. 前記ネットワークコントローラにより、前記暗号化されたペイロードを解読したことに応答して、所定の割り当て機能を所定のエントロピーソースで評価してキュー識別子を生成するステップと、
    前記ネットワークコントローラにより、前記所定の割り当て機能を評価したことに応答して、前記第1のネットワークパケットを前記キュー識別子に関連づけられた受信キューに転送するステップと、
    前記コンピューティングデバイスの第1のプロセッサコアにより、前記第1のネットワークパケットを前記受信キューに転送したことに応答して前記第1のネットワークパケットを処理するステップであり、前記第1のプロセッサコアは前記受信キューに関連づけられる、ステップと、
    を前記コンピューティングデバイスにさらに実行させる、請求項20に記載のコンピュータプログラム。
  22. 前記エントロピーソースは、前記第1のネットワークパケットの前記QUICヘッダのフィールドを含む、請求項21に記載のコンピュータプログラム。
  23. 前記エントロピーソースは、前記第1のネットワークパケットの前記平文ペイロードのフィールドを含む、請求項21に記載のコンピュータプログラム。
  24. 前記エントロピーソースは、前記第1のネットワークパケットのUDPソースIPアドレスとUDP宛先IPアドレスとUDPソースポートとUDP宛先ポートとを含むタプルを含む、請求項21に記載のコンピュータプログラム。
  25. 前記所定の割り当て機能は、前記エントロピーソースに基づくフィルタ機能を含む、請求項21に記載のコンピュータプログラム。
  26. 請求項6乃至9又は請求項20乃至25のうちいずれか1項に記載のコンピュータプログラムを記憶したコンピュータ読取可能記憶媒体。
JP2019009999A 2018-03-16 2019-01-24 ハードウェアオフロードを有するアクセラレートされたquicパケット処理のための技術 Active JP7332300B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862644045P 2018-03-16 2018-03-16
US62/644,045 2018-03-16
US16/022,843 US11336625B2 (en) 2018-03-16 2018-06-29 Technologies for accelerated QUIC packet processing with hardware offloads
US16/022,843 2018-06-29

Publications (2)

Publication Number Publication Date
JP2019161641A true JP2019161641A (ja) 2019-09-19
JP7332300B2 JP7332300B2 (ja) 2023-08-23

Family

ID=65230696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019009999A Active JP7332300B2 (ja) 2018-03-16 2019-01-24 ハードウェアオフロードを有するアクセラレートされたquicパケット処理のための技術

Country Status (5)

Country Link
US (3) US11336625B2 (ja)
EP (2) EP3873060A1 (ja)
JP (1) JP7332300B2 (ja)
KR (1) KR102846465B1 (ja)
CN (1) CN110278183A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024013829A1 (ja) * 2022-07-11 2024-01-18 日本電信電話株式会社 信号処理集約装置、信号処理集約システム、信号処理集約方法およびプログラム

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11502948B2 (en) 2017-10-16 2022-11-15 Mellanox Technologies, Ltd. Computational accelerator for storage operations
US10785020B2 (en) * 2018-01-19 2020-09-22 Microsoft Technology Licensing, Llc Hardware offload for QUIC connections
US11336625B2 (en) 2018-03-16 2022-05-17 Intel Corporation Technologies for accelerated QUIC packet processing with hardware offloads
US12255974B2 (en) 2018-11-28 2025-03-18 Intel Corporation Quick user datagram protocol (UDP) internet connections (QUIC) packet offloading
US12160369B2 (en) * 2019-02-15 2024-12-03 Intel Corporation Processor related communications
US11570100B2 (en) * 2019-04-25 2023-01-31 Advanced New Technologies Co., Ltd. Data processing method, apparatus, medium and device
EP3991354A1 (en) * 2019-06-30 2022-05-04 Telefonaktiebolaget Lm Ericsson (Publ) Estimating quality metric for latency sensitive traffic flows in communication networks
CN112738004B (zh) 2019-10-14 2021-11-16 上海哔哩哔哩科技有限公司 基于quic传输协议的通信方法和系统
EP3983903B1 (en) * 2020-04-16 2023-11-22 Huawei Technologies Co., Ltd. A device and method for remote direct memory access
US20200322287A1 (en) * 2020-06-18 2020-10-08 Intel Corporation Switch-managed resource allocation and software execution
CN114095153B (zh) * 2020-08-05 2024-12-17 迈络思科技有限公司 密码数据通信装置
IL276538B2 (en) * 2020-08-05 2023-08-01 Mellanox Technologies Ltd A cryptographic device for data communication
KR102345473B1 (ko) 2020-11-30 2021-12-30 경북대학교 산학협력단 사물 인터넷 서비스를 제공하기 위한 QUIC-Proxy를 이용한 데이터 전달 방법 및 장치
US11902168B2 (en) 2021-06-24 2024-02-13 Cisco Technology, Inc. Data packet prioritization in multiplexed sessions
US12155705B2 (en) * 2021-06-28 2024-11-26 Tencent America LLC Techniques for monitoring encrypted streaming traffic using underlying transport metrics
JP7685916B2 (ja) * 2021-09-15 2025-05-30 シャープ株式会社 画像形成装置、端末装置、画像形成装置の制御方法及び端末装置の制御方法
CN116074026A (zh) * 2021-10-29 2023-05-05 中兴通讯股份有限公司 Sni域名的提取方法、电子设备、计算机可读存储介质
US12182627B2 (en) * 2021-11-18 2024-12-31 International Business Machines Corporation Accelerator trustworthiness
US20230254342A1 (en) * 2022-02-09 2023-08-10 Nbcuniversal Media, Llc Cryptographic binding of data to network transport
US12519775B2 (en) 2022-09-02 2026-01-06 Cisco Technology, Inc. Authentication (AuthN) and authorization (AuthZ) binding for secure network access
CN116232940B (zh) * 2022-12-30 2024-07-05 天翼云科技有限公司 基于quic协议的性能测试系统、方法及装置
EP4674166A1 (en) * 2023-03-31 2026-01-07 ZTE Corporation Systems and methods for traffic classification and handling
US12452219B2 (en) 2023-06-01 2025-10-21 Mellanox Technologies, Ltd Network device with datagram transport layer security selective software offload
US20250267006A1 (en) * 2024-02-17 2025-08-21 Microsoft Technology Licensing, Llc Accelerated quic connections through hardware components

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008042773A (ja) * 2006-08-09 2008-02-21 Kawasaki Microelectronics Kk デバイス連携システム
JP2010283635A (ja) * 2009-06-05 2010-12-16 Yokogawa Electric Corp データ送信装置、データ送信方法
CN104718720A (zh) * 2012-10-17 2015-06-17 思科技术公司 光传送网络中的时隙加密
CN106656909A (zh) * 2015-10-28 2017-05-10 瑞昱半导体股份有限公司 传输装置及其传输方法
US20170180329A1 (en) * 2015-12-18 2017-06-22 Realtek Semiconductor Corp. Receiving apparatus and packet processing method thereof
CN106921618A (zh) * 2015-12-25 2017-07-04 瑞昱半导体股份有限公司 接收装置及其封包处理方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010052072A1 (en) * 2000-01-25 2001-12-13 Stefan Jung Encryption of payload on narrow-band IP links
US8244864B1 (en) 2001-03-20 2012-08-14 Microsoft Corporation Transparent migration of TCP based connections within a network load balancing system
DE10350346B4 (de) 2002-10-29 2012-12-20 Kyocera Corp. Hochfrequenzleitungs-Wellenleiter-Konverter und Hochfrequenzpaket
US7587587B2 (en) 2002-12-05 2009-09-08 Broadcom Corporation Data path security processing
US7526577B2 (en) 2003-09-19 2009-04-28 Microsoft Corporation Multiple offload of network state objects with support for failover events
US20050195851A1 (en) 2004-02-12 2005-09-08 International Business Machines Corporation System, apparatus and method of aggregating TCP-offloaded adapters
US8984140B2 (en) 2004-12-14 2015-03-17 Hewlett-Packard Development Company, L.P. Managing connections through an aggregation of network resources providing offloaded connections between applications over a network
US20080304481A1 (en) 2005-07-12 2008-12-11 Paul Thomas Gurney System and Method of Offloading Protocol Functions
US20090016334A1 (en) 2007-07-09 2009-01-15 Nokia Corporation Secured transmission with low overhead
US8362925B2 (en) 2009-05-05 2013-01-29 Honeywell International Inc. Avionics display system and method for generating flight information pertaining to neighboring aircraft
US8667311B2 (en) * 2009-06-23 2014-03-04 Broadcom Corporation Method and system for optimized power management for a network device supporting PCI-E and energy efficient ethernet
US9026783B2 (en) * 2013-03-07 2015-05-05 Google Inc. Low latency server-side redirection of UDP-based transport protocols traversing a client-side NAT firewall
US10199989B2 (en) 2014-09-10 2019-02-05 Texas Instruments Incorporated Low voltage feedforward current assist ethernet line driver
US10212138B1 (en) 2015-06-19 2019-02-19 Amazon Technologies, Inc. Hardware security accelerator
TWI587676B (zh) * 2015-10-21 2017-06-11 瑞昱半導體股份有限公司 傳輸裝置及其傳輸方法
US10182039B2 (en) 2016-02-04 2019-01-15 Cisco Technology, Inc. Encrypted and authenticated data frame
US11005771B2 (en) 2017-10-16 2021-05-11 Mellanox Technologies, Ltd. Computational accelerator for packet payload operations
CN109714302B (zh) 2017-10-25 2022-06-14 阿里巴巴集团控股有限公司 算法的卸载方法、装置和系统
US10911491B2 (en) 2017-11-20 2021-02-02 International Business Machines Corporation Encryption with sealed keys
US10778522B2 (en) * 2017-12-13 2020-09-15 Salesforce.Com, Inc. Endpoint-based mechanism to apply network optimization
US10785020B2 (en) * 2018-01-19 2020-09-22 Microsoft Technology Licensing, Llc Hardware offload for QUIC connections
US11190487B2 (en) * 2018-02-28 2021-11-30 Palo Alto Networks, Inc. Identifying security risks and enforcing policies on encrypted/encoded network communications
US11336625B2 (en) 2018-03-16 2022-05-17 Intel Corporation Technologies for accelerated QUIC packet processing with hardware offloads
US11792307B2 (en) 2018-03-28 2023-10-17 Apple Inc. Methods and apparatus for single entity buffer pool management
US11223708B2 (en) 2018-06-26 2022-01-11 Microsoft Technology Licensing, Llc Scalable sockets for QUIC
CN112997460B (zh) 2018-08-27 2023-06-20 瑞典爱立信有限公司 在电信网络中检测用户设备ue与内容提供者cp之间的快速用户数据报协议互联网连接quic业务的方法
US12255974B2 (en) 2018-11-28 2025-03-18 Intel Corporation Quick user datagram protocol (UDP) internet connections (QUIC) packet offloading
CN111756674B (zh) 2019-03-28 2021-07-27 上海哔哩哔哩科技有限公司 网络通信方法、系统、设备及计算机可读存储介质
US11909642B2 (en) 2020-09-03 2024-02-20 Intel Corporation Offload of acknowledgements to a network device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008042773A (ja) * 2006-08-09 2008-02-21 Kawasaki Microelectronics Kk デバイス連携システム
JP2010283635A (ja) * 2009-06-05 2010-12-16 Yokogawa Electric Corp データ送信装置、データ送信方法
CN104718720A (zh) * 2012-10-17 2015-06-17 思科技术公司 光传送网络中的时隙加密
CN106656909A (zh) * 2015-10-28 2017-05-10 瑞昱半导体股份有限公司 传输装置及其传输方法
US20170180329A1 (en) * 2015-12-18 2017-06-22 Realtek Semiconductor Corp. Receiving apparatus and packet processing method thereof
CN106921618A (zh) * 2015-12-25 2017-07-04 瑞昱半导体股份有限公司 接收装置及其封包处理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024013829A1 (ja) * 2022-07-11 2024-01-18 日本電信電話株式会社 信号処理集約装置、信号処理集約システム、信号処理集約方法およびプログラム
JPWO2024013829A1 (ja) * 2022-07-11 2024-01-18
JP7779390B2 (ja) 2022-07-11 2025-12-03 Ntt株式会社 信号処理集約装置、信号処理集約システム、信号処理集約方法およびプログラム

Also Published As

Publication number Publication date
KR20190109237A (ko) 2019-09-25
EP3873060A1 (en) 2021-09-01
US11336625B2 (en) 2022-05-17
EP3541044A1 (en) 2019-09-18
US20240121225A1 (en) 2024-04-11
JP7332300B2 (ja) 2023-08-23
US20220278965A1 (en) 2022-09-01
US12395474B2 (en) 2025-08-19
CN110278183A (zh) 2019-09-24
EP3541044B1 (en) 2021-09-01
KR102846465B1 (ko) 2025-08-14
US11870759B2 (en) 2024-01-09
US20190044705A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
US12395474B2 (en) Technologies for accelerated QUIC packet processing with hardware offloads
US12368767B2 (en) Technologies for accelerated HTTP processing with hardware acceleration
US10862871B2 (en) Hardware-accelerated payload filtering in secure communication
US10757013B2 (en) System and method for virtual multipath data transport
US20190140979A1 (en) NIC with Programmable Pipeline
CN104704491B (zh) 用于集群内通信的硬件消息队列
CN104580011B (zh) 一种数据转发装置和方法
WO2019143463A1 (en) Hardware offload for quic connections
WO2015058698A1 (en) Data forwarding
US20100318996A1 (en) Methods and systems for sharing common job information
KR20170074093A (ko) 네트워크 장비 및 그 제어 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230529

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230810

R150 Certificate of patent or registration of utility model

Ref document number: 7332300

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150