JP2010183450A - ネットワークインターフェース装置 - Google Patents

ネットワークインターフェース装置 Download PDF

Info

Publication number
JP2010183450A
JP2010183450A JP2009026533A JP2009026533A JP2010183450A JP 2010183450 A JP2010183450 A JP 2010183450A JP 2009026533 A JP2009026533 A JP 2009026533A JP 2009026533 A JP2009026533 A JP 2009026533A JP 2010183450 A JP2010183450 A JP 2010183450A
Authority
JP
Japan
Prior art keywords
connection
context
port
packet
nic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009026533A
Other languages
English (en)
Other versions
JP5353278B2 (ja
Inventor
Yuichiro Yasujima
雄一郎 安島
Tomohiro Inoue
智宏 井上
Shinya Hiramoto
新哉 平本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009026533A priority Critical patent/JP5353278B2/ja
Priority to EP09178493.4A priority patent/EP2216955B1/en
Priority to KR20090131786A priority patent/KR101101216B1/ko
Priority to US12/699,392 priority patent/US8725879B2/en
Priority to CN201010112715.8A priority patent/CN101827019B/zh
Publication of JP2010183450A publication Critical patent/JP2010183450A/ja
Application granted granted Critical
Publication of JP5353278B2 publication Critical patent/JP5353278B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/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
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

【課題】従来のネットワークインターフェース装置は、最大接続数の制限撤廃とプロセッサの接続確立処理の負荷軽減の両方を満足することはできなかった。
【解決手段】NIC13(ネットワークインターフェース装置)は、通信の接続をポート番号で識別し、ポート毎の接続状態を主記憶12上に設けたポートコンテキストにより管理する。NIC13は、該ポートコンテキストを、主記憶上に設けられたポートテーブルにより管理する。このように、通信接続の確立・切断処理をNIC13にオフロードし、通信接続の管理を主記憶上で行うことで、プロセッサの通信処理の負荷を低減でき、かつ、維持可能な通信接続数をより多くすることができる。
【選択図】図2

Description

本発明は、ネットワークインターフェース装置に関する。
複数の演算ノードがネットワークを介して接続された構成の並列計算機が知られている。このような並列計算機においてノード間の低遅延通信を実現するためには、全ノード間で通信制御のための接続を維持することが望ましい。
並列計算機のノードは、ネットワークに接続するためのネットワークインターフェース装置(NIC:Network Interface Controller または Network Interface Card)を備えている。ノードは、ネットワークインターフェース装置を使用して、他のノードとネットワークを介する通信を行なう。このため、数万ノード規模の超並列計算機は、数万の通信接続を維持することが可能なネットワークインターフェース装置が必要となる。
また、Webサーバやデータベース・サーバなどの計算機は、端末との通信に、接続と切断が頻繁に発生する通信プロトコル(例えば、HTTP(Hyper Text Transfer Protocol))を使用する。このような計算機においては、処理速度向上のために、プロセッサによる通信の接続・切断のプロトコル処理の負荷を軽減することが重要である。
近年は、ギガビット・イーサネット(登録商標)などに代表されるように、ネットワークの通信速度の向上が著しい。これに伴い、計算機のプロセッサでは、通信処理の割合が高まり、アプリケーション(アプリケーションプログラム)処理の割合が低くなるという問題が顕在化してきている。このため、プロセッサによる通信処理の一部をネットワークインターフェース装置に任せるオフロード機能の実装が一般的になりつつある。このオフロード機能に関する公知技術は、特開2006−191537号公開公報や特開2003−333076号公開公報に開示されている。特開2006−191537号公開公報には、NICが通信処理を行うオフロードエンジンが開示されている。また、特開2003−333076号公開公報には、プロセッサが通信接続を確立した後、通信コンテキストをNICに移すことにより、通信処理を接続単位で選択的にオフロードする方式が開示されている。
特開2006−191537号公開公報 特開2003−333076号公開公報
特許文献1に開示されているNICは、オフロードエンジンに搭載されるメモリ容量がプロセッサの主記憶の容量よりも小さい。したがって、特許文献1は、ノード間の最大通信接続数が制限される。
一方、特許文献2のNICは、プロセッサの通信接続数確立処理の負荷が大きくなる。このため、特許文献2は、プロセッサのアプリケーション処理能力が低くなる。
本発明の目的は、ネットワークを介するノード間の通信において、プロセッサによる通
信接続の確立と切断の処理を肩代わりすることが可能で、かつ、ノード間で維持可能な通信接続数を、より多くできるネットワークインターフェース装置を提供することである。
開示のネットワークインターフェース装置は、コンピュータに接続され、ネットワークを介する通信を行なう
開示のネットワークインターフェース装置は、下記の第1及び第2の管理手段と制御手段を備える。
第1の管理手段は、通信接続をポート番号により識別し、ポート毎の通信接続の状態を、記憶手段に格納されている、ポート番号に対応付けられたコンテキストで管理する。
第2の管理手段は、該コンテキストの格納状態を管理する。
制御手段は、前記コンテキストを参照して、ポート間の通信接続の確立処理と切断処理を実行する。
開示のネットワークインターフェース装置は、維持できる通信接続数を多くすることができる。また、プロセッサによる通信接続の確立処理と切断処理を肩代わりして実行することで、プロセッサの通信処理の負荷を低減する。
本実施形態を適用した並列計算機の全体システム構成を示す図である。 図1のNICの構成の一例を示すブロック図である。 プロセッサの主記憶の構成例を示す図である。 本実施形態のポート定義を示す図である。 ポートコンテキストのデータ構造の一例を示す図である。 プロセッサによって送信指示キューに書き込まれるディスクリプタのデータ構造を示す図である。 NICの送信完了通知キュー制御部によって送信完了通知キューに書き込まれる送信完了ステータスのディスクリプタのデータ構造を示す図である。 NICの受信完了通知キュー制御部によって受信通知キューに書きこまれる受信ステータスを示すディスクリプタのデータ構造を示す図である。 制御パケットのデータ構造を示す図である。 転送データパケットのデータ構造を示す図である。 本実施形態における片方向通信の動作を示すシーケンス図である。 接続元プロセッサ11sが、通信接続を確立するために、接続元NIC13sに対して「接続要求」を指示する動作を示す図である。 接続先NICが、接続元NICから接続要求パケットを受信して、接続先NICに「接続許可」の応答パケットを送信する動作を示す図である。 接続元NICが、接続先NICから「接続許可」の応答パケットを受信したときの動作を示す図である。 接続済みポート(接続元ポート)から転送データを送信する動作を示す図である。 接続済みの接続先ポートが、接続元ポートが送信した転送データを受信する動作を示す図である。 接続済みの接続元ポートが、接続先ポートに切断通知を送信する動作を示す図である。 接続済みの接続先ポートが、接続元ポートから切断通知を受信する動作を示す図である。
以下、図面を参照しながら、本発明の実施形態について説明する。
まず、本実施形態で用いられる通信接続に関する主要な用語について定義する。
{ポート}
ポートは、以下のような属性を有する。
・ポートは通信接続の両端に位置する
・ポートには、通信接続の接続元として指定される接続元ポートと、通信接続の接続先として指定される接続先ポートの2種類がある
・ポートは、個々のアプリケーションに相当するプログラムであり、各ノードのプロセッサで実行される。ここで「アプリケーション」とは、OSI(Open System Interconnection)参照モデルのセッション層に属する通信プログラムによって実現される通信資源であり、データの送受信を行うための仮想的な接続の確立や解放を行う、アプリケーション層に属するアプリケーションなどを考えることができる。
{ポート番号}
ポート番号は、個々のアプリケーションがポートを特定するための識別情報である。ポート番号は具体的には、例えば、各ノード10のプロセッサ11で実行されるアプリケーションが確立している個々の通信接続を識別するための番号であり、個々の通信接続に一意的に割り当てられる。本実施形態においては、例えば、各ポートに対して、0”、“1”、“2”、・・・“n”(nは任意の正の整数)の連続番号を、ポート番号として割り当てる。
{通信接続の管理}
本実施形態は、通信接続をポート番号に結び付けて管理する。通信接続は、例えば、OSI参照モデルのトランスポート層におけるノード間(エンド・ツー・エンド間)の通信接続である。本実施形態では、ポート番号を用いて、エンド・ツー・エンド間での通信を制御する。本実施形態がサポートする通信接続は、例えば、OSI(Open System Interconnection)参照モデルのトランスポート層のプロトコルの通信接続、または、iSCSI(Internet Small Computer System Interface)プロトコルの通信接続などである。
{並列計算機のシステム構成}
図1は、本実施形態を適用した並列計算機の全体システム構成を示す図である。
図1に示す並列計算機1は、(n+1)個のノード10(10−0、10−1、・・・、10−49〜10−51、・・・、10−n)とネットワーク20を備えている。ここで、nは正の整数である。
(n+1)個のノード10は、ネットワーク20を介して互いに通信する。ネットワーク20は、例えば、相互接続網、LAN(Local Area Network)などである。各ノード10は、例えば、MPI(Message Passing Interface)などに基づきコマンドやデータなどを送受信する。ノード10間で送受信されるコマンドやデータは、例えば、パケットにより送られる。
各ノード10−i(i=0〜n)は、プロセッサ11(プロセッサ0、プロセッサ1、・・・、プロセッサn)、主記憶12及びNIC13を備えている。プロセッサ11は、例えば、マイクロプロセッサ及びそのチップセットなどを備える。主記憶12は、例えば、ROM(Read Only memory)やRAM(Random Access Memory)などの半導体メモリである。NIC13は、例えば、ネットワークインターフェースコントローラやネットワークインターフェースカードなどである。
主記憶12は、プロセッサが実行するOS(Operating System)、ミドルウェア、アプリケーションプログラムなどのソフトウェアが格納される領域以外に、通信接続の確立や切断などの通信処理に使用される情報であるポートコンテキストを格納する領域(ポートコンテキスト格納域)、及びポートコンテキストを管理するポートテーブル(ポート管理テーブル)を格納する領域を備えている。ポートコンテキスト及びポートテーブルの詳細は、後述する。
NIC13は、プロセッサの通信処理をオフロードする機能を備えている。NIC13によるオフロード機能の詳細は後述する。NIC13は、プロセッサ11が他のノード10のプロセッサ11に送信するコマンドやデータを主記憶12から読み出し、読み出したコマンドやデータを、ネットワーク20を介して他のノード10のNIC13に送信する。また、他のノード10のNIC13が送信するコマンドやデータを、ネットワーク20を介して受信し、受信したコマンドやデータを主記憶12に書き込む。コマンドやデータの送受信は、例えば、パケットを用いて行なわれる。
図1には、各ノード10の主記憶12上にポート0からポート3の4つのポートエントリを備えたポートテーブル121が設けられた例を示している。図1には、ノード10−1のポート0(ポート番号が“0”のポート)とノード10−51のポート2(ポート番号が“2”のポート)間の通信接続30が模式的に示されている。通信接続30は、例えば、OSI参照モデルのトランスポート層の通信接続である。図1に示すように、本実施形態のポートテーブル121は、ポート番号の降順に、そのポート番号に対応するポートエントリを格納する。
{NIC13のハードウェア構成}
図2は、図1のNIC13の構成の一例を示すブロック図である。
図2に示すように、NIC13は、PIO(Programmed Input/Output)制御部131、DMA制御部132、送信指示キュー制御部133、パケット送信処理部134、送信完了通知キュー制御部135、パケット受信処理部136、受信完了通知キュー制御部137を備えている。DMA制御部132は、バス138を介して、送信指示キュー制御部133、送信完了通知キュー制御部135、パケット送信処理部134、パケット受信処理部136及び受信完了通知キュー制御部137と接続されている。また、PIO制御部131と送信指示キュー制御部133とは、信号線139で接続されている。送信指示キュー制御部133とパケット送信処理部134とは、信号線140で接続されている。パケット送信処理部134と送信完了通知キュー制御部135とは、信号線141で接続されている。パケット受信処理部136と受信完了通知キュー制御部137とは、信号線142で接続されている。
図3は、プロセッサ11の主記憶12の構成例を示す図である。
図3に示すように、主記憶12には、ポートテーブル121、ポートコンテキスト123、ポートバッファ125、送信指示キュー127、送信完了通知キュー128及び受信通知キュー129が設けられる。ポートテーブル121、ポートコンテキスト123、ポートバッファ125、送信指示キュー127、送信完了通知キュー128及び受信通知キュー129のそれぞれの構成・機能の詳細は後述する。
PIO制御部131は電気的にプロセッサ11と接続されている。PIO制御部131は、プロセッサ11との間でコマンドやデータなどの送受信を行なう。また、PIO制御部131は、必要に応じて、プロセッサ11に割り込みをかける。
DMA制御部132は、プロセッサ11を介さずに、プロセッサ11の主記憶12に直接アクセスし、主記憶12との間でデータの転送を行う。
送信指示キュー制御部133は、DMA制御部132を介して、プロセッサ11の主記憶
12上に設けられた送信指示キュー127から、「送信指示」のディスクリプタを読み出す。そして、読み出したディスクリプタに記述されている送信パケットの作成に必要な情報を、信号線140を介してパケット送信処理部134に送る。
パケット送信処理部134は、送信指示キュー制御部133からの情報を受け取ると、受け取った情報を基に、制御パケットまたは転送データパケット(データ通信パケット)を生成する。そして、生成したパケットを、ネットワーク20を介して、送信指示により指定されたノード10のNIC13に送信する。そして、パケットの送信を終了すると、送信完了したパケットの種別を、信号線141を介して送信完了通知キュー制御部135に通知する。
送信完了通知キュー制御部135は、パケット送信処理部134からの通知を受け取ると、「送信完了通知」のディスクリプタを作成し、作成したディスクリプタをDMA制御部132を介して、プロセッサ11の主記憶12上に設けられた送信完了通知キュー128に書き込む。
パケット受信処理部136は、ネットワーク20から、送信先ノード10のNIC13が送信したパケットを受信する。そして、受信したパケットがデータ通信パケットであった場合には、そのパケットから転送データを取り出し、取り出した転送データをDMA制御部132を介して、プロセッサ11の主記憶12上に設けられたポートバッファ125に書き込む。また、パケット受信処理部136は、パケットを受信した場合には、受信したパケットの種別を、信号線142を介して受信完了通知キュー制御部137に通知する。受信完了通知キュー制御部137は、パケット受信処理部136から通知を受け取ると、「受信通知」のディスクリプタを作成し、作成したディスクリプタを、DMA制御部132を介してプロセッサ11の主記憶12上に設けられた受信通知キュー129に書き込む。
<ポート定義>
図4は、本実施形態のポート定義を示す図である。
本実施形態では、通信の接続を、ポート番号に結び付けて管理する。通信接続の管理は、ポートテーブル121、ポートコンテキスト123、ポートバッファ125を利用して実施される。
ポートコンテキスト123は、ポートの通信接続状態を管理する情報である。ポートバッファ125は、送信する転送データ、または受信した転送データを格納するバッファである。ポートテーブル121は、各ポートのポートコンテキスト123とポートエントリ1211を管理するテーブである。ポートテーブル121は、各ポートのポートコンテキスト123とポートエントリ1211を、ポート番号に対応付けて管理している。ポートテーブル121のエントリであるポートエントリ1211のエントリ番号は、ポート番号に対応している。したがって、ポートテーブル121のエントリ番号が“n”(nは、0または正の整数)のエントリには、ポート番号が“n”のポートエントリ1211が登録される。
図4に示すように、ポートエントリ1211は、「Enable」、「TYPE」、「Context Address」、「Buffer Address」、及び「Buffer Size」の各項目の情報を格納している。“Enable”は、ポートエントリ1211が有効であるか否かを示すフラグである。“Enable“フラグは、有効であれば1、無効であれば0に設定される。“TYPE”は、「受信」または「送信」のいずれかを示す情報である。“Context Address”は、対応するポートのポートコンテキスト123の主記憶12上の格納アドレスを示す。“Buffer Address”は、対応するポートのポートバッファ125の先頭アドレスを示す。“Buffer Size”は、ポートバッファ125のサイズ(例えば、バイト数)を示す情報である。
{ポートコンテキスト123の構成}
図5は、ポートコンテキスト123のデータ構造の一例を示す図である。
図5に示すように、ポートコンテキスト123は、プロトコル種別1231と通信状態1232の各情報を有している。プロトコル種別1231は、ポート間の通信で使用される通信プロトコルの種別を示す情報である。通信状態1232は、ポート間の通信接続の状態を示す情報である。通信状態1232には、「待機状態」、「接続済み状態」、「接続要求済み状態」、「切断通知受信済み状態」などがある。
{各キューに設定されるディスクリプタの内容>
本実施形態では、プロセッサ11の通信処理をNIC13にオフロードする。具体的には、「通信接続の確立」、「通信接続の切断」及び「データ通信(データ転送)」の処理を、NIC13にオフロードする。このオフロードの実装は、送信指示キュー127、送信完了通知キュー128及び受信通知キュー129を用いて行なわれる。プロセッサ11とNIC13は、これらのキューに対してディスクリプタの書き込み/読み出しを行なうことで情報を交換し、オフロードを実現する。
<送信指示キュー127>
送信指示キュー127は、プロセッサ11がNIC13に対して「通信接続の確立(接続要求)」、「データ送信(データ転送)」及び「通信接続の切断」を指示するために用いられるキューである。プロセッサ11が送信指示キュー127に対して前記3つの指示を書き込み、送信指示キュー127に書き込まれた指示をNIC13が送信指示キュー127から読み出すことで、プロセッサ11からNIC13に対して3つの指示が通知される。NIC13は、プロセッサ11からの指示を、送信指示キュー127を介して受け取ると、その指示に応じた送信パケットを作成し、作成した送信パケットを、ネットワーク20を介して通信接続相手のNIC13へ送信する。この送信パケットには、例えば、「接続要求パケット」、「接続応答パケット」、「転送データパケット」、「切断通知パケット」などがある。
図6は、プロセッサ11によって送信指示キュー127に書き込まれるディスクリプタのデータ構造を示す図である。図6(A)〜(C)に示すように、本実施形態において送信指示キュー127に書き込まれるディスクリプタは3種類である。
図6(A)に示す接続要求指示ディスクリプタ1331は、プロセッサ11がNIC13に対して「接続要求」を指示するために、プロセッサ11が送信指示キュー127に書き込むディスクリプタである。接続要求指示ディスクリプタ1331は、指示ID1331a、接続元ポート番号1331b、接続先アドレス1331c及び接続先ポート番号1331dの各情報を設定するフィールドを備えている。指示ID1331aは、プロセッサ11がNIC13に対して指示する「接続要求」に割り当てられたID(Identifier:識別子)である。接続元ポート番号1331bは、通信の接続元のポートのポート番号である。接続先アドレスは、通信の接続先のノード10が使用するOSI参照モデルのネットワーク層のアドレスである。接続先ポート番号1331dは、通信の接続先のポートのポート番号である。ポート番号は、通信の接続先、すなわち、接続先アドレスを有するノード10dで実行される、パケットの送信元のアプリケーションプログラムに割り当てられたポート番号に等しい。
図6(B)に示すデータ転送指示ディスクリプタ1332は、指示ID1332a、接続元ポート番号1332b、データ先頭アドレス1332c及びデータ長1332dの各情報を含んでいる。データ転送指示ディスクリプタ1332は、プロセッサ11がNIC13に対して「データ転送」を指示するために、プロセッサ11が送信指示キュー127に書き込むディスクリプタである。指示ID1332aは、プロセッサ11がNIC13に対して指示する「データ転送」に割り当てられたIDである。接続元ポート番号133
2bは、通信の接続元のポートのポート番号である。データ先頭アドレス1332cは、転送データパケット(データ通信パケット)に設定する送信データが格納されているポートバッファ125の先頭アドレスである。データ長1332dは、該ポートバッファ125に格納されているデータのサイズである。
図6(C)に示す切断通知送信指示ディスクリプタ1333は、指示ID1333aと接続元ポート番号1333bを含む。切断通知送信指示ディスクリプタ1333は、プロセッサ11がNIC13に対して「通信接続の切断」を指示するために、プロセッサ11が送信指示キュー127に書き込むディスクリプタである。指示ID1333aは、プロセッサ11がNIC13に対して指示する「切断通知送信」に割り当てられたIDである。接続元ポート番号1333bは、通信の接続元のポートのポート番号である。
<送信完了通知キュー128>
送信完了通知キュー128は、NIC13が、プロセッサ11から指示されたパケットの送信完了を、プロセッサ11に通知するために用いられるキューである。NIC13は、プロセッサ11から指示されたパケットの送信を完了すると、「送信完了ステータス」のディスクリプタを送信完了通知キュー128に書き込む。プロセッサ11は、送信完了通知キュー128から送信完了ステータスを読み出すことで、NIC13がプロセッサ11から指示されたたパケットを、通信接続相手のNIC13に対して送信完了したことを確認する。
図7は、NIC13の送信完了通知キュー制御部134によって送信完了通知キュー128に書き込まれる送信完了ステータスのディスクリプタのデータ構造を示す図である。図7(A)に示す接続要求送信指示完了ディスクリプタ1351は、プロセッサ11からNIC13に対して指示された「接続要求送信」に対するNIC13の処理結果を示すディスクリプタである。接続要求送信指示完了ディスクリプタ1351は、ステータスコード1351aを備えている。ステータスコード1351aは、NIC13の処理結果が“正常”または“エラー”であるかを示すコードである。接続要求送信指示完了ディスクリプタ1351は、NIC13の送信完了通知キュー制御部134により、接続要求送信に対する「送信完了ステータス」として送信完了通知キュー128に書き込まれる。
NIC13は、プロセッサ11が送信指示キュー127に書き込んだ「接続要求」を送信指示キュー127から読み出すと、接続要求パケットを、ネットワーク20を介して接続先のNIC13に送信する。そして、接続要求パケットの送信処理結果をステータスコード1351aに設定した接続要求送信指示完了ディスクリプタ1351を作成し、作成した接続要求ディスクリプタ1351を送信完了通知キュー128に書き込む。接続要求送信指示完了ディスクリプタ1351のステータスコード1351aは、接続要求パケットの送信が正常に終了した場合には“成功”を示すコード(例えば“0”)に設定される。一方、接続要求パケットの送信が失敗した場合には、接続要求送信指示完了ディスクリプタ1351のステータスコード1351aは“エラー”を示すコード(例えば“1”)が設定される。プロセッサ11は、送信完了通知キュー128から接続要求送信指示完了ディスクリプタ1351を読み出す。そして、そのステータスコード1351aを参照することで、NIC13に送信を指示した接続要求パケットが、接続先のノード10のNIC13に正常に送信されたか否かを確認する。
図7(B)に示すデータ転送指示完了ディスクリプタ1352は、プロセッサ11からNIC13に対して指示された「データ転送」に対するNIC13の処理結果を示すディスクリプタである。データ転送指示完了ディスクリプタ1352は、ステータスコード1352aと送信データ長1352bを備えている。ステータスコード1352aは、NIC13の処理結果が“正常”または“エラー”であるかを示すコードである。また、送信データ長1352bは、転送データの長さを示す情報である。データ転送指示完了ディスクリプタ1352は、NIC13の送信完了通知キュー制御部134により、転送データ送信の「送信完了ステータス」として送信完了通知キュー128に書きこまれる。
NIC13は、プロセッサ11が送信指示キュー127に書き込んだ「データ転送」を送信指示キュー127から読み出すと、データを転送するポートが“接続要求済み状態”であることを確認する。そして、ポートの状態の確認を終了すると、ポートバッファ125から転送データを読み出す。そして、読み出した転送データが設定された転送データパケットを生成し、生成した転送データパケットを、ネットワーク20を介して、接続先のノード10のNIC13に送信する。NIC13は、転送データパケットの送信処理が終了すると、データ転送指示完了ディスクリプタ1352を作成する。データ転送指示完了ディスクリプタ1352は、転送データパケットの送信処理結果がステータスコード1352aに設定され、転送データのデータ長が送信データ長1352bに設定されたものである。NIC13は、作成したデータ転送指示完了ディスクリプタ1352を送信完了通知キュー128に書き込む。
図7(C)に示す切断通知送信完了ディスクリプタ1353は、プロセッサ11からNIC13に対して指示された「切断通知送信」に対するNIC13の処理結果を示すディスクリプタである。切断通知送信完了ディスクリプタ1353は、ステータスコード1353aを備えている。ステータスコード1353aは、プロセッサ11からNIC13に対して指示された「切断通知送信」に対するNIC13の処理結果を示すコードである。切断通知送信完了ディスクリプタ1353は、NIC13により、切断通知送信の「送信完了ステータス」として、送信完了通知キュー128に書きこまれる。
NIC13は、プロセッサ11が送信指示キュー127に書き込んだ「切断通知送信」を送信指示キュー127から読み出すと、切断通知パケットを、ネットワーク20を介して接続先のNIC13に送信する。そして、切断通知パケットの送信処理が終了すると、送信処理結果がステータスコード1353aに設定された、切断通知送信完了ディスクリプタ1353を作成し、作成した切断通知送信完了ディスクリプタ1353を送信完了通知キュー128に書き込む。切断通知送信完了ディスクリプタ1353のステータスコード1353aは、切断通知パケットの送信が正常に終了した場合には“成功”を示すコード(例えば“0”)に設定される。一方、接続要求パケットの送信に失敗した場合には、切断通知送信完了ディスクリプタ1353のステータスコード1353aに“エラー”を示すコード(例えば“1”)が設定される。プロセッサ11は、送信完了通知キュー128から切断通知送信完了ディスクリプタ1353を読み出す。そして、切断通知送信完了ディスクリプタ1353を参照して、NIC13に送信を指示した切断通知パケットが、接続先のノード10のNIC13に正常に送信されたか否かを確認する。
<受信通知キュー129>
受信通知キュー129は、NIC13が、通信接続相手のNIC13から受信したパケットの種類を、プロセッサ11に通知するために使用されるキューである。NIC13は、通信接続相手のNIC13からパケットを受信すると、その受信パケットの種類に応じた受信ステータスを受信通知キュー129に書き込む。プロセッサ11は、受信通知キュー129から受信ステータスを読み出し、読み出した受信ステータスの内容を分析することで、通信接続相手のノード10のプロセッサ11が送信してきた通知の内容を判断する。受信パケットの種類は、「接続要求パケット」、「接続応答パケット」、「転送データパケット」、「切断通知パケット」などである。尚、これらのパケットは制御パケットに属する。
図8は、NIC13の受信完了通知キュー制御部137によって受信通知キュー129に書きこまれる受信ステータスを示すディスクリプタのデータ構造を示す図である。図8
(A)〜(D)に示すように、パケットの送信側または受信側のNIC13の受信通知キュー129に書き込まれるディスクリプタは主に4種類である。
{接続要求ディスクリプタ}
図8(A)に示す接続要求ディスクリプタ1371は、NIC13が接続要求パケットを受信した際に、通信接続相手からの「接続要求」を自ノード10のプロセッサ11に通知するために受信通知キュー129に書き込むディスクリプタである。
接続要求ディスクリプタ1371は、受信通知ID1371a、ポート番号1371b、要求元アドレス1371c及び要求元ポート番号1371dの各情報を含んでいる。
受信通知ID1371aは、「接続要求」の受信通知に割当てられたID(識別子)である。ポート番号1371bは、制御パケットに設定されている「接続先ポート番号」に等しい。要求元アドレス1371cは、接続要求パケットに設定されている「接続元アドレス」に等しい。要求元ポート番号1371dは、接続要求パケットに設定されている「接続元ポート番号」に等しい。尚、接続要求パケットの詳細については後述する。
{接続応答ディスクリプタ}
図8(B)に示す接続応答ディスクリプタ1372は、NIC13が、「接続応答パケット」を受信した際に、その受信をプロセッサ11に通知するために、受信通知キュー129に書き込むディスクリプタである。
接続応答ディスクリプタ1372は、受信通知ID1372a、ポート番号1372b、応答元アドレス1372c及び応答元ポート番号1372dの各情報を含んでいる。
受信通知ID1372aは、「接続応答」の受信通知IDに割り当てられたIDである。ポート番号1372bは、接続応答パケットの「接続先ポート番号」のフィールドに設定されているポート番号である。応答元アドレス1372cは、接続応答パケットの「接続元アドレス」のフィールドに設定されているアドレスである。応答元ポート番号1372dは、接続応答パケットの「接続元ポート番号」のフィールドに設定されているポート番号である。尚、接続応答パケットの詳細については後述する。
{データ転送ディスクリプタ}
図8(C)に示すデータ転送ディスクリプタ1373は、NIC13が、「転送データパケット」を受信した際に、その受信をプロセッサ11に通知するために、受信通知キュー129に書き込むディスクリプタである。データ転送ディスクリプタ1373は、受信通知ID1373a、ポート番号1373b、データ先頭アドレス1373c及びデータ長1373dの各情報を含んでいる。受信通知ID1373aは、「転送データ」の受信通知に割り当てられたIDである。ポート番号1373bは、転送データパケットに設定されている「接続先ポート番号」に等しい。データ先頭アドレス1373cは、NIC13によって転送データパケットから取り出されてポートバッファ125に格納された転送データのポートバッファ125内での先頭位置を示すアドレスである。データ長1373dは、ポートバッファ125に格納されている転送データのデータ長である。尚、転送データパケットの詳細については後述する。
{切断通知ディスクリプタ}
図8(D)に示す切断通知ディスクリプタ1374は、NIC13が、「切断通知パケット」を受信した際に、その受信をプロセッサ11に通知するために、受信通知キュー129に書き込むディスクリプタである。受信通知ID1374aは、「切断通知」の受信通知に割当てられたIDである。ポート番号1374bは、切断通知の受信先のポート番号(接続元ポート番号)である。これは、切断通知パケットに設定されている「接続元ポート番号」に等しい。
{制御パケット}
図9は、前記制御パケットのデータ構造を示す図である。
図9に示すように、制御パケット50は、ネットワーク層ヘッダ510とトランスポート層ヘッダ520を備えている。ネットワーク層ヘッダ510は、OSI参照モデルのネットワーク層のヘッダに相当するヘッダである。トランスポート層ヘッダ520は、OSI参照モデルのトランスポート層のヘッダに相当するヘッダである。
ネットワーク層ヘッダ510は、パケット長511、接続先アドレス512及び接続元アドレス513を備えている。パケット長511は、制御パケット500全体のサイズ(例えば、バイト長)である。接続先アドレス512は、制御パケット50の送信先のノード10のネットワーク層のアドレス(例えば、IPアドレス)である。接続元アドレス513は、制御パケット50を送信するノード10のネットワーク層のアドレス(例えば、IPアドレス)である。
トランスポート層ヘッダ520は、接続先ポート番号521、接続元ポート番号522、プロトコル種別523及びパケット種別524を備えている。接続先ポート番号521は、通信接続の接続先のアプリケーションプログラムのポート番号である。接続元ポート番号522は、通信接続の接続元のアプリケーションプログラムのポート番号である。プロトコル種別523は、通信接続で使用するトランスポート層のプロトコルの種別を示す情報である。パケット種別524は、通信接続で使用される制御パケットの種別を示す情報である。本実施形態が使用する制御パケットは、「接続要求パケット」、「接続応答パケット」及び「切断通知パケット」などである。プロトコル種別523は、これらの制御パケットの種別を示す。換言すれば、制御パケット50を受信したとき、パケット種別524に設定されている情報を参照することで、制御パケット50の種別を判別することができる。
{転送データパケット}
図10は、前記転送データパケットのデータ構造を示す図である。
図10に示すように、転送データパケット(データ通信パケット)60は、ネットワーク層ヘッダ610、トランスポート層ヘッダ620及びトランスポート層データ630を備えている。
ネットワーク層ヘッダ610は、パケット長611、接続先アドレス612及び接続元アドレス613を備えている。パケット長611は、転送データパケット全体のサイズ(例えば、バイト長)を示す情報である。接続先アドレス612と接続元アドレス613は、それぞれ、制御パケット50のネットワーク層ヘッダ510の接続先アドレス512と接続元アドレス513と同様である。
トランスポート層ヘッダ620は、接続先ポート番号621、接続元ポート番号622、プロトコル種別623及びパケット種別624を備えている。接続先ポート番号621、接続元ポート番号622及びプロトコル種別623は、制御パケット50のトランスポート層ヘッダ520の接続先ポート番号521、接続元ポート番号522及びプロトコル種別523と同様である。パケット種別624は、転送データパケット60の種別を示す情報である。
トランスポート層データ630は、転送データパケット60によって運ばれるトランスポート層のプロトコル(例えば、TCP(Transmission Control Protocol)など)のデータである。
[動作]
次に、本実施形態の動作を説明する。
<全体動作>
図11は、本実施形態における片方向通信の動作を示すシーケンス図である。
図11は、本実施形態のシステムにおいて、図1に示す接続元のノード10(以下、ノード10sと記載)から図1に示す接続先のノード10(以下、ノード10dと記載)へデータが転送される場合のシーケンスを示している。図11において、接続元のノード10sのプロセッサ11とNIC13は、それぞれ、プロセッサ11s、NIC13sと表記されている。また、接続先のノード10dのプロセッサ11とNIC13は、それぞれ、プロセッサ11d、NIC13dと表記されている。
接続元のノード10sのプロセッサ11sで実行中のポート(アプリケーション)から接続先のノード10dのプロセッサ11dで実行中のポート(アプリケーション)へのデータ転送は、以下に述べる手順にしたがって行なわれる。
(1)接続元のノード10sのプロセッサ11s(以下、接続元プロセッサ11sと記載)は、自ノード10sのNIC13s(以下、接続元NIC13sと記載)に「接続要求指示」を通知する。
(2)接続元NIC13sは、接続元プロセッサ11sから接続要求指示を受け取ると、「接続要求」を、接続先のノード10dのNIC13d(以下、接続先NIC13dと記載)に送信する。
(3)接続先NIC13dは、接続元NIC13sから接続要求を受け取ると、接続許可の応答(接続許可応答)を、接続先NIC13sに返信する。
(4)接続先NIC13dは、続いて、自ノード10dのプロセッサ11d(以下、接続先プロセッサ11d)に、接続要求の受信を通知する。
(5)接続元NIC13sは、接続先NIC13dから接続許可応答を受け取ると、接続許可応答の受信(接続応答受信)を接続元プロセッサ11sに通知する。
(6)接続元プロセッサ11sは、接続元NIC13sからの接続応答受信の通知を受け取ると、接続元NIC13sに「データ転送」を指示する。
(7)接続元NIC13sは、接続元プロセッサ11sからのデータ転送指示を受け取ると、接続元プロセッサ11sにより指示された「転送データ」を接続先NIC13dに送信する。
(8)接続先NIC13dは、接続元NIC13sから転送データを受信すると、その受信(転送データ受信)を接続先プロセッサ11dに通知する。
接続元プロセッサ11sが、全ての転送データを接続先プロセッサ11dに送信し終わるまで、上記(6)〜(8)の手順を繰り返す。
(9)接続元プロセッサ11sは、全転送データを接続先プロセッサ11dに送信すると、「切断通知」の送信を接続元NIC13sに指示する。
(10)接続元NIC13sは、接続元プロセッサ11sからの切断通知送信指示を受け取ると、「切断通知」を接続先NIC13dに送信する。
(11)接続先NIC13dは、接続元NIC13sから切断通知を受信すると、その受信(切断通知受信)を接続先プロセッサ11dに通知する。
上記(1)〜(11)の手順の実行により、接続元NIC13sと接続先NIC13dとの間に通信接続の接続が確立され、接続元プロセッサ11sから接続先プロセッサ11dへデータが転送される。そして、接続元プロセッサ11sが全ての転送データを接続先プロセッサ11dに送信すると、接続元NIC13sと接続先NIC13d間の通信接続が切断される。通信接続は、OSI参照モデルのトランスポート層の通信接続である。
上述したように、本実施形態は、データ転送のための通信の接続と確立の処理を、接続
元NIC13s及び接続先NIC13dが実行する。このとき、プロセッサ11とNIC13間の指示や通知は、上述した、ポートテーブル121、ポートコンテキスト123、ポートバッファ125を用いて行なわれる。これらの構成要素121、123、125は、ポート番号に関連付けられて管理される。
次に、上記(1)〜(11)のシーケンスにおける各手順の動作を詳細に説明する。
<接続要求送信>
図12は、接続元プロセッサ11sが、通信接続を確立するために、接続元NIC13sに対して「接続要求」を指示する動作を示す図である。図12に示す処理手順を説明する。
(1)初期設定
接続元プロセッサ11sは、ポートコンテキスト123を主記憶12(以後、主記憶12sと記載)上に確保し、そのポートコンテキスト123の通信状態1232を“待機状態”に設定する((1)−1)。そして、このポートコンテキスト123を主記憶12s上のポートテーブル121に登録する((1)−2)。
(2)接続要求指示
接続元プロセッサ11sは、接続要求送信指示のディスクリプタ1331を送信指示キュー127に書き込む。
(3)接続要求送信指示読み出し
接続元NIC13sは、送信指示キュー127から接続要求送信指示のディスクリプタ1331を読み出す。
(4)ポートテーブル読み出し
接続元NIC13sは、接続要求送信指示のディスクリプタ1331から接続元ポート番号1331bを読み出す。そして、読み出したポート番号1331bに対応するポートテーブル121のポートエントリ1211から接続元ポートのポートコンテキスト123の格納アドレスを読み出す。
(5)ポートコンテキスト読み出し
接続元NIC13sは、読み出した格納アドレスからポートコンテキスト123を読み出し、ポートコンテキスト123に書き込まれた通信状態1232が“待機状態”に設定されていることを確認する。
(6)接続要求パケット送信
接続元NIC13sは、接続先NIC13d宛の接続要求パケット50cdを作成し、作成した接続要求パケット50cdをネットワーク20に送信する。接続要求パケット50cdは、図9に示す形式の制御パケット50であり、パケット種別624には“接続要求”が設定されている。
(7)ポートコンテキスト更新
接続元NIC13sは、ポートコンテキスト123の通信状態1232を“接続要求済み状態”に更新する。
(8)送信完了通知書き込み
接続元NIC13sは、送信完了通知キュー128に“送信完了ステータス”のディスクリプタを書き込む。送信完了ステータスのディスクリプタは、図7(A)に示す形式のディスクリプタ1351である。
(9)送信完了通知読み出し
接続元プロセッサ11sは、送信完了通知キュー128から送信完了ステータスのディスクリプタを読み出す。接続元プロセッサ11sは、送信完了ステータスのディスクリプタを参照して、接続先プロセッサ11dに接続要求パケット50cdが正常に送信されたか調べる。接続元プロセッサ11sは、送信完了ステータスが“正常”に設定されていれば、接続先プロセッサ11dに接続要求パケット50cdが正常に送信されたと判断する。一方、送信完了ステータスが“エラー”に設定されていれば、接続元NIC13sが接続要求パケット50cdの送信に失敗したと判断する。
<接続要求受信>
図13は、接続先NIC13dが、接続元NIC13sから接続要求パケット50cdを受信して、接続先NIC13dに「接続許可」の応答パケットを送信する動作を示す図である。図13に示す処理手順を説明する。
(1)初期設定
接続先NIC13dは、ポートコンテキスト123を主記憶12(以後、主記憶12dと記載)上に確保し、ポートコンテキスト123の通信状態1232を“待機状態”に設定する((1)−1)。そして、ポートコンテキスト123を主記憶12d上のポートテーブル121に登録する((1)−2)。
(2)接続要求パケット受信
接続先NIC13dは、ネットワーク20から、接続元NIC13sが送信した接続要求パケット50cdを受信する。
(3)ポートテーブル読み出し
接続先NIC13dは、接続要求パケット50cdに書き込まれた接続先ポート番号1331dのフィールドからポート番号を読み出し、ポートテーブル121のポート番号に対応するポートエントリ1211を参照する。そして、ポートエントリ1211の「Context Address」に設定されている主記憶12dのアドレスを読み出す。このアドレスは、ポート番号が割り当てられている接続先ポートのポートコンテキスト123の主記憶12d上の格納アドレス(コンテキスト格納アドレス)である。
(4)ポートコンテキスト読み出し
接続先NIC13dは、主記憶12d上の接続先ポートのコンテキスト格納アドレスから、接続先ポートのポートコンテキスト123を読み出し、その通信状態1232が“待機状態”となっていることを確認する。
(5)接続応答パケット送信
接続先NIC13dは、通信状態の確認後、接続許可の応答パケット50caを作成し、作成した応答パケット50caをネットワーク20に送信する。接続許可の応答パケット50caは図9に示す形式の制御パケット50であり、そのパケット種別624には“接続許可”が設定されている。
(6)ポートコンテキスト更新
接続先NIC13dは、ポートコンテキスト123を“接続要求済み状態”に更新する。
(7)受信通知書き込み
接続先NIC13dは、主記憶12d上の受信通知キュー129に“受信ステータス”のディスクリプタを書き込む。このディスクリプタは、図8(A)に示すディスクリプタ1371である。
(8)受信通知読み出し
接続先プロセッサ11dは、受信通知キュー129から受信ステータスのディスクリプタを読み出す。接続先プロセッサ11dは、受信ステータスが“正常”に設定されているか調べる。そして、受信ステータスが“正常”に設定されていれば、接続先ポNIC13dが、接続元プロセッサ11sから送信された接続要求パケット50cdを正常に受信したと判断する。一方、受信ステータスが“エラー”であれば、前記接続要求パケット50cdの受信に失敗したと判断する。
尚、接続先NIC13dは、上記(4)において接続先ポートのポートコンテキスト123の通信状態1232が“待機状態”となっていないと認識した場合には、上記(5)において接続拒否の応答パケットをネットワーク20に送信する。
<接続要求応答受信>
図14は、接続元NIC13sが、接続先NIC13dから「接続許可」の応答パケッ
トcaを受信したときの動作を示す図である。図14に示す処理手順を説明する。
(1)接続応答パケット受信
接続元NIC13sは、ネットワーク20から「接続許可」の応答パケット50caを受信する。
(2)ポートテーブル読み出し
接続元NIC13sは、受信した応答パケット50caの接続先ポート番号1331dのフィールドからポート番号を読み出す。そして、読み出したポート番号に対応する主記憶12s上のポートテーブル121のポートエントリ1211の「Context Address」のフィールドからアドレスを読み出す。
(3)ポートコンテキスト読み出し
接続元NIC13sは、読み出した主記憶12s上のアドレスをアクセスし、そのアドレスからポートコンテキスト123を読み出す。そして、読み出したポートコンテキスト123の通信状態1232が“接続要求済み状態”であることを確認する。
(4)ポートコンテキスト更新
接続元NIC13sは、通信状態の確認後、主記憶12s上のポートコンテキスト123の通信状態1232を“接続済み状態”に更新する。
(5)受信通知書き込み
接続元NIC13sは、主記憶12s上の受信通知キュー129に「受信ステータス」のディスクリプタを書き込む。この受信ステータスのディスクリプタは、図8(A)に示す形式のディスクリプタ1371である。
(6)受信通知読み出し
接続元プロセッサ11sは、受信通知キュー129から「受信ステータス」のディスクリプタを読み出す。接続先プロセッサ11sは、受信ステータスが“正常”に設定されているか調べる。そして、受信ステータスが“正常”に設定されていれば、接続先プロセッサ11sが、「接続要求」を許可したと判断する。これにより、接続元ポートと接続先ポートとの間に通信接続が確立する。
接続元NIC13sが、上記(1)において前記接続拒否の応答パケットを受信し、かつ、上記(3)において前記接続先ポート番号1331dに対応するポートコンテキスト123の通信状態1232が“接続済み状態”になっていることを確認したとする。この場合、接続元NIC13sは、該ポートコンテキスト123の通信状態1232を“待機状態”に戻す。この場合、接続先NIC13sは、「接続許可」の応答パケットを、接続元NIC13sに送信しない。
<転送データ送信>
図15は、接続済みポート(接続元ポート)から転送データを送信する動作を示す図である。図15の処理手順を説明する。
(1)転送データ書き込み
接続元プロセッサ11sは、主記憶12s上のポートバッファ125に「転送データ」を格納する。
(2)データ転送指示
接続元プロセッサ11sは、データ転送指示のディスクリプタ1132(図6(B)参照)を、主記憶12s上の送信指示キュー127に書き込む。
(3)送信指示読み出し
接続元NIC13sは、送信指示キュー127に書き込まれた送信指示キュー127からデータ転送指示のディスクリプタ1132を読み出す。
(4)ポートテーブル読み出し
接続元NIC13sは、ディスクリプタ1132の接続元ポート番号1332bのフィールドに設定されている接続元ポート番号を基に、接続先ポートのポートコンテキスト123を格納する主記憶12s上のアドレスをポートテーブル121から読みだす。より詳細に説明すると、前記ポート番号に対応するポートテーブル121のポートエントリ1211の内容を読み出す。そして、そのポートエントリ1211の「Context Address」のフィールドに設定されているアドレスを、接続先ポートのポートコンテキスト123の格納アドレスとみなす。
(5)ポートコンテキスト読み出し
接続元NIC13sは、主記憶12s上の格納アドレスからポートコンテキスト123を読みだし、その通信状態1232が“接続済み状態”に設定されていることを確認する。
(6)転送データ読み出し
接続元NIC13sは、ポートエントリ1211の「Buffer Address」のフィールドに設定されているアドレスと「Buffer Size」に設定されているバッファサイズを基に、主記憶12s上のポートバッファ125から転送データを読みだす。
(7)転送データパケット送信
接続元NIC13sは、図10に示す形式の転送データパケット60を作成し、作成した転送データパケット60をネットワーク20に送信する。
(8)送信完了通知書き込み
接続元NIC13sは、送信完了ステータスのディスクリプタを送信完了通知キュー128に書き込む。この送信完了ステータスのディスクリプタは、図7(B)に示す形式のディスクリプタ1352である。
(9)送信完了通知読み出し
接続元プロセッサ11sは、送信完了通知キュー128から送信完了ステータスを読み出す。接続元プロセッサ11sは、送信完了ステータスが“正常”に設定されているか調べる。そして、送信完了ステータスが“正常”に設定されていれば、接続元NIC13dが、転送データパケット60を正常に送信したと判断する。この場合、接続元ポートから接続先ポート宛の転送データの送信は正常に行なわれたことになる。一方、接続先プロセッサ11sは、送信完了ステータスが“エラー”に設定されていれば、接続元NIC13sが転送データパケット60の送信に失敗したと判断する。この場合、接続元ポートから接続先ポート宛の転送データパケット60の送信は失敗したことになる。
<転送データ受信>
図16は、接続済みの接続先ポートが、接続元ポートが送信した転送データを受信する動作を示す図である。図16に示す処理手順を説明する。
(1)転送データパケット受信
接続先NIC13dは、ネットワーク20から、接続元NIC13sが送信した転送データパケット60を受信する。
(2)ポートテーブル読み出し
接続先NIC13dは、受信した転送データパケット60から接続先ポート番号621を取り出し、主記憶12d上のポートテーブル121の接続先ポート番号621に対応するポートエントリ1211から「Context Address」(コンテキスト格納アドレス)を読みだす。
(3)ポートコンテキスト読み出し
接続先NIC13dは、主記憶12d上のコンテキスト格納アドレスからポートコンテキスト123を読み出す。そして、ポートコンテキスト123の通信状態1232を参照して、転送データパケットを受信したポートが“接続済み状態”であることを確認する。(4)転送データ書き込み
接続先NIC13dは、転送データパケット60に格納されているデータ630(転送データ)を読み出し、読み出した転送データを、主記憶12d上のポートバッファ125に格納する。
(5)受信通知書き込み
接続先NIC13dは、受信ステータスを、主記憶12d上の受信通知キュー129に
書き込む。この受信ステータスは、図8(B)に示すデータ転送ディスクリプタ1373である。
(6)受信通知読み出し
接続先プロセッサ11dは、受信通知キュー129から受信ステータスを読み出す。
(7)転送データ読み出し
接続先プロセッサ11dは、受信ステータスのデータ先頭アドレス1373cとデータ長1332dを参照して、ポートバッファ125から転送データを読み出す。これにより、接続先ポートは、接続元ポートが送信した転送データを受信する。
<切断通知送信>
図17は、接続済みの接続元ポートが、接続先ポートに切断通知を送信する動作を示す図である。図17に示す処理手順を説明する。
(1)切断通知送信指示
接続元プロセッサ11sは、「切断通知送信指示」のディスクリプタを、主記憶12s上の送信指示キュー127に書き込む。この切断通知送信指示のディスクリプタは、図6(C)に示す切断通知送信指示ディスクリプタ1333と同様である。
(2)切断通知送信指示読み出し
接続元NIC13sは、送信指示キュー127から切断通知送信指示ディスクリプタ1333を読み出す。
(3)ポートテーブル読み出し
接続元NIC13sは、読み出した切断通知送信指示のディスクリプタ1333から接続元ポート番号1333bを読み出し、ポートテーブル121の接続元ポート番号1333bに対応するポートエントリ1211から「Context Address」(コンテキスト格納アドレス)を読み出す。
(4)ポートコンテキスト読み出し
接続元NIC13sは、主記憶12sのコンテキスト格納アドレスからポートコンテキスト123を読み出し、読み出したポートコンテキスト123の通信状態1232が“接続済み状態”であることを確認する。
(5)切断通知パケット送信
接続元NIC13sは、切断通知パケット50dcを作成し、作成した切断通知パケット50dcをネットワーク20に送信する。切断通知パケット50dcは、図9に示す形式の制御パケット50であり、そのパケット種別624は“切断通知”に設定されている。
(6)ポートコンテキスト更新
接続元NIC13sは、ポートコンテキスト123の通信状態1232を“切断通知済み状態”に更新する。
(7)送信完了通知書き込み
接続元NIC13sは、「送信完了ステータス」を主記憶12s上の送信指示キュー127に書き込む。この送信完了ステータスは、図7(C)に示す切断通知送信完了ディスクリプタ1353と同様である。
(8)送信完了通知読み出し
接続元プロセッサ11sは、送信指示キュー127から送信完了ステータスを読み出す。接続元プロセッサ11sは、送信完了ステータスが“正常”に設定されていれば、接続元NIC13sが、切断通知パケット50dcを接続先NIC13dに正常に送信したと判断する。この場合、接続元ポートから接続先ポート宛に切断通知が正常に送信される。一方、接続元プロセッサ11sは、送信完了ステータスが“エラー”に設定されていれば、接続元NIC13sが切断通知パケット50dcの送信に失敗したと判断する。この場合、接続元ポートから接続先ポートには切断通知は送信されない。
<切断通知受信>
図18は、接続済みの接続先ポートが、接続元ポートから切断通知を受信する動作を示す図である。図18に示す処理手順を説明する。
(1)切断通知パケット受信
接続先NIC13dは、ネットワーク20から切断通知パケット50dcを受信する。(2)ポートテーブル読み出し
接続先NIC13dは、受信した切断通知パケット50dcから接続先ポート番号621を読み出す。そして、主記憶12d上のポートテーブル121の接続先ポート番号621に対応するポートエントリ1211から「Context Address」(コンテキスト格納アドレス)を読み出す。
(3)ポートコンテキスト読み出し
接続先NIC13dは、主記憶12dのコンテキスト格納アドレスからポートコンテキスト123(接続先ポートのコンテキスト)を読み出し、その通信状態1232が“接続済み状態”に設定されていることを確認する。
(4)ポートコンテキスト更新
接続先NIC13dは、ポートコンテキスト123の通信状態1232を“切断通知受信済み状態”に更新する。
(5)受信通知書き込み
接続先NIC13dは、「受信ステータス」を主記憶12d上の受信通知キュー129に書き込む。受信ステータスのディスクリプタは、図8(C)に示すディスクリプタ1374と同様である。
(6)受信通知読み出し
接続先プロセッサ11dは、受信通知キュー129から受信ステータスを読み出す。
接続先プロセッサ11dは、受信ステータスが“正常”に設定されていれば、接続先NIC13dが前記切断通知パケット50dcを正常に受信したと判断する。これにより、接続元ポートと接続先ポートとの間の通信接続は切断される。一方、接続先プロセッサ11sは、受信ステータスが“エラー”に設定されていれば、接続先NIC13dが切断通知パケット50dcの受信に失敗したと判断する。この場合、接続元ポートと接続先ポートとの間の通信接続は切断されない。
ところで、本実施形態のNIC13は、片方向通信の接続の確立を行なう。本実施形態のNIC13を利用して双方向通信を行なう場合、プロセッサは、NIC13を利用して、2つの片方向通信の確立を行うだけでよい。このため、本実施形態のNIC13を用いて双方向通信を実施する場合、通常のNICを利用する場合に比べ、プロセッサの処理の負担が軽減される。また、本実施形態は、ポートコンテキスト123により、通信の接続が切断された状態を定義することが可能である。このため、プロセッサ11は、ポートコンテキスト123を参照することにより、通信資源の回収などの負荷の高い処理を遅延させ、それらの処理を、適切なタイミングでまとめて実行することができる。
また、本実施形態は、プロセッサ11の主記憶12上に設けられたポートコンテキスト123に基づいて、通信接続の確立処理を行うので、従来の通信処理を行なうオフロードエンジンを備えたNICよりも、多数の通信接続を維持することができる。より詳細に説明すると、記憶容量の大きい主記憶12上にポートコンテキスト123を保持するので、維持可能な通信接続数をより多くできる。また、本実施形態のNIC13は、プロセッサ11dの主記憶12を利用してポートの通信接続を管理するので、該オフロードエンジンを備える従来のNICと比べて、ハードウェアのコストが小さいという利点を有する。また、本実施形態は、Webアプリケーションのように、通信接続の確立と切断が多発するアプリケーションに適用した場合、上記オフロードエンジンを備えた従来のNICと同等のホストプロセッサの処理の負荷の低減効果を期待できる。
本発明は、上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範
囲内で種々に変形して実施することができる。
例えば、上記実施形態では、ポートコンテキスト123及びポートテーブル121はプロセッサ11の主記憶12d上に設けられているが、本発明の構成は、これに限定されるものではない。例えば、ポートコンテキスト及びポートテーブルは、プロセッサ内の専用レジスタ内または専用メモリ上に設けられてもよい。この場合、該専用レジスタ及び該専用メモリは、ネットワークインターフェース装置が直接アクセス可能な形態で設置されることが望ましい。
以上の実施形態に関し、更に、以下の付記を開示する。
(付記1)
コンピュータに接続され、ネットワークを介する通信を行なうインターフェース装置であって、
通信接続をポート番号により識別し、ポート毎の通信接続の状態を、記憶手段に格納されている、ポート番号に対応付けられたコンテキストで管理する第1の管理手段と、
該コンテキストの格納状態を管理する第2の管理手段と、
前記コンテキストを参照して、ポート間の通信接続の確立処理と切断処理を実行する制御手段と、
を備えるネットワークインターフェース装置。
(付記2)
付記1記載のネットワークインターフェース装置であって、
前記制御手段は、
前記コンピュータのプロセッサから接続要求パケットの送信を指示された場合、該指示において送信元として指定されているポート番号に対応するコンテキストを調べ、該コンテキストが“待機状態”に設定されていれば、接続要求パケットを前記ネットワークに送信する。
(付記3)
付記2記載のネットワークインターフェース装置であって、
前記制御手段は、前記接続要求パケットを送信した後、送信完了を前記プロセッサに通知する。
(付記4)
付記2記載のネットワークインターフェース装置であって、
前記制御手段は、前記接続要求パケットを受信した場合、そのパケットにおいて接続先として指定されているポート番号に対応するコンテキストを調べ、該コンテキストが“待機状態”に設定されていれば、接続許可の応答パケットを前記ネットワークに送信して該コンテキストを“接続済み状態”に更新し、前記コンテキストが“待機状態”に設定されていなければ、接続拒否の応答パケットを前記ネットワークに送信する。
(付記5)
付記4記載のネットワークインターフェース装置であって、
前記制御手段は、前記接続要求パケットの受信及び前記応答パケットの送信を行い、必要に応じて前記コンテキストの更新を行い、その後、前記プロセッサに前記接続要求パケットの受信を通知する。
(付記6)
付記4記載のネットワークインターフェース装置であって、
前記制御手段は、前記接続許可の応答パケットを受信した場合、該応答パケットにおいて接続元として指定されているポート番号に対応するコンテキストを調べ、該コンテキストが“接続要求済み状態”に設定されている場合には該コンテキストを“接続済み状態”に更新する。
(付記7)
付記4記載のネットワークインターフェース装置であって、
前記制御手段は、前記接続拒否の応答パケットを受信した場合、該応答パケットにおい
て接続元として指定されているポート番号に対応するコンテキストを調べ、該コンテキストが“接続済み状態”に設定されている場合には、該コンテキストを“待機状態”に戻す。
(付記8)
付記6または付記7記載のネットワークインターフェース装置であって、
前記制御手段は、前記応答パケットの受信及び前記コンテキストの更新が終了した後、前記プロセッサに前記応答パケットの受信を通知する。
(付記9)
付記1記載のネットワークインターフェース装置であって、
前記制御手段は、コンピュータのプロセッサから切断通知パケットの送信を指示された場合、該指示において接続元として指定されているポート番号に対応するコンテキストを調べ、該コンテキストが“接続済み状態”に設定されている場合には切断通知パケットを前記ネットワークに送信する。
(付記10)
付記9記載のネットワークインターフェース装置であって、
前記制御手段は、前記切断通知パケットを受信した場合、そのパケットにおいて接続先として指定されているポート番号に対応するコンテキストを調べ、該コンテキストが“接続済み状態”に設定されていれば該コンテキストを“切断通知受信済み状態”に更新する。
(付記11)
付記1記載のネットワークインターフェース装置であって、
前記コンテキストと前記管理機構は、前記プロセッサの主記憶上に設けられる。
(付記12)
付記1記載のネットワークインターフェース装置であって、
前記コンテキストと前記管理機構は、前記プロセッサの専用レジスタに格納され、
前記第1の管理手段は、該専用のレジスタにアクセスして、前記ポート毎の接続状態を管理する。
(付記13)
付記1記載のネットワークインターフェース装置であって、
前記コンテキストと前記管理機構は、前記プロセッサの専用メモリ上に設けられ、
前記第1の管理手段は、該専用メモリにアクセスして、前記ポート毎の接続状態を管理する。
(付記14)
付記11、12または13記載のネットワークインターフェース装置であって、
前記管理機構はテーブルであり、
前記第2の管理手段は、前記コンテキストを該テーブルにより管理し、
該テーブルのエントリは、少なくとも、前記コンテキストの格納位置に関する情報を含む。
(付記15)
付記1乃至14のいずれか1項に記載のネットワークインターフェース装置であって、
前記コンテキストは、少なくとも、プロトコルの種別に関する情報と、前記ポートの通信状態に関する情報を有する。
10(10−〜10−n) ノード
11 プロセッサ
12(12s、12d) 主記憶
121 ポートテーブル
1211 ポートエントリ
123 ポートコンテキスト
1231 プロトコル種別
1232 通信状態
125 ポートバッファ
127 送信指示キュー
128 送信完了通知キュー
129 受信通知キュー
13 NIC
131 PIO制御部
132 DMA制御部
133 送信指示キュー制御部
134 パケット送信処理部
135 送信完了通知キュー制御部
136 パケット受信処理部
137 受信完了通知キュー制御部
138 バス
139〜142 信号線
20 ネットワーク
50 制御パケット
50cd 接続要求パケット
50ca 接続許可の応答パケット
50dc 切断通知パケット
510 ネットワーク層ヘッダ
511 パケット長
512 接続先アドレス
513 接続元アドレス
520 トランスポート層ヘッダ
521 接続先ポート番号
522 接続元ポート番号
523 プロトコル種別
524 パケット種別
60 転送データパケット
610 ネットワーク層ヘッダ
611 パケット長
612 接続先アドレス
613 接続元アドレス
620 トランスポート層ヘッダ
621 接続先ポート番号
622 接続元ポート番号
623 プロトコル種別
624 パケット種別(データ)
630 トランスポート層データ
1331 接続要求指示ディスクリプタ
1331a 指示ID(接続要求)
1331b 接続元ポート番号
1331c 接続先アドレス
1331d 接続先ポート番号
1332 データ転送指示ディスクリプタ
1332a 指示ID(データ転送)
1332b 接続元ポート番号
1332c データ先頭アドレス
1332d データ長
1333 切断通知ディスクリプタ
1333a 指示ID(切断通知)
1333b 接続元ポート番号
1351 接続要求送信指示完了ディスクリプタ
1351a エラーコード
1352 データ転送指示完了ディスクリプタ
1352a エラーコード
1371 接続要求ディスクリプタ
1371a 受信通知ID(接続要求)
1371b ポート番号
1371c 要求元アドレス
1371d 要求元ポート番号
1372 接続応答ディスクリプタ
1372a 受信通知ID(接続応答)
1372b ポート番号
1372c 応答元アドレス
1372d 応答先アドレス
1373 データ転送ディスクリプタ
1373a 受信通知ID(データ転送)
1373b ポート番号
1373c データ先頭アドレス
1373d データ長
1374 切断通知ディスクリプタ
1374a 受信通知ID(切断通知)
1374b ポート番号

Claims (10)

  1. コンピュータに接続され、ネットワークを介する通信を行なうインターフェース装置であって、
    通信接続をポート番号により識別し、ポート毎の通信接続の状態を、記憶手段に格納されている、ポート番号に対応付けられたコンテキストで管理する第1の管理手段と、
    該コンテキストの格納状態を管理する第2の管理手段と、
    前記コンテキストを参照して、ポート間の通信接続の確立処理と切断処理を実行する制御手段と、
    を備えるネットワークインターフェース装置。
  2. 請求項1記載のネットワークインターフェース装置であって、
    前記制御手段は、
    前記コンピュータのプロセッサから接続要求パケットの送信を指示された場合、該指示において送信元として指定されているポート番号に対応するコンテキストを調べ、該コンテキストが“待機状態”に設定されていれば、接続要求パケットを前記ネットワークに送信する。
  3. 請求項2記載のネットワークインターフェース装置であって、
    前記制御手段は、前記接続要求パケットを送信した後、送信完了を前記プロセッサに通知する。
  4. 請求項2記載のネットワークインターフェース装置であって、
    前記制御手段は、前記接続要求パケットを受信した場合、そのパケットにおいて接続先として指定されているポート番号に対応するコンテキストを調べ、該コンテキストが“待機状態”に設定されていれば、接続許可の応答パケットを前記ネットワークに送信して該コンテキストを“接続済み状態”に更新し、前記コンテキストが“待機状態”に設定されていなければ、接続拒否の応答パケットを前記ネットワークに送信する。(4)
  5. 請求項4記載のネットワークインターフェース装置であって、
    前記制御手段は、前記接続要求パケットの受信及び前記応答パケットの送信を行い、必要に応じて前記コンテキストの更新を行い、その後、前記プロセッサに前記接続要求パケットの受信を通知する。
  6. 請求項4記載のネットワークインターフェース装置であって、
    前記制御手段は、前記接続許可の応答パケットを受信した場合、該応答パケットにおいて接続元として指定されているポート番号に対応するコンテキストを調べ、該コンテキストが“接続要求済み状態”に設定されている場合には該コンテキストを“接続済み状態”に更新する。
  7. 請求項4記載のネットワークインターフェース装置であって、
    前記制御手段は、前記接続拒否の応答パケットを受信した場合、該応答パケットにおいて接続元として指定されているポート番号に対応するコンテキストを調べ、該コンテキストが“接続済み状態”に設定されている場合には、該コンテキストを“待機状態”に戻す。
  8. 請求項6または請求項7記載のネットワークインターフェース装置であって、
    前記制御手段は、前記応答パケットの受信及び前記コンテキストの更新が終了した後、前記プロセッサに前記応答パケットの受信を通知する。
  9. 請求項1記載のネットワークインターフェース装置であって、
    前記制御手段は、コンピュータのプロセッサから切断通知パケットの送信を指示された場合、該指示において接続元として指定されているポート番号に対応するコンテキストを調べ、該コンテキストが“接続済み状態”に設定されている場合には切断通知パケットを前記ネットワークに送信する。
  10. 請求項9記載のネットワークインターフェース装置であって、
    前記制御手段は、前記切断通知パケットを受信した場合、そのパケットにおいて接続先として指定されているポート番号に対応するコンテキストを調べ、該コンテキストが“接続済み状態”に設定されていれば該コンテキストを“切断通知受信済み状態”に更新する。
JP2009026533A 2009-02-06 2009-02-06 通信装置 Expired - Fee Related JP5353278B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2009026533A JP5353278B2 (ja) 2009-02-06 2009-02-06 通信装置
EP09178493.4A EP2216955B1 (en) 2009-02-06 2009-12-09 Network interface device
KR20090131786A KR101101216B1 (ko) 2009-02-06 2009-12-28 네트워크 인터페이스장치
US12/699,392 US8725879B2 (en) 2009-02-06 2010-02-03 Network interface device
CN201010112715.8A CN101827019B (zh) 2009-02-06 2010-02-04 网络接口设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009026533A JP5353278B2 (ja) 2009-02-06 2009-02-06 通信装置

Publications (2)

Publication Number Publication Date
JP2010183450A true JP2010183450A (ja) 2010-08-19
JP5353278B2 JP5353278B2 (ja) 2013-11-27

Family

ID=42235671

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009026533A Expired - Fee Related JP5353278B2 (ja) 2009-02-06 2009-02-06 通信装置

Country Status (5)

Country Link
US (1) US8725879B2 (ja)
EP (1) EP2216955B1 (ja)
JP (1) JP5353278B2 (ja)
KR (1) KR101101216B1 (ja)
CN (1) CN101827019B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015177261A (ja) * 2014-03-13 2015-10-05 株式会社東芝 通信装置、情報処理装置、通信方法及び通信プログラム
JP2015177263A (ja) * 2014-03-13 2015-10-05 株式会社東芝 通信装置、情報処理装置、通信方法および通信プログラム
US10944677B2 (en) 2018-03-08 2021-03-09 Fujitsu Limited Information processing apparatus and information processing system
JP2022546102A (ja) * 2019-09-10 2022-11-02 華為技術有限公司 パケット処理方法および装置、ならびにチップ

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103200085B (zh) * 2013-04-16 2016-05-25 中航网信(北京)科技有限公司 一种实现vxlan报文线速收发的方法及系统
US9747227B1 (en) * 2013-05-24 2017-08-29 Qlogic, Corporation Method and system for transmitting information from a network device
US9853101B2 (en) 2015-10-07 2017-12-26 Taiwan Semiconductor Manufacturing Company, Ltd. Strained nanowire CMOS device and method of forming
CN106789708B (zh) * 2016-12-06 2020-10-09 中国电子科技集团公司第三十二研究所 Tcp/ip卸载引擎中的多通道处理方法
JP2019164713A (ja) * 2018-03-20 2019-09-26 東芝メモリ株式会社 ストレージシステム及びデータ転送方法
US10880211B2 (en) 2019-05-06 2020-12-29 Seth Gregory Friedman Transaction encoding and verification by way of data-link layer fields
KR20210080009A (ko) * 2019-12-20 2021-06-30 삼성전자주식회사 가속기, 가속기의 동작 방법 및 가속기를 포함한 디바이스
EP4144048A4 (en) 2020-06-08 2024-06-26 Liquid Markets Gmbh HARDWARE-BASED TRANSACTION EXCHANGE
US20210150074A1 (en) * 2020-12-23 2021-05-20 Jose Niell Vm encryption of block storage with end-to-end data integrity protection in a smartnic
US11301408B1 (en) 2021-06-07 2022-04-12 Liquid-Markets-Holdings, Incorporated Asymmetric read / write architecture for enhanced throughput and reduced latency

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001230812A (ja) * 2000-02-14 2001-08-24 Hitachi Ltd 通信開始処理をオフロードするネットワーク接続装置およびそれを用いた方法
JP2003348184A (ja) * 2002-05-27 2003-12-05 Nec Corp 通信制御装置
JP2004173166A (ja) * 2002-11-22 2004-06-17 Matsushita Electric Ind Co Ltd 通信端末装置およびデータ送信方法
JP2006526969A (ja) * 2003-06-05 2006-11-24 エヌヴィディア コーポレイション オフロードユニットを使用したtcp接続のためのデータ処理
JP2008507030A (ja) * 2004-07-14 2008-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・プロトコル処理のオフロードにおいてメモリ管理をサポートする装置および方法
JP2008507201A (ja) * 2004-07-14 2008-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・プロトコル処理のオフロードにおいて接続確立をサポートする装置および方法
JP2008148133A (ja) * 2006-12-12 2008-06-26 Canon Inc 通信装置、その制御方法及びプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07210433A (ja) 1994-01-18 1995-08-11 Hitachi Ltd ファイルサーバ
JP2939707B2 (ja) 1994-12-19 1999-08-25 日本電気エンジニアリング株式会社 通信制御システムの同期制御方法
US6687758B2 (en) * 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US6697868B2 (en) * 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US7007103B2 (en) 2002-04-30 2006-02-28 Microsoft Corporation Method to offload a network stack
EP1772771A4 (en) * 2004-07-15 2008-06-25 Matsushita Electric Ind Co Ltd COHERENT LIGHT SOURCE AND OPTICAL APPARATUS USING THE SAME
US7783880B2 (en) 2004-11-12 2010-08-24 Microsoft Corporation Method and apparatus for secure internet protocol (IPSEC) offloading with integrated host protocol stack management

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001230812A (ja) * 2000-02-14 2001-08-24 Hitachi Ltd 通信開始処理をオフロードするネットワーク接続装置およびそれを用いた方法
JP2003348184A (ja) * 2002-05-27 2003-12-05 Nec Corp 通信制御装置
JP2004173166A (ja) * 2002-11-22 2004-06-17 Matsushita Electric Ind Co Ltd 通信端末装置およびデータ送信方法
JP2006526969A (ja) * 2003-06-05 2006-11-24 エヌヴィディア コーポレイション オフロードユニットを使用したtcp接続のためのデータ処理
JP2008507030A (ja) * 2004-07-14 2008-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・プロトコル処理のオフロードにおいてメモリ管理をサポートする装置および方法
JP2008507201A (ja) * 2004-07-14 2008-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・プロトコル処理のオフロードにおいて接続確立をサポートする装置および方法
JP2008148133A (ja) * 2006-12-12 2008-06-26 Canon Inc 通信装置、その制御方法及びプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015177261A (ja) * 2014-03-13 2015-10-05 株式会社東芝 通信装置、情報処理装置、通信方法及び通信プログラム
JP2015177263A (ja) * 2014-03-13 2015-10-05 株式会社東芝 通信装置、情報処理装置、通信方法および通信プログラム
US9866639B2 (en) 2014-03-13 2018-01-09 Kabushiki Kaisha Toshiba Communication apparatus, information processor, communication method, and computer-readable storage medium
US9961147B2 (en) 2014-03-13 2018-05-01 Kabushiki Kaisha Toshiba Communication apparatus, information processor, communication method, and computer-readable storage medium
US10944677B2 (en) 2018-03-08 2021-03-09 Fujitsu Limited Information processing apparatus and information processing system
JP2022546102A (ja) * 2019-09-10 2022-11-02 華為技術有限公司 パケット処理方法および装置、ならびにチップ
US11695502B2 (en) 2019-09-10 2023-07-04 Huawei Technologies Co., Ltd. Packet processing method and apparatus, and chip

Also Published As

Publication number Publication date
US8725879B2 (en) 2014-05-13
US20100306387A1 (en) 2010-12-02
EP2216955B1 (en) 2016-07-27
JP5353278B2 (ja) 2013-11-27
EP2216955A1 (en) 2010-08-11
KR101101216B1 (ko) 2012-01-04
CN101827019B (zh) 2014-09-10
KR20100090629A (ko) 2010-08-16
CN101827019A (zh) 2010-09-08

Similar Documents

Publication Publication Date Title
JP5353278B2 (ja) 通信装置
US10204070B2 (en) Method, device, system and storage medium for implementing packet transmission in PCIE switching network
CN105531684B (zh) 通用pci express端口
US7817634B2 (en) Network with a constrained usage model supporting remote direct memory access
EP3942759A1 (en) System and method for facilitating efficient management of idempotent operations in a network interface controller (nic)
US8458280B2 (en) Apparatus and method for packet transmission over a high speed network supporting remote direct memory access operations
EP1868093B1 (en) Method and system for a user space TCP offload engine (TOE)
US11902184B2 (en) Methods and systems for providing a virtualized NVMe over fabric service
US11895027B2 (en) Methods and systems for service distribution using data path state replication and intermediate device mapping
US6856619B1 (en) Computer network controller
US11593294B2 (en) Methods and systems for loosely coupled PCIe service proxy over an IP network
JP4415391B2 (ja) データをネットワークに送信する方法及び装置並びにデータをネットワークから受信する方法及び装置
JP2022179413A (ja) 元データパケットを使用するサービス状態レプリケーションのための方法及びシステム
CN118069387A (zh) 一种基于硬件多线程的rdma数据发送队列管理方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130314

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130812

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