JP6359111B2 - 並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法および装置 - Google Patents

並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法および装置 Download PDF

Info

Publication number
JP6359111B2
JP6359111B2 JP2016549111A JP2016549111A JP6359111B2 JP 6359111 B2 JP6359111 B2 JP 6359111B2 JP 2016549111 A JP2016549111 A JP 2016549111A JP 2016549111 A JP2016549111 A JP 2016549111A JP 6359111 B2 JP6359111 B2 JP 6359111B2
Authority
JP
Japan
Prior art keywords
protocol stack
stack instance
protocol
target socket
processing
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
JP2016549111A
Other languages
English (en)
Other versions
JP2017509055A (ja
Inventor
永▲強▼ ▲楊▼
永▲強▼ ▲楊▼
芬 戴
芬 戴
▲劉▼▲飛▼ 文
▲劉▼▲飛▼ 文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2017509055A publication Critical patent/JP2017509055A/ja
Application granted granted Critical
Publication of JP6359111B2 publication Critical patent/JP6359111B2/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
    • 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
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、通信技術に関し、具体的には、並列プロトコル・スタック・インスタンス(parallel protocol stack instance)に基づいてデータパケットを処理する方法および装置に関する。
クラウドコンピューティングがすばやく発展するにつれて、プロトコル・スタック・インスタンスの処理能力に、より高い要件が課せられる。現在、複数のプロトコル・スタック・インスタンスが1つのソケット(socket)を共有する形が、通常は使用されるので、複数のプロトコル・スタック・インスタンスが、1つのsocketをめぐって競争するという問題が存在し、したがって、マルチコア中央処理装置(central processing unit、CPU)アーキテクチャにおける並列プロトコル・スタック・インスタンスが提案される。並列プロトコル・スタック・インスタンスは、少なくとも2つのプロトコル・スタック・インスタンスを含み、各プロトコル・スタック・インスタンスは、CPUの仮想中央処理装置(virtual CPU、VCPU)上で走行し、複数のプロトコル・スタック・インスタンスが1つのsocketをめぐって競争するという前述の問題を回避するために、プロトコル・スタック・インスタンスに関連付けられたsocketを排他的に占有する形を使用する。ネットワークアダプタが、分配ポリシに従ってプロトコル・スタック・インスタンスにデータパケットを分配する時に、プロトコル・スタック・インスタンスは、そのプロトコル・スタック・インスタンスに関連付けられたsocketを使用することによって、データパケットに対してプロトコル処理を並列に実行することができる。
しかし、アプリケーション(Application、APP)が、前述のプロトコル処理を実行するために必要なsocketを作成するように命令する時に、アプリケーションは、socketとプロトコル・スタック・インスタンスとの間の関連付け関係を指定する。この形で、APPによって指定された関連付けられたプロトコル・スタック・インスタンスだけが、データパケットに対するプロトコル処理を実行するためにsocketを占有することができ、ネットワークアダプタがデータパケットを分配するプロトコル・スタック・インスタンスが、APPによって指定され、socketに関連付けられたプロトコル・スタック・インスタンスとは異なる時、すなわち、APPによって指定されたプロトコル・スタック・インスタンスが、ネットワークアダプタによって指定されたプロトコル・スタック・インスタンスと衝突するケースが発生する時には、プロトコル処理をデータパケットに対して実行することができない。
従来技術の問題を解決するために、本発明の実施形態は、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法および装置を提供する。
第1の態様によれば、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法であって、並列プロトコル・スタック・インスタンスは、少なくとも、第1のプロトコル・スタック・インスタンスと第2のプロトコル・スタック・インスタンスとを含み、方法は、第1のプロトコル・スタック・インスタンスを使用することによって、ネットワークアダプタによって第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して下位レイヤプロトコル処理を実行するステップと、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットソケットsocketを判定するステップと、ターゲットsocketに従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するステップと、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するステップとを含み、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、データパケットに対して完全なプロトコル処理を合同で達成する方法が、提供される。
第1の態様の第1の可能な実施の形において、ターゲットsocketに従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するステップは、類似性グラフ内にあり、ターゲットsocketと並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するステップであって、ターゲットsocketと各プロトコル・スタック・インスタンスとの間の類似性は、ネットワークアダプタによって各プロトコル・スタック・インスタンスにすでに分配されたデータパケット内の、上位レイヤプロトコル処理がターゲットsocketを使用することによってそれに対して実行される必要があるデータパケットの量を示すのに使用される、判定するステップを含む。
第1の態様の第1の可能な実施の形に関連して、第1の態様の第2の可能な実施の形において、類似性グラフ内にあり、ターゲットsocketと並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するステップの前に、方法は、下位レイヤプロトコル処理がそれに対して実行されたデータパケットの量に従って、類似性グラフ内に記録される、ターゲットsocketと第1のプロトコル・スタック・インスタンスとの間の類似性を更新するステップをさらに含む。
第1の態様の第2の可能な実施の形に関連して、第1の態様の第3の可能な実施の形において、下位レイヤプロトコル処理がそれに対して実行されたデータパケットの量に従って、類似性グラフ内に記録される、ターゲットsocketと第1のプロトコル・スタック・インスタンスとの間の類似性を更新するステップの後に、方法は、n×AがBより大きいかどうかを判定するステップであって、Aは、ターゲットsocketと第1のプロトコル・スタック・インスタンスとの間の類似性であり、Bは、類似性グラフ内に記録される、ターゲットsocketと関連付けられたプロトコル・スタック・インスタンスとの間の類似性であり、nは、事前にセットされた係数である、判定するステップをさらに含み、類似性グラフ内にあり、ターゲットsocketと並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するステップは、n×AがBより大きくはない場合に、類似性グラフ内に記録され、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスとして使用されると判定するステップを含む。
第1の態様の第3の可能な実施の形に関連して、第1の態様の第4の可能な実施の形において、類似性グラフ内にあり、ターゲットsocketと並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するステップは、n×AがBより大きい場合に、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスとして第1のプロトコル・スタック・インスタンスを判定し、類似性グラフ内に記録され、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスを第1のプロトコル・スタック・インスタンスに更新するステップをさらに含む。
第1の態様、第1の態様の第1の可能な実施の形、第1の態様の第2の可能な実施の形、第1の態様の第3の可能な実施の形、および第1の態様の第4の可能な実施の形に関連して、第1の態様の第5の可能な実施の形において、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットソケットsocketを判定するステップは、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを入手するためにsocketリストを検索するステップを含む。
第1の態様、第1の態様の第1の可能な実施の形、第1の態様の第2の可能な実施の形、第1の態様の第3の可能な実施の形、および第1の態様の第4の可能な実施の形に関連して、第1の態様の第6の可能な実施の形において、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するステップは、ターゲットsocketの下位レイヤデータ受取キューに、下位レイヤプロトコル処理がそれに対して実行されたデータパケットを追加するステップと、ターゲットsocketが、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤデータ受取キュー内のデータパケットに対して上位レイヤプロトコル処理を実行するステップであって、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストは、第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される、実行するステップとを含む。
第1の態様、第1の態様の第1の可能な実施の形、第1の態様の第2の可能な実施の形、第1の態様の第3の可能な実施の形、および第1の態様の第4の可能な実施の形に関連して、第1の態様の第7の可能な実施の形において、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定するステップの前に、方法は、並列プロトコル・スタック・インスタンス内に含まれるプロトコル・スタック・インスタンス内の親プロトコル・スタック・インスタンスを使用することによって、プロトコル・スタック・インスタンスのいずれにも関連付けられていないターゲットsocketを作成するステップであって、親プロトコル・スタック・インスタンスは、アプリケーションAPPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される、作成するステップをさらに含む。
第1の態様、第1の態様の第1の可能な実施の形、第1の態様の第2の可能な実施の形、第1の態様の第3の可能な実施の形、および第1の態様の第4の可能な実施の形に関連して、第1の態様の第8の可能な実施の形において、方法は、アプリケーションAPPによって送られた第1のデータパケットを受け取るステップと、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットソケットsocketを判定するステップと、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するステップと、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するステップとをさらに含む。
第2の態様によれば、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法であって、並列プロトコル・スタック・インスタンスは、少なくとも、第1のプロトコル・スタック・インスタンスと第2のプロトコル・スタック・インスタンスとを含み、方法は、アプリケーションAPPによって送られた第1のデータパケットを受け取るステップと、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定するステップと、ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けに従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するステップと、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するステップとを含み、ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けは、第1のプロトコル・スタック・インスタンスおよび第2のプロトコル・スタック・インスタンスが第2のデータパケットに対してプロトコル処理を実行する時に判定され、第1のプロトコル・スタック・インスタンスは、第2のデータパケットに対して下位レイヤプロトコル処理を実行し、第2のプロトコル・スタック・インスタンスは、第2のデータパケットに対して上位レイヤプロトコル処理を実行し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、第2のデータパケットに対する完全なプロトコル処理を合同で達成する、方法が提供される。
第2の態様の第1の可能な実施の形において、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するステップは、ターゲットsocketのAPPデータ送出キューに第1のデータパケットを追加するステップと、ターゲットsocketのAPPデータ送出キューが、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、APPデータ送出キュー内の第1のデータパケットに対して下位レイヤプロトコル処理および上位レイヤプロトコル処理を別々に実行するステップであって、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストは、第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される、実行するステップとを含む。
第2の態様の第2の可能な実施の形において、ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けに従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するステップは、類似性グラフに従って、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在するかどうかを判定するステップであって、類似性グラフは、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスを記録するのに使用される、判定するステップと、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在する場合に、第2のプロトコル・スタック・インスタンスとしてターゲットsocketに関連付けられたプロトコル・スタック・インスタンスを判定するステップとを含む。
第2の態様の第2の可能な実施の形に関連して、第2の態様の第3の可能な実施の形において、方法は、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在しない場合に、ターゲットsocketの親プロトコル・スタック・インスタンスの受取キューに制御メッセージを追加するステップであって、ターゲットsocketの親プロトコル・スタック・インスタンスは、ターゲットsocketを作成するのに使用されるプロトコル・スタック・インスタンスであり、制御メッセージは、第1のデータパケットに対してプロトコル処理を実行するように命令するのに使用される、追加するステップと、親プロトコル・スタック・インスタンスの受取キュー内の制御メッセージが、ポーリングによって入手される時に、第1のデータパケットを入手するために制御メッセージを解析するステップと、親プロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するステップと、類似性グラフ内に記録され、ターゲットsocketに関連付けられるプロトコル・スタック・インスタンスとして、親プロトコル・スタック・インスタンスを記録するステップとをさらに含む。
第2の態様、第2の態様の第1の可能な実施の形、第2の態様の第2の可能な実施の形、および第2の態様の第3の可能な実施の形に関連して、第2の態様の第4の可能な実施の形において、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定するステップは、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定するためにsocketリストを検索するステップを含む。
第2の態様の第3の可能な実施の形に関連して、第2の態様の第5の可能な実施の形において、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定するステップの前に、親プロトコル・スタック・インスタンスを使用することによって、並列プロトコル・スタック・インスタンス内に含まれるプロトコル・スタック・インスタンスのいずれにも関連付けられていないターゲットsocketを作成するステップであって、親プロトコル・スタック・インスタンスは、プロトコル・スタック・インスタンスから、APPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される、作成するステップをさらに含む。
第2の態様、第2の態様の第1の可能な実施の形、第2の態様の第2の可能な実施の形、および第2の態様の第3の可能な実施の形に関連して、第2の態様の第6の可能な実施の形において、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するステップの後に、ネットワークアダプタが、プロトコル処理がそれに対して実行された第1のデータパケットを送るようにするために、プロトコル処理がそれに対して実行された第1のデータパケットをネットワークアダプタの送出キューに追加するステップをさらに含む。
第3の態様によれば、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置であって、並列プロトコル・スタック・インスタンスは、少なくとも、第1のプロトコル・スタック・インスタンスと第2のプロトコル・スタック・インスタンスとを含み、装置は、第1のプロトコル・スタック・インスタンスを使用することによって、ネットワークアダプタによって第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して下位レイヤプロトコル処理を実行するように構成された下位レイヤプロトコル処理モジュールと、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定するように構成された第1の判定モジュールと、ターゲットsocketに従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するように構成された第2の判定モジュールと、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するように構成された上位レイヤプロトコル処理モジュールとを含み、下位レイヤプロトコル処理モジュールおよび上位レイヤプロトコル処理モジュールは、データパケットに対して完全なプロトコル処理を合同で達成する、装置が提供される。
第3の態様の第1の可能な実施の形において、第2の判定モジュールは、類似性グラフ内にあり、ターゲットsocketと並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するように特に構成され、ターゲットsocketと各プロトコル・スタック・インスタンスとの間の類似性は、ネットワークアダプタによって各プロトコル・スタック・インスタンスにすでに分配されたデータパケット内の、上位レイヤプロトコル処理がターゲットsocketを使用することによってそれに対して実行される必要があるデータパケットの量を示すのに使用される。
第3の態様の第1の可能な実施の形に関連して、第3の態様の第2の可能な実施の形において、装置は、下位レイヤプロトコル処理がそれに対して実行されたデータパケットの量に従って、類似性グラフ内に記録される、ターゲットsocketと第1のプロトコル・スタック・インスタンスとの間の類似性を更新するように構成された更新モジュールをさらに含む。
第3の態様の第2の可能な実施の形に関連して、第3の態様の第3の可能な実施の形において、装置は、n×AがBより大きいかどうかを判定するように構成された判断モジュールであって、Aは、ターゲットsocketと第1のプロトコル・スタック・インスタンスとの間の類似性であり、Bは、類似性グラフ内に記録される、ターゲットsocketと関連付けられたプロトコル・スタック・インスタンスとの間の類似性であり、nは、事前にセットされた係数である、判断モジュールをさらに含み、第2の判定モジュールは、n×AがBより大きくはない場合に、類似性グラフ内に記録され、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスとして使用されると判定するように構成された第1の判定ユニットを含む。
第3の態様の第3の可能な実施の形に関連して、第3の態様の第4の可能な実施の形において、第2の判定モジュールは、n×AがBより大きい場合に、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスとして第1のプロトコル・スタック・インスタンスを判定し、類似性グラフ内に記録され、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスを第1のプロトコル・スタック・インスタンスに更新するように構成された第2の判定ユニットを含む。
第3の態様、第3の態様の第1の可能な実施の形、第3の態様の第2の可能な実施の形、第3の態様の第3の可能な実施の形、および第3の態様の第4の可能な実施の形に関連して、第3の態様の第5の可能な実施の形において、第1の判定モジュールは、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを入手するためにsocketリストを検索するように特に構成される。
第3の態様、第3の態様の第1の可能な実施の形、第3の態様の第2の可能な実施の形、第3の態様の第3の可能な実施の形、および第3の態様の第4の可能な実施の形に関連して、第3の態様の第6の可能な実施の形において、上位レイヤプロトコル処理モジュールは、ターゲットsocketの下位レイヤデータ受取キューに、下位レイヤプロトコル処理がそれに対して実行されたデータパケットを追加するように構成されたキューユニットと、ターゲットsocketが、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤデータ受取キュー内のデータパケットに対して上位レイヤプロトコル処理を実行するように構成された上位レイヤプロトコル処理ユニットであって、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストは、第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される、上位レイヤプロトコル処理ユニットとを含む。
第3の態様、第3の態様の第1の可能な実施の形、第3の態様の第2の可能な実施の形、第3の態様の第3の可能な実施の形、および第3の態様の第4の可能な実施の形に関連して、第3の態様の第7の可能な実施の形において、装置は、並列プロトコル・スタック・インスタンス内に含まれるプロトコル・スタック・インスタンス内の親プロトコル・スタック・インスタンスを使用することによって、プロトコル・スタック・インスタンスのいずれにも関連付けられていないターゲットsocketを作成するように構成された作成モジュールであって、親プロトコル・スタック・インスタンスは、アプリケーションAPPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される、作成モジュールをさらに含む。
第3の態様、第3の態様の第1の可能な実施の形、第3の態様の第2の可能な実施の形、第3の態様の第3の可能な実施の形、および第3の態様の第4の可能な実施の形に関連して、第3の態様の第8の可能な実施の形において、装置は、アプリケーションAPPによって送られた第1のデータパケットを受け取るように構成された受取モジュールをさらに含み、第1の判定モジュールは、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定するようにさらに構成され、第2の判定モジュールは、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketが判定された後に、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するようにさらに構成され、装置は、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するように構成されたプロトコル処理モジュールをさらに含む。
第4の態様によれば、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置であって、並列プロトコル・スタック・インスタンスは、少なくとも、第1のプロトコル・スタック・インスタンスと第2のプロトコル・スタック・インスタンスとを含み、装置は、アプリケーションAPPによって送られた第1のデータパケットを受け取るように構成された受取モジュールと、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定するように構成された第1の判定モジュールと、ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けに従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するように構成された第2の判定モジュールと、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するように構成された第1の処理モジュールとを含み、ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けは、第1のプロトコル・スタック・インスタンスおよび第2のプロトコル・スタック・インスタンスが第2のデータパケットに対してプロトコル処理を実行する時に判定され、第1のプロトコル・スタック・インスタンスは、第2のデータパケットに対して下位レイヤプロトコル処理を実行し、第2のプロトコル・スタック・インスタンスは、第2のデータパケットに対して上位レイヤプロトコル処理を実行し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、第2のデータパケットに対する完全なプロトコル処理を合同で達成する、装置が提供される。
第4の態様の第1の可能な実施の形において、第1の処理モジュールは、ターゲットsocketのAPPデータ送出キューに第1のデータパケットを追加するように構成されたキューユニットと、ターゲットsocketのAPPデータ送出キューが、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、APPデータ送出キュー内の第1のデータパケットに対して下位レイヤプロトコル処理および上位レイヤプロトコル処理を別々に実行するように構成された処理ユニットであって、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストは、第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される、処理ユニットとを含む。
第4の態様の第2の可能な実施の形において、第2の判定モジュールは、類似性グラフに従って、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在するかどうかを判定するように構成された判断ユニットであって、類似性グラフは、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスを記録するのに使用される、判断ユニットと、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在する場合に、第2のプロトコル・スタック・インスタンスとしてターゲットsocketに関連付けられたプロトコル・スタック・インスタンスを判定するように構成された判定ユニットとを含む。
第4の態様の第2の可能な実施の形に関連して、第4の態様の第3の可能な実施の形において、装置は、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在しない場合に、ターゲットsocketの親プロトコル・スタック・インスタンスの受取キューに制御メッセージを追加するように構成されたキューモジュールであって、ターゲットsocketの親プロトコル・スタック・インスタンスは、ターゲットsocketを作成するのに使用されるプロトコル・スタック・インスタンスであり、制御メッセージは、第1のデータパケットに対してプロトコル処理を実行するように命令するのに使用される、キューモジュールと、親プロトコル・スタック・インスタンスの受取キュー内の制御メッセージが、ポーリングによって入手される時に、第1のデータパケットを入手するために制御メッセージを解析するように構成された解析モジュールと、親プロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するように構成された第2の処理モジュールと、類似性グラフ内に記録され、ターゲットsocketに関連付けられるプロトコル・スタック・インスタンスとして、親プロトコル・スタック・インスタンスを記録するように構成された更新モジュールとをさらに含む。
第4の態様、第4の態様の第1の可能な実施の形、第4の態様の第2の可能な実施の形、および第4の態様の第3の可能な実施の形に関連して、第4の態様の第4の可能な実施の形において、第1の判定モジュールは、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定するためにsocketリストを検索するように特に構成される。
第4の態様の第3の可能な実施の形に関連して、第4の態様の第5の可能な実施の形において、装置は、親プロトコル・スタック・インスタンスを使用することによって、並列プロトコル・スタック・インスタンス内に含まれるプロトコル・スタック・インスタンスのいずれにも関連付けられていないターゲットsocketを作成するように構成された作成モジュールであって、親プロトコル・スタック・インスタンスは、プロトコル・スタック・インスタンスから、APPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される、作成モジュールをさらに含む。
第4の態様、第4の態様の第1の可能な実施の形、第4の態様の第2の可能な実施の形、および第4の態様の第3の可能な実施の形に関連して、第4の態様の第6の可能な実施の形において、装置は、ネットワークアダプタが、プロトコル処理がそれに対して実行された第1のデータパケットを送るようにするために、プロトコル処理がそれに対して実行された第1のデータパケットをネットワークアダプタの送出キューに追加するように構成された送出モジュールをさらに含む。
本発明の実施形態において提供される方法および装置によれば、下位レイヤプロトコル処理が、第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して実行され、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketが判定された後に、関連付けられた第2のプロトコル・スタック・インスタンスが、ターゲットsocketを使用することによって判定され、上位レイヤプロトコル処理が、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して実行される。プロトコル処理内の下位レイヤプロトコル処理部分および上位レイヤプロトコル処理部分は、異なるプロトコルスタック・インスタンスによって別々に完了され、上位レイヤプロトコル処理を実行する第2のプロトコル・スタック・インスタンスは、ターゲットsocketを使用することによって判定され、したがって、APPによって指定されたプロトコル・スタック・インスタンスがネットワークアダプタによって指定されたプロトコル・スタック・インスタンスと衝突するのでデータパケットに対してプロトコル処理を実行することができないという技術的問題が、解決される。
本発明の実施形態または従来技術における技術的解決策をより明瞭に説明するために、以下で、実施形態または従来技術を説明するために必要な添付図面を短く説明する。明らかに、以下の説明の添付図面は、本発明のいくつかの実施形態を示し、当業者は、それでも、創作的労力を伴わずにこれらの添付図面から他の図面を導出することができる。
本発明の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法を示す概略流れ図である。 本発明の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する別の方法を示す概略流れ図である。 本発明の別の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法を示す概略流れ図である。 本発明の別の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する別の方法を示す概略流れ図である。 本発明の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置を示す概略構造図である。 本発明の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する別の装置を示す概略構造図である。 本発明の別の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置を示す概略構造図である。 本発明の別の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する別の装置を示す概略構造図である。 本発明のさらに別の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置を示す概略構造図である。 本発明のさらに別の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する別の装置を示す概略構造図である。
本発明の実施形態の目的、技術的解決策、および利点をより明瞭にするために、以下では、本発明の実施形態において添付図面を参照して本発明の実施形態における技術的解決策を明瞭かつ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態のすべてではなく一部である。創作的労力を伴わずに本発明の実施形態に基づいて当業者によって入手される他のすべての実施形態は、本発明の保護範囲に含まれなければならない。
図1は、本発明の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法の概略流れ図である。この実施形態において提供される方法は、並列プロトコル・スタック・インスタンスによって実行され、並列プロトコル・スタック・インスタンスは、少なくとも、第1のプロトコル・スタック・インスタンスおよび第2のプロトコル・スタック・インスタンスを含む。図1に示されているように、この方法は、以下を含む。
101 第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して下位レイヤプロトコル処理を実行する。
オプションで、ネットワークアダプタは、複数の物理キューを含み、第1のプロトコル・スタック・インスタンスに分配されるデータパケットは、第1のプロトコル・スタック・インスタンスに対応する物理キューから獲得され、下位レイヤプロトコル処理は、第1のプロトコル・スタック・インスタンスを使用することによって、データパケットに対して実行される。下位レイヤプロトコル処理は、解放型システム相互接続(Open System Interconnection、OSI)において規定されるレイヤ3またはレイヤ3より下位のレイヤでのプロトコル処理とすることができる。
102 下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定する。
オプションで、データパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを入手するために、socketリストが検索される。上位レイヤプロトコル処理は、OSIにおいて規定されるレイヤ4またはレイヤ4より上位のレイヤでのプロトコル処理とすることができる。socketリストは、データパケットのハッシュ値とsocketとの間の対応を記録するのに使用され、ハッシュ値は、データパケットの5個1組の情報とすることができ、したがって、socketリストは、データパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを入手するために、データパケットのハッシュ値に従って検索され得る。
103 ターゲットsocketに従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定する。
オプションで、プロトコル・スタック・インスタンスのいずれにも関連付けられていないターゲットsocketが、プロトコル・スタック・インスタンス内にあり、ターゲットsocketを当初に確立するのに使用される親プロトコル・スタック・インスタンスを使用することによって前もって作成され、たとえば、ターゲットsocketは、メモリの共有される区域内に作成され、親プロトコル・スタック・インスタンスは、APPによってランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される。第2のプロトコル・スタック・インスタンスは、並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとターゲットsocketとの間の類似性に従って、負荷平衡化ポリシを使用することによって、またはランダムな形で、プロトコル・スタック・インスタンス内で判定され、ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けが確立される。プロトコル・スタック・インスタンスとターゲットsocketとの間の類似性は、ネットワークアダプタによって各プロトコル・スタック・インスタンスにすでに分配されたデータパケット内で、上位レイヤプロトコル処理がターゲットsocketを使用することによってそれに対して実行される必要があるデータパケットの量を示すのに使用される。
104 ユーザデータを入手するために、ターゲットsocketおよびターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行する。
下位レイヤプロトコル処理および上位レイヤプロトコル処理は、データパケットに対する完全なプロトコル処理を合同で達成する。たとえば、下位レイヤプロトコル処理は、OSIにおいて規定されるレイヤ3またはレイヤ3より下位のレイヤにおいてデータパケットに対するプロトコル処理を完了し、上位レイヤプロトコル処理は、OSIにおいて規定されるレイヤ4またはレイヤ4より上位のレイヤにおいてデータパケットに対するプロトコル処理を完了し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、OSIにおいて規定される7つのレイヤで、データパケットに対するプロトコル処理を合同で達成する。
オプションで、下位レイヤプロトコル処理がそれに対して実行されたデータパケットは、ターゲットsocketの下位レイヤデータ受取キューに追加され、ターゲットsocketが、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、上位レイヤプロトコル処理は、データパケット内で搬送されるユーザデータを入手するために、第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤデータ受取キュー内のデータパケットに対して実行される。第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストは、第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される。
さらに、この実施形態において提供される並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法は、APPによって送られた第1のデータパケットを受け取り、これによって、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定し、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定し、さらに、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するのにさらに使用され得る。
この実施形態において、下位レイヤプロトコル処理は、第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して実行され、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketが判定された後に、関連付けられた第2のプロトコル・スタック・インスタンスが、ターゲットsocketを使用することによって判定され、上位レイヤプロトコル処理が、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して実行される。プロトコル処理内の下位レイヤプロトコル処理部分および上位レイヤプロトコル処理部分は、異なるプロトコルスタック・インスタンスによって別々に完了され、上位レイヤプロトコル処理を実行する第2のプロトコル・スタック・インスタンスは、ターゲットsocketを使用することによって判定され、したがって、APPによって指定されたプロトコル・スタック・インスタンスがネットワークアダプタによって指定されたプロトコル・スタック・インスタンスと衝突するのでデータパケットに対してプロトコル処理を実行することができないという技術的問題が、解決される。
図2は、本発明の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する別の方法の概略流れ図である。この実施形態において提供される方法は、並列プロトコル・スタック・インスタンスによって実行され、図2に示されているように、この方法は、以下を含む。
201 ネットワークアダプタ内にあり、第1のプロトコルスタック・インスタンスに対応する物理キューからデータパケットを獲得する。
オプションで、ネットワークアダプタ内の物理キューと並列プロトコルスタック・インスタンス内のプロトコル・スタック・インスタンスとの間に対応があり、物理キューは、プロトコル・スタック・インスタンスに一対一対応することができ、あるいは、複数の物理キューが、1つのプロトコル・スタック・インスタンスに対応し、これは、この実施形態において限定されない。ネットワークアダプタは、第1のプロトコル・スタック・インスタンスに対応する物理キューに、第1のプロトコル・スタック・インスタンスに分配されたデータパケットを追加し、第1のプロトコル・スタック・インスタンスは、その物理キューからデータパケットを獲得する。
202 第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して下位レイヤプロトコル処理を実行する。
オプションで、第1のプロトコルスタック・インスタンスが、ネットワークアダプタの物理キューからデータパケットを獲得した後に、下位レイヤプロトコル処理、たとえば、OSIにおいて規定されるレイヤ3またはレイヤ3より下位のレイヤでのプロトコル処理が、第1のプロトコル・スタック・インスタンスを使用することによってデータパケットに対して実行される。
203 下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定する。
オプションで、socketリストは、データパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを入手するために検索される。上位レイヤプロトコルは、OSIにおいて規定されたレイヤ4またはレイヤ4より上位のレイヤでのプロトコル処理とすることができる。
204 下位レイヤプロトコル処理がそれに対して実行されたデータパケットの量に従って、類似性グラフ内に記録される、ターゲットsocketと第1のプロトコル・スタック・インスタンスとの間の類似性を更新する。
プロトコル・スタック・インスタンスとターゲットsocketとの間の類似性は、ネットワークアダプタによってプロトコル・スタック・インスタンスにすでに分配されたデータパケット内の、上位レイヤプロトコル処理がターゲットsocketを使用することによってそれに対して実行される必要があるデータパケットの量を示すのに使用される。1つのsocketが、複数の接続を有することができ、複数の接続のトラフィックも、複数のプロトコル・スタック・インスタンスに分配される。socket aが、プロトコル・スタック・インスタンスAによって処理される必要があることが構成される場合に、プロトコル・スタック・インスタンスBが、socket aを使用することによって処理される必要があるデータパケットを受け取った後に、プロトコル・スタック・インスタンスBは、処理のためにそのデータパケットをプロトコル・スタック・インスタンスAに転送する必要がある。プロトコル・スタック・インスタンスBが、socket aを直接に処理することが構成される場合に、プロトコル・スタック・インスタンスBは、socket aを使用することによって処理される必要があるデータパケットをcacheから直接に入手することができ、明らかに、socket aを処理するためにプロトコル・スタック・インスタンスBを選択することは、より効率的である。したがって、socket aとプロトコル・スタック・インスタンスBとの間により大きなデータ類似性があると考えられ、その結果、socket aのトラフィックは、処理のためにプロトコル・スタック・インスタンスBに優先的に分配される。すなわち、socketとの最大の類似性を有するプロトコル・スタック・インスタンスが、そのsocketを処理するために選択され、その結果、最大のトラフィックが、転送される必要がなくなり、最大の効率が保証されるようになる。ターゲットsocketの類似性グラフは、並列プロトコルスタック・インスタンス内の各プロトコル・スタック・インスタンスとターゲットsocketとの間の類似性、ターゲットsocketに現在関連付けられている関連付けられたプロトコル・スタック・インスタンス、ターゲットsocketを作成するための親プロトコル・スタック・インスタンス、およびターゲットsocketに対応する事前にセットされた係数を記録するのに使用され、類似性配列、関連付けられたプロトコル・スタック・インスタンスの識別子、親プロトコル・スタック・インスタンスの識別子および事前にセットされた係数を含む。類似性配列は、並列プロトコルスタック・インスタンス内の各プロトコル・スタック・インスタンスとターゲットsocketとの間の類似性を示すのに使用される。
オプションで、第1のプロトコル・スタック・インスタンスが、データパケットに対して下位レイヤプロトコル処理を実行した後に、下位レイヤプロトコル処理がそれに対して実行された入手されたデータパケットの量が、カウントされ、カウントすることによって入手された量は、第1のプロトコル・スタック・インスタンスとターゲットsocketとの間の、類似性グラフの類似性配列内にある類似性に加算される。
たとえば、第1のプロトコル・スタック・インスタンスとターゲットsocketとの間の類似性が、類似性グラフの類似性配列内でXであり、下位レイヤプロトコル処理がそれに対して実行されたデータパケットの、カウントすることによって入手された量が、Yである場合に、第1のプロトコル・スタック・インスタンスとターゲットsocketとの間の類似性は、類似性グラフの類似性配列内でA=(X+Y)に更新される。
205 n×AがBより大きいかどうかを判定し、n×AがBより大きい場合には、ステップ206およびステップ207を実行し、あるいは、n×AがBより大きくはない場合には、ステップ208および209を実行する。
Aは、ターゲットsocketと第1のプロトコル・スタック・インスタンスとの間の類似性であり、Bは、ターゲットsocketと現在関連付けられているプロトコル・スタック・インスタンスとの間の類似性であり、nは、事前にセットされた係数である。nの値の範囲は、正の数であり、一般に、nの値は、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが変化する頻度を下げるために、1を超えない正の数である。逆に、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが変化する頻度を高める必要がある場合には、nの値を1より大きくすることができ、関連付けられたプロトコル・スタック・インスタンスは、類似性グラフ内に記録され、ターゲットsocketに現在関連付けられているプロトコル・スタック・インスタンスである。
206 n×AがBより大きい場合に、第1のプロトコル・スタック・インスタンスを、関連付けられたプロトコル・スタック・インスタンスとして類似性グラフ内に記録し、第1のプロトコル・スタック・インスタンスとターゲットsocketとの間の関連付けを確立する。
オプションで、n×AがBより大きい場合に、これは、類似性グラフ内の関連付けられたプロトコルスタックが、第1のプロトコルスタック・インスタンスに置換される必要があり、第1のプロトコル・スタック・インスタンスとターゲットsocketとの間の関連付けが確立されることを示す。
207 ユーザデータを入手するために、ターゲットsocketおよびターゲットsocketに関連付けられた第1のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行する。
オプションで、第1のプロトコル・スタック・インスタンスは、データパケット内で搬送されるユーザデータを入手するために、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行し続け、ユーザデータは、ターゲットsocketのアプリケーション受取キューに追加され、APPがキューをポーリングする時に、ユーザデータは、キューから獲得される。
208 n×AがBより大きくはない場合に、ターゲットsocketに現在関連付けられているプロトコル・スタック・インスタンスが、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスとして使用されると判定する。
209 ユーザデータを入手するために、ターゲットsocketおよびターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行する。
さらに、上位レイヤプロトコル処理がステップ207およびステップ209において実行された後に、ユーザデータは、APPに送られる。
オプションで、下位レイヤプロトコル処理がそれに対して実行されたデータパケットは、ターゲットsocketの下位レイヤデータ受取キューに追加される。ターゲットsocketが、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、上位レイヤプロトコル処理は、第2のプロトコル・スタック・インスタンスを使用することによって下位レイヤデータ受取キュー内のデータパケットに対して実行され、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストは、第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される。
下位レイヤプロトコル処理および上位レイヤプロトコル処理が、データパケットに対する完全なプロトコル処理を合同で達成することに留意されたい。たとえば、下位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ3またはレイヤ3より下位のレイヤでの、データパケットに対するプロトコル処理を完了し、上位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ4またはレイヤ4より上位のレイヤでのプロトコル処理を完了し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、OSIにおいて規定された7つのレイヤでの、データパケットに対するプロトコル処理を合同で達成する。
この実施形態において、下位レイヤプロトコル処理は、第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して実行され、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketが判定された後に、関連付けられた第2のプロトコル・スタック・インスタンスが、ターゲットsocketを使用することによって判定され、上位レイヤプロトコル処理は、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して実行される。プロトコル処理内の下位レイヤプロトコル処理部分および上位レイヤプロトコル処理部分は、異なるプロトコルスタック・インスタンスによって別々に完了され、上位レイヤプロトコル処理を実行する第2のプロトコル・スタック・インスタンスは、ターゲットsocketを使用することによって判定され、したがって、APPによって指定されたプロトコル・スタック・インスタンスがネットワークアダプタによって指定されたプロトコル・スタック・インスタンスと衝突するのでデータパケットに対してプロトコル処理を実行することができないという技術的問題が、解決される。
図3は、本発明の別の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法の概略流れ図である。この実施形態において提供される方法は、並列プロトコル・スタック・インスタンスによって実行され、並列プロトコル・スタック・インスタンスは、少なくとも、第1のプロトコル・スタック・インスタンスおよび第2のプロトコル・スタック・インスタンスを含む。図3に示されているように、この方法は、以下を含む。
301 APPによって送られた第1のデータパケットを受け取る。
302 第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定する。
オプションで、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを入手するために、socketリストが検索される。ターゲットsocketは、プロトコル・スタック・インスタンス内の親プロトコル・スタック・インスタンスを使用することによって作成され、プロトコル・スタック・インスタンスのいずれにも関連付けられていないsocketであり、親プロトコル・スタック・インスタンスは、APPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される。
303 ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けに従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定する。
ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けは、第1のプロトコル・スタック・インスタンスおよび第2のプロトコル・スタック・インスタンスが第2のデータパケットに対してプロトコル処理を実行する時に判定され、第1のプロトコル・スタック・インスタンスは、第2のデータパケットに対して下位レイヤプロトコル処理を実行し、第2のプロトコル・スタック・インスタンスは、第2のデータパケットに対して上位レイヤプロトコル処理を実行し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、第2のデータパケットに対する完全なプロトコル処理を合同で達成する。
304 ターゲットsocketおよびターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行する。
下位レイヤプロトコル処理および上位レイヤプロトコル処理が、データパケットに対する完全なプロトコル処理を合同で達成することに留意されたい。たとえば、下位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ3またはレイヤ3より下位のレイヤでの、データパケットに対するプロトコル処理を完了し、上位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ4またはレイヤ4より上位のレイヤでのプロトコル処理を完了し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、OSIにおいて規定された7つのレイヤでの、データパケットに対するプロトコル処理を合同で達成する。
この実施形態において第2のプロトコル・スタック・インスタンスを判定する方法に関して、前述の実施形態において第2のプロトコル・スタック・インスタンスを判定する方法を参照することができ、詳細をこの実施形態においてもう一度説明することはしない。
この実施形態において、下位レイヤプロトコル処理は、第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して実行され、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketが判定された後に、関連付けられた第2のプロトコル・スタック・インスタンスが、ターゲットsocketを使用することによって判定され、上位レイヤプロトコル処理は、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して実行される。プロトコル処理内の下位レイヤプロトコル処理部分および上位レイヤプロトコル処理部分は、異なるプロトコルスタック・インスタンスによって別々に完了され、上位レイヤプロトコル処理を実行する第2のプロトコル・スタック・インスタンスは、ターゲットsocketを使用することによって判定され、したがって、APPによって指定されたプロトコル・スタック・インスタンスがネットワークアダプタによって指定されたプロトコル・スタック・インスタンスと衝突するのでデータパケットに対してプロトコル処理を実行することができないという技術的問題が、解決される。
図4は、本発明の別の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する別の方法の概略流れ図である。この実施形態において提供される方法は、並列プロトコル・スタック・インスタンスによって実行され、並列プロトコル・スタック・インスタンスは、少なくとも、第1のプロトコル・スタック・インスタンスおよび第2のプロトコル・スタック・インスタンスを含む。図4に示されているように、この方法は、以下を含む。
401 APPによって送られた第1のデータパケットを受け取る。
402 第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定する。
オプションで、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定するために、socketリストが検索される。
さらに、ステップ402の前に、この方法は、並列プロトコル・スタック・インスタンス内の、ターゲットsocketを当初に確立するのに使用される親プロトコル・スタック・インスタンスを使用することによって、並行プロトコル・スタック・インスタンス内に含まれるプロトコル・スタック・インスタンスのいずれにも関連付けられていないターゲットsocketを作成するステップであって、親プロトコル・スタック・インスタンスは、APPによって、並列プロトコル・スタック・インスタンス内に含まれるプロトコル・スタック・インスタンスから、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される、作成するステップを含む。
403 類似性グラフに従って、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在するかどうかを判定し、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在する場合には、ステップ404およびステップ405を実行し、あるいは、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在しない場合には、ステップ406からステップ408までを実行する。
類似性グラフは、ターゲットsocketに現在関連付けられているプロトコル・スタック・インスタンスを記録するのに使用され、類似性グラフ内に記録される関連付けられたプロトコル・スタック・インスタンスは、ターゲットsocketに現在関連付けられているプロトコル・スタック・インスタンスである。関連付けは、プロトコル・スタック・インスタンス内で、並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとターゲットsocketとの間の類似性に従って判定され、その後、ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けが、確立される。プロトコル・スタック・インスタンスとターゲットsocketとの間の類似性は、ネットワークアダプタによってプロトコル・スタック・インスタンスにすでに分配されたデータパケット内の、上位レイヤプロトコル処理がターゲットsocketを使用することによってそれに対して実行される必要があるデータパケットの量を示すのに使用される。
404 ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在する場合に、第1のデータパケットをターゲットsocketのAPPデータ送出キューに追加する。
オプションで、ターゲットsocketは、APPデータ送出キュー、APPデータ受取キュー、および下位レイヤデータ受取キューを含む。APPデータ送出キューは、APPによって送られたデータパケットを記憶するのに使用され、APPデータ受取キューは、APPに送られたデータパケットを記憶するのに使用され、下位レイヤデータ受取キューは、ネットワークアダプタによって分配されたデータパケットを記憶するのに使用される。
405 ターゲットsocketのAPPデータ送出キューが、ポーリングによって入手される時に、ターゲットsocketおよび関連付けられた第2のプロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行する。
オプションで、ターゲットsocketのAPPデータ送出キューが、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理および上位レイヤプロトコル処理が、APPデータ送出キュー内の第1のデータパケットに対して別々に実行される。
第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストは、第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される。
下位レイヤプロトコル処理および上位レイヤプロトコル処理が、データパケットに対する完全なプロトコル処理を合同で達成することに留意されたい。たとえば、下位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ3またはレイヤ3より下位のレイヤでの、データパケットに対するプロトコル処理を完了し、上位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ4またはレイヤ4より上位のレイヤでのプロトコル処理を完了し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、OSIにおいて規定された7つのレイヤでの、データパケットに対するプロトコル処理を合同で達成する。
406 ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在しない場合に、ターゲットsocketの親プロトコル・スタック・インスタンスの受取キューに制御メッセージを追加する。
ターゲットsocketの親プロトコル・スタック・インスタンスは、ターゲットsocketを作成するのに使用されるプロトコル・スタック・インスタンスであり、制御メッセージは、第1のデータパケットに対してプロトコル処理を実行するように命令するのに使用される。親プロトコル・スタック・インスタンスの受取キューは、親プロトコルスタック・インスタンスを使用することによって処理される必要があるデータパケットを記憶し、または制御メッセージを記憶するのに使用される。
407 親プロトコル・スタック・インスタンスの受取キュー内の制御メッセージが、ポーリングによって入手される時に、第1のデータパケットを入手するために制御メッセージを解析する。
オプションで、ポーリングが、プロトコルスタック・インスタンスの受取キューに対して実行され、親プロトコルスタックの受取キューが、ポーリングによって入手される時には、制御メッセージが、そのキューから獲得され、制御メッセージは、第1のデータパケットを入手するために解析される。
408 親プロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行する。
409 ネットワークアダプタが、プロトコル処理がそれに対して実行された第1のデータパケットを送るようにするために、プロトコル処理がそれに対して実行された第1のデータパケットをネットワークアダプタの送出キューに追加する。
この実施形態において、下位レイヤプロトコル処理は、第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して実行され、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketが判定された後に、関連付けられた第2のプロトコル・スタック・インスタンスが、ターゲットsocketを使用することによって判定され、上位レイヤプロトコル処理は、ユーザデータを入手するために、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して実行される。プロトコル処理内の下位レイヤプロトコル処理部分および上位レイヤプロトコル処理部分は、異なるプロトコルスタック・インスタンスによって別々に完了され、上位レイヤプロトコル処理を実行する第2のプロトコル・スタック・インスタンスは、ターゲットsocketを使用することによって判定され、したがって、APPによって指定されたプロトコル・スタック・インスタンスがネットワークアダプタによって指定されたプロトコル・スタック・インスタンスと衝突するのでデータパケットに対してプロトコル処理を実行することができないという技術的問題が、解決される。
図5は、本発明の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置の概略構造図であり、並列プロトコル・スタック・インスタンスは、少なくとも、第1のプロトコル・スタック・インスタンスおよび第2のプロトコル・スタック・インスタンスを含む。図5に示されているように、この装置は、下位レイヤプロトコル処理モジュール51と、第1の判定モジュール52と、第2の判定モジュール55と、上位レイヤプロトコル処理モジュール53とを含む。
下位レイヤ処理モジュール51は、第1のプロトコル・スタック・インスタンスを使用することによって、ネットワークアダプタによって第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して下位レイヤプロトコル処理を実行するように構成される。
第1の判定モジュール52は、下位レイヤプロトコル処理モジュール51に接続され、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定するように構成される。
オプションで、第1の判定モジュール52は、データパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定するためにsocketリストを検索するように特に構成される。
第2の判定モジュール55は、第1の判定モジュール52に接続され、ターゲットsocketに従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するように構成される。
オプションで、第2の判定モジュール55は、類似性グラフ内にあり、ターゲットsocketと並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するように特に構成され、ターゲットsocketと各プロトコル・スタック・インスタンスとの間の類似性は、ネットワークアダプタによってプロトコル・スタック・インスタンスにすでに分配されたデータパケット内の、上位レイヤプロトコル処理がターゲットsocketを使用することによってそれに対して実行される必要があるデータパケットの量を示すのに使用される。
上位レイヤプロトコル処理モジュール53は、第2の判定モジュール55に接続され、ターゲットsocketおよびターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するように構成される。
下位レイヤプロトコル処理モジュール51および上位レイヤプロトコル処理モジュール53は、データパケットに対して完全なプロトコル処理を合同で達成する。
下位レイヤプロトコル処理および上位レイヤプロトコル処理が、データパケットに対する完全なプロトコル処理を合同で達成することに留意されたい。たとえば、下位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ3またはレイヤ3より下位のレイヤでの、データパケットに対するプロトコル処理を完了し、上位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ4またはレイヤ4より上位のレイヤでのプロトコル処理を完了し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、OSIにおいて規定された7つのレイヤでの、データパケットのプロトコル処理を合同で達成する。
オプションで、上位レイヤプロトコル処理モジュール53は、ターゲットsocketの下位レイヤデータ受取キューに、下位レイヤプロトコル処理がそれに対して実行されたデータパケットを追加し、ターゲットsocketが、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤデータ受取キュー内のデータパケットに対して上位レイヤプロトコル処理を実行するように特に構成され、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストは、第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される。
この実施形態において、下位レイヤプロトコル処理は、第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して実行され、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketが判定された後に、関連付けられた第2のプロトコル・スタック・インスタンスが、ターゲットsocketを使用することによって判定され、上位レイヤプロトコル処理は、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して実行される。プロトコル処理内の下位レイヤプロトコル処理部分および上位レイヤプロトコル処理部分は、異なるプロトコルスタック・インスタンスによって別々に完了され、上位レイヤプロトコル処理を実行する第2のプロトコル・スタック・インスタンスは、ターゲットsocketを使用することによって判定され、したがって、APPによって指定されたプロトコル・スタック・インスタンスがネットワークアダプタによって指定されたプロトコル・スタック・インスタンスと衝突するのでデータパケットに対してプロトコル処理を実行することができないという技術的問題が、解決される。
図6は、本発明の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する別の装置を示す概略構造図であり、並列プロトコル・スタック・インスタンスは、少なくとも、第1のプロトコル・スタック・インスタンスおよび第2のプロトコル・スタック・インスタンスを含む。図6に示されているように、前述の実施形態に基づいて、この実施形態における並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置は、
第1の判定モジュール52に接続され、並列プロトコル・スタック・インスタンス内に含まれるプロトコル・スタック・インスタンス内の親プロトコル・スタック・インスタンスを使用することによって、プロトコル・スタック・インスタンスのいずれにも関連付けられていないターゲットsocketを作成するように構成された作成モジュール54
をさらに含む。
親プロトコル・スタック・インスタンスは、APPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される。
さらに、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置は、
第1の判定モジュール52に接続され、下位レイヤプロトコル処理がそれに対して実行されたデータパケットの量に従って、類似性グラフ内に記録される、ターゲットsocketと第1のプロトコル・スタック・インスタンスとの間の類似性を更新するように構成された更新モジュール57と、
更新モジュール57および第2の判定モジュール55に接続され、n×AがBより大きいかどうかを判定するように構成された判断モジュール58であって、Aは、ターゲットsocketと第1のプロトコル・スタック・インスタンスとの間の類似性であり、Bは、類似性グラフ内に記録される、ターゲットsocketと関連付けられたプロトコル・スタック・インスタンスとの間の類似性であり、nは、事前にセットされた係数であり、nの値は、正の数であり、nの特定の値に関して、並列プロトコル・スタック・インスタンスを実行するCPUの処理性能を参照することができ、CPUの処理性能が優秀である場合には、nの値を対応して相対的に小さくすることができ、あるいは、CPUの処理性能が優秀ではない場合には、nの値は、相対的に大きく、類似性グラフ内に記録された関連付けられたプロトコル・スタック・インスタンスは、ターゲットsocketに現在関連付けられているプロトコル・スタック・インスタンスである、判断モジュール58と
をさらに含む。
これに基づいて、第2の判定モジュール55は、第1の判定ユニット551と第2の判定ユニット552とをさらに含む。
第1の判定ユニット551は、n×AがBより大きくはない場合に、類似性グラフ内に記録され、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスとして使用されると判定するように構成される。
第2の判定ユニット552は、n×AがBより大きい場合に、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスとして第1のプロトコル・スタック・インスタンスを判定し、類似性グラフ内に記録され、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスを第1のプロトコル・スタック・インスタンスに更新するように構成される。
さらに、上位レイヤプロトコル処理モジュール53は、
ターゲットsocketの下位レイヤデータ受取キューに、下位レイヤプロトコル処理がそれに対して実行されたデータパケットを追加するように構成されたキューユニット531と、
キューユニット531に接続され、ターゲットsocketが、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤデータ受取キュー内のデータパケットに対して上位レイヤプロトコル処理を実行するように構成された上位レイヤプロトコル処理ユニット532であって、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストは、第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される、上位レイヤプロトコル処理ユニット532と
を含む。
この実施形態において提供される並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置は、並列プロトコルスタック内に配置され得る。ある実施可能な形として、下位レイヤプロトコル処理モジュール51、第1の判定モジュール52、第2の判定モジュール55、更新モジュール57、および判断モジュール58は、第1のプロトコル・スタック・インスタンス内に配置され得、上位レイヤプロトコル処理モジュール53内のキューユニット531は、第1のプロトコル・スタック・インスタンス内に配置され得、上位レイヤプロトコル処理モジュール53内の上位レイヤプロトコル処理ユニット532は、第2のプロトコル・スタック・インスタンス内に配置され得る。
さらに、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置は、受取モジュール61とプロトコル処理モジュール62とをさらに含む。
受取モジュール61は、第1の判定モジュール52に接続され、アプリケーションAPPによって送られた第1のデータパケットを受け取るように構成される。
第1の判定モジュール52は、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットソケットsocketを判定するようにさらに構成される。
第2の判定モジュール55は、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットソケットsocketが判定された後に、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するようにさらに構成される。
プロトコル処理モジュール62は、第2の判定モジュール55に接続され、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するように構成される。
下位レイヤプロトコル処理および上位レイヤプロトコル処理が、データパケットに対する完全なプロトコル処理を合同で達成することに留意されたい。たとえば、下位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ3またはレイヤ3より下位のレイヤでの、データパケットに対するプロトコル処理を完了し、上位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ4またはレイヤ4より上位のレイヤでのプロトコル処理を完了し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、OSIにおいて規定された7つのレイヤでの、データパケットに対するプロトコル処理を合同で達成する。
この実施形態において提供される並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置の機能モジュールは、図1および図2に示された並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法の手順を実行するように構成され得る。その特定の動作原理をもう一度詳細に説明することはせず、詳細については、方法実施形態の説明を参照されたい。
この実施形態において、下位レイヤプロトコル処理は、第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して実行され、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketが判定された後に、関連付けられた第2のプロトコル・スタック・インスタンスが、ターゲットsocketを使用することによって判定され、上位レイヤプロトコル処理は、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して実行される。プロトコル処理内の下位レイヤプロトコル処理部分および上位レイヤプロトコル処理部分は、異なるプロトコルスタック・インスタンスによって別々に完了され、上位レイヤプロトコル処理を実行する第2のプロトコル・スタック・インスタンスは、ターゲットsocketを使用することによって判定され、したがって、APPによって指定されたプロトコル・スタック・インスタンスがネットワークアダプタによって指定されたプロトコル・スタック・インスタンスと衝突するのでデータパケットに対してプロトコル処理を実行することができないという技術的問題が、解決される。
図7は、本発明の別の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置の概略構造図であり、並列プロトコル・スタック・インスタンスは、少なくとも、第1のプロトコル・スタック・インスタンスおよび第2のプロトコル・スタック・インスタンスを含む。図7に示されているように、この装置は、受取モジュール71と、第1の判定モジュール72と、第1の処理モジュール73と、第2の判定モジュール70とを含む。
受取モジュール71は、アプリケーションAPPによって送られた第1のデータパケットを受け取るように構成される。
第1の判定モジュール72は、受取モジュール71に接続され、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定するように構成される。
オプションで、第1の判定モジュール72は、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを入手するためにsocketリストを検索するように特に構成される。
第2の判定モジュール70は、第1の判定モジュール72に接続され、ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けに従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するように構成される。
第1の処理モジュール73は、第2の判定モジュール70に接続され、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するように構成される。
ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けは、第1のプロトコル・スタック・インスタンスおよび第2のプロトコル・スタック・インスタンスが第2のデータパケットに対してプロトコル処理を実行する時に判定され、第1のプロトコル・スタック・インスタンスは、第2のデータパケットに対して下位レイヤプロトコル処理を実行し、第2のプロトコル・スタック・インスタンスは、第2のデータパケットに対して上位レイヤプロトコル処理を実行し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、第2のデータパケットに対する完全なプロトコル処理を合同で達成する。
下位レイヤプロトコル処理および上位レイヤプロトコル処理が、データパケットに対する完全なプロトコル処理を合同で達成することに留意されたい。たとえば、下位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ3またはレイヤ3より下位のレイヤでの、データパケットに対するプロトコル処理を完了し、上位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ4またはレイヤ4より上位のレイヤでのプロトコル処理を完了し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、OSIにおいて規定された7つのレイヤでの、データパケットに対するプロトコル処理を合同で達成する。
この実施形態において、下位レイヤプロトコル処理は、第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して実行され、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketが判定された後に、関連付けられた第2のプロトコル・スタック・インスタンスが、ターゲットsocketを使用することによって判定され、上位レイヤプロトコル処理は、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して実行される。プロトコル処理内の下位レイヤプロトコル処理部分および上位レイヤプロトコル処理部分は、異なるプロトコルスタック・インスタンスによって別々に完了され、上位レイヤプロトコル処理を実行する第2のプロトコル・スタック・インスタンスは、ターゲットsocketを使用することによって判定され、したがって、APPによって指定されたプロトコル・スタック・インスタンスがネットワークアダプタによって指定されたプロトコル・スタック・インスタンスと衝突するのでデータパケットに対してプロトコル処理を実行することができないという技術的問題が、解決される。
図8は、本発明の別の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する別の装置の概略構造図であり、並列プロトコル・スタック・インスタンスは、少なくとも、第1のプロトコル・スタック・インスタンスおよび第2のプロトコル・スタック・インスタンスを含む。図8に示されているように、前述の実施形態に基づいて、この実施形態における並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置内の第2の判定モジュール70は、
類似性グラフに従って、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在するかどうかを判定するように構成された判断ユニット701であって、
類似性グラフは、ターゲットsocketに現在関連付けられているプロトコル・スタック・インスタンスを記録するのに使用され、類似性グラフ内の関連付けられたプロトコル・スタック・インスタンスは、ターゲットsocketに現在関連付けられているプロトコル・スタック・インスタンスを示すのに使用される、判断ユニット701と、
判断ユニット701に接続され、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在する場合に、第2のプロトコル・スタック・インスタンスとしてターゲットsocketに関連付けられたプロトコル・スタック・インスタンスを判定するように構成された判定ユニット702と
をさらに含む。
さらに、第1の処理モジュール73は、キューユニット731と処理ユニット732とを含む。
キューユニット731は、ターゲットsocketのAPPデータ送出キューに第1のデータパケットを追加するように構成される。
処理ユニット732は、キューユニット731に接続され、ターゲットsocketのAPPデータ送出キューが、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、APPデータ送出キュー内の第1のデータパケットに対して下位レイヤプロトコル処理および上位レイヤプロトコル処理を別々に実行するように構成され、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストは、第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される。
さらに、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置は、作成モジュール78と、キューモジュール75と、解析モジュール76と、第2の処理モジュール77と、更新モジュール80とをさらに含む。
作成モジュール78は、第1の判定モジュール72に接続され、親プロトコル・スタック・インスタンスを使用することによって、並列プロトコル・スタック・インスタンス内に含まれるプロトコル・スタック・インスタンスのいずれにも関連付けられていないターゲットsocketを作成するように構成される。
親プロトコル・スタック・インスタンスは、プロトコル・スタック・インスタンスから、APPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される。
キューモジュール75は、第1の判定モジュール72に接続され、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在しない場合に、ターゲットsocketの親プロトコル・スタック・インスタンスの受取キューに制御メッセージを追加するように構成され、ターゲットsocketの親プロトコル・スタック・インスタンスは、ターゲットsocketを作成するのに使用されるプロトコル・スタック・インスタンスであり、制御メッセージは、第1のデータパケットに対してプロトコル処理を実行するように命令するのに使用される。
解析モジュール76は、キューモジュール75に接続され、親プロトコル・スタック・インスタンスの受取キュー内の制御メッセージが、ポーリングによって入手される時に、第1のデータパケットを入手するために制御メッセージを解析するように構成される。
第2の処理モジュール77は、解析モジュール76に接続され、親プロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するように構成される。
下位レイヤプロトコル処理および上位レイヤプロトコル処理が、データパケットに対する完全なプロトコル処理を合同で達成することに留意されたい。たとえば、下位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ3またはレイヤ3より下位のレイヤでの、データパケットに対するプロトコル処理を完了し、上位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ4またはレイヤ4より上位のレイヤでのプロトコル処理を完了し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、OSIにおいて規定された7つのレイヤでの、データパケットに対するプロトコル処理を合同で達成する。すなわち、上位レイヤプロトコル処理に対応するネットワークレベルは、下位レベルプロトコル処理に対応するネットワークレベルより上位である。
更新モジュール74は、第2の処理モジュール77に接続され、類似性グラフ内に記録され、ターゲットsocketに関連付けられるプロトコル・スタック・インスタンスとして、親プロトコル・スタック・インスタンスを記録するように構成される。
さらに、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置は、
第2の処理モジュール77および第1の処理モジュール73に接続され、ネットワークアダプタが、プロトコル処理がそれに対して実行された第1のデータパケットを送るようにするために、プロトコル処理がそれに対して実行された第1のデータパケットをネットワークアダプタの送出キューに追加するように構成された送出モジュール79
をさらに含む。
この実施形態において提供される並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置の機能モジュールは、図3および図4に示された並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法の手順を実行するように構成され得る。その特定の動作原理をもう一度詳細に説明することはせず、詳細については、方法実施形態の説明を参照されたい。
この実施形態において、下位レイヤプロトコル処理は、第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して実行され、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketが判定された後に、関連付けられた第2のプロトコル・スタック・インスタンスが、ターゲットsocketを使用することによって判定され、上位レイヤプロトコル処理は、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して実行される。プロトコル処理内の下位レイヤプロトコル処理部分および上位レイヤプロトコル処理部分は、異なるプロトコルスタック・インスタンスによって別々に完了され、上位レイヤプロトコル処理を実行する第2のプロトコル・スタック・インスタンスは、ターゲットsocketを使用することによって判定され、したがって、APPによって指定されたプロトコル・スタック・インスタンスがネットワークアダプタによって指定されたプロトコル・スタック・インスタンスと衝突するのでデータパケットに対してプロトコル処理を実行することができないという技術的問題が、解決される。
図9は、本発明のさらに別の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置を示す概略構造図である。図9に示されているように、この実施形態における装置は、メモリ81と、通信インターフェース82と、プロセッサ83とを含むことができる。
メモリ81は、プログラムを記憶するように構成される。具体的には、プログラムは、プログラムコードを含むことができ、プログラムコードは、コンピュータ動作命令を含む。メモリ81は、高速RAMメモリを含むことができ、不揮発性メモリ(non-volatile memory)、たとえば少なくとも1つの磁気ディスクストレージをさらに含むことができる。
通信インターフェース82は、第1のプロトコル・スタック・インスタンスに分配されるデータパケットを受け取るように構成される。
プロセッサ83は、第1のプロトコル・スタック・インスタンスを使用することによって、ネットワークアダプタによって第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して下位レイヤプロトコル処理を実行し、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットソケットsocketを判定し、ターゲットsocketに従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定し、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために、メモリ81内に記憶されたプログラムを実行するように構成され、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、データパケットに対する完全なプロトコル処理を合同で達成する。
オプションで、プロセッサ83は、ユーザデータを入手するために、プロトコル・スタック・インスタンス内にあり、ターゲットsocketを当初に確立するのに使用される、親プロトコル・スタック・インスタンスを使用することによって、プロトコル・スタック・インスタンスのいずれにも関連付けられていないターゲットsocketを作成し(親プロトコル・スタック・インスタンスは、APPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される)、第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して下位レイヤプロトコル処理を実行し、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定し、並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとターゲットsocketとの間の類似性に従って、プロトコル・スタック・インスタンス内の第2のプロトコル・スタック・インスタンスを判定し(プロトコル・スタック・インスタンスとターゲットsocketとの間の類似性は、ネットワークアダプタによってプロトコル・スタック・インスタンスにすでに分配されたデータパケット内の、上位レイヤプロトコル処理がターゲットsocketを使用することによってそれに対して実行される必要があるデータパケットの量を示すのに使用される)、ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けを作成し、ターゲットsocketおよびターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するように特に構成される。
下位レイヤプロトコル処理および上位レイヤプロトコル処理が、データパケットに対する完全なプロトコル処理を合同で達成することに留意されたい。たとえば、下位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ3またはレイヤ3より下位のレイヤでの、データパケットに対するプロトコル処理を完了し、上位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ4またはレイヤ4より上位のレイヤでのプロトコル処理を完了し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、OSIにおいて規定された7つのレイヤでの、データパケットに対するプロトコル処理を合同で達成する。
この実施形態において提供される並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置の機能モジュールは、図1および図2に示された並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法の手順を実行するように構成され得る。その特定の動作原理をもう一度詳細に説明することはせず、詳細については、方法実施形態の説明を参照されたい。
この実施形態において、下位レイヤプロトコル処理は、第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して実行され、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketが判定された後に、関連付けられた第2のプロトコル・スタック・インスタンスが、ターゲットsocketを使用することによって判定され、上位レイヤプロトコル処理は、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して実行される。プロトコル処理内の下位レイヤプロトコル処理部分および上位レイヤプロトコル処理部分は、異なるプロトコルスタック・インスタンスによって別々に完了され、上位レイヤプロトコル処理を実行する第2のプロトコル・スタック・インスタンスは、ターゲットsocketを使用することによって判定され、したがって、APPによって指定されたプロトコル・スタック・インスタンスがネットワークアダプタによって指定されたプロトコル・スタック・インスタンスと衝突するのでデータパケットに対してプロトコル処理を実行することができないという技術的問題が、解決される。
図10は、本発明のさらに別の実施形態による、並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する別の装置の概略構造図である。図10に示されているように、この実施形態における装置は、メモリ91と、通信インターフェース92と、プロセッサ93とを含むことができる。
メモリ91は、プログラムを記憶するように構成される。具体的には、プログラムは、プログラムコードを含むことができ、プログラムコードは、コンピュータ動作命令を含む。メモリ91は、高速RAMメモリを含むことができ、不揮発性メモリ(non-volatile memory)、たとえば少なくとも1つの磁気ディスクストレージをさらに含むことができる。
通信インターフェース92は、APPによって送られた第1のデータパケットを受け取るように構成される。
プロセッサ93は、アプリケーションAPPによって送られた第1のデータパケットを受け取り、第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定し、ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けに従って、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定し、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するために、メモリ91内に記憶されたプログラムを実行するように構成され、ターゲットsocketと第2のプロトコル・スタック・インスタンスとの間の関連付けは、第1のプロトコル・スタック・インスタンスおよび第2のプロトコル・スタック・インスタンスが第2のデータパケットに対してプロトコル処理を実行する時に判定され、第1のプロトコル・スタック・インスタンスは、第2のデータパケットに対して下位レイヤプロトコル処理を実行し、第2のプロトコル・スタック・インスタンスは、第2のデータパケットに対して上位レイヤプロトコル処理を実行し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、第2のデータパケットに対する完全なプロトコル処理を合同で達成する。
オプションで、プロセッサ93は、類似性グラフに従って、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在するかどうかを判定し、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在する場合に、ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定し、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行し、たとえば、ターゲットsocketのAPPデータ送出キューに第1のデータパケットを追加し、ターゲットsocketのAPPデータ送出キューが、第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、APPデータ送出キュー内の第1のデータパケットに対して下位レイヤプロトコル処理および上位レイヤプロトコル処理を別々に実行し(第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストは、第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される)、ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在しない場合に、ターゲットsocketの親プロトコル・スタック・インスタンスの受取キューに制御メッセージを追加し(ターゲットsocketの親プロトコル・スタック・インスタンスは、ターゲットsocketを作成するのに使用されるプロトコル・スタック・インスタンスであり、制御メッセージは、第1のデータパケットに対してプロトコル処理を実行するように命令するのに使用される)、受取キュー内の制御メッセージが、ポーリングによって入手される時に、第1のデータパケットを入手するために制御メッセージを解析し、親プロトコル・スタック・インスタンスを使用することによって、第1のデータパケットに対してプロトコル処理を実行するように特に構成される。
下位レイヤプロトコル処理および上位レイヤプロトコル処理が、データパケットに対する完全なプロトコル処理を合同で達成することに留意されたい。たとえば、下位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ3またはレイヤ3より下位のレイヤでの、データパケットに対するプロトコル処理を完了し、上位レイヤプロトコル処理は、OSIにおいて規定されたレイヤ4またはレイヤ4より上位のレイヤでのプロトコル処理を完了し、下位レイヤプロトコル処理および上位レイヤプロトコル処理は、OSIにおいて規定された7つのレイヤでの、データパケットに対するプロトコル処理を合同で達成する。
さらに、通信インターフェース92は、ネットワークアダプタが、プロトコル処理がそれに対して実行された第1のデータパケットを送るようにするために、プロトコル処理がそれに対して実行された第1のデータパケットをネットワークアダプタの送出キューに追加するようにさらに構成される。
この実施形態において提供される並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置の機能モジュールは、図3および図4に示された並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法の手順を実行するように構成され得る。その特定の動作原理をもう一度詳細に説明することはせず、詳細については、方法実施形態の説明を参照されたい。
この実施形態において、下位レイヤプロトコル処理は、第1のプロトコル・スタック・インスタンスを使用することによって、第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して実行され、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketが判定された後に、関連付けられた第2のプロトコル・スタック・インスタンスが、ターゲットsocketを使用することによって判定され、上位レイヤプロトコル処理は、ターゲットsocketおよび第2のプロトコル・スタック・インスタンスを使用することによって、下位レイヤプロトコル処理がそれに対して実行されたデータパケットに対して実行される。プロトコル処理内の下位レイヤプロトコル処理部分および上位レイヤプロトコル処理部分は、異なるプロトコルスタック・インスタンスによって別々に完了され、上位レイヤプロトコル処理を実行する第2のプロトコル・スタック・インスタンスは、ターゲットsocketを使用することによって判定され、したがって、APPによって指定されたプロトコル・スタック・インスタンスがネットワークアダプタによって指定されたプロトコル・スタック・インスタンスと衝突するのでデータパケットに対してプロトコル処理を実行することができないという技術的問題が、解決される。
当業者は、方法実施形態のステップのすべてまたは一部が、プログラム命令関連ハードウェアによって実施され得ることを理解することができる。プログラムは、コンピュータ可読媒体内に記憶され得る。プログラムが走行する時に、方法実施形態のステップが実行される。前述の記憶媒体は、ROM、RAM、磁気ディスク、または光ディスクなど、プログラムコードを記憶することのできるすべての媒体を含む。
最後に、前述の実施形態が、単に、本発明を限定することではなく、本発明の技術的解決策を説明することを意図されていることに留意されたい。本発明が、前述の実施形態を参照して詳細に説明されたが、当業者は、本発明の実施形態の技術的解決策の範囲から逸脱することなく、前述の実施形態において説明された技術的解決策に対する変更を行い、あるいは、そのいくつかのまたはすべての技術的特徴に対する同等の置換を行うことができることを理解するに違いない。
51 下位レイヤ処理モジュール
52 第1の判定モジュール
53 上位レイヤ処理モジュール
54 作成モジュール
55 第2の判定モジュール
57 更新モジュール
58 判断モジュール
61 受取モジュール
62 プロトコル処理モジュール
70 第2の判定モジュール
71 受取モジュール
72 第1の判定モジュール
73 第1の処理モジュール
74 更新モジュール
75 キューモジュール
76 解析モジュール
77 第2の処理モジュール
78 作成モジュール
79 送出モジュール
80 更新モジュール
81 メモリ
82 通信インターフェース
83 プロセッサ
91 メモリ
92 通信インターフェース
93 プロセッサ
531 キューユニット
532 上位レイヤ処理ユニット
551 第1の判定ユニット
552 第2の判定ユニット
701 判断ユニット
702 判定ユニット
731 キューユニット
732 処理ユニット

Claims (38)

  1. 並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法であって、前記並列プロトコル・スタック・インスタンスは、第1のプロトコル・スタック・インスタンスを含み、前記方法は、
    前記第1のプロトコル・スタック・インスタンスを使用して、ネットワークアダプタによって前記第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して下位レイヤプロトコル処理を実行するステップと、
    前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定するステップと、
    前記ターゲットsocketに従って、前記ターゲットsocketに関連付けられた前記並列プロトコル・スタック・インスタンス内の第2のプロトコル・スタック・インスタンスを判定するステップと、
    前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して前記上位レイヤプロトコル処理を実行するステップと
    を含み、前記下位レイヤプロトコル処理および前記上位レイヤプロトコル処理は、前記データパケットに対して完全なプロトコル処理を合同で達成する
    方法。
  2. 前記ターゲットsocketに従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定する前記ステップは、
    類似性グラフ内にあり、前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定するステップであって、前記ターゲットsocketと各プロトコル・スタック・インスタンスとの間の前記類似性は、前記ネットワークアダプタによって各プロトコル・スタック・インスタンスにすでに分配されたデータパケット内の、前記上位レイヤプロトコル処理が前記ターゲットsocketを使用してそれに対して実行される必要があるデータパケットの量を示すのに使用される、判定するステップ
    を含む、請求項1に記載の方法。
  3. 類似性グラフ内にあり、前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定する前記ステップの前に、前記方法は、
    前記下位レイヤプロトコル処理がそれに対して実行されたデータパケットの量に従って、前記類似性グラフ内に記録される、前記ターゲットsocketと前記第1のプロトコル・スタック・インスタンスとの間の類似性を更新するステップ
    をさらに含む、請求項2に記載の方法。
  4. 前記下位レイヤプロトコル処理がそれに対して実行されたデータパケットの量に従って、前記類似性グラフ内に記録される、前記ターゲットsocketと前記第1のプロトコル・スタック・インスタンスとの間の類似性を更新する前記ステップの後に、前記方法は、
    n×AがBより大きいかどうかを判定するステップであって、Aは、前記ターゲットsocketと前記第1のプロトコル・スタック・インスタンスとの間の類似性であり、Bは、前記類似性グラフ内に記録される、前記ターゲットsocketと関連付けられたプロトコル・スタック・インスタンスとの間の類似性であり、nは、事前にセットされた係数である、判定するステップ
    をさらに含み、類似性グラフ内にあり、前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定する前記ステップは、
    n×AがBより大きくはない場合に、前記類似性グラフ内に記録され、前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスが、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスとして使用されると判定するステップ
    を含む、請求項3に記載の方法。
  5. 類似性グラフ内にあり、前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定する前記ステップは、
    n×AがBより大きい場合に、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスとして前記第1のプロトコル・スタック・インスタンスを判定し、前記類似性グラフ内に記録され、前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスを前記第1のプロトコル・スタック・インスタンスに更新するステップ
    をさらに含む、請求項4に記載の方法。
  6. アプリケーションAPPによって送られた第1のデータパケットを受信するステップと、
    前記第1のデータパケットに対してプロトコル処理を実行するために必要な前記ターゲットsocketを判定するステップと、
    前記ターゲットsocketに関連付られた前記第2のプロトコル・スタック・インスタンスを判定するステップと、
    前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行するステップと
    をさらに含む、請求項1から5のいずれか一項に記載の方法。
  7. 前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して前記上位レイヤプロトコル処理を実行する前記ステップは、
    前記ターゲットsocketの下位レイヤデータ受取キューに、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットを追加するステップと、
    前記ターゲットsocketの前記下位レイヤデータ受取キュー内の前記データパケットが、前記第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、前記第2のプロトコル・スタック・インスタンスを使用することによって、前記下位レイヤデータ受取キュー内の前記データパケットに対して前記上位レイヤプロトコル処理を実行するステップであって、前記第2のプロトコル・スタック・インスタンスに対応する前記プロトコル・スタック・インスタンス関連付けリンクリストは、前記第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される、実行するステップと
    を含む、請求項1から5のいずれか一項に記載の方法。
  8. 前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定する前記ステップは、
    socketリストを検索することによって、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して上位レイヤプロトコル処理を実行するために必要な前記ターゲットsocketを入手するステップを含む、請求項1から5のいずれか一項に記載の方法。
  9. 前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定する前記ステップの前に、前記方法は、
    前記並列プロトコル・スタック・インスタンス内の親プロトコル・スタック・インスタンスを使用してプロトコル・スタック・インスタンスのいずれにも関連付けられていない前記ターゲットsocketを作成するステップであって、前記親プロトコル・スタック・インスタンスは、アプリケーションAPPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される、作成するステップ
    をさらに含む、請求項1から5のいずれか一項に記載の方法。
  10. 前記下位レイヤプロトコル処理は、Open System Interconnection OSIにおいて規定されるレイヤ3およびレイヤ3よりも下位のレイヤでのプロトコル処理であり、前記上位レイヤプロトコル処理は、前記OSIにおいて規定されるレイヤ4およびレイヤ4よりも上位のレイヤでのプロトコル処理である、請求項1から5のいずれか一項に記載の方法。
  11. 並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法であって、前記並列プロトコル・スタック・インスタンスは、第1のプロトコル・スタック・インスタンスを含み、前記方法は、
    アプリケーションAPPによって送られた第1のデータパケットを受け取るステップと、
    前記第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定するステップと、
    前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内の各プロトコル・スタック・インスタンスとの間の関連付けに従って、前記ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するステップと、
    前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行するステップと
    を含み、前記ターゲットsocketと前記第2のプロトコル・スタック・インスタンスとの間の前記関連付けは、前記第1のプロトコル・スタック・インスタンスおよび前記第2のプロトコル・スタック・インスタンスを使用して第2のデータパケットに対してプロトコル処理を実行する時に判定され、前記第1のプロトコル・スタック・インスタンスを使用して、前記第2のデータパケットに対して下位レイヤプロトコル処理は実行され、前記第2のプロトコル・スタック・インスタンスを使用して、前記第2のデータパケットに対して上位レイヤプロトコル処理は実行され、前記下位レイヤプロトコル処理および前記上位レイヤプロトコル処理は、前記第2のデータパケットに対する完全なプロトコル処理を合同で達成する
    方法。
  12. 前記ターゲットsocketとプロトコル・スタック・インスタンスとの間の関連付けに従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定する前記ステップは、
    類似性グラフに従って、前記ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在するかどうかを判定するステップであって、前記類似性グラフは、前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスを記録するのに使用される、判定するステップと、
    前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスが存在する場合に、前記第2のプロトコル・スタック・インスタンスとして前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスを判定するステップと
    を含む、請求項11に記載の方法。
  13. 前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスが存在しない場合に、前記ターゲットsocketの親プロトコル・スタック・インスタンスの受取キューに制御メッセージを追加するステップであって、前記ターゲットsocketの前記親プロトコル・スタック・インスタンスは、前記ターゲットsocketを作成するのに使用され、前記制御メッセージは、前記第1のデータパケットに対してプロトコル処理を実行するように命令するのに使用される、追加するステップと、
    前記親プロトコル・スタック・インスタンスの前記受取キュー内の前記制御メッセージが、ポーリングによって入手される時に、前記第1のデータパケットを入手するために前記制御メッセージを解析するステップと、
    前記親プロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行するステップと、
    前記類似性グラフ内に記録され、前記ターゲットsocketに関連付けられるプロトコル・スタック・インスタンスとして、前記親プロトコル・スタック・インスタンスを記録するステップと
    をさらに含む、請求項12に記載の方法。
  14. 前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行する前記ステップは、
    前記ターゲットsocketのAPPデータ送出キューに前記第1のデータパケットを追加するステップと、
    前記ターゲットsocketの前記APPデータ送出キュー内の前記第1のデータパケットが、前記第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記APPデータ送出キュー内の前記第1のデータパケットに対して前記下位レイヤプロトコル処理および前記上位レイヤプロトコル処理を別々に実行するステップであって、前記第2のプロトコル・スタック・インスタンスに対応する前記プロトコル・スタック・インスタンス関連付けリンクリストは、前記第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される、実行するステップと
    を含む、請求項11に記載の方法。
  15. 前記第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットソケットsocketを判定する前記ステップの前に、
    前記親プロトコル・スタック・インスタンスを使用して、前記並列プロトコル・スタック・インスタンス内に含まれるプロトコル・スタック・インスタンスのいずれにも関連付けられていない前記ターゲットsocketを作成するステップであって、前記親プロトコル・スタック・インスタンスは、前記プロトコル・スタック・インスタンスから、前記APPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される、作成するステップ
    をさらに含む、請求項13に記載の方法。
  16. 前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行する前記ステップの後に、
    ネットワークアダプタが、プロトコル処理がそれに対して実行された前記第1のデータパケットを送るようにするために、プロトコル処理がそれに対して実行された前記第1のデータパケットを前記ネットワークアダプタの送出キューに追加するステップ
    をさらに含む、請求項11から14のいずれか一項に記載の方法。
  17. 前記第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットソケットsocketを判定する前記ステップは、
    前記第1のデータパケットに対してプロトコル処理を実行するために必要な前記ターゲットsocketを判定するためにsocketリストを検索するステップ
    を含む、請求項11から14のいずれか一項に記載の方法。
  18. 前記下位レイヤプロトコル処理は、Open System Interconnection OSIにおいて規定されるレイヤ3およびレイヤ3よりも下位のレイヤでのプロトコル処理であり、前記上位レイヤプロトコル処理は、前記OSIにおいて規定されるレイヤ4およびレイヤ4よりも上位のレイヤでのプロトコル処理である、請求項11から14のいずれか一項に記載の方法。
  19. 並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置であって、前記並列プロトコル・スタック・インスタンスは、第1のプロトコル・スタック・インスタンスを含み、前記装置は、
    前記第1のプロトコル・スタック・インスタンスを使用して、ネットワークアダプタによって前記第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して下位レイヤプロトコル処理を実行するように構成された下位レイヤプロトコル処理モジュールと、
    前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定するように構成された第1の判定モジュールと、
    前記ターゲットsocketに従って、前記ターゲットsocketに関連付けられた前記並列・プロトコル・スタック・インスタンス内の第2のプロトコル・スタック・インスタンスを判定するように構成された第2の判定モジュールと、
    前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して前記上位レイヤプロトコル処理を実行するように構成された上位レイヤプロトコル処理モジュールと
    を含み、前記下位レイヤプロトコル処理モジュールおよび前記上位レイヤプロトコル処理モジュールは、前記データパケットに対して完全なプロトコル処理を合同で達成する
    装置。
  20. 前記第2の判定モジュールは、類似性グラフ内にあり、前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定するように構成され、前記ターゲットsocketと各プロトコル・スタック・インスタンスとの間の前記類似性は、前記ネットワークアダプタによって各プロトコル・スタック・インスタンスにすでに分配されたデータパケット内の、前記上位レイヤプロトコル処理が前記ターゲットsocketを使用してそれに対して実行される必要があるデータパケットの量を示すのに使用される、請求項19に記載の装置。
  21. 前記下位レイヤプロトコル処理がそれに対して実行されたデータパケットの量に従って、前記類似性グラフ内に記録される、前記ターゲットsocketと前記第1のプロトコル・スタック・インスタンスとの間の類似性を更新するように構成された更新モジュール
    をさらに含む、請求項20に記載の装置。
  22. n×AがBより大きいかどうかを判定するように構成された判断モジュールであって、Aは、前記ターゲットsocketと前記第1のプロトコル・スタック・インスタンスとの間の類似性であり、Bは、前記類似性グラフ内に記録される、前記ターゲットsocketと関連付けられたプロトコル・スタック・インスタンスとの間の類似性であり、nは、事前にセットされた係数である、判断モジュール
    をさらに含み、前記第2の判定モジュールは、
    n×AがBより大きくはない場合に、前記類似性グラフ内に記録され、前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスが、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスとして使用されると判定するように構成された第1の判定ユニット
    を含む、請求項21に記載の装置。
  23. 前記第2の判定モジュールは、
    n×AがBより大きい場合に、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスとして前記第1のプロトコル・スタック・インスタンスを判定し、前記類似性グラフ内に記録され、前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスを前記第1のプロトコル・スタック・インスタンスに更新するように構成された第2の判定ユニット
    をさらに含む、請求項22に記載の装置。
  24. 前記装置は、
    アプリケーションAPPによって送られた第1のデータパケットを受け取るように構成された受信モジュールをさらに含み、
    前記第1の判定モジュールは、前記第1のデータパケットに対してプロトコル処理を実行するために必要な前記ターゲットsocketを判定するようにさらに構成され、
    前記第2の判定モジュールは、前記第1のデータパケットに対してプロトコル処理を実行するために必要な前記ターゲットsocketが判定された後に、前記ターゲットsocketに関連付られた前記第2のプロトコル・スタック・インスタンスを判定するようにさらに構成され、
    前記装置は、
    前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行するように構成されたプロトコル処理モジュールをさらに含む、請求項19から23のいずれか一項に記載の装置。
  25. 前記上位レイヤプロトコル処理モジュールは、
    前記ターゲットsocketの下位レイヤデータ受取キューに、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットを追加するように構成されたキューユニットと、
    前記ターゲットsocketの前記下位レイヤデータ受取キュー内の前記データパケットが、前記第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、前記第2のプロトコル・スタック・インスタンスを使用して、前記下位レイヤデータ受取キュー内の前記データパケットに対して前記上位レイヤプロトコル処理を実行するように構成された上位レイヤプロトコル処理ユニットであって、前記第2のプロトコル・スタック・インスタンスに対応する前記プロトコル・スタック・インスタンス関連付けリンクリストは、前記第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される、上位レイヤプロトコル処理ユニットと
    を含む、請求項19から23のいずれか一項に記載の装置。
  26. 前記第1の判定モジュールは、socketリストを検索することによって、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して前記上位レイヤプロトコル処理を実行するために必要な前記ターゲットsocketを入手するように構成される、請求項19から23のいずれか一項に記載の装置。
  27. 前記並列プロトコル・スタック・インスタンス内の親プロトコル・スタック・インスタンスを使用して、前記プロトコル・スタック・インスタンスのいずれにも関連付けられていない前記ターゲットsocketを作成するように構成された作成モジュールであって、前記親プロトコル・スタック・インスタンスは、アプリケーションAPPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される、作成モジュール
    をさらに含む、請求項19から23のいずれか一項に記載の装置。
  28. 前記下位レイヤプロトコル処理は、Open System Interconnection OSIにおいて規定されるレイヤ3およびレイヤ3よりも下位のレイヤでのプロトコル処理であり、前記上位レイヤプロトコル処理は、前記OSIにおいて規定されるレイヤ4およびレイヤ4よりも上位のレイヤでのプロトコル処理である、請求項19から23のいずれか一項に記載の装置。
  29. 並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置であって、前記並列プロトコル・スタック・インスタンスは、第1のプロトコル・スタック・インスタンスを含み、前記装置は、
    アプリケーションAPPによって送られた第1のデータパケットを受け取るように構成された受取モジュールと、
    前記第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定するように構成された第1の判定モジュールと、
    前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内の各プロトコル・スタック・インスタンスとの間の関連付けに従って、前記ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するように構成された第2の判定モジュールと、
    前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行するように構成された第1の処理モジュールと
    を含み、前記ターゲットsocketと前記第2のプロトコル・スタック・インスタンスとの間の前記関連付けは、前記第1のプロトコル・スタック・インスタンスおよび前記第2のプロトコル・スタック・インスタンスを使用して第2のデータパケットに対してプロトコル処理を実行する時に判定され、前記第1のプロトコル・スタック・インスタンスを使用して、前記第2のデータパケットに対して下位レイヤプロトコル処理は実行され、前記第2のプロトコル・スタック・インスタンスを使用して、前記第2のデータパケットに対して上位レイヤプロトコル処理は実行され、前記下位レイヤプロトコル処理および前記上位レイヤプロトコル処理は、前記第2のデータパケットに対する完全なプロトコル処理を合同で達成する
    装置。
  30. 前記第2の判定モジュールは、
    類似性グラフに従って、前記ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在するかどうかを判定するように構成された判断ユニットであって、前記類似性グラフは、前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスを記録するのに使用される、判断ユニットと、
    前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスが存在する場合に、前記第2のプロトコル・スタック・インスタンスとして前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスを判定するように構成された判定ユニットと
    を含む、請求項29に記載の装置。
  31. 前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスが存在しない場合に、前記ターゲットsocketの親プロトコル・スタック・インスタンスの受取キューに制御メッセージを追加するように構成されたキューモジュールであって、前記ターゲットsocketの前記親プロトコル・スタック・インスタンスは、前記ターゲットsocketを作成するのに使用され、前記制御メッセージは、前記第1のデータパケットに対してプロトコル処理を実行するように命令するのに使用される、キューモジュールと、
    前記親プロトコル・スタック・インスタンスの前記受取キュー内の前記制御メッセージが、ポーリングによって入手される時に、前記第1のデータパケットを入手するために前記制御メッセージを解析するように構成された解析モジュールと、
    前記親プロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行するように構成された第2の処理モジュールと、
    前記類似性グラフ内に記録され、前記ターゲットsocketに関連付けられるプロトコル・スタック・インスタンスとして、前記親プロトコル・スタック・インスタンスを記録するように構成された更新モジュールと
    をさらに含む、請求項30に記載の装置。
  32. 前記第1の処理モジュールは、
    前記ターゲットsocketのAPPデータ送出キューに前記第1のデータパケットを追加するように構成されたキューユニットと、
    前記ターゲットsocketの前記APPデータ送出キュー内の前記第1のデータパケットが、前記第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記APPデータ送出キュー内の前記第1のデータパケットに対して前記下位レイヤプロトコル処理および前記上位レイヤプロトコル処理を別々に実行するように構成された処理ユニットであって、前記第2のプロトコル・スタック・インスタンスに対応する前記プロトコル・スタック・インスタンス関連付けリンクリストは、前記第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される、処理ユニットとを含む、請求項29に記載の装置。
  33. 前記親プロトコル・スタック・インスタンスを使用して、前記並列プロトコル・スタック・インスタンス内に含まれるプロトコル・スタック・インスタンスのいずれにも関連付けられていない前記ターゲットsocketを作成するように構成された作成モジュールであって、
    前記親プロトコル・スタック・インスタンスは、前記APPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される、作成モジュールをさらに含む、請求項31に記載の装置。
  34. ネットワークアダプタが、プロトコル処理がそれに対して実行された前記第1のデータパケットを送るようにするために、プロトコル処理がそれに対して実行された前記第1のデータパケットを前記ネットワークアダプタの送出キューに追加するように構成された送出モジュール
    をさらに含む、請求項29から32のいずれか一項に記載の装置。
  35. 前記第1の判定モジュールは、前記第1のデータパケットに対してプロトコル処理を実行するために必要な前記ターゲットsocketを判定するためにsocketリストを検索するように構成される、請求項29から32のいずれか一項に記載の装置。
  36. 前記下位レイヤプロトコル処理は、Open System Interconnection OSIにおいて規定されるレイヤ3およびレイヤ3よりも下位のレイヤでのプロトコル処理であり、前記上位レイヤプロトコル処理は、前記OSIにおいて規定されるレイヤ4およびレイヤ4よりも上位のレイヤでのプロトコル処理である、請求項29から32のいずれか一項に記載の装置。
  37. プログラムがコンピュータ上で実行された場合に、請求項1から10のいずれか一項に記載の方法を前記コンピュータに実行させるプログラム。
  38. プログラムがコンピュータ上で実行された場合に、請求項11から18のいずれか一項に記載の方法を前記コンピュータに実行させるプログラム。
JP2016549111A 2014-01-29 2014-11-19 並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法および装置 Active JP6359111B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410043721.0 2014-01-29
CN201410043721.0A CN104811431B (zh) 2014-01-29 2014-01-29 基于并行协议栈实例的数据包处理方法和装置
PCT/CN2014/091614 WO2015113435A1 (zh) 2014-01-29 2014-11-19 基于并行协议栈实例的数据包处理方法和装置

Publications (2)

Publication Number Publication Date
JP2017509055A JP2017509055A (ja) 2017-03-30
JP6359111B2 true JP6359111B2 (ja) 2018-07-18

Family

ID=53695928

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016549111A Active JP6359111B2 (ja) 2014-01-29 2014-11-19 並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法および装置

Country Status (5)

Country Link
US (1) US10069947B2 (ja)
EP (1) EP3091706B1 (ja)
JP (1) JP6359111B2 (ja)
CN (1) CN104811431B (ja)
WO (1) WO2015113435A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270813B (zh) 2016-12-30 2021-02-12 华为技术有限公司 一种异构多协议栈方法、装置及系统
CN108667864B (zh) * 2017-03-29 2020-07-28 华为技术有限公司 一种进行资源调度的方法和装置
CN110622558A (zh) 2017-07-25 2019-12-27 Oppo广东移动通信有限公司 切换方法、接入网设备和终端设备
KR20210075119A (ko) 2018-10-15 2021-06-22 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 무선 통신 방법 및 기기
CN110278161B (zh) * 2019-05-06 2020-08-11 阿里巴巴集团控股有限公司 基于用户态协议栈的报文分流方法、装置及系统
US10904719B2 (en) 2019-05-06 2021-01-26 Advanced New Technologies Co., Ltd. Message shunting method, device and system based on user mode protocol stack

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002502189A (ja) * 1998-01-29 2002-01-22 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー 移動データ転送用通信システム
US7647414B2 (en) 2002-07-26 2010-01-12 Broadcom Corporation System and method for managing multiple stack environments
CA2408474A1 (en) * 2002-10-17 2004-04-17 Ibm Canada Limited-Ibm Canada Limitee Apparatus and method for enabling efficient multi-protocol database transaction processing
US7802001B1 (en) * 2002-10-18 2010-09-21 Astute Networks, Inc. System and method for flow control within a stateful protocol processing system
US7562145B2 (en) * 2003-08-28 2009-07-14 International Business Machines Corporation Application instance level workload distribution affinities
US7734829B2 (en) 2004-06-09 2010-06-08 Emc Corporation Methods, systems, and computer program products for transparently controlling communications between network applications and a plurality of network communications protocol stacks using deferred protocol stack association
US7808983B2 (en) * 2004-07-08 2010-10-05 Cisco Technology, Inc. Network device architecture for centralized packet processing
US20070242671A1 (en) 2006-04-13 2007-10-18 Christenson David A Method and Apparatus for Routing Data Packets Between Different Internet Communications Stack Instances
CN1870654A (zh) 2006-06-21 2006-11-29 中国科学院计算技术研究所 一种支持ipv4和ipv6双协议栈网络通信模块的实现方法
EP1885098B1 (en) * 2006-08-04 2011-04-06 Canon Kabushiki Kaisha Communication apparatus and communication control method
CN101132456B (zh) 2006-08-22 2011-08-10 中兴通讯股份有限公司 蓝牙多功能遥控器装置及其实现语音通信的方法
US7715428B2 (en) 2007-01-31 2010-05-11 International Business Machines Corporation Multicore communication processing
PT103744A (pt) 2007-05-16 2008-11-17 Coreworks S A Arquitectura de acesso ao núcleo de rede.
CN101399692B (zh) * 2007-09-27 2011-12-21 华为技术有限公司 业务迁移的方法和系统
CN101217464B (zh) * 2007-12-28 2010-09-08 北京大学 一种udp数据包的传输方法
CN101227504A (zh) * 2008-02-18 2008-07-23 华为技术有限公司 一种实现协议栈之间切换的方法及装置
CN101415025B (zh) 2008-09-28 2011-09-07 中控科技集团有限公司 网络数据处理的方法、装置和系统
CN101426027B (zh) 2008-10-28 2012-06-06 华为技术有限公司 面向分布式虚拟机监控器的底层通信方法
US8849972B2 (en) 2008-11-25 2014-09-30 Polycom, Inc. Method and system for dispatching received sessions between a plurality of instances of an application using the same IP port
CN101541098A (zh) 2008-12-19 2009-09-23 中国移动通信集团浙江有限公司 移动通信中的协议栈仿真方法
CN101867558B (zh) 2009-04-17 2012-11-14 深圳市永达电子股份有限公司 用户态网络协议栈系统及处理报文的方法
CN101931584A (zh) 2009-06-22 2010-12-29 中兴通讯股份有限公司 支持同一系统中多种协议栈之间数据转发的方法和系统
CN101656677B (zh) 2009-09-18 2011-11-16 杭州迪普科技有限公司 一种报文分流处理方法及装置
JP5900352B2 (ja) * 2011-02-04 2016-04-06 日本電気株式会社 パケット処理装置、パケット処理方法およびプログラム
CN102523208A (zh) 2011-12-06 2012-06-27 无锡聚云科技有限公司 多核架构下的应用层协议并行处理方法
CN104811432A (zh) * 2014-01-29 2015-07-29 华为技术有限公司 基于并行协议栈实例的数据包处理方法和装置

Also Published As

Publication number Publication date
US20160337483A1 (en) 2016-11-17
JP2017509055A (ja) 2017-03-30
EP3091706A1 (en) 2016-11-09
US10069947B2 (en) 2018-09-04
EP3091706B1 (en) 2020-01-08
WO2015113435A1 (zh) 2015-08-06
EP3091706A4 (en) 2016-12-28
CN104811431A (zh) 2015-07-29
CN104811431B (zh) 2018-01-16

Similar Documents

Publication Publication Date Title
JP6359111B2 (ja) 並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法および装置
US10044616B2 (en) Co-existence of routable and non-routable RDMA solutions on the same network interface
US9747093B2 (en) Device driver aggregation in operating system deployment
US9965441B2 (en) Adaptive coalescing of remote direct memory access acknowledgements based on I/O characteristics
US10225145B2 (en) Method and device for updating client
CN104468401A (zh) 一种报文处理方法和装置
US20210029052A1 (en) Methods and apparatuses for packet scheduling for software- defined networking in edge computing environment
EP3273664B1 (en) Data processing method and device, server, and controller
WO2011078861A1 (en) A computer platform providing hardware support for virtual inline appliances and virtual machines
EP3559833B1 (en) Best-efforts database functions
US11496599B1 (en) Efficient flow management utilizing control packets
WO2018133781A1 (en) Database functions-defined network switch and database system
US10685134B1 (en) Database proxy service
US10616116B1 (en) Network traffic load balancing using rotating hash
CN112714903A (zh) 使用客户端提供的决策元数据的基于可缩放小区的包处理服务
EP2930883B1 (en) Method for the implementation of network functions virtualization of a telecommunications network providing communication services to subscribers, telecommunications network, program and computer program product
CN114518833A (zh) 用于存储管理的方法、电子设备和计算机程序产品
US9674282B2 (en) Synchronizing SLM statuses of a plurality of appliances in a cluster
US20230409514A1 (en) Transaction based remote direct memory access
WO2017041509A1 (zh) 一种基于多处理单元的报文采样方法和装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171228

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180619

R150 Certificate of patent or registration of utility model

Ref document number: 6359111

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250