(57)【特許請求の範囲】
【請求項１】
並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法であって、前記並列プロトコル・スタック・インスタンスは、第1のプロトコル・スタック・インスタンスを含み、前記方法は、
前記第1のプロトコル・スタック・インスタンスを使用して、ネットワークアダプタによって前記第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して下位レイヤプロトコル処理を実行するステップと、
前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定するステップと、
前記ターゲットsocketに従って、前記ターゲットsocketに関連付けられた前記並列プロトコル・スタック・インスタンス内の第2のプロトコル・スタック・インスタンスを判定するステップと、
前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して前記上位レイヤプロトコル処理を実行するステップと
を含み、前記下位レイヤプロトコル処理および前記上位レイヤプロトコル処理は、前記データパケットに対して完全なプロトコル処理を合同で達成する
方法。
【請求項２】
前記ターゲットsocketに従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定する前記ステップは、
類似性グラフ内にあり、前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定するステップであって、前記ターゲットsocketと各プロトコル・スタック・インスタンスとの間の前記類似性は、前記ネットワークアダプタによって各プロトコル・スタック・インスタンスにすでに分配されたデータパケット内の、前記上位レイヤプロトコル処理が前記ターゲットsocketを使用してそれに対して実行される必要があるデータパケットの量を示すのに使用される、判定するステップ
を含む、請求項１に記載の方法。
【請求項３】
類似性グラフ内にあり、前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定する前記ステップの前に、前記方法は、
前記下位レイヤプロトコル処理がそれに対して実行されたデータパケットの量に従って、前記類似性グラフ内に記録される、前記ターゲットsocketと前記第1のプロトコル・スタック・インスタンスとの間の類似性を更新するステップ
をさらに含む、請求項２に記載の方法。
【請求項４】
前記下位レイヤプロトコル処理がそれに対して実行されたデータパケットの量に従って、前記類似性グラフ内に記録される、前記ターゲットsocketと前記第1のプロトコル・スタック・インスタンスとの間の類似性を更新する前記ステップの後に、前記方法は、
n×AがBより大きいかどうかを判定するステップであって、Aは、前記ターゲットsocketと前記第1のプロトコル・スタック・インスタンスとの間の類似性であり、Bは、前記類似性グラフ内に記録される、前記ターゲットsocketと関連付けられたプロトコル・スタック・インスタンスとの間の類似性であり、nは、事前にセットされた係数である、判定するステップ
をさらに含み、類似性グラフ内にあり、前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定する前記ステップは、
n×AがBより大きくはない場合に、前記類似性グラフ内に記録され、前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスが、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスとして使用されると判定するステップ
を含む、請求項３に記載の方法。
【請求項５】
類似性グラフ内にあり、前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定する前記ステップは、
n×AがBより大きい場合に、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスとして前記第1のプロトコル・スタック・インスタンスを判定し、前記類似性グラフ内に記録され、前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスを前記第1のプロトコル・スタック・インスタンスに更新するステップ
をさらに含む、請求項４に記載の方法。
【請求項６】
アプリケーションAPPによって送られた第1のデータパケットを受信するステップと、
前記第1のデータパケットに対してプロトコル処理を実行するために必要な前記ターゲットsocketを判定するステップと、
前記ターゲットsocketに関連付られた前記第2のプロトコル・スタック・インスタンスを判定するステップと、
前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行するステップと
をさらに含む、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して前記上位レイヤプロトコル処理を実行する前記ステップは、
前記ターゲットsocketの下位レイヤデータ受取キューに、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットを追加するステップと、
前記ターゲットsocketの前記下位レイヤデータ受取キュー内の前記データパケットが、前記第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、前記第2のプロトコル・スタック・インスタンスを使用することによって、前記下位レイヤデータ受取キュー内の前記データパケットに対して前記上位レイヤプロトコル処理を実行するステップであって、前記第2のプロトコル・スタック・インスタンスに対応する前記プロトコル・スタック・インスタンス関連付けリンクリストは、前記第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される、実行するステップと
を含む、請求項１から５のいずれか一項に記載の方法。
【請求項８】
前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定する前記ステップは、
socketリストを検索することによって、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して上位レイヤプロトコル処理を実行するために必要な前記ターゲットsocketを入手するステップを含む、請求項１から５のいずれか一項に記載の方法。
【請求項９】
前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定する前記ステップの前に、前記方法は、
前記並列プロトコル・スタック・インスタンス内の親プロトコル・スタック・インスタンスを使用してプロトコル・スタック・インスタンスのいずれにも関連付けられていない前記ターゲットsocketを作成するステップであって、前記親プロトコル・スタック・インスタンスは、アプリケーションAPPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される、作成するステップ
をさらに含む、請求項１から５のいずれか一項に記載の方法。
【請求項１０】
前記下位レイヤプロトコル処理は、Open System Interconnection OSIにおいて規定されるレイヤ3およびレイヤ3よりも下位のレイヤでのプロトコル処理であり、前記上位レイヤプロトコル処理は、前記OSIにおいて規定されるレイヤ4およびレイヤ4よりも上位のレイヤでのプロトコル処理である、請求項１から５のいずれか一項に記載の方法。
【請求項１１】
並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する方法であって、前記並列プロトコル・スタック・インスタンスは、第1のプロトコル・スタック・インスタンスを含み、前記方法は、
アプリケーションAPPによって送られた第1のデータパケットを受け取るステップと、
前記第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定するステップと、
前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内の各プロトコル・スタック・インスタンスとの間の関連付けに従って、前記ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するステップと、
前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行するステップと
を含み、前記ターゲットsocketと前記第2のプロトコル・スタック・インスタンスとの間の前記関連付けは、前記第1のプロトコル・スタック・インスタンスおよび前記第2のプロトコル・スタック・インスタンスを使用して第2のデータパケットに対してプロトコル処理を実行する時に判定され、前記第1のプロトコル・スタック・インスタンスを使用して、前記第2のデータパケットに対して下位レイヤプロトコル処理は実行され、前記第2のプロトコル・スタック・インスタンスを使用して、前記第2のデータパケットに対して上位レイヤプロトコル処理は実行され、前記下位レイヤプロトコル処理および前記上位レイヤプロトコル処理は、前記第2のデータパケットに対する完全なプロトコル処理を合同で達成する
方法。
【請求項１２】
前記ターゲットsocketと各プロトコル・スタック・インスタンスとの間の関連付けに従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定する前記ステップは、
類似性グラフに従って、前記ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在するかどうかを判定するステップであって、前記類似性グラフは、前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスを記録するのに使用される、判定するステップと、
前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスが存在する場合に、前記第2のプロトコル・スタック・インスタンスとして前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスを判定するステップと
を含む、請求項１１に記載の方法。
【請求項１３】
前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスが存在しない場合に、前記ターゲットsocketの親プロトコル・スタック・インスタンスの受取キューに制御メッセージを追加するステップであって、前記ターゲットsocketの前記親プロトコル・スタック・インスタンスは、前記ターゲットsocketを作成するのに使用され、前記制御メッセージは、前記第1のデータパケットに対してプロトコル処理を実行するように命令するのに使用される、追加するステップと、
前記親プロトコル・スタック・インスタンスの前記受取キュー内の前記制御メッセージが、ポーリングによって入手される時に、前記第1のデータパケットを入手するために前記制御メッセージを解析するステップと、
前記親プロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行するステップと、
前記類似性グラフ内に記録され、前記ターゲットsocketに関連付けられるプロトコル・スタック・インスタンスとして、前記親プロトコル・スタック・インスタンスを記録するステップと
をさらに含む、請求項１２に記載の方法。
【請求項１４】
前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行する前記ステップは、
前記ターゲットsocketのAPPデータ送出キューに前記第1のデータパケットを追加するステップと、
前記ターゲットsocketの前記APPデータ送出キュー内の前記第1のデータパケットが、前記第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記APPデータ送出キュー内の前記第1のデータパケットに対して前記下位レイヤプロトコル処理および前記上位レイヤプロトコル処理を別々に実行するステップであって、前記第2のプロトコル・スタック・インスタンスに対応する前記プロトコル・スタック・インスタンス関連付けリンクリストは、前記第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される、実行するステップと
を含む、請求項１１に記載の方法。
【請求項１５】
前記第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットソケットsocketを判定する前記ステップの前に、
前記親プロトコル・スタック・インスタンスを使用して、前記並列プロトコル・スタック・インスタンス内に含まれるプロトコル・スタック・インスタンスのいずれにも関連付けられていない前記ターゲットsocketを作成するステップであって、前記親プロトコル・スタック・インスタンスは、前記プロトコル・スタック・インスタンスから、前記APPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される、作成するステップ
をさらに含む、請求項１３に記載の方法。
【請求項１６】
前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行する前記ステップの後に、
ネットワークアダプタが、プロトコル処理がそれに対して実行された前記第1のデータパケットを送るようにするために、プロトコル処理がそれに対して実行された前記第1のデータパケットを前記ネットワークアダプタの送出キューに追加するステップ
をさらに含む、請求項１１から１４のいずれか一項に記載の方法。
【請求項１７】
前記第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットソケットsocketを判定する前記ステップは、
前記第1のデータパケットに対してプロトコル処理を実行するために必要な前記ターゲットsocketを判定するためにsocketリストを検索するステップ
を含む、請求項１１から１４のいずれか一項に記載の方法。
【請求項１８】
前記下位レイヤプロトコル処理は、Open System Interconnection OSIにおいて規定されるレイヤ3およびレイヤ3よりも下位のレイヤでのプロトコル処理であり、前記上位レイヤプロトコル処理は、前記OSIにおいて規定されるレイヤ4およびレイヤ4よりも上位のレイヤでのプロトコル処理である、請求項１１から１４のいずれか一項に記載の方法。
【請求項１９】
並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置であって、前記並列プロトコル・スタック・インスタンスは、第1のプロトコル・スタック・インスタンスを含み、前記装置は、
前記第1のプロトコル・スタック・インスタンスを使用して、ネットワークアダプタによって前記第1のプロトコル・スタック・インスタンスに分配されたデータパケットに対して下位レイヤプロトコル処理を実行するように構成された下位レイヤプロトコル処理モジュールと、
前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して上位レイヤプロトコル処理を実行するために必要なターゲットsocketを判定するように構成された第1の判定モジュールと、
前記ターゲットsocketに従って、前記ターゲットsocketに関連付けられた前記並列・プロトコル・スタック・インスタンス内の第2のプロトコル・スタック・インスタンスを判定するように構成された第2の判定モジュールと、
前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して前記上位レイヤプロトコル処理を実行するように構成された上位レイヤプロトコル処理モジュールと
を含み、前記下位レイヤプロトコル処理モジュールおよび前記上位レイヤプロトコル処理モジュールは、前記データパケットに対して完全なプロトコル処理を合同で達成する
装置。
【請求項２０】
前記第2の判定モジュールは、類似性グラフ内にあり、前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内に含まれる各プロトコル・スタック・インスタンスとの間の、類似性に従って、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスを判定するように構成され、前記ターゲットsocketと各プロトコル・スタック・インスタンスとの間の前記類似性は、前記ネットワークアダプタによって各プロトコル・スタック・インスタンスにすでに分配されたデータパケット内の、前記上位レイヤプロトコル処理が前記ターゲットsocketを使用してそれに対して実行される必要があるデータパケットの量を示すのに使用される、請求項１９に記載の装置。
【請求項２１】
前記下位レイヤプロトコル処理がそれに対して実行されたデータパケットの量に従って、前記類似性グラフ内に記録される、前記ターゲットsocketと前記第1のプロトコル・スタック・インスタンスとの間の類似性を更新するように構成された更新モジュール
をさらに含む、請求項２０に記載の装置。
【請求項２２】
n×AがBより大きいかどうかを判定するように構成された判断モジュールであって、Aは、前記ターゲットsocketと前記第1のプロトコル・スタック・インスタンスとの間の類似性であり、Bは、前記類似性グラフ内に記録される、前記ターゲットsocketと関連付けられたプロトコル・スタック・インスタンスとの間の類似性であり、nは、事前にセットされた係数である、判断モジュール
をさらに含み、前記第2の判定モジュールは、
n×AがBより大きくはない場合に、前記類似性グラフ内に記録され、前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスが、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスとして使用されると判定するように構成された第1の判定ユニット
を含む、請求項２１に記載の装置。
【請求項２３】
前記第2の判定モジュールは、
n×AがBより大きい場合に、前記ターゲットsocketに関連付けられた前記第2のプロトコル・スタック・インスタンスとして前記第1のプロトコル・スタック・インスタンスを判定し、前記類似性グラフ内に記録され、前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスを前記第1のプロトコル・スタック・インスタンスに更新するように構成された第2の判定ユニット
をさらに含む、請求項２２に記載の装置。
【請求項２４】
前記装置は、
アプリケーションAPPによって送られた第1のデータパケットを受け取るように構成された受信モジュールをさらに含み、
前記第1の判定モジュールは、前記第1のデータパケットに対してプロトコル処理を実行するために必要な前記ターゲットsocketを判定するようにさらに構成され、
前記第2の判定モジュールは、前記第1のデータパケットに対してプロトコル処理を実行するために必要な前記ターゲットsocketが判定された後に、前記ターゲットsocketに関連付られた前記第2のプロトコル・スタック・インスタンスを判定するようにさらに構成され、
前記装置は、
前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行するように構成されたプロトコル処理モジュールをさらに含む、請求項１９から２３のいずれか一項に記載の装置。
【請求項２５】
前記上位レイヤプロトコル処理モジュールは、
前記ターゲットsocketの下位レイヤデータ受取キューに、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットを追加するように構成されたキューユニットと、
前記ターゲットsocketの前記下位レイヤデータ受取キュー内の前記データパケットが、前記第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、前記第2のプロトコル・スタック・インスタンスを使用して、前記下位レイヤデータ受取キュー内の前記データパケットに対して前記上位レイヤプロトコル処理を実行するように構成された上位レイヤプロトコル処理ユニットであって、前記第2のプロトコル・スタック・インスタンスに対応する前記プロトコル・スタック・インスタンス関連付けリンクリストは、前記第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される、上位レイヤプロトコル処理ユニットと
を含む、請求項１９から２３のいずれか一項に記載の装置。
【請求項２６】
前記第1の判定モジュールは、socketリストを検索することによって、前記下位レイヤプロトコル処理がそれに対して実行された前記データパケットに対して前記上位レイヤプロトコル処理を実行するために必要な前記ターゲットsocketを入手するように構成される、請求項１９から２３のいずれか一項に記載の装置。
【請求項２７】
前記並列プロトコル・スタック・インスタンス内の親プロトコル・スタック・インスタンスを使用して、前記プロトコル・スタック・インスタンスのいずれにも関連付けられていない前記ターゲットsocketを作成するように構成された作成モジュールであって、前記親プロトコル・スタック・インスタンスは、アプリケーションAPPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される、作成モジュール
をさらに含む、請求項１９から２３のいずれか一項に記載の装置。
【請求項２８】
前記下位レイヤプロトコル処理は、Open System Interconnection OSIにおいて規定されるレイヤ3およびレイヤ3よりも下位のレイヤでのプロトコル処理であり、前記上位レイヤプロトコル処理は、前記OSIにおいて規定されるレイヤ4およびレイヤ4よりも上位のレイヤでのプロトコル処理である、請求項１９から２３のいずれか一項に記載の装置。
【請求項２９】
並列プロトコル・スタック・インスタンスに基づいてデータパケットを処理する装置であって、前記並列プロトコル・スタック・インスタンスは、第1のプロトコル・スタック・インスタンスを含み、前記装置は、
アプリケーションAPPによって送られた第1のデータパケットを受け取るように構成された受取モジュールと、
前記第1のデータパケットに対してプロトコル処理を実行するために必要なターゲットsocketを判定するように構成された第1の判定モジュールと、
前記ターゲットsocketと前記並列プロトコル・スタック・インスタンス内の各プロトコル・スタック・インスタンスとの間の関連付けに従って、前記ターゲットsocketに関連付けられた第2のプロトコル・スタック・インスタンスを判定するように構成された第2の判定モジュールと、
前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行するように構成された第1の処理モジュールと
を含み、前記ターゲットsocketと前記第2のプロトコル・スタック・インスタンスとの間の前記関連付けは、前記第1のプロトコル・スタック・インスタンスおよび前記第2のプロトコル・スタック・インスタンスを使用して第2のデータパケットに対してプロトコル処理を実行する時に判定され、前記第1のプロトコル・スタック・インスタンスを使用して、前記第2のデータパケットに対して下位レイヤプロトコル処理は実行され、前記第2のプロトコル・スタック・インスタンスを使用して、前記第2のデータパケットに対して上位レイヤプロトコル処理は実行され、前記下位レイヤプロトコル処理および前記上位レイヤプロトコル処理は、前記第2のデータパケットに対する完全なプロトコル処理を合同で達成する
装置。
【請求項３０】
前記第2の判定モジュールは、
類似性グラフに従って、前記ターゲットsocketに関連付けられたプロトコル・スタック・インスタンスが存在するかどうかを判定するように構成された判断ユニットであって、前記類似性グラフは、前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスを記録するのに使用される、判断ユニットと、
前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスが存在する場合に、前記第2のプロトコル・スタック・インスタンスとして前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスを判定するように構成された判定ユニットと
を含む、請求項２９に記載の装置。
【請求項３１】
前記ターゲットsocketに関連付けられた前記プロトコル・スタック・インスタンスが存在しない場合に、前記ターゲットsocketの親プロトコル・スタック・インスタンスの受取キューに制御メッセージを追加するように構成されたキューモジュールであって、前記ターゲットsocketの前記親プロトコル・スタック・インスタンスは、前記ターゲットsocketを作成するのに使用され、前記制御メッセージは、前記第1のデータパケットに対してプロトコル処理を実行するように命令するのに使用される、キューモジュールと、
前記親プロトコル・スタック・インスタンスの前記受取キュー内の前記制御メッセージが、ポーリングによって入手される時に、前記第1のデータパケットを入手するために前記制御メッセージを解析するように構成された解析モジュールと、
前記親プロトコル・スタック・インスタンスを使用して、前記第1のデータパケットに対してプロトコル処理を実行するように構成された第2の処理モジュールと、
前記類似性グラフ内に記録され、前記ターゲットsocketに関連付けられるプロトコル・スタック・インスタンスとして、前記親プロトコル・スタック・インスタンスを記録するように構成された更新モジュールと
をさらに含む、請求項３０に記載の装置。
【請求項３２】
前記第1の処理モジュールは、
前記ターゲットsocketのAPPデータ送出キューに前記第1のデータパケットを追加するように構成されたキューユニットと、
前記ターゲットsocketの前記APPデータ送出キュー内の前記第1のデータパケットが、前記第2のプロトコル・スタック・インスタンスに対応するプロトコル・スタック・インスタンス関連付けリンクリストに従うポーリングによって入手される時に、前記ターゲットsocketおよび前記第2のプロトコル・スタック・インスタンスを使用して、前記APPデータ送出キュー内の前記第1のデータパケットに対して前記下位レイヤプロトコル処理および前記上位レイヤプロトコル処理を別々に実行するように構成された処理ユニットであって、前記第2のプロトコル・スタック・インスタンスに対応する前記プロトコル・スタック・インスタンス関連付けリンクリストは、前記第2のプロトコル・スタック・インスタンスに関連付けられたsocketを示すのに使用される、処理ユニットとを含む、請求項２９に記載の装置。
【請求項３３】
前記親プロトコル・スタック・インスタンスを使用して、前記並列プロトコル・スタック・インスタンス内に含まれるプロトコル・スタック・インスタンスのいずれにも関連付けられていない前記ターゲットsocketを作成するように構成された作成モジュールであって、
前記親プロトコル・スタック・インスタンスは、前記APPによって、ランダムな形で、パラメータを指定する形で、または負荷平衡化する形で選択される、作成モジュールをさらに含む、請求項３１に記載の装置。
【請求項３４】
ネットワークアダプタが、プロトコル処理がそれに対して実行された前記第1のデータパケットを送るようにするために、プロトコル処理がそれに対して実行された前記第1のデータパケットを前記ネットワークアダプタの送出キューに追加するように構成された送出モジュール
をさらに含む、請求項２９から３２のいずれか一項に記載の装置。
【請求項３５】
前記第1の判定モジュールは、前記第1のデータパケットに対してプロトコル処理を実行するために必要な前記ターゲットsocketを判定するためにsocketリストを検索するように構成される、請求項２９から３２のいずれか一項に記載の装置。
【請求項３６】
前記下位レイヤプロトコル処理は、Open System Interconnection OSIにおいて規定されるレイヤ3およびレイヤ3よりも下位のレイヤでのプロトコル処理であり、前記上位レイヤプロトコル処理は、前記OSIにおいて規定されるレイヤ4およびレイヤ4よりも上位のレイヤでのプロトコル処理である、請求項２９から３２のいずれか一項に記載の装置。
【請求項３７】
プログラムがコンピュータ上で実行された場合に、請求項１から１０のいずれか一項に記載の方法を前記コンピュータに実行させるプログラム。
【請求項３８】
プログラムがコンピュータ上で実行された場合に、請求項１１から１８のいずれか一項に記載の方法を前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信技術に関し、具体的には、並列プロトコル・スタック・インスタンス(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  処理ユニット
【図１】
0006359111.tif 000002
【図２】
0006359111.tif 000003
【図３】
0006359111.tif 000004
【図４】
0006359111.tif 000005
【図５】
0006359111.tif 000006
【図６】
0006359111.tif 000007
【図７】
0006359111.tif 000008
【図８】
0006359111.tif 000009
【図９】
0006359111.tif 000010
【図１０】
0006359111.tif 000011