JP4872952B2 - Tcpバッファコピー分散並列処理装置、方法及びプログラム - Google Patents
Tcpバッファコピー分散並列処理装置、方法及びプログラム Download PDFInfo
- Publication number
- JP4872952B2 JP4872952B2 JP2008056535A JP2008056535A JP4872952B2 JP 4872952 B2 JP4872952 B2 JP 4872952B2 JP 2008056535 A JP2008056535 A JP 2008056535A JP 2008056535 A JP2008056535 A JP 2008056535A JP 4872952 B2 JP4872952 B2 JP 4872952B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- copy
- tcp
- buffer copy
- request
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
TCP受信処理部と、
1又は2以上のTCPバッファコピー部と、
ソケット処理部と、
受信パケットバッファと、
アプリケーションバッファと、を備えるTCPバッファコピー分散並列処理装置であって、
前記受信パケットバッファ及びアプリケーションバッファが、前記TCP受信処理部、TCPバッファコピー部及びソケット処理部からアクセス可能な記憶領域として構成され、
前記TCP受信処理部が、パケットの受信処理とTCPプロトコル処理とを実施し、受信パケットが対向ホストによって送信された順序と同一の順序で到着した(インオーダー、In−Order)と判定した場合には、該受信パケットを前記受信パケットバッファに設けたインオーダーキューに格納し、該受信パケットのTCPシーケンス番号に基づいて前記アプリケーションバッファにおけるコピー先の領域を決定し、該受信パケットを前記受信パケットバッファから前記アプリケーションバッファにコピーするバッファコピー要求を生成し、前記TCPバッファコピー部のいずれかを選択して該バッファコピー要求を通知することによって受信パケットのバッファコピーを分散並列処理させるように構成され、受信パケットが対向ホストによって送信された順序と異なる順序で到着した(アウトオブオーダー、Out−of−Order)と判定した場合には、該受信パケットを前記受信パケットバッファに設けたアウトオブオーダーキューに格納するように構成されたことを特徴とする。
前記TCP受信処理部が、アウトオブオーダーと判定した受信パケットの前記アプリケーションバッファにおけるコピー先が前記アプリケーションバッファに設けたコピー先領域に含まれる場合に限って、前記バッファコピー要求を生成し、前記TCPバッファコピー部のいずれかを選択して前記バッファコピー要求を通知することによって受信パケットのバッファコピーを分散並列処理させるように構成されることが好ましい。
前記TCP受信処理部、TCPバッファコピー部及びソケット処理部がいずれもイベントキューを備え、
要求送出側が要求受信側に設けたイベントキューに要求を追加することで要求を通知するように構成され、
要求受信側が自身に設けたイベントキューをポーリングしてイベントキューに要求が追加されている場合にはその要求を取り出して処理を行うように構成され、
前記TCP受信処理部、TCPバッファコピー部及びソケット処理部が、それぞれ非同期動作を行うように構成されることが好ましい。
前記TCP受信処理部が、前記バッファコピー要求の通知先を前記TCPバッファコピー部の中からラウンドロビン(Round Robin)によって選択するように構成されることが好ましい。
前記TCPバッファコピー部が、バッファコピー処理を完了した場合には、コピーを実施したデータ長を含むバッファコピー完了通知を前記ソケット処理部に通知するように構成され、
前記アプリケーションバッファが、アドレスbaddrから始まる長さblenの領域をコピー先領域として備え、
前記ソケット処理部が、前記バッファコピー完了通知に含まれるコピーを実施したデータ長を積算し、積算された値が前記アプリケーションバッファにおけるコピー先領域の長さblenに達したか否かに基づいて前記アプリケーションバッファの全ての領域に対するコピー要求が通知されたか否かを判定するように構成されることが好ましい。
前記TCPバッファコピー部が、バッファコピー処理を完了した場合には、コピーを実施したデータ長とTCP受信処理部から通知された受信パケットのTCPプロトコル処理後のTCPパラメータrcv_nxtとを含むバッファコピー完了通知を前記ソケット処理部に通知するように構成され、
前記アプリケーションバッファが、アドレスbaddrから始まる長さblenの領域をコピー先領域として備え、
前記ソケット処理部が、前記バッファコピー完了通知に含まれるTCPパラメータrcv_nxtを参照し、その値に基づいて前記アプリケーションバッファの全ての領域に対するコピー要求が通知されたか否かを判定するように構成されることが好ましい。
前記TCPバッファコピー部のうちI番目(1≦I≦N)のものから前記ソケット処理部に通知された前記バッファコピー完了通知が、振り分けの周回回数を示すリンクシーケンス(Link Sequence)番号Lseq(I)を含み、
前記ソケット処理部が、前記アプリケーションバッファの全ての領域に対するコピー要求が通知されたと判定し、かつ、判定に用いられたバッファコピー完了通知がラウンドロビンによる振り分けのうちI番目である場合には、以下の2条件
(a)Lseq(1)、・・・、Lseq(I−1)==Lseq(I)、
(b)Lseq(I+1)、・・・、Lseq(N)==Lseq(I)−1
が満たされたとき、前記TCPバッファコピー部のすべてのバッファコピー処理が完了したものと判定するように構成されることが好ましい。
前記TCPプロトコル処理部が、前記TCPバッファコピー部に備えたイベントキューの残量を参照し、前記TCPバッファコピー部の中からイベントキューの残量がより少ないものを前記バッファコピー要求の通知先として動的に選択するように構成されることが好ましい。
前記TCPバッファコピー部が、バッファコピー処理を完了した場合には、コピーを実施したデータ長を含むバッファコピー完了通知を前記ソケット処理部に通知し、
前記アプリケーションバッファが、アドレスbaddrから始まる長さblenの領域をコピー先領域として備え、
前記ソケット処理部が、前記バッファコピー完了通知に含まれるコピーを実施したデータ長を積算し、積算された値が前記アプリケーションバッファにおけるコピー先領域の長さblenに達したか否かに基づいて前記アプリケーションバッファの全ての領域に対するコピー要求が通知されたか否かを判定するように構成されることが好ましい。
前記TCPバッファコピー部が、バッファコピー処理を完了した場合には、コピーを実施したデータ長とTCP受信処理部から通知された受信パケットのTCPプロトコル処理後のTCPパラメータrcv_nxtとを含むバッファコピー完了通知を前記ソケット処理部に通知するように構成され、
前記アプリケーションバッファが、アドレスbaddrから始まる長さblenの領域をコピー領域として備え、
前記ソケット処理部が、前記バッファコピー完了通知に含まれるTCPパラメータrcv_nxtを参照し、その値に基づいて前記アプリケーションバッファの全ての領域に対するコピー要求が通知されたか否かを判定するように構成されることが好ましい。
前記TCP受信処理部が、送出するバッファコピー要求が前記アプリケーションバッファのデータを埋める最後のデータを含むか否かをTCPパラメータrcv_nxtに基づいて判定し、前記アプリケーションバッファのデータを埋める最後のデータを含むものと判定した場合には、該バッファコピー要求の通知後、同一の振り分け周回においてまだ要求を通知していない全てのTCPバッファコピー部に対してその周回のリンクシーケンス番号を含むダミーのバッファコピー要求を送出するように構成され、
前記TCPバッファコピー部が、それぞれバッファコピー完了通知を前記ソケット処理部に通知し、
前記TCPバッファコピー部のうちI番目(1≦I≦N)のものから前記ソケット処理部に通知された前記バッファコピー完了通知が、振り分けの周回回数を示すリンクシーケンス番号Lseq(I)(1≦I≦N)を含み、
前記ソケット処理部が、前記バッファコピー完了通知に基づいて前記アプリケーションバッファの全ての領域へパケットデータコピーされたか否かを判定し、前記アプリケーションバッファの全ての領域に対するコピー要求が通知されたと判定し、かつ、前記TCPバッファコピー部から通知されたバッファコピー完了通知のリンクシーケンス番号がいずれも等しい場合には、前記TCPバッファコピー部のバッファコピー処理が完了したと判定するように構成されることが好ましい。
TCPバッファコピー分散並列処理装置によって、受信パケットに対するTCPプロトコル処理を実施する工程と、
前記受信パケットが対向ホストによって送信された順序と同一の順序で到着した(インオーダー、In−Order)か否かを判定する工程と、を含むTCPバッファコピー分散並列処理方法であって、
インオーダーと判定された場合には、前記受信パケットを受信パケットバッファに設けたインオーダーキューに格納する工程と、
前記受信パケットのTCPシーケンス番号に基づいてアプリケーションバッファにおけるコピー先の領域を決定する工程と、
前記受信パケットを前記受信パケットバッファから前記アプリケーションバッファにコピーするバッファコピー要求を生成する工程と、
1又は2以上のTCPバッファコピー部のいずれかを選択して前記バッファコピー要求を通知することによって前記受信パケットのバッファコピーを分散並列処理させる工程と、を含み、
前記受信パケットが対向ホストによって送信された順序と異なる順序で到着した(アウトオブオーダー、Out−of−Order)と判定された場合には、前記受信パケットを前記受信パケットバッファに設けたアウトオブオーダーキューに格納する工程を含むことを特徴とする。
コンピュータによって、受信パケットに対するTCPプロトコル処理と、
前記受信パケットが対向ホストによって送信された順序と同一の順序で到着した(インオーダー、In−Order)か否かを判定する処理と、を実行させるTCPバッファコピー分散並列処理プログラムであって、
インオーダーと判定された場合には、前記受信パケットを受信パケットバッファに設けたインオーダーキューに格納する処理と、
前記受信パケットのTCPシーケンス番号に基づいてアプリケーションバッファにおけるコピー先の領域を決定する処理と、
前記受信パケットを前記受信パケットバッファから前記アプリケーションバッファにコピーするバッファコピー要求を生成する処理と、
1又は2以上のTCPバッファコピー部のいずれかを選択して前記バッファコピー要求を通知することによって前記受信パケットのバッファコピーを分散並列処理させる処理と、をコンピュータに実行させ、
前記受信パケットが対向ホストによって送信された順序と異なる順序で到着した(アウトオブオーダー、Out−of−Order)と判定された場合には、前記受信パケットを前記受信パケットバッファに設けたアウトオブオーダーキューに格納する処理をコンピュータに実行させることを特徴とする。
次に、本発明の実施形態について図面を参照して詳細に説明する。図1を参照すると、本発明の実施形態に係るTCPバッファコピー分散並列処理装置10は、TCPパケットを受信してプロトコル処理を行うTCP受信処理部1と、受信パケットを受信パケットバッファからアプリケーションバッファにコピーするN個(N≧1)のTCPバッファコピー部21〜2Nと、ソケット処理を行うソケット処理部3と、アプリケーションが動作するアプリケーション部4と、受信パケットを格納する受信パケットバッファ5と、アプリケーションに渡すストリームデータを格納するアプリケーションバッファ6と、ネットワークインタフェース部1、TCPバッファコピー部21〜2N及びソケット処理部3の間でコマンド情報を交換するためのイベントキュー71、721〜72N、73を含む。
パケット511→コピー元:paddr(1)、コピー先:baddr(1)=baddr、コピー長:plen(1)
パケット512→コピー元:paddr(2)、コピー先:baddr(2)=baddr(1)+plen(1)、コピー長:plen(2)
・・・・
パケット51N→コピー元:paddr(M)、コピー先:baddr(M)=baddr(M−1)+plen(M−1)、コピー長:plen(M−1)
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。図6は、本実施形態に係るTCPバッファコピー分散並列処理装置20の構成を示すブロック図である。本実施形態は、アウトオブオーダーデータの対応するコピー先がアプリケーションバッファ6の範囲内であるならばアウトオブオーダーデータが再構築可能になるのを待たずにバッファコピーを実施することによりパケット廃棄が発生した場合でも再構築処理時にバッファコピー要求が過負荷になり性能劣化することを防ぐというものである。
addr=baddr+seq_o−seq_b
一方、範囲内である場合(ステップD9のYes)には、TCPバッファコピー部2に対しバッファコピー要求を生成する(ステップD10)。この要求のコピー元はアウトオブオーダーキューの処理中のエントリに対応する有効データの開始アドレスである。一方、コピー先はアプリケーションバッファの対応領域のアドレスaddr、コピー長は処理中エントリの有効データ長となる。
次に、本発明の第3の実施形態について説明する。図9は、本実施形態に係るTCPバッファコピー分散並列処理装置30の構成を示すブロック図である。第2の実施形態では受信したアウトオブオーダーデータを再構築可能になるのを待たずにアプリケーションバッファ6にコピーする方式であった。しかしながら、この場合、アプリケーションバッファ6のデータがいつ揃ったのかを判定することが困難となる。第1の実施形態のように、アプリケーションバッファ6にコピーされるのは常にインオーダーデータであることが保障されている場合には、バッファコピー完了通知に示されたコピー完了データ長を積算していくだけでデータが揃ったか否かを判断可能である。しかし、インオーダーデータに加えてアウトオブオーダーデータがコピーされるような条件下では、単にコピーされたデータ長を積算していくだけでは、アプリケーションバッファ6のデータが揃ったか否かを判定することができなくなる。
条件1:Lseq(1)、・・・、Lseq(I−1)の値がLseq(I)に等しいこと
条件2:Lseq(I+1)、・・・、Lseq(N)の値がLseq(I)−1に等しいこと。
次に、第4の実施形態について説明する。第3の実施形態では、TCPのバッファコピーの振り分け方式がラウンドロビンであったため、完了判定を行うための各TCPバッファコピー部21〜2Nに対応するリンクシーケンス番号の期待値を予め知ることができた。しかし、バッファコピーの振り分け方式が、ラウンドロビンではなく任意である場合、又は、アプリケーションバッファ6の末尾の領域に対するバッファコピー要求が振り分けの周回の途中のブロックに対するものである場合には、従来の方式では、完了判定時の各TCPバッファコピー部に対応するリンクシーケンス番号の期待値を知ることができない。
条件1:Lseq(1)、・・・、Lseq(I−1)==Lseq(I)
条件2:Lseq(I+1)、・・・、Lseq(N)==Lseq(I)−1
条件1:Lseq(1)=Lseq(2)=Lseq(3)=10
条件2:Lseq(4)=Lseq(5)=9
条件:Lseq(1)=Lseq(2)=・・・=Lseq(5)=10
2、21〜2N TCPバッファコピー部
3 ソケット処理部
4 アプリケーション部
5 受信パケットバッファ
6 アプリケーションバッファ
8 データ再構築情報管理部
10、20、30 TCPバッファコピー分散並列処理装置
11 ネットワークインタフェース部
12 パケット処理部
13 TCPプロトコル処理部
51 インオーダーキュー
52 アウトオブオーダーキュー
61〜6M、6K アプリケーションバッファのコピー先領域
71、721〜72N、73 Eventキュー
81 rcv_nxt管理部
511〜51M インオーダーキューに格納済みのパケットデータ
521、522 アウトオブオーダーキューに格納済みのパケットデータ
821〜82N リンクシーケンス保持部
G1 インオーダーキューの有効エントリのアドレス
G2 インオーダーキューの有効エントリ
G3 アウトオブオーダーキューの有効エントリ
G21 インオーダーキューの次エントリの開始アドレス
G22 インオーダーキューのヘッダアドレス
G23 インオーダーキューのデータアドレス
G24 インオーダーキューの有効データのアドレス
G25 インオーダーキューの有効データ長
G26 インオーダーキューに格納されているヘッダデータ
G27 インオーダーキューに格納されているパケットデータ
G31 アウトオブオーダーキューの次エントリの開始アドレス
G32 アウトオブオーダーキューのヘッダアドレス
G33 アウトオブオーダーキューのデータアドレス
G34 アウトオブオーダーキューの有効データのアドレス
G35 アウトオブオーダーキューの有効データ長
G36 アウトオブオーダーキューに格納されているヘッダデータ
G37 アウトオブオーダーキューに格納されているパケットデータ
Claims (13)
- TCP受信処理部と、
1又は2以上のTCPバッファコピー部と、
ソケット処理部と、
受信パケットバッファと、
アプリケーションバッファと、を備えるTCPバッファコピー分散並列処理装置であって、
前記受信パケットバッファ及びアプリケーションバッファは、前記TCP受信処理部、TCPバッファコピー部及びソケット処理部からアクセス可能な記憶領域として構成され、
前記TCP受信処理部は、パケットの受信処理とTCPプロトコル処理とを実施し、
受信パケットが対向ホストによって送信された順序と同一の順序で到着した(インオーダー、In−Order)と判定した場合には、該受信パケットを前記受信パケットバッファに設けたインオーダーキューに格納し、該受信パケットのTCPシーケンス番号に基づいて前記アプリケーションバッファにおけるコピー先の領域を決定し、該受信パケットを前記受信パケットバッファから前記アプリケーションバッファにコピーするバッファコピー要求を生成し、前記TCPバッファコピー部のいずれかを選択して該バッファコピー要求を通知することによって受信パケットのバッファコピーを分散並列処理させるように構成され、
受信パケットが対向ホストによって送信された順序と異なる順序で到着した(アウトオブオーダー、Out−of−Order)と判定した場合には、該受信パケットを前記受信パケットバッファに設けたアウトオブオーダーキューに格納するように構成されたことを特徴とするTCPバッファコピー分散並列処理装置。 - 前記TCP受信処理部は、アウトオブオーダーと判定した受信パケットの前記アプリケーションバッファにおけるコピー先が前記アプリケーションバッファに設けたコピー先領域に含まれる場合に限って、前記バッファコピー要求を生成し、前記TCPバッファコピー部のいずれかを選択して前記バッファコピー要求を通知することによって受信パケットのバッファコピーを分散並列処理させるように構成されたことを特徴とする、請求項1に記載のTCPバッファコピー分散並列処理装置。
- 前記TCP受信処理部、TCPバッファコピー部及びソケット処理部はいずれもイベントキューを備え、
要求送出側は要求受信側に設けたイベントキューに要求を追加することで要求を通知するように構成され、
要求受信側は自身に設けたイベントキューをポーリングしてイベントキューに要求が追加されている場合にはその要求を取り出して処理を行うように構成され、
前記TCP受信処理部、TCPバッファコピー部及びソケット処理部は、それぞれ非同期動作を行うように構成されたことを特徴とする、請求項1又は2に記載のTCPバッファコピー分散並列処理装置。 - 前記TCP受信処理部は、前記バッファコピー要求の通知先を前記TCPバッファコピー部の中からラウンドロビン(Round Robin)によって選択するように構成されたことを特徴とする、請求項1ないし3のいずれか一に記載のTCPバッファコピー分散並列処理装置。
- 前記TCPバッファコピー部は、バッファコピー処理を完了した場合には、コピーを実施したデータ長を含むバッファコピー完了通知を前記ソケット処理部に通知するように構成され、
前記アプリケーションバッファは、アドレスbaddrから始まる長さblenの領域をコピー先領域として備え、
前記ソケット処理部は、前記バッファコピー完了通知に含まれるコピーを実施したデータ長を積算し、積算された値が前記アプリケーションバッファにおけるコピー先領域の長さblenに達したか否かに基づいて前記アプリケーションバッファの全ての領域に対するコピー要求が通知されたか否かを判定するように構成されたことを特徴とする、請求項1ないし4のいずれか一に記載のTCPバッファコピー分散並列処理装置。 - 前記TCPバッファコピー部は、バッファコピー処理を完了した場合には、コピーを実施したデータ長とTCP受信処理部から通知された受信パケットのTCPプロトコル処理後のTCPパラメータrcv_nxtとを含むバッファコピー完了通知を前記ソケット処理部に通知するように構成され、
前記アプリケーションバッファは、アドレスbaddrから始まる長さblenの領域をコピー先領域として備え、
前記ソケット処理部は、前記バッファコピー完了通知に含まれるTCPパラメータrcv_nxtを参照し、その値に基づいて前記アプリケーションバッファの全ての領域に対するコピー要求が通知されたか否かを判定するように構成されたことを特徴とする、請求項1ないし4のいずれか一に記載のTCPバッファコピー分散並列処理装置。 - 前記TCPバッファコピー部のうちI番目(1≦I≦N)のものから前記ソケット処理部に通知された前記バッファコピー完了通知は、振り分けの周回回数を示すリンクシーケンス(Link Sequence)番号Lseq(I)を含み、
前記ソケット処理部は、前記アプリケーションバッファの全ての領域に対するコピー要求が通知されたと判定し、かつ、判定に用いられたバッファコピー完了通知がラウンドロビンによる振り分けのうちI番目である場合には、以下の2条件
(a)Lseq(1)、・・・、Lseq(I−1)==Lseq(I)、
(b)Lseq(I+1)、・・・、Lseq(N)==Lseq(I)−1
が満たされたとき、前記TCPバッファコピー部のすべてのバッファコピー処理が完了したものと判定するように構成されたことを特徴とする、請求項5又は6に記載のTCPバッファコピー分散並列処理装置。 - 前記TCPプロトコル処理部は、前記TCPバッファコピー部に備えたイベントキューの残量を参照し、前記TCPバッファコピー部の中からイベントキューの残量がより少ないものを前記バッファコピー要求の通知先として動的に選択するように構成されたことを特徴とする、請求項3に記載のTCPバッファコピー分散並列処理装置。
- 前記TCPバッファコピー部は、バッファコピー処理を完了した場合には、コピーを実施したデータ長を含むバッファコピー完了通知を前記ソケット処理部に通知し、
前記アプリケーションバッファは、アドレスbaddrから始まる長さblenの領域をコピー先領域として備え、
前記ソケット処理部は、前記バッファコピー完了通知に含まれるコピーを実施したデータ長を積算し、積算された値が前記アプリケーションバッファにおけるコピー先領域の長さblenに達したか否かに基づいて前記アプリケーションバッファの全ての領域に対するコピー要求が通知されたか否かを判定するように構成されたことを特徴とする、請求項8に記載のTCPバッファコピー分散並列処理装置。 - 前記TCPバッファコピー部は、バッファコピー処理を完了した場合には、コピーを実施したデータ長とTCP受信処理部から通知された受信パケットのTCPプロトコル処理後のTCPパラメータrcv_nxtとを含むバッファコピー完了通知を前記ソケット処理部に通知するように構成され、
前記アプリケーションバッファは、アドレスbaddrから始まる長さblenの領域をコピー領域として備え、
前記ソケット処理部は、前記バッファコピー完了通知に含まれるTCPパラメータrcv_nxtを参照し、その値に基づいて前記アプリケーションバッファの全ての領域に対するコピー要求が通知されたか否かを判定するように構成されたことを特徴とする、請求項8に記載のTCPバッファコピー分散並列処理装置。 - 前記TCP受信処理部は、送出するバッファコピー要求が前記アプリケーションバッファのデータを埋める最後のデータを含むか否かをTCPパラメータrcv_nxtに基づいて判定し、前記アプリケーションバッファのデータを埋める最後のデータを含むものと判定した場合には、該バッファコピー要求の通知後、同一の振り分け周回においてまだ要求を通知していない全てのTCPバッファコピー部に対してその周回のリンクシーケンス番号を含むダミーのバッファコピー要求を送出するように構成され、
前記TCPバッファコピー部は、それぞれバッファコピー完了通知を前記ソケット処理部に通知し、
前記TCPバッファコピー部のうちI番目(1≦I≦N)のものから前記ソケット処理部に通知された前記バッファコピー完了通知は、振り分けの周回回数を示すリンクシーケンス番号Lseq(I)(1≦I≦N)を含み、
前記ソケット処理部は、前記バッファコピー完了通知に基づいて前記アプリケーションバッファの全ての領域へパケットデータコピーされたか否かを判定し、前記アプリケーションバッファの全ての領域に対するコピー要求が通知されたと判定し、かつ、前記TCPバッファコピー部から通知されたバッファコピー完了通知のリンクシーケンス番号がいずれも等しい場合には、前記TCPバッファコピー部のバッファコピー処理が完了したと判定するように構成されたことを特徴とする、請求項9又は10に記載のTCPバッファコピー分散並列処理装置。 - TCPバッファコピー分散並列処理装置によって、受信パケットに対するTCPプロトコル処理を実施する工程と、
前記受信パケットが対向ホストによって送信された順序と同一の順序で到着した(インオーダー、In−Order)か否かを判定する工程と、を含むTCPバッファコピー分散並列処理方法であって、
インオーダーと判定された場合には、前記受信パケットを受信パケットバッファに設けたインオーダーキューに格納する工程と、
前記受信パケットのTCPシーケンス番号に基づいてアプリケーションバッファにおけるコピー先の領域を決定する工程と、
前記受信パケットを前記受信パケットバッファから前記アプリケーションバッファにコピーするバッファコピー要求を生成する工程と、
1又は2以上のTCPバッファコピー部のいずれかを選択して前記バッファコピー要求を通知することによって前記受信パケットのバッファコピーを分散並列処理させる工程と、を含み、
前記受信パケットが対向ホストによって送信された順序と異なる順序で到着した(アウトオブオーダー、Out−of−Order)と判定された場合には、前記受信パケットを前記受信パケットバッファに設けたアウトオブオーダーキューに格納する工程を含むことを特徴とするTCPバッファコピー分散並列処理方法。 - コンピュータによって、受信パケットに対するTCPプロトコル処理と、
前記受信パケットが対向ホストによって送信された順序と同一の順序で到着した(インオーダー、In−Order)か否かを判定する処理と、を実行させるTCPバッファコピー分散並列処理プログラムであって、
インオーダーと判定された場合には、前記受信パケットを受信パケットバッファに設けたインオーダーキューに格納する処理と、
前記受信パケットのTCPシーケンス番号に基づいてアプリケーションバッファにおけるコピー先の領域を決定する処理と、
前記受信パケットを前記受信パケットバッファから前記アプリケーションバッファにコピーするバッファコピー要求を生成する処理と、
1又は2以上のTCPバッファコピー部のいずれかを選択して前記バッファコピー要求を通知することによって前記受信パケットのバッファコピーを分散並列処理させる処理と、をコンピュータに実行させ、
前記受信パケットが対向ホストによって送信された順序と異なる順序で到着した(アウトオブオーダー、Out−of−Order)と判定された場合には、前記受信パケットを前記受信パケットバッファに設けたアウトオブオーダーキューに格納する処理をコンピュータに実行させることを特徴とするTCPバッファコピー分散並列処理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008056535A JP4872952B2 (ja) | 2008-03-06 | 2008-03-06 | Tcpバッファコピー分散並列処理装置、方法及びプログラム |
US12/399,399 US7822053B2 (en) | 2008-03-06 | 2009-03-06 | Apparatus and method for TCP buffer copy distributed parallel processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008056535A JP4872952B2 (ja) | 2008-03-06 | 2008-03-06 | Tcpバッファコピー分散並列処理装置、方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009213065A JP2009213065A (ja) | 2009-09-17 |
JP4872952B2 true JP4872952B2 (ja) | 2012-02-08 |
Family
ID=41053520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008056535A Expired - Fee Related JP4872952B2 (ja) | 2008-03-06 | 2008-03-06 | Tcpバッファコピー分散並列処理装置、方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7822053B2 (ja) |
JP (1) | JP4872952B2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8665724B2 (en) | 2009-06-12 | 2014-03-04 | Cygnus Broadband, Inc. | Systems and methods for prioritizing and scheduling packets in a communication network |
US9065779B2 (en) | 2009-06-12 | 2015-06-23 | Wi-Lan Labs, Inc. | Systems and methods for prioritizing and scheduling packets in a communication network |
JP5541293B2 (ja) | 2009-12-03 | 2014-07-09 | 日本電気株式会社 | パケット受信装置、パケット通信システム、パケット順序制御方法 |
JP5668938B2 (ja) * | 2010-01-07 | 2015-02-12 | 日本電気株式会社 | パケット整列装置、受信装置、及びパケット整列方法 |
US8214448B2 (en) * | 2010-04-20 | 2012-07-03 | International Business Machines Corporation | Optimized utilization of DMA buffers for incoming data packets in a network protocol |
US20120020374A1 (en) * | 2010-07-26 | 2012-01-26 | Kenneth Jonsson | Method and System for Merging Network Stacks |
US9411868B2 (en) * | 2013-08-23 | 2016-08-09 | Morgan Stanley & Co. Llc | Passive real-time order state replication and recovery |
WO2015116075A1 (en) * | 2014-01-30 | 2015-08-06 | Hewlett-Packard Development Company, L.P. | Copy message from application buffer to send buffer within kernel |
CN105337896A (zh) * | 2014-07-25 | 2016-02-17 | 华为技术有限公司 | 报文处理方法和装置 |
CN105468712A (zh) * | 2015-11-20 | 2016-04-06 | 成都科来软件有限公司 | 一种数据存储兼容方法 |
US10547559B2 (en) * | 2015-12-26 | 2020-01-28 | Intel Corporation | Application-level network queueing |
CN108418776B (zh) * | 2017-02-09 | 2021-08-20 | 上海诺基亚贝尔股份有限公司 | 用于提供安全业务的方法和设备 |
EP3460500A1 (de) | 2017-09-26 | 2019-03-27 | Siemens Healthcare GmbH | Medizinisches bildgebungsgerät zur kombinierten magnetresonanzbildgebung und bestrahlung und verfahren zur bestimmung der bestückung von shim-einheiten |
US11444886B1 (en) * | 2018-09-21 | 2022-09-13 | Marvell Asia Pte Ltd | Out of order packet buffer selection |
CN114143268B (zh) * | 2021-10-25 | 2024-02-06 | 航天恒星科技有限公司 | 基于tcp的报文接收方法及装置、电子设备及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434620B1 (en) * | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
JP3441062B2 (ja) * | 2000-04-11 | 2003-08-25 | シャープ株式会社 | デジタル信号処理装置 |
US6985956B2 (en) * | 2000-11-02 | 2006-01-10 | Sun Microsystems, Inc. | Switching system |
JP2002208981A (ja) * | 2001-01-12 | 2002-07-26 | Hitachi Ltd | 通信方法 |
US8015303B2 (en) * | 2002-08-02 | 2011-09-06 | Astute Networks Inc. | High data rate stateful protocol processing |
US7305493B2 (en) * | 2002-11-27 | 2007-12-04 | Intel Corporation | Embedded transport acceleration architecture |
US20050175012A1 (en) * | 2004-02-06 | 2005-08-11 | Telefonaktiebolaget L.M. Ericsson (Publ) | System and method for transmitting and receiving data frames in a NAK-based window protocol |
US7535907B2 (en) * | 2005-04-08 | 2009-05-19 | Oavium Networks, Inc. | TCP engine |
US8116312B2 (en) * | 2006-02-08 | 2012-02-14 | Solarflare Communications, Inc. | Method and apparatus for multicast packet reception |
-
2008
- 2008-03-06 JP JP2008056535A patent/JP4872952B2/ja not_active Expired - Fee Related
-
2009
- 2009-03-06 US US12/399,399 patent/US7822053B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7822053B2 (en) | 2010-10-26 |
JP2009213065A (ja) | 2009-09-17 |
US20090225771A1 (en) | 2009-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4872952B2 (ja) | Tcpバッファコピー分散並列処理装置、方法及びプログラム | |
CN109936510B (zh) | 多路径rdma传输 | |
US7953817B2 (en) | System and method for supporting TCP out-of-order receive data using generic buffer | |
TWI306711B (en) | Message context based tcp transmission | |
EP1730919B1 (en) | Accelerated tcp (transport control protocol) stack processing | |
US7571247B2 (en) | Efficient send socket call handling by a transport layer | |
CN113490927B (zh) | 具有硬件集成和乱序放置的rdma输送 | |
CN103312807B (zh) | 数据传输方法、装置及系统 | |
US20080126564A1 (en) | Multiple context single logic virtual host channel adapter supporting multiple transport protocols | |
AU2011265444B2 (en) | Low latency FIFO messaging system | |
US20080059686A1 (en) | Multiple context single logic virtual host channel adapter supporting multiple transport protocols | |
US20200272579A1 (en) | Rdma transport with hardware integration | |
CA2604898A1 (en) | System and method of message traffic optimization | |
CN102394880A (zh) | 内容分发网络中的跳转响应处理方法和设备 | |
JP2009237768A (ja) | データ受信装置、データ受信方法およびデータ処理プログラム | |
CN111385269A (zh) | 数据传输方法和装置 | |
JP2008085932A (ja) | データ通信方法 | |
US9130740B2 (en) | Variable acknowledge rate to reduce bus contention in presence of communication errors | |
JP2019106697A (ja) | 相互接続ネットワークでのメッセージ再送遅延を動的に管理するための方法及びデバイス | |
JP5473406B2 (ja) | ネットワーク処理装置及びその処理方法 | |
JPWO2010032533A1 (ja) | ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法 | |
JP5880551B2 (ja) | 再送制御システム及び再送制御方法 | |
CN105144099B (zh) | 通信系统 | |
EP3977705B1 (en) | Streaming communication between devices | |
CN102420764B (zh) | 一种链路建立方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110204 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111012 |
|
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: 20111025 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111107 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141202 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |