(57)【特許請求の範囲】
【請求項１】
パケットを作成して送信する送信部と、パケットを受信する受信部とを備えた通信をサポートする通信装置に於いて、
前記送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信部と、
転送先から再送要求を受信した際に、要求された転送データからパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。
【請求項２】
パケットを作成して送信する送信部と、パケットを受信する受信部とを備えた通信をサポートする通信装置に於いて、
前記送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信部と、
転送先から受信不許可通知を受信した際に、前記パケット送信部によるパケット転送を中断する転送中断部と、
転送先から再送要求を受信した際に、要求された転送データからパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
前記パケット破棄部で前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知部と、
前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。
【請求項３】
パケットを作成して送信する送信部と、パケットを受信する受信部とを備えた通信をサポートする通信装置に於いて、
前記送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して繰返し送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。
【請求項４】
パケットを作成して送信する送信部と、パケットを受信する受信部とを備えた通信をサポートする通信装置に於いて、
前記送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送部と、
前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動させるデータ移動部と、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。
【請求項５】
パケットを作成して送信する送信部と、パケットを受信する受信部とを備えた通信をサポートする通信装置に於いて、
転送先に許可を問合せることなく転送し、不許可の場合には再送要求を受けて再送する第１転送モード処理部と、
転送先に問合せることなく転送し、不許可の場合は不許可通知を受けて転送を中断し、再送要求を受けて再送する第２転送モード処理部と、
転送完了通知を受けるまで転送先に許可を問合せることなく繰返し転送する第３転送モード処理部と、
転送先に許可を問合せることなく転送し、不許可の場合は一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する第４転送モード処理部と、
転送先に許可を問合せ、許可通知を受けて転送する第５転送モード処理部と、
前記第１乃至第５転送モード処理部のいずれか１つを、ネットワーク負荷と受信側のメモリ使用量の少なくともいずれか一方に基づいて選択してデータ転送を実行させる転送モード選択制御部と、
を備えたことを特徴とする通信装置。
【請求項６】
請求項５記載の通信装置に於いて、
前記第１転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信部と、
転送先から再送要求を受信した際に、要求された転送データからパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第１転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。
【請求項７】
請求項５記載の通信装置に於いて、
前記第２転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信部と、
転送先から受信不許可通知を受信した際に、パケット送信部によるパケット転送を中断する転送中断部と、
転送先から再送要求を受信した際に、要求された転送データからパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第２転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
前記パケット破棄部で前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知部と、
前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。
【請求項８】
請求項５記載の通信装置に於いて、
前記第３転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して繰返し送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第３転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。
【請求項９】
請求項５記載の通信装置に於いて、
前記第４転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第４転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送部と、
前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動させるデータ移動部と、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。
【請求項１０】
請求項５記載の通信装置に於いて、
前記第５転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可確認を送信して受信許可通知を受信した場合に、転送データからパケットを作成して送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第５転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
転送元から受信確認通知を受信した時に前記転送領域管理情報を参照して受信許可通知又は受信不許可通知を送信する確認応答部と、
前記受信領域に受信パケットを転送するパケット受信部と、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する転送完了通知部と、
を備えたことを特徴とする通信装置。
【請求項１１】
請求項５記載の通信装置に於いて、前記転送モード設定部は、
前記受信側のメモリ使用率が少ない場合は前記第４転送モード処理部を選択し、
前記受信側のメモリ使用率が多い場合は、ネットワーク負荷の低い順に、前記第３転送モード処理部、第１転送モード処理部及び第５転送モード処理部を順次選択することを特徴とする通信装置。
【請求項１２】
パケットを作成して送信する送信ステップと、パケットを受信する受信ステップとを備えた通信をサポートする通信方法に於いて、
コンピュータに、
パケット送信部がデータ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信ステップと、
パケット再送部が転送先から再送要求を受信した際に、要求された転送データからパケットを作成して送信するパケット再送ステップと、
送信完了部が転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
転送領域管理部が受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信部がパケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時にパケット破棄部が前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記受信パケットの破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、再送要求部が前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
完了通知部が受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を実行させることを特徴とする通信方法。
【請求項１３】
パケットを作成して送信する送信ステップと、パケットを受信する受信ステップとを備えた通信をサポートする通信方法に於いて、
コンピュータに、
パケット送信部がデータ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信ステップと、
転送中断部が転送先から受信不許可通知を受信した際に、前記パケット送信ステップによるパケット転送を中断する転送中断ステップと、
パケット再送部が転送先から再送要求を受信した際に、要求された転送データからパケットを作成して送信するパケット再送ステップと、
送信完了部が転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
転送領域管理部が受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信部がパケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット破棄部がパケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケットの破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
不許可通知部が前記パケット破棄ステップで前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、再送要求部が前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
完了通知部が受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を実行させることを特徴とする通信方法。
【請求項１４】
パケットを作成して送信する送信ステップと、パケットを受信する受信ステップとを備えた通信をサポートする通信方法に於いて、
コンピュータに、
パケット送信部がデータ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して繰返し送信するパケット送信ステップと、
送信完了部が転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
転送領域管理部が受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信部がパケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット破棄部がパケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄ステップと、
完了通知部により受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を実行することを特徴とする通信方法。
【請求項１５】
パケットを作成して送信する送信ステップと、パケットを受信する受信ステップとを備えた通信をサポートする通信方法に於いて、
コンピュータに、
パケット送信部がデータ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信ステップと、
送信完了部が転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
転送領域管理部が受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信部がパケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
バッファ転送部がパケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ領域への転送を前記転送領域管理情報に記録するバッファ転送ステップと、
データ移動部が前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動させるデータ移動ステップと、
完了通知部が前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を実行させることを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＤＭＡ（Ｒｅｍｏｔｅ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）方式によりデータを高速転送する通信装置、方法及びプログラムに関し、特に受信先の許可を問合せることなく投機的にＲＤＭＡパケットを転送する通信装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、大規模なＰＣクラスタや並列分散サーバシステムでは、ノード間やストレージ・ホスト間の接続を高性能化するため、高い通信性能を求められる部分においては、ソケット通信に代表されるセンド／レシーブ（ｓｅｎｄ／ｒｅｃｅｉｖｅ）型通信の代わりに、リード／ライト（Ｒｅａｄ／Ｗｒｉｔｅ）型通信のＲＤＭＡ方式が用いられている。
【０００３】
センド／レシーブ型通信では、転送元ノードが転送元のメモリ領域を指定し、転送先ノードが転送先のメモリ領域を指定することにより通信を行うが、ＲＤＭＡ方式は、転送起動側が転送元及び転送先の双方のメモリ領域を指定するため、転送の際に必要となる中間バッファを削減でき、中間バッファと転送元及び転送先のメモリ領域間で発生するコピー処理を削減できる。
【０００４】
特に、インフィニィバンド（ＩｎｆｉｎｉＢａｎｄ）や１０ギガビットイーサネット（Ｒ）（１０ＧｂＥｔｈｅｒｎｅｔ）のように、１ギガバイト／秒（１ＧＢ／ｓ）クラスの高速なネットワークを用いる際には、コピー処理の削減により大幅に通信性能を改善することができる。
【０００５】
ＲＤＭＡ通信では、転送起動側が転送元及び転送先の双方のメモリ領域を指定し、起動処理を行う。この際、通信対象となるノードには、転送の開始及び終了が通知されない。したがって、実際には、ＲＤＭＡ通信を起動する際には、通信対象となる転送先のノードに対して、転送先のメモリ領域への転送の開始許可を求めるための通信処理を事前に行う必要がある。
【０００６】
従来のＲＤＭＡ通信のデータ転送手順は次のようになる。
（１）送信側
送信側は、ＲＤＭＡ起動可能になったら、受信側に受信許可の有無を問い合わせる。受信許可を受信してから、ＲＤＭＡデータを転送する。最後に、ａｃｋ（転送完了通知）を受信すると転送を完了する。
（２）受信側
受信側は受信許可の有無の問い合わせに対し、受信可能になった時点で、受信許可を転送する。この後、ＲＤＭＡデータを受信完了すると、ａｃｋを送信側へ返す。
【特許文献１】特開２００４−１９２１７９号公報
【特許文献２】特開２００５−０４４３５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、このような従来のＲＤＭＡ通信にあっては、ＲＤＭＡ通信を開始する前に、転送先に対し転送許可を求めるための通信処理が必要となり、その分、データ転送に時間がかかるという問題がある。この転送先に対し転送許可を求めるための通信処理は、特に高スループット、高レイテンシであるネットワークにおいて大きな問題となる。
【０００８】
例えば、近年の１０ギガビットイーサネット（なおイーサネットは登録商標である。以下、省略する）で使用するＮＩＣ（ネットワークインタフェースカード）の実装では、スループットは１ギガバイト／秒以上であるが、レイテンシは１０〜２０μs程度と大きい。
【０００９】
このような場合に、例えば１キロバイトのデータといった短いデータをＲＤＭＡ転送する場合を考えると、データ転送にかかる時間は、ＲＤＭＡ転送自体は１μs以下となるが、事前に必要となる転送許可を求める通信処理で発生する時間は１０〜２０μsであるため、レイテンシがボトルネックとなり、スループットを十分に発揮できないという問題がある。
【００１０】
本発明は、転送先に対し転送許可を求めるための通信処理を不要にしてスループットを高めるようにしたＲＤＭＡ通信をサポートする通信装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明はＲＤＭＡ通信をサポートする通信装置を提供する。
【００１２】
（第１転送モード処理）
本発明は、ＲＤＭＡパケットを作成して送信する送信部と、ＲＤＭＡパケットを受信する受信部とを備えた第１転送モードのＲＤＭＡ通信をサポートする通信装置を提供する。
【００１３】
第１転送モード処理は、転送先に許可を問合せることなく投機的に転送し、不許可の場合には再送要求を受けて再送する処理である。
【００１４】
ここで、送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信部と、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送部と、
転送先から転送完了通知（ａｃｋ）を受信してパケット送信を正常終了する送信完了部と、
を備え、
受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に前記受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共にパケット破棄を転送領域管理情報に記録するパケット破棄部と、
パケット破棄部で受信パケットを破棄した後に受信領域の転送許可を判別した場合に、転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知（ａｃｋ）を送信する完了通知部と、
を備えたことを特徴とする。
【００１５】
（第２転送モード処理）
本発明の別の形態にあっては、ＲＤＭＡパケットを作成して送信する送信部と、ＲＤＭＡパケットを受信する受信部とを備えた第２転送モードのＲＤＭＡ通信をサポートする通信装置を提供する。
第２転送モードは、転送先に問合せることなく投機的に転送し、不許可の場合は不許可通知を受けて転送を中断し、再送要求を受けて再送する処理である。
【００１６】
送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信部と、
転送先から受信不許可通知を受信した際に、パケット送信部によるパケット転送を中断する転送中断部と、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に前記受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共にパケット破棄を転送領域管理情報に記録するパケット破棄部と、
パケット破棄部で受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知部と、
パケット破棄部で受信パケットを破棄した後に受信領域の転送許可を判別した場合に、転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする。
【００１７】
（第３転送モード処理）
本発明の別の形態にあっては、ＲＤＭＡパケットを作成して送信する送信部と、ＲＤＭＡパケットを受信する受信部とを備えた第３転送モードのＲＤＭＡ通信をサポートする通信装置を提供する。第３転送モードは、転送完了通知を受けるまで転送先に許可を問合せることなく繰返し転送する処理である。
【００１８】
送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に繰返し送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に前記受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する転送完了通知部と、
を備えたことを特徴とする。
【００１９】
（第４転送モード処理）
本発明の別の形態にあっては、ＲＤＭＡパケットを作成して送信する送信部と、ＲＤＭＡパケットを受信する受信部とを備えた第４転送モードのＲＤＭＡ通信をサポートする通信装置を提供する。
第４転送モードは、転送先に許可を問合せることなく投機的に転送し、不許可の場合は一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する処理である。
【００２０】
送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共にバッファ転送を転送領域管理情報に記録するバッファ転送部と、
バッファ転送後に受信領域の転送許可を判別した場合に、転送領域管理情報のバッファ転送の記録に基づいてバッファ領域のデータを受信領域に移動するデータ移動部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする。
【００２１】
（転送モード選択）
本発明の別の形態にあっては、ＲＤＭＡパケットを作成して送信する送信部と、ＲＤＭＡパケットを受信する受信部とを備えたＲＤＭＡ通信をサポートする通信装置に於いて、
転送先に許可を問合せることなく投機的に転送し、不許可の場合には再送要求を受けて再送する第１転送モード処理部と、
転送先に問合せることなく投機的に転送し、不許可の場合は不許可通知を受けて転送を中断し、再送要求を受けて再送する第２転送モード処理部と、
転送完了通知を受けるまで転送先に許可を問合せることなく投機的に繰返し転送する第３転送モード処理部と、
転送先に許可を問合せることなく投機的に転送し、不許可の場合は一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する第４転送モード処理部と、
転送先に許可を問合せ、許可通知を受けて転送する第５転送モード処理部と、
第１乃至第５転送モード処理部のいずれか１つを、ネットワーク負荷と受信側のメモリ使用率の少なくともいずれか一方に基づいて選択してＲＤＭＡデータ転送を実行させる転送モード設定部と、
を備えたことを特徴とする。
【００２２】
ここで第１乃至第４転送モード処理部は、前述した第１転送モード乃至第４転送モードの受信部と送信部と同じものである。
【００２３】
また第５転送モード処理部は送信部と受信部を備え、
第５転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可確認を送信して受信許可通知を受信した場合に、転送データからＲＤＭＡパケットを作成して送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
第５転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
転送元から受信確認通知を受信した時に転送領域管理情報を参照して受信許可通知又は受信不許可通知を送信する確認応答部と、
受信領域に受信パケットを転送するパケット受信部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする。
【００２４】
転送モード設定部は転送先の送信部に設けられ、選択した転送モードを送信部及び受信部に通知して第１乃至第５転送モード処理部のいずれかによるＲＤＭＡデータ転送を実行させる。
【００２５】
また転送モード設定部は受信部に設けられ、選択した転送モードを送信部及び受信部に通知して第１乃至第５転送モード処理部のいずれかによるＲＤＭＡデータ転送を実行させるようにしても良い。
【００２６】
転送モード設定部は、
受信側のメモリ使用率が少ない場合は第４転送モード処理部を選択し、
受信側のメモリ使用率が多い場合は、ネットワーク負荷の低い順に、第３転送モード処理部、第１転送モード処理部及び第５転送モード処理部を順次選択する。
【００２７】
本発明の通信装置は、更に、論理アドレスと物理アドレスのアドレス変換情報を持ち、アドレス変換情報内に転送領域管理情報を含ませて一体化する。
【００２８】
本発明はＲＤＭＡ通信をサポートする通信方法を提供する。
【００２９】
（第１転送モード処理方法）
ＲＤＭＡパケットを作成して送信する送信ステップと、ＲＤＭＡパケットを受信する受信ステップとを備えた第１転送モードのＲＤＭＡ通信をサポートする通信方法に於いて、
送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信ステップと、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に前記受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共にパケット破棄を転送領域管理情報に記録するパケット破棄ステップと、
パケット破棄ステップで受信パケットを破棄した後に受信領域の転送許可を判別した場合に、転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする。
【００３０】
（第２転送モード処理方法）
本発明の別の形態にあっては、ＲＤＭＡパケットを作成して送信する送信ステップと、ＲＤＭＡパケットを受信する受信ステップとを備えた第２転送モードのＲＤＭＡ通信をサポートする通信方法に於いて、
送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信ステップと、
転送先から受信不許可通知を受信した際に、パケット送信ステップによるパケット転送を中断する転送中断ステップと、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に前記受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共にパケット破棄を転送領域管理情報に記録するパケット破棄ステップと、
パケット破棄ステップで受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知ステップと、
パケット破棄ステップで受信パケットを破棄した後に受信領域の転送許可を判別した場合に、転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする。
【００３１】
（第３転送モード処理方法）
本発明の別の形態にあっては、ＲＤＭＡパケットを作成して送信する送信ステップと、ＲＤＭＡパケットを受信する受信ステップとを備えた第３転送モードのＲＤＭＡ通信をサポートする通信方法に於いて、
送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に繰返し送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する転送完了通知ステップと、
を備えたことを特徴とする。
【００３２】
（第４転送モード処理方法）
本発明の別の形態にあっては、ＲＤＭＡパケットを作成して送信する送信ステップと、ＲＤＭＡパケットを受信する受信ステップとを備えた第４転送モードのＲＤＭＡ通信をサポートする通信方法に於いて、
送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共にバッファ転送を転送領域管理情報に記録するバッファ転送ステップと、
バッファ転送後に受信領域の転送許可を判別した場合に、転送領域管理情報のバッファ転送の記録に基づいてバッファ領域のデータを受信領域に移動するデータ移動ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする。
【００３３】
（転送モード選択方法）
本発明の別の形態にあっては、ＲＤＭＡパケットを作成して送信する送信ステップと、ＲＤＭＡパケットを受信する受信ステップとを備えたＲＤＭＡ通信をサポートする通信方法に於いて、
転送先に許可を問合せることなく投機的に転送し、不許可の場合には再送要求を受けて再送する第１転送モード処理ステップと、
転送先に問合せることなく投機的に転送し、不許可の場合は不許可通知を受けて転送を中断し、再送要求を受けて再送する第２転送モード処理ステップと、
転送完了通知を受けるまで転送先に許可を問合せることなく投機的に繰返し転送する第３転送モード処理ステップと、
転送先に許可を問合せることなく投機的に転送し、不許可の場合は一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する第４転送モード処理ステップと、
転送先に許可を問合せ、許可通知を受けて転送する第５転送モード処理ステップと、
第１乃至第５転送モード処理ステップのいずれか１つを、ネットワーク負荷と受信側のメモリ使用量の少なくともいずれか一方に基づいて選択してＲＤＭＡデータ転送を実行させる転送モード設定ステップと、
を備えたことを特徴とする。
【００３４】
更に、本発明は、ＲＤＭＡ通信をサポートする通信装置のコンピュータに、前述した通信方法の各ステップを実行させる通信プログラムを提供する。
【発明の効果】
【００３５】
本発明によれば、転送先に受信許可の有無を問合せることなく投機的にＲＤＭＡパケットを転送するため、もし受信領域が受信可能であれば、受信したＲＤＭＡパケットのデータ本体を受信領域に格納してデータ転送を完了でき、事前に転送許可を求める通信処理を必要としないため、転送許可を求める通信処理に必要としていた１０〜２０μs程度のレイテンシを不要にすることができる。このため転送許可通信処理のレイテンシより短い転送時間で済むデータサイズのＲＤＭＡパケット転送のスループットを高めることができ、通信処理全体としてみた場合の通信性能を向上できる。
【００３６】
また投機的なＲＤＭＡパケットの転送に対し転送先で受信不可能であった場合についても、受信可能となった際の再送要求により再送させることで（第１及び第２転送モード）、受信許可の有無を問合せる従来方式よりは短い転送時間とすることができる。
【００３７】
またネットワークの帯域に余剰があることを条件に、転送完了通知（ａｃｋ）が得られるまで転送データ分のＲＤＭＡパケットを繰返し転送することで（第３転送モード）、受信可能になれば、その時点から有効に受信され、従来方式よりは短い転送時間とすることができる。
【００３８】
更に、転送先のメモリ領域に余剰が場合には，受信不可能な状態で受信したＲＤＭＡパケットのデータ本体を一時バッファに保存し、受信許可となったらＲＤＭＡパケットを有効に受信し且つ一時バッファのデータを受信領域に移動させることで（第４転送モード）、従来方式よりは短い転送時間とすることができる。
【００３９】
更に本発明にあっては、ネットワーク負荷や受信側のメモリ使用率に基づいて最適な転送モードとなるように、投機的転送を行う第１乃至第４転送モード、従来方式である第５転送モードのいずれか１つを動的に選択してＲＤＭＡパケット転送を行うことで、各転送モードの利点を最大限に生かした効率的なデータ転送を行い、全体的に見た通信性能を向上させることができる。
【発明を実施するための最良の形態】
【００４０】
（通信装置の構成）
図１はホスト間通信に適用された本発明の一実施形態の説明図である。図１において、ホスト１０−１，１０−２に対しては、それぞれ１０Ｇｂイーサネットのネットワークインタフェースカード（以下「ＮＩＣ」という）１２−１，１２−２が設けられ、ネットワーク１８を介して接続している。
【００４１】
ＮＩＣ１２−１には送信部１４−１と受信部１６−１が設けられ、同様にＮＩＣ１２−２にも送信部１４−２と受信部１６−２が設けられる。ＮＩＣ１２−１，１２−２はネットワーク１８を介してホスト１０−１，１０−２間でのＲＤＭＡパケット転送をサポートする。
【００４２】
図２は本実施形態におけるＮＩＣの送信部と受信部の機能構成のブロック図である。図２においては、ホスト１０−１側を送信ノード（転送元）としており、ホスト１０−１に設けたＮＩＣ１２−１には送信部１４−１としての機能が設けられている。一方、ホスト１０−２は受信側となる受信ノード（転送先）であり、ホスト１０−２に設けたＮＩＣ１２−２は受信部１６−２としての機能を示している。
【００４３】
送信側のＮＩＣ１２−１には、送信要求受付部２６、転送領域管理部２８、送信制御部３０、受信制御部３２、モード選択制御部３４、ネットワーク負荷情報収集部３６、１０ＧｂイーサネットＭＡＣ（「１０ＧｂＥＭＡＣ」と表記）３８が設けられる。
【００４４】
送信要求受付部２６は送信要求を受け付ける送信要求受付レジスタを備える。この送信要求受付レジスタはＰＣＩを経由してホスト１０−１のアドレス空間にマッピングできる。このためホスト１０−１の送信要求部２０は、アドレス空間にマッピングされた送信要求受付レジスタにパラメータを書き込むことにより送信要求を発行する。また送信要求部２０は、ホスト１０−１のメモリ空間である送信領域２２に配置している送信データ２４を指定して送信要求を行う。
【００４５】
転送領域管理部２８は、論理アドレスと物理アドレスの変換を行うアドレス変換表と、転送領域の受信許可の有無を管理する転送領域管理表を備える。本実施形態にあっては、アドレス変換表と転送領域管理表は一体化されている。即ち、転送領域管理表の情報をアドレス変換表に含ませることにより転送領域管理表の情報参照をアドレスの参照と同時に実行可能とし、これにより情報参照の性能を向上することができる。
【００４６】
送信制御部３０は、送信要求受付部２６や受信制御部３２からの送信要求に基づき、ホスト１０−１のメモリ上の送信領域２２にある送信データ２４をＤＭＡ転送により取得する。この際に転送領域管理部２８から送信データ２４の論理アドレスから変換した物理アドレスを取得する。
【００４７】
このようにしてホスト１０−１側から取得した送信データにヘッダを付加したＲＤＭＡデータパケットを作成し、１０ＧｂイーサネットＭＡＣ３８に転送する。この場合に、モード選択制御部３４からの指示に従い、選択された転送モードの転送手順に従って送信処理を実行する。
【００４８】
受信制御部３２は受信側のＮＩＣ１２−２より
（１）ａｃｋパケット
（２）再送制御パケット
（３）受信許可通知パケット
（４）受信不許可通知パケット
（５）転送モード通知パケット
を受信する。
【００４９】
ａｃｋパケットを受信したときには転送処理を正常終了する。再送制御パケットを受信したときには再送を送信制御部３０に通知する。受信許可通知パケットを受信したときには受信許可を送信制御部３０に通知する。受信不許可通知パケットを受信したときには不許可となっている受信領域に対するＲＤＭＡ送信処理を停止する。転送モード通知パケットを受信したときにはモード選択制御部３４に通知する。
【００５０】
モード選択制御部３４は、本実施形態で準備されている第１乃至第５転送モードのうちの最適な転送モードを選択し、それに基づいた転送手順を行うように送信制御部３０に通知する。転送モードの選択を行う際には、ネットワーク負荷情報収集部３６からのネットワーク負荷情報と、受信制御部３２で受信された受信側のＮＩＣ１２−２によるモード選択指示情報を用いる。
【００５１】
ここで本実施形態における第１乃至第５転送モードは次の内容を持つ。
（１）第１転送モードは、転送先に許可を問い合わせることなく投機的に転送し、不許可の場合には再送要求を受けて再送する。
（２）第２転送モードは、転送先に許可を問い合わせることなく投機的に転送し、不許可の場合には不許可通知を受けて転送を中断し、その後、再送要求を受けて再送する。
（３）第３転送モードは、ａｃｋパケットを受け取るまで投機的に転送先に許可を問い合わせることなく繰り返し転送する。
（４）第４転送モードは、転送先に許可を問い合わせることなく投機的に転送し、不許可の場合には転送先で一時的にバッファに保存し、許可が得られたら一時バッファから受信領域に転送する。
（５）第５転送モードは、従来方式の転送モードであり、転送先に許可を問い合わせ、許可通知を受けて転送する。
【００５２】
これら第１乃至第５転送モードの詳細は後の説明で明らかにする。
【００５３】
次に受信側のＮＩＣ１２−２を説明する。受信側のＮＩＣ１２−２には、受信部１６−２として機能する構成として、受信制御部４０、転送領域管理部４２、送信制御部４４、モード選択制御部４６、ネットワーク負荷情報収集部４８、メモリ使用率情報収集部４９及び１０ＧｂイーサネットＭＡＣ５０が設けられている。
【００５４】
受信制御部４０は、ＲＤＭＡデータパケットや従来方式である第５転送モードにおける受信許可確認通知の制御パケットを受信する。ＲＤＭＡデータパケットを受信した場合、ヘッダを解析し、受信領域が受信可能であるか否かを転送領域管理部４２に問い合わせる。この問合せに対し転送領域管理部４２は、受信領域の受信許可の有無を通知し、同時に論理アドレスから変化した物理アドレスも通知する。
【００５５】
受信可能な場合は、ＤＭＡ転送によりホスト１０−２の受信領域５４にＤＭＡデータパケットから得られたデータ本体を転送する。受信不許可の場合には、モード選択制御部４６の現在選択状態にある転送モードの指示に従い、パケットを破棄するか（第１乃至第３転送モード）、ホスト１２−２の一時バッファ５６の所定の位置に転送して保存する（第４オ転送モード）。
【００５６】
またモード選択制御部４６より第２転送モードが指示されていた場合には、転送元に受信不許可通知を制御パケットにより転送するように送信制御部４４に要求する。
【００５７】
転送領域管理部４２は、送信側のＮＩＣ１２−１の場合と同様、論理物理アドレス変換表と転送領域管理表を持ち、両者は一体化されている。受信制御部４０からの受信領域に対する受信許可の有無の問合せに対し、転送領域管理表を参照して応答する。この際、受信許可の場合はアドレス変換表から論理アドレスに対応した物理アドレスを取得して返す。
【００５８】
このとき同時に受信許可を通知した受信領域の状態を受信不許可に変更して二重受信を防止する。
【００５９】
一方、受信制御部４０からの問合せに対し受信領域が受信不許可の場合は、受信不許可を応答すると同時に、受信不許可となっている受信領域に受信されたＲＤＭＡパケットデータが破棄されたことを記録する。更に第４転送モードが指示されている場合には、転送データ５８が保存された一時バッファ５６のアドレスを転送領域管理部４２に通知して転送領域管理表に記録する。
【００６０】
受信制御部４０からの問合せに対し、一度、受信領域の不許可を応答した後に、ホスト１０−２の領域許可部５２の通知を受けて受信許可になった場合には、転送領域管理表を参照してデータが破棄されている転送要求があったかどうかを確認する。データ破棄となった転送要求の記録があった場合には、一時バッファ５６への転送の有無を確認する。転送している場合には、これは第４転送モードの場合であることから、一時バッファ５６の転送先のアドレスをホスト１０−２に通知し、一時バッファ５６から受信領域５４へのデータ転送処理を転送制御部６０に行わせる。
【００６１】
一時バッファ５６に保持していない場合には再送要求を送信制御部４４に通知する。更に転送領域管理部４２は、従来方式である第５転送モードの状態で受信許可確認通知を受信制御部４０より受け取った場合は、対応する受信領域が受信許可となった時点で受信許可通知の送信を送信制御部４４に依頼する。
【００６２】
送信制御部４４は、受信制御部４０からのａｃｋ通知受信や不許可通知の要求に従って、これらの制御パケットを生成し送信する。また転送領域管理部４２からの再送要求や受信許可通知に従って、これらの制御パケットを生成して送信する。
【００６３】
モード選択制御部４６は、本実施形態でサポートしている第１乃至第５転送モードのうちの最適な転送モードを選択し、それに基づいた転送手順を行うように受信制御部４０に通知する。また現在選択している転送モードを、送信制御部４４を介して送信側のＮＩＣ１２−１に通知する。
【００６４】
モード選択制御部４６で転送モードを選択する際には、メモリ使用率情報収集部４９で収集している受信側のメモリ使用率と、ネットワーク負荷情報収集部４８で収集しているネットワーク負荷情報を使用する。
【００６５】
ネットワーク負荷情報収集部４８は、１０ＧｂイーサネットＭＡＣ５０からネットワーク負荷情報を取得し、収集する。またＲＤＭＡ転送開始から完了までの転送完了時間を計測する。メモリ使用率情報収集部４９は、ホスト１０−２上に確保可能な一時バッファ５６の使用率を収集する。
【００６６】
１０ＧｂイーサネットＭＡＣ５０は、送信制御部４４から渡されたパケットをネットワークへ送出し、またネットワークより受信したパケットを受信制御部４０に渡す。またネットワークの負荷情報を取得し、ネットワーク負荷情報収集部４８に受け渡す。
【００６７】
次に、送信側のホスト１０−１の機能を説明する。ホスト１０−１には送信要求部２０が設けられる。送信要求部２０は、通信プロセスからの通信要求を受け、送信側のＮＩＣ１２−１にＲＤＭＡ送信を要求する。
【００６８】
一方、受信側のホスト１０−２には領域許可部５２と転送制御部６０の機能が設けられる。領域許可部５２は受信領域５４を使用している通信プロセスからの領域許可を受け、受信側ＮＩＣ１２−２に許可を受けた領域についての受信許可を通知する。転送制御部６０は受信側のＮＩＣ１２−２の転送領域管理部４２から通知を受け、一時バッファ５６に転送保持されたデータを、受信許可となった受信領域５４で移動させる。
【００６９】
一時バッファ５６から受信領域５４へのデータ移動については、受信領域５４へのデータ転送とページ単位でのアドレスオフセットを併せて行う。即ち一時バッファ５６の保存データ５８を移動させる際には、先頭ページと末尾ページについてはコピー処理を行うが、それ以外のページについてはページの再マッピングによりコピー処理なしで移動させ、コピー処理のオーバーヘッドを削減する。このデータ移動については後の説明で明らかにする。
【００７０】
このような送信側および受信側のＮＩＣ１２−１，１２−２としての機能は、各々に設けられたＣＰＵとメモリを備えた通信処理用のプロセッサを含むハードウェア環境によるプログラムの実行により実現される。
【００７１】
図３は本実施形態の受信側で使用する転送領域管理表の説明図である。図３において、転送領域管理表６２は、領域ＩＤ６４、論理アドレス６６、物理アドレス６８、受信許可７０、パケット破棄情報７２、受信不許可通知情報７４及び一時バッファ保存アドレス７５で構成されている。
【００７２】
このように前半の論理アドレスを物理アドレスに変換するアドレス変換表と、受信領域の許可の有無、更に転送モードに応じたパケット破棄状態、受信不許可通知情報、更には一時バッファアドレスなどを記録することで一体化し、受信制御部４０からの問合せに対し、転送領域管理部４２による転送領域管理表６２の参照によるアドレス変換、及び受信領域に関する受信許可などの情報の取得を効率的にできるようにしている。
【００７３】
図４は本実施形態における送信制御部の機能構成のブロック図であり、具体的には図２の送信側のＮＩＣ１２−１に設けている送信制御部３０の機能構成を示している。
【００７４】
送信制御部３０には、第１転送モード送信部７６、第２転送モード送信部７８、第３転送モード送信部８０、第４転送モード送信部８２、第５転送モード送信部８４が設けられており、いずれかの転送モードに対応した送信部が図２のモード選択制御部３４からの指示により選択されて送信制御を行う。
【００７５】
第１転送モード送信部７６には、パケット送信部８６、パケット再送部８８及び送信完了部９０が設けられる。パケット送信部８６はデータ転送要求を受けた際に、転送先に受信許可の有無を問い合わせることなく転送データからＲＤＭＡデータパケットを作成して投機的に送信させる。
【００７６】
パケット再送部８８は、転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡデータパケットを作成して送信する。送信完了部９０は、転送先から転送完了通知であるａｃｋを受信してデータ転送を正常終了する。
【００７７】
第２転送モード送信部７８は、パケット送信部９２、転送中断部９４、パケット再送部９６及び送信完了部９８を設けている。パケット送信部９２は、データ転送要求を受けた際に、転送先に受信許可の有無を問い合わせることなく転送データからＲＤＭＡデータパケットを作成して投機的に送信する。
【００７８】
転送中断部９４は、転送先から受信不許可通知を受信した際に、パケット送信部９２によるパケット転送を中断する。パケット再送部９６は、転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して再送する。送信完了部９８は、転送先から転送完了通知であるａｃｋを受信してデータ転送を正常終了する。
【００７９】
第３転送モード送信部８０は、パケット送信部１００と送信完了部１０２を備える。パケット送信部１００は、データ転送要求を受けた際に、転送先に受信許可の有無を問い合わせることなく転送データからＲＤＭＡデータパケットを作成し、投機的に繰り返し送信する。送信完了部１０６は、転送先から転送完了通知であるａｃｋを受信してデータ転送を正常終了する。
【００８０】
このため第４転送モード送信部８２にあっては、送信完了部１０６で転送先からａｃｋを受信するまで、転送対象となった送信データをパケット送信部１０４から繰り返し転送することになる。
【００８１】
第５転送モード送信部８４は、受信許可確認部１０８、パケット送信部１１０及び送信完了部１１２を備える。第５転送モード送信部８４は従来方式であり、このため受信許可確認部１０８は、データ転送要求を受けた際に、転送先に受信許可確認を送信する。パケット送信部１１０は、転送先から受信許可通知を受信した際に、転送データからＲＤＭＡパケットを作成して送信する。送信完了部１１２は、転送先から転送完了通知であるａｃｋを受信してデータ転送を正常終了する。
【００８２】
図５は本実施形態における受信制御部のブロック図であり、具体的には図２の受信側のＮＩＣ１２−２に設けた受信制御部４０の機能構成である。
【００８３】
図５において、受信制御部４０は、第１転送モード受信部１１４、第２転送モード受信部１１６、第３転送モード受信部１１８、第４転送モード受信部１２０及び第５転送モード受信部１２４が設けられる。この第１乃至第５転送モード受信部は、図２のモード選択制御部４６からの指示により、いずれか１つの転送モードが選択されて受信制御を行うことになる。
【００８４】
第１転送モード受信部１１４には、パケット受信部１２６、パケット破棄部１２８、再送要求部１３０及び完了通知部１３２が設けられている。パケット受信部１２６は、パケット受信時に転送領域管理部４２に問い合わせて受信領域の転送許可を判別した際に、その受信領域に受信したＲＤＭＡデータパケットのデータ本体を転送すると共に、受信領域の転送許可を転送不許可に変更し、２重受信を防止する。
【００８５】
パケット破棄部１２８は、パケット受信時に転送領域管理部４２に問い合わせて転送不許可を判別した際に、受信パケットを破棄すると共に、パケット破棄を図３の転送領域管理表６２のパケット破棄情報７２に記録する。
【００８６】
再送要求部１３０は、パケット破棄部１２８でパケットを破棄した後に受信領域の転送許可を判別した際に、転送領域管理表に記録したパケット破棄情報に基づいて転送元に再送要求を送信する。完了通知部１３２は、受信領域に対する受信パケットによるデータ本体の転送完了を認識して、転送完了通知となるａｃｋパケットを送信する。
【００８７】
第２転送モード受信部１１６は、パケット受信部１３４、パケット破棄部１３６、不許可通知部１３８、再送要求部１４０及び完了通知部１４２を設けている。パケット受信部１３４は、パケット受信時に問い合わせた転送領域管理表の参照で得られた受信領域の転送許可を判別した場合、その受信領域に受信パケットのデータ本体を転送すると共に、転送領域管理表における受信領域の転送許可を転送不許可に変更して２重受信を防止する。
【００８８】
パケット破棄部１３６は、パケット受信時に問い合わせて得られた転送領域管理表に基づく受信領域の転送不許可を判別した際に、受信パケットを破棄すると共に、パケット破棄を転送領域管理表に記録する。
【００８９】
受信不許可通知部１３８は、パケット破棄部１３６で受信領域の転送不許可を判別した際に、転送元に受信不許可通知を送信する。再送要求部１４０は、パケット破棄部で受信パケットを破棄した後に受信領域の転送領域を判別した際に、転送領域管理表のパケット破棄の記録に基づいて転送元に再送要求を送信する。更に完了通知部１４２は、受信領域に対する受信パケットのデータ本体の転送完了を認識して、転送完了通知となるａｃｋパケットを送信する。
【００９０】
第３転送モード受信部１１８は、パケット受信部１４４、パケット破棄部１４６及び完了通知部１４８を設けている。パケット受信部１４４は、パケット受信時に問い合わせて転送領域管理表の参照で得られた受信領域の転送許可を判別した際に、受信領域に受信パケットのデータ本体を転送すると共に、受信領域の転送許可を転送不許可に変更して２重受信を防止する。
【００９１】
パケット破棄部１４６は、パケット受信時に転送領域管理表の参照で通知された受信領域の転送不許可を判別した際に、受信パケットを破棄する。この場合には再送要求は行わないことから、受信パケットの破棄を転送領域管理表に記録することはない。完了通知部１４８は、受信領域に対する受信パケットのデータ本体の転送完了を認識して、転送完了通知であるａｃｋパケットを送信する。
【００９２】
このような第３転送モード受信部１１８の機能は、図４の第３転送モード送信部８０より受信許可の有無を問い合わせることなく投機的に繰り返し送られてくる転送データにつき、受信許可が得られてから完了するまでパケットを受信し、受信領域にデータ転送する単純な処理となる。
【００９３】
第４転送モード受信部１２０には、パケット受信部１５０、バッファ転送部１５２、データ移動部１５４及び完了通知部１５６が設けられる。
【００９４】
パケット受信部１５０は、パケット受信時に転送領域管理表の参照で得られた受信領域の転送許可を判別した場合、受信領域に受信パケットのデータ本体を転送すると共に、受信領域の転送許可を転送不許可に変更して２重受信を防止する。
【００９５】
バッファ転送部１５２は、パケット受信時に転送領域管理表を参照して受信領域の転送不許可を判別した際に、受信パケットから得られたデータ本体を一時バッファのバッファ領域に転送して保存すると共に、一時バッファへの保存を転送領域管理表６２に記録する。
【００９６】
データ移動部１５４は、一時バッファに対するバッファ転送後に受信領域の転送許可を判別した際に、転送領域管理表のバッファ転送の記録即ち保存アドレスに基づき、一時バッファのバッファ領域の保存データを受信領域に移動する。完了通知部１５６は、受信領域に対する受信パケットのデータ本体の転送完了を認識して、転送完了通知であるａｃｋパケットを送信する。
【００９７】
第５転送モード受信部１２４には、確認応答部１５８、パケット受信部１６０、完了通知部１６２が設けられる。第５転送モード受信部は従来方式の受信機能を持つ。確認応答部１５８は、転送元からの確認通知を受信したときに、転送領域管理表を参照して得られた受信許可または受信不許可の通知を送信する。
【００９８】
パケット受信部１６０は、転送元に対する受信許可の通知に対応して受信された受信パケットのデータ本体を受信領域に転送する。完了通知部１６２は、受信領域に対する受信パケットのデータ本体の転送完了を認識して、転送完了通知であるａｃｋパケットを送信する。
【００９９】
図６は本実施形態における送信処理のフローチャートである。図６において、送信処理は、ステップＳ１でホストからの送信要求の有無をチェックしており、送信要求があると、ステップＳ２に進み、転送モード選択処理を実行し、ステップＳ３で選択された転送モードを判定し、ステップＳ４〜Ｓ８に示す第１乃至第５のいずれかの転送モード送信処理を選択して送信処理を行う。このようなステップＳ１〜Ｓ８の処理を、ステップＳ９で停止指示があるまで繰り返す。なおステップＳ４〜Ｓ８の第１乃至第５転送モード送信処理の詳細は後の説明で明らかにする。
【０１００】
図７は本実施形態における受信処理のフローチャートである。図７において、受信処理は、ステップＳ１で転送モード選択処理を実行した後、ステップＳ２で転送モードを判定し、ステップＳ３〜Ｓ７の第１乃至第５転送モード受信処理のいずれか１つを選択して受信処理を行う。このようなステップＳＳ１〜Ｓ７の処理を、ステップＳ８で停止指示があるまで繰り返す。
【０１０１】
図７におけるステップＳ１の転送モード設定処理の詳細、及びステップＳ３〜Ｓ７の第１乃至第５転送モード受信処理の詳細は後の説明で明らかにされる。
【０１０２】
なお、本実施形態による転送モード選択処理は、図６のステップＳ２のように送信側で選択して受信側に通知する方法と、図７のステップＳ１のように受信側で選択して送信側に通知する方法とがあり、いずれか一方の転送モード選択処理を実装するが、本実施形態は、送信側で選択して受信側に通知する場合を例にとっている。
【０１０３】
（第１転送モード）
図８は本実施形態における第１転送モードによる転送処理の説明図である。図８（Ａ）は転送開始前に転送先の受信領域が受信可能となった場合の転送処理であり、図８（Ｂ）は転送開始後に受信可能となった場合の転送処理である。
【０１０４】
ここで第１転送モードによる転送処理は、転送先に許可を問い合わせることなく投機的に転送し、不許可の場合には再送要求を受けて転送する処理である。
【０１０５】
図８（Ａ）の転送開始前に受信許可となっている場合にあっては、受信側ＮＩＣ１２−２で受信領域について受信許可１６４を受けた後に、その受信領域に対する送信要求１６６が送信側ＮＩＣ１２−１で発生すると、受信側に受信許可の有無を問い合わせることなく転送データからＲＤＭＡデータパケットを作成し、ＲＤＭＡ通信１６８を行う。
【０１０６】
受信側ＮＩＣ１２−２にあっては、ＲＤＭＡデータパケットを受信した際に、転送領域管理表から受信許可を判別し、許可された受信領域に受信パケットのデータ本体を格納する領域格納１７０を行い、格納終了でａｃｋパケット１７２を送信してデータ転送を終了させる。また、受信側ＮＩＣ１２−２で転送領域管理表を参照して受信許可を認識した際に、２重受信を防止するため、その受信領域の転送許可を不許可に変更している。
【０１０７】
図８（Ｂ）は転送開始後に受信可能となった場合であり、送信側ＮＩＣ１２−１で送信要求１７４が発生すると、受信側に問い合わせることなく投機的にＲＤＭＡ通信１７６を行ってデータパケットを転送する。
【０１０８】
受信側ＮＩＣ１２−２にあっては、ＲＤＭＡデータパケットのヘッダから転送領域管理表の受信領域を参照すると、このとき不許可にあることから、受信パケットを破棄１７８とする。その後、受信側ＮＩＣ１２−２で対応する受信領域につき受信許可１８０が出されたことが判別されると、転送領域管理表に記録された破棄パケットに関する情報を基に、送信側ＮＩＣ１２−１に対し再送要求制御パケット１８２を送信する。
【０１０９】
これを受けて送信側ＮＩＣ１２−１は、転送データからＲＤＭＡデータパケットを作成し、ＲＤＭＡ通信１８３により再送を行い、このとき受信側ＮＩＣ１２−２は受信許可となっていることから、受信してＲＤＭＡパケットのデータ本体を受信領域に転送する領域格納１８４を行い、格納終了でａｃｋパケット１８６を送信してデータ転送を完了する。
【０１１０】
図９は転送開始前に受信可能となっている場合の第１転送モードによる転送処理のタイムチャートであり、図２を参照して説明すると次のようになる。
【０１１１】
まず送信側処理にあっては、ステップＳ１でホスト１０−１の送信要求部２０が送信要求をＮＩＣ１２−１に発行する。これを受けてステップＳ２でＮＩＣ１２−１の送信要求受付部２６が送信制御部３０に送信処理要求を通知する。続いてステップＳ３でモード選択制御部３４が第１転送モードによる転送を起動するようにモード選択が行われる。
【０１１２】
続いてステップＳ４で、送信制御部３０はホスト１０−１の送信領域２２の転送データ２４からＲＤＭＡデータパケットを生成し、１０ＧｂイーサネットＭＡＣ３８に出力する。このとき送信元の物理アドレスを転送領域管理部２８に問い合わせて取得する。続いてステップＳ５で１０ＧｂイーサネットＭＡＣ３８が送信制御部３０から送出されたＲＤＭＡデータパケットをネットワークに送信する。
【０１１３】
一方、受信側処理にあっては、ステップＳ１０１で１０ＧｂイーサネットＭＡＣ５０がネットワークからＲＤＭＡデータパケットを受信し、受信制御部４０に引き渡す。受信制御部４０はステップＳ１０２でＲＤＭＡデータパケットのヘッダを解析し、ステップＳ１０３で転送領域管理部４２に問い合わせて受信領域５４の受信許可の有無と物理アドレスを取得する。
【０１１４】
ステップＳ１０４で受信許可を判別すると、ステップＳ１０５で受信領域５４に受信パケットのデータ本体を転送し、転送完了後にステップＳ１０６でａｃｋパケットを生成し、ステップＳ１０７で１０ＧｂイーサネットＭＡＣ５０からａｃｋ制御パケットをネットワークに送信する。
【０１１５】
送信側処理にあっては、ステップＳ６でａｃｋ制御パケットを１０ＧｂイーサネットＭＡＣ３８で受信し、ステップＳ７で受信制御部３２がパケット解析によりａｃｋパケットであることを認識して送信制御部３０に通知し、一連のデータ転送処理を正常終了とする。
【０１１６】
図１０は転送開始後に受信可能となった場合の第１転送モードによる転送処理のタイムチャートである。図１０において、送信側処理のステップＳ１〜Ｓ５及びこれに続く受信側処理のステップＳ１０１〜Ｓ１０３は、図９と同じである。
【０１１７】
しかしながら、図１０の場合には、ステップＳ１０３で転送領域管理表を参照した際に受信領域５４が不許可であることから、これをステップＳ１０４で判別すると、ステップＳ１０５で受信パケットを破棄して転送領域管理表に記録する。続いてステップＳ１０６で受信領域５４の受信許可の有無を監視しており、受信許可が得られるとステップＳ１０７に進み、転送領域管理表のパケット破棄の記録に基づき送信制御部４４が送制御パケットを生成し、ステップＳ１０８で１０ＧｂイーサネットＭＡＣ５０からネットワークに再送通知制御パケットを送信する。
【０１１８】
送信側処理にあっては、ステップＳ６で１０ＧｂイーサネットＭＡＣ３８が制御パケットを受信し、ステップＳ７で受信制御部３２がパケット解析により再送要求の制御パケットであることを認識して送信制御部３０に通知する。送信制御部３０は、ステップＳ８で再送要求に対応した転送データからＲＤＭＡデータパケットを生成し、ステップＳ９で１０ＧｂイーサネットＭＡＣ３８に出力してネットワークにパケットを送信させる。
【０１１９】
受信側処理にあっては、ステップＳ１０９で１０ＧｂイーサネットＭＡＣ５０がＲＤＭＡデータパケット受信して受信制御部４０に出力し、ステップＳ１１０で受信制御部４０がＲＤＭＡデータパケットのヘッダを解析し、転送領域管理部４２に問い合わせて受信領域５４の許可の有無及び物理アドレスを取得し、この場合には受信許可であることから、ステップＳ１１１でホスト１０−２の受信領域５４に受信パケットから得られたデータ本体を転送する。
【０１２０】
続いてステップＳ１１２で、データ転送が完了したら送信制御部４４はａｃｋパケットを生成し、１０ＧｂイーサネットＭＡＣ５０に出力し、ステップＳ１１３でネットワークにａｃｋ制御パケットを送信する。
【０１２１】
送信側処理にあっては、ステップＳ１０で１０ＧｂイーサネットＭＡＣ３８が制御パケットを受信し、ステップＳ１１で受信制御部３２がパケットを解析し、ａｃｋパケットの受信を確認して転送処理を正常終了する。
【０１２２】
図１１は第１転送モード送信処理のフローチャートである。第１転送モード送信処理にあっては、ステップＳ１でＲＤＭＡデータパケットを生成し、ステップＳ２でネットワークにパケットを送信する。続いてステップＳ３で再送要求制御パケットの受信の有無をチェックしており、受信側で受信領域が許可であれば、ステップＳ４でａｃｋパケットが受信され、これにより一連の転送処理を終了する。
【０１２３】
一方、受信側で受信領域が不許可であった場合には、受信領域が許可に変わった際に再送要求制御パケットが送られてくることから、ステップＳ３で再送要求制御パケットを受信すると、ステップＳ５に進み、再送要求制御パケットの解析で得られた再送要求に対応して、再送用のＲＤＭＡデータパケットを作成し、ステップＳ６でネットワークにパケットを送信し、ステップＳ４でａｃｋパケットの受信を待って、一連のデータ転送処理を終了する。
【０１２４】
図１２は第１転送モード受信処理のフローチャートである。図１２において、第１転送モード受信処理は、ステップＳ１でＲＤＭＡデータパケットの受信の有無をチェックしており、パケットを受信すると、ステップＳ２でＲＤＭＡデータパケットを解析し、ステップＳ３で転送領域管理表を参照し、物理アドレスと受信領域の許可の有無を取得する。
【０１２５】
続いてステップＳ４で受信領域が受信許可であれば、ステップＳ５に進み、受信パケットから得られたデータ本体を許可された受信領域に転送し、ステップＳ６で転送完了を示すａｃｋパケットを生成して送信し、一連の受信処理を終了する。
【０１２６】
一方、ステップＳ４で受信領域が受信不許可であった場合には、ステップＳ７で受信パケットを破棄し、ステップＳ８で受信パケットを破棄したことを転送領域管理表に記録する。続いてステップＳ９で転送領域管理表に対する受信領域の受信許可の有無をチェックしており、受信不許可から受信許可に変わると、ステップＳ１０に進み、転送領域管理表の受信パケット破棄の記録を基に送信元に対し再送要求制御パケットを作成して送信する。
【０１２７】
この再送要求制御パケットの送信に対し、送信元からはＲＤＭＡデータパケットが再送されてくることから、再送されたＲＤＭＡデータパケットをステップＳ１で受信すると、ステップＳ２〜Ｓ６の処理を行って受信処理を完了する。
【０１２８】
（第２転送モード）
図１３は本実施形態における第２転送モードにおける第２転送モード処理の説明図である。第２転送モードは転送先に問い合わせることなく投機的に転送し、不許可の場合には許可通知を受けて転送を中断し、再送要求を受けて再送する処理である。
【０１２９】
図１３（Ａ）は転送開始前に受信可能となっている場合の第２転送モードの転送処理である。この場合には受信側ＮＩＣ１２−２において、受信許可１９０となった後にその受信領域に対し受信側ＮＩＣ１２−１で送信要求１９２が発生すると、送信データからＲＤＭＡデータパケットを作成し、ＲＤＭＡ通信１９４を行う。
【０１３０】
受信側ＮＩＣ１２−２にあってはＲＤＭＡデータパケットを受信してヘッダを解析し、受信領域管理表の参照から受信領域の受信許可を判別し、受信データのパケットのデータ本体を許可状態にある受信領域５４に転送する領域格納１９６を実行し、格納終了でａｃｋ制御パケット１９８を送信しデータ転送を終了する。
【０１３１】
図１３（Ｂ）は転送開始後に受信可能となった場合の第２転送モードによる転送処理である。この場合、送信側ＮＩＣ１２−１で送信要求２００が発生すると、受信側に問い合わせることなく投機的にＲＤＭＡ転送２０６を行う。
【０１３２】
受信側ＮＩＣ１２−２にあってはＲＤＭＡデータパケットの受信でヘッダを解析し、転送領域管理表の参照で受信領域の不許可を認識し、送信側ＮＩＣ１２−２に対し不許可通知制御パケット２０２を送信する。この不許可通知制御パケット２０２を受けて送信側ＮＩＣ１２−１はそれまで行っていたＲＤＭＡ通信２０６による転送中断２０４を行う。このとき受信されたデータ本体は破棄２０８となり、転送領域管理表にデータ破棄が記録される。
【０１３３】
受信側ＮＩＣ１２−２において受信パケットを破棄２０８にした後、受信許可２１０がその受信領域に対し行われると、再送要求制御パケット２１２を送信する。この再送要求制御パケット２１２を送信側ＮＩＣ１２−１で解析し、再送要求の対象となった転送データについてＲＤＭＡデータパケットを作成し、ＲＤＭＡ再送通信２１４を行う。再送分の転送が済むと残りの転送データについてＲＤＭＡ通信２１６を行う。
【０１３４】
このとき受信側ＮＩＣ１２−２にあっては受信領域が受信許可２１０となっていることから再送された受信パケット及びこれに続く受信パケットからデータ本体を取得して受信領域にデータ転送して格納する領域格納２１８を行い、格納終了でａｃｋパケット２２０を送信して一連の処理を終了する。
【０１３５】
この第２転送モードにあっては図１３（Ｂ）のように受信側に問い合わせることなく投機的にＲＤＭＡ通信を行った場合、受信領域が不許可の場合には不許可通知を返すことで転送を中断させ、不許可通知により破棄される無駄なパケットの喪失を止めることで、第１転送モードの場合に比べネットワーク帯域消費を削減することができる。
【０１３６】
図１４は転送開始前に受信可能となっている場合の第２転送モードによる転送処理のタイムチャートであり、この場合の転送処理は図９に示した第１転送モードの転送処理の場合と同じである。
【０１３７】
図１５は転送開始後に可能となった場合の第２転送モードによる転送処理のタイムチャートであり、図２を参照して説明すると次のようになる。
【０１３８】
図１５において、ステップＳ１〜Ｓ５及びこれに続く受信側のステップＳ１０１〜Ｓ１０５の処理は、図１０に示した第１転送モードの場合と同様であるが、第２転送モードにあってはステップＳ１０５で受信領域の不許可を認識してパケットを破棄した後、ステップＳ１０６で受信制御部４０が不許可通知パケットを作成し、ステップＳ１０７で１０ＧｂイーサネットＭＡＣ５０がネットワークに制御パケットを送信する。
【０１３９】
この制御パケットを送信処理側の１０ＧｂイーサネットＭＡＣ３８がステップＳ６で受信し、ステップＳ７で送信制御部３０がパケットを解析し、不許可通知パケットであることを認識し、ステップＳ８で転送データからのパケット生成を停止してＲＤＭＡ通信を中断する。
【０１４０】
送信側でパケット転送を中断した後については、受信側においてステップＳ１０８で受信領域の許可が判別されるとステップＳ１０９で送信制御部４４が再送制御パケットを生成し、ステップＳ１１０で制御パケットをネットワークに送信する。
【０１４１】
これを受けて送信側処理にあってはステップＳ９で１０ＧｂイーサネットＭＡＣ３８がネットワークから制御パケットを受信し、ステップＳ１０で受信制御部３２がパケットを解析して再送要求を送信制御部３０に通知し、通信制御部３０はステップＳ１１でＲＤＭＡデータパケットを生成し、ステップＳ１２で１０ＧｂイーサネットＭＡＣ３８がネットワークにＲＤＭＡデータパケットを再送する。
【０１４２】
受信側処理にあってはステップＳ１１１で１０ＧｂイーサネットＭＡＣ５０が再送されたＲＤＭＡデータパケットパケットを受信し、ステップＳ１１２で受信制御部４０がパケットのヘッダを解析して転送領域管理表から受信領域の受信許可と物理アドレスを取得し、ステップＳ１１３でデータ本体をホスト１０−２の受信領域５４にＤＭＡデータ転送する。
【０１４３】
続いて図１６のステップＳ１１４でデータ転送完了に伴い送信制御部４４がａｃｋパケットを作成し、ステップＳ１１５で１０ＧｂイーサネットＭＡＣ５０がａｃｋパケットをネットワークに送信する。
【０１４４】
パケット送信を受けて受信側処理にあってはステップＳ１３で１０ＧｂイーサネットＭＡＣ３８がネットワークからパケットを受信し、ステップＳ１４で受信制御部３２が受信パケットを解析してａｃｋパケットであることを送信制御部３０に通知し、データ転送完了を認識して正常終了とする。
【０１４５】
図１７は第２転送モードの送信処理のフローチャートである。図１７において、第２転送モード送信処理はステップＳ１でＲＤＭＡデータパケットを送信要求に基づいて生成した後、ステップＳ２でネットワークにパケットを送信する。
【０１４６】
続いてステップＳ３で受信領域不許可通知の有無をチェックしている。受信側の受信領域が受信許可であれば受信領域不許可通知はないことからステップＳ４に進み、ａｃｋパケットの受信を待って一連の送信処理を終了する。
【０１４７】
一方、受信側で受信領域が不許可であった場合には、受信領域の不許可通知を送ってくることから、これをステップＳ３で判別するとステップＳ５でパケット生成を停止し、ＲＤＭＡ通信を中断する。
【０１４８】
その後、ステップＳ６で転送先から再送制御パケットが受信されるとステップＳ７で再送用のＲＤＭＡデータパケットを生成し、ステップＳ８でネットワークに送信する。ステップＳ４でａｃｋパケットを受信すると転送中断後の再送によるデータ転送が終了したものとして一連の処理を終了する。
【０１４９】
図１８は第２転送モード受信処理のフローチャートである。図１８において、ステップＳ１でＲＤＭＡデータパケットの受信の有無をチェックしており、パケットを受信するとステップＳ２でパケットを解析し、ステップＳ３で転送領域管理表を参照して物理アドレスと受信領域の受信許可または不許可を取得する。
【０１５０】
続いてステップＳ４で受信領域が許可であった場合にはステップＳ５に進み、受信パケットから得られたデータ本体を許可した受信領域に転送し、転送終了でステップＳ６に進み、ａｃｋパケットを生成して送信し一連の処理を終了する。なお、受信許可を認識した際には、転送領域管理表の許可を不許可に変更して２重受信を防止する。
【０１５１】
一方、ステップＳ４で受信不許可であった場合には、ステップＳ７で受信パケットを破棄した後、ステップＳ８で受信パケットの破棄を転送領域管理表に記録し、ステップＳ９で受信領域の不許可通知を作成して転送元にパケット送信する。
【０１５２】
その後、ステップＳ１０で受信領域の受信許可が判別されると、ステップＳ１１で転送領域管理表のパケット破棄の記録をもとに送信元に再送要求制御パケットを送信する。これに伴い送信元からはＲＤＭＡデータパケットが再送されてくることから、これをステップＳ１で受信し、ステップＳ２〜Ｓ６の処理を経て再送されたＲＤＭＡデータパケットについて受信処理を行うことになる。
【０１５３】
（第３転送モード）
図１９は本実施形態における第３転送モードによる転送処理の説明図である。第３転送モードは転送完了通知であるａｃｋを受け取るまで転送先の許可を問い合わせることなく、投機的に転送データ分のＲＤＭＡデータパケットを繰り返し転送する処理である。この第３転送モードによる処理はネットワークの帯域が十分に余っていることを想定しており、その結果、転送時間短縮のためａｃｋが受信されるまで何度もＲＤＭＡ転送を繰り返す。
【０１５４】
図１９（Ａ）は転送開始前に受信可能となっている場合の第３転送モードの転送処理である。図１９（Ａ）において、送信側ＮＩＣ１２−１で送信要求２３２が発生した際に、受信側ＮＩＣ１２−２にあっては、送信要求２３２の対象となった受信領域につきそれ以前に受信許可２３０が出されている。
【０１５５】
この状態で転送データからＲＤＭＡパケットを生成して、ＲＤＭＡ一回目通信２３４を行うと、受信側にあっては受信領域が受信許可となっているため受信パケットの本体データを受信領域に転送して格納完了し、転送完了でａｃｋ制御パケット２３６を応答して一連の処理を終了する。尚、送信側は、ａｃｋ制御パケット２３６を受け取るまで、ＲＤＭＡ２回目通信２３５を続行する。受信側は、ＲＤＭＡ１回目通信２３４を受信領域に転送した時点で、転送領域管理表を不許可とするため、ＲＤＭＡ２回目通信２３５は全て破棄２３７される。
【０１５６】
図１９（Ｂ）は転送開始後に受信可能となった場合の第３転送モードの転送処理である。図１９（Ｂ）において、送信側ＮＩＣ１２−１側で送信要求２３８が発生するとａｃｋパケットが受信されるまで転送データ分のＲＤＭＡデータパケットを作成し、ＲＤＭＡ１回目通信２４０、ＲＤＭＡ２回目通信２４４、ＲＤＭＡ３回目通信２５２というように繰り返しデータ転送を行う。
【０１５７】
一方、受信側ＮＩＣ１２−２にあってはＲＤＭＡ１回目通信２４０の際には受信領域が不許可であるため受信パケットを破棄２４２とする。この例ではＲＤＭＡ２回目通信２４４のデータ転送を開始した直後に受信許可２４８となり、したがって受信許可２４８となった以降に受信されたＲＤＭＡ２回目通信２４４の受信パケットのデータ本体は受信許可となった受信領域に転送されて領域格納２５０となる。しかし、ＲＤＭＡ２回目通信２４４の先頭部分の転送データについては破棄２４６となっている。
【０１５８】
ＲＤＭＡ２回目通信２４４が終了すると、続いてＲＤＭＡ３回目通信２５２が行われる。このＲＤＭＡ３回目通信２５２につき通信許可２４８の直前で破棄したＲＤＭＡ２回目通信２４４の先頭部分のデータが受信されるとデータ転送が完了し、この時点でａｃｋ制御パケット２５４を応答し、その結果、送信側ＮＩＣ１２−１にあってはａｃｋ制御パケット２５４を受信したＲＤＭＡ３回目通信２５２の途中で一連のデータ転送を完了することになる。尚、送信側は、ａｃｋ制御パケット２５４を受信するまで、ＲＤＭＡ３回目通信２５２を続行する。受信側は、ａｃｋ制御パケット２５４送信後のＲＤＭＡ３回目通信２５２を破棄２５６とする。
【０１５９】
図２０は第３転送モードによる転送処理のタイムチャートであり、図２を参照して説明すると、次のようになる。送信側処理にあっては、ステップＳ１でホスト１０−１が送信要求を送信側のＮＩＣ１２−１に発行する。これを受けて送信要求受付部２６は送信制御部３０にステップＳ２で送信処理要求を通知する。
【０１６０】
続いてステップＳ３でモード選択制御部３４が第３転送モードによる転送を起動するように指示するモード選択を行っており、これを受けて送信制御部３０はステップＳ４でＲＤＭＡデータパケットを生成し、１０ＧｂイーサネットＭＡＣ３８に出力して、ステップＳ５でパケット送信をネットワークに対して行う。またステップＳ４でＲＤＭＡデータパケットを生成する際には転送領域管理表を参照して転送元の物理アドレスを取得している。
【０１６１】
受信側処理にあっては、ステップＳ１０１で１０ＧｂイーサネットＭＡＣ５０がネットワークからＲＤＭＡデータパケットを受信し、ステップＳ１０２で受信制御部４０がパケットを解析し、ステップＳ１０３で転送領域管理表による受信許可及び物理アドレスの取得を転送領域管理部４２に問い合わせる。
【０１６２】
この問い合わせに対しステップＳ１０４で受信許可が判別されると、ステップＳ１０５で受信パケットのデータ本体を受信許可となっているホスト１０−２の受信領域５４にＤＭＡデータ転送し、ステップＳ１０６でデータ転送終了で送信制御部４４がａｃｋパケットを生成し、ステップＳ１０７で１０ＧｂイーサネットＭＡＣ５０によりネットワークにａｃｋ制御パケットを送信する。なお、ステップＳ１０４で受信許可が判別されると、転送領域管理表の受信許可を受信不許可に変更して２重受信を防止する。
【０１６３】
一方、ステップＳ１０４で転送領域管理表の参照で得られた受信領域の状態が不許可であった場合には、許可となるまでステップＳ１０４の待ち処理となり、その間に受信されたパケットについては破棄する。受信領域が許可となればその時点から受信パケットを有効に受信して受信領域にデータ転送する。
【０１６４】
送信側の処理にあっては、ステップＳ６で１０ＧｂイーサネットＭＡＣ３８がａｃｋパケットをネットワークから受信し、受信制御部３２に受け渡す。受信制御部３２はステップＳ７でパケットを解析し、ａｃｋ受信を確認して送信制御部３０に通知し、転送処理を完了する。
【０１６５】
図２１は第３転送モードの送信処理のフローチャートである。図２１において、第３転送モードの送信処理は、ステップＳ１で送信要求に伴いＲＤＭＡデータパケットを作成し、ステップＳ２でネットワークにパケットを送信する。続いてステップＳ３でａｃｋパケットの受信の有無をチェックしており、ａｃｋパケットを受信するまでステップＳ１〜Ｓ２のＲＤＭＡデータパケットの生成とパケット送信を繰り返す。
【０１６６】
図２２は第３転送モードの受信処理のフローチャートである。図２２において、第３転送モード受信処理は、ステップＳ１でＲＤＭＡデータパケットの受信を判別するとステップＳ２でパケットを解析し、ステップＳ３で転送領域管理表を参照して物理アドレスと受信領域の許可の有無を取得する。
【０１６７】
続いてステップＳ４で受信領域が受信許可であればステップＳ６で受信パケットのデータ本体を許可された受信領域に転送し、データ転送が終了するとステップＳ７でａｃｋパケットを作成しネットワークに送信する。
【０１６８】
一方、ステップＳ４で受信領域が不許可であった場合にはステップＳ５で受信パケットを破棄し、ステップＳ４で受信許可となるまでステップＳ１〜Ｓ５の処理を繰り返す。受信パケットを破棄している途中に受信許可となれば、ステップＳ６で受信パケットのデータ本体を受信領域に転送し、転送完了でステップＳ７においてａｃｋパケットを生成し、ネットワークに送信し、一連の処理を終了する。
【０１６９】
（第４転送モード）
図２３は本実施形態における第４転送モードによる転送処理のタイムチャートである。本実施形態における第４転送モードは、転送先に許可を問い合わせることなく投機的に転送し、不許可の場合には一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する処理である。
【０１７０】
この第４転送モードにおける転送処理は、受信側のホストにおいて十分にメモリがあまっている場合、受信領域が不許可であったときに受信パケットから得られたデータ本体を破棄せず一時バッファに保存し、受信領域が受信許可となった後に一時バッファの保存データを受信領域に転送し、これによって第１転送モードや第２転送モードにおける受信領域が不許可の場合の再送を不要とし、また第３転送モードのような受信完了まで繰り返しデータ転送を行うことによるネットワークの無駄な使用を回避できる。
【０１７１】
第４転送モードにおける送信側の処理は、ホスト側からの送信要求によりＲＤＭＡ起動可能となったら受信側に受信領域の受信許可の有無を問い合わせることなく投機的にＲＤＭＡ通信を開始し、ａｃｋパケットが受信されれば送信を完了する。
【０１７２】
一方、第４転送モードにおける受信側の処理はＲＤＭＡパケットを受信すると転送領域管理表を参照して受信領域が受信許可である場合には、受信パケットのデータ本体を受信領域に転送し格納する。このとき２重受信を防止するため受信領域の転送許可を不許可に変更する。受信領域の転送処理が完了するとａｃｋパケットを返送する。
【０１７３】
一方、ＲＤＭＡデータパケット受信した際に受信領域が不許可であった場合には、予め登録されている一時バッファとして機能するバッファ領域に受信パケットのデータ本体を転送して保存する。このとき転送領域管理表にデータを保存した一時バッファのバッファ領域のアドレスを記憶する。
【０１７４】
その後、受信領域に受信許可が得られると受信領域管理表に記憶したバッファ保存に対する情報に基づきバッファ領域の保存データをホスト側の処理として受信領域に移動し、移動完了でａｃｋパケットを返信する。
【０１７５】
このような第４転送モードの処理を図２３のタイムチャートにつき、図２を参照して説明すると次のようになる。
【０１７６】
図２３において、送信側処理にあってはステップＳ１でホスト１０−１が送信要求を送信側ＮＩＣ１２−１に発行すると、ステップＳ２で送信要求受付部２６が送信制御部３０に対し送信処理要求を通知する。続いてステップＳ３でモード選択制御部３４が、この場合には第４転送モードを選択し、第４転送モードで転送を起動するように指示している。
【０１７７】
送信制御部３０はステップＳ４で転送データからＲＤＭＡデータパケットを生成し、ステップＳ５で１０ＧｂイーサネットＭＡＣ３８によりネットワークにパケットを送信する。このとき送信制御部３０は転送領域管理表を参照して物理アドレスを取得し、物理アドレスから転送データを読み出してパケット転送している。
【０１７８】
受信側処理にあっては、ステップＳ１０１で１０ＧｂイーサネットＭＡＣ５０がＲＤＭＡパケットをネットワークから受信して受信制御部４０に受け渡す。受信制御部４０はステップＳ１０２でＲＤＭＡパケットを解析し、受信領域にデータ本体を転送する。ステップＳ１０３で転送領域管理部４２に問い合わせて転送領域管理表から受信領域の許可の有無と物理アドレスを取得する。
【０１７９】
続いてステップＳ１０４で受信領域が不許可であればステップＳ１０５に進み、一時バッファ５６に受信パケットのデータ本体を転送して保存する。このときデータ領域管理表に受信パケットのデータ本体を一時バッファ５６に転送データ５８として保存したことを記憶する。
【０１８０】
続いてステップＳ１０６で受信領域につき受信許可が得られると、ステップＳ１０７に進み、転送領域管理表の一時バッファ５６の記憶に基づきホスト１０−２側の転送制御部６０が一時バッファ５６から転送データ５８を読出し、受信領域５４にデータを移動させる。
【０１８１】
データ移動が済むとステップＳ１０８で送信制御部４４はａｃｋパケットを生成し、ステップＳ１０９で１０ＧｂイーサネットＭＡＣ５０がネットワークにパケットを送信する。このａｃｋパケットは受信側処理におけるステップＳ６で１０ＧｂイーサネットＭＡＣ３８が受信して受信制御部３２に受け渡し、受信制御部３２はステップＳ７でａｃｋパケットであることを認識して送信制御部３０に通知し、データ転送処理を完了する。
【０１８２】
図２４は第４転送モードの送信処理のフローチャートである。図２４において、第４転送モードの送信処理にあっては、ステップＳ１でＲＤＭＡデータパケットを送信要求に基づき生成し、ステップＳ２でパケットをネットワークに送信する。続いてステップＳ３でａｃｋパケットの送信を判別しており、ａｃｋパケットの受信を判別すると一連の送信処理を完了する。
【０１８３】
図２５は第４転送モード受信処理のフローチャートである。図２５において、第４転送モード受信処理は、ステップＳ１でＲＤＭＡデータパケットの受信の有無をチェックしており、パケットを受信するとステップＳ２でパケットを解析し、ステップＳ３で転送領域管理表を参照して物理アドレスと受信領域の受信許可の有無を取得する。
【０１８４】
続いてステップＳ４で受信領域が受信許可であればステップＳ５で受信パケットのデータ本体を許可された受信領域に転送する。この場合、２重受信を防止するため転送領域管理表の受信許可を受信不許可に変更する。受信領域に対するデータ転送を終了するとステップＳ６でａｃｋパケットを生成して、転送元に送信する。
【０１８５】
一方、ステップＳ４で受信領域が受信不許可であった場合にはステップＳ７に進み、受信領域管理表に一時バッファへの転送を記憶して受信パケットのデータ本体を一時バッファに転送保存する。続いてステップＳ８で受信領域の受信許可の有無をチェックしており、受信許可が判別されると、ステップＳ９でそのとき受信された受信パケットのデータ本体を受信許可となった受信領域に転送して格納する。
【０１８６】
またステップＳ１０で転送領域管理表の記録に基づき一時バッファから保存データを読出し、受信許可となった受信領域にデータを移動する。受信領域に対する受信パケットのデータ本体の転送及びまたは一時バッファからのデータ移動によりデータ転送が完了すると、ステップＳ６でａｃｋパケットを生成して転送元に送信することになる。
【０１８７】
図２６は第４転送モードの受信側における一時バッファから受信領域へのデータ移動の説明図である。受信側ＮＩＣ１２−２において、第４転送モードによる受信処理で受信領域が受信不許可になった場合には、一時バッファ５６に受信パケットのデータ本体を転送して保存する。
【０１８８】
ここで一時バッファ５６には例えば５ページの領域に分けて保存され、１ページ目２６０−１の途中から５ページ目２６０−５の途中まで斜線部で示すように転送データ５８が保存されている。このような一時バッファ５６に対する転送データ５８の保存状態において、受信側ＮＩＣ１２−２で受信領域の受信許可が認識されると、一時バッファ５６の転送データ５８を受信領域５４に移動する処理を行う。
【０１８９】
この移動処理は、先頭となる第１ページ２６０−１と末尾となる第５ページ２６０−５についてはコピー処理を行うが、その間の２ページ目２６０−２〜４ページ目２６０−４についてはページ全領域に転送データが格納されていることから、ページ単位でアドレス範囲をマッピングする処理を行い、このページ単位のマッピング処理によりコピー処理を不要とし、コピー処理のオーバーヘッドを削減する。
【０１９０】
図２７はアドレスマップ変換によるデータ移動の説明図である。図２７において、受信領域５４及び一時バッファ５６は仮想アドレス（論理アドレス）で管理されており、例えば一時バッファ５６の仮想アドレス０ｘ８０００に転送データ２７０を保存しており、これはアドレス変換表２６２により物理メモリ２６４のアドレス０ｘ６０００に転送データ２８０を格納していることを示している。
【０１９１】
ここで、一時バッファ５６の転送データ２７０を受信領域５４の仮想アドレス０ｘ１０００に移動する場合を考える。移動前において仮想アドレス０ｘ１０００は物理メモリ２６４のアドレス０ｘ３０００に対応している。このデータ移動前のアドレス変換表２６２は図２８（Ａ）の内容を持っている。
【０１９２】
そこで仮想アドレス０ｘ８０００の転送データ２７０を受信領域５４の仮想アドレス０ｘ１０００に移動するためにはアドレス変換表２６２における移動先となる仮想アドレス０ｘ１０００の物理アドレス０ｘ３０００を一時バッファ５６の転送データ２７０に対応した物理アドレス０ｘ６０００に書きかえる再マップを行う。即ち図２８（Ａ）のアドレス変換表２６２における仮想アドレス０ｘ１０００に対応した物理アドレス０ｘ３０００を図２８（Ｂ）のように０ｘ６０００に書き替える。
【０１９３】
その結果、図２７の一時バッファ５６の仮想アドレス０ｘ８０００の転送データ２７０に対応した物理メモリ２６４の転送データ２６８は、アドレス変換表２６２によるマッピングにより受信領域５４の仮想アドレス０ｘ１０００にマッピングされ、これにより一時バッファ５６から転送データ２７０を受信プロセスの仮想アドレス０ｘ１０００に移動して転送データ２７２とすることができる。
【０１９４】
尚、一時バッファ５６の仮想アドレス０ｘ８０００については図２８（Ｂ）のように物理アドレス０ｘ３０００に当てており、この場合、物理アドレス０ｘ３０００は空き領域となる。
【０１９５】
（第５転送モード）
図２９は本実施形態における第５転送モードによる転送処理の説明図である。ここで第５転送モードは、転送先に許可を問い合わせ、許可通知を受けて転送する処理であり、これは従来のＲＤＭＡ転送そのものであるが、本実施形態にあっては最適転送モードの選択の中に前述した本実施形態に固有な第１乃至第４転送モードに加え、従来転送モードを第５転送モードとして加えている。
【０１９６】
図２９（Ａ）は転送開始前に受信可能となった場合の第５転送モードの転送処理である。図２９（Ａ）において、送信側ＮＩＣ１２−１で送信要求２８２が発生すると受信許可確認パケット２８４を受信側に送信する。このときそれ以前に受信許可２８０が得られるため、受信側ＮＩＣ１２−２は許可パケット２８６を返信する。
【０１９７】
これを受けて送信側ＮＩＣ１２−１は転送データからＲＤＭＡデータパケットを生成し、ＲＤＭＡ通信２８８を行う。受信側ＮＩＣ１２−２は受信領域が受信許可であることから、受信したＲＤＭＡデータパケットから得られたデータ本体を受信領域に転送して格納する領域格納２９０を行い、格納終了でａｃｋパケット２９２を送信してデータ転送を完了する。
【０１９８】
図２９（Ｂ）は転送開始後に受信許可となった場合である。送信側ＮＩＣ１２−１は送信要求２９４が発生すると、受信側に対し、受信許可確認パケット２９６を送信する。このとき受信側ＮＩＣ１２−２にあっては受信領域の受信許可が得られていないことから、受信許可を待つ。その後、受信許可２９８が得られると許可パケット３００を送信する。
【０１９９】
この許可パケット３００を受けて送信側ＮＩＣ１２−１はＲＤＭＡ通信３０２を行い、受信側で受信パケットから得られたデータ本体を受信領域に転送して格納して領域格納３０４を終了するとａｃｋパケット３０６を送信してデータ転送を完了する。
【０２００】
このように第５転送モードにあっては、送信要求が発生した際に受信側に受信領域の受信許可の有無を問い合わせ、受信許可の通知が得られたときにＲＤＭＡ転送を行っており、この受信領域の許可の有無を問い合わせる通信を必要とする分だけ第１乃至第４転送モードに比べるとレイテンシが大きくなる。
【０２０１】
図３０は第５転送モードによる転送処理のタイムチャートであり、図２を参照して説明すると次のようになる。送信側処理にあっては、ステップＳ１でホスト１０−１が受信要求をＮＩＣ１２−１に対し発行する。これを受けてステップＳ２で送信要求受付部２６が送信制御部３０に送信処理要求を通知する。
【０２０２】
続いてステップＳ３でモード選択制御部３４が、この場合には第５転送モードを選択して転送処理を起動するように指示している。続いてステップＳ４で送信制御部３０は受信許可確認パケットを作成し、ステップＳ５で１０ＧｂイーサネットＭＡＣ３８からネットワークにパケットを送信する。
【０２０３】
受信側処理にあっては、ステップＳ１０１でネットワークから１０ＧｂイーサネットＭＡＣ５０がパケットを受信して受信制御部４０に受け渡し、受信制御部４０はステップＳ１０２でパケットを解析し、受信許可確認パケットであることからステップＳ１０３で転送領域管理部４０に問い合わせ、転送領域管理表から受信領域の受信許可の有無を取得する。
【０２０４】
ステップＳ１０４で受信許可が得られると、ステップＳ１０５で受信制御部４０は受信許可パケットを生成し、ステップＳ１０６で１０ＧｂイーサネットＭＡＣ５０がネットワークにパケットを送信する。
【０２０５】
送信側の処理にあっては、ステップＳ６で１０ＧｂイーサネットＭＡＣ３８がパケットを受信し、ステップＳ７で受信制御部３２でパケットを解析して受信許可を送信制御部３０に通知する。これを受けて送信制御部３０はステップＳ８でＲＤＭＡデータパケットを生成し、ステップＳ９で１０ＧｂイーサネットＭＡＣ３８がネットワークにパケットを送信する。
【０２０６】
受信側処理にあっては、ステップＳ１０７で１０ＧｂイーサネットＭＡＣ５０がパケットを受信して受信制御部４０に受け渡し、ステップＳ１０８で受信制御部４０がパケットを解析し、転送領域管理部４２に問い合わせて受信領域の受信許可の有無と物理アドレスを取得する。
【０２０７】
このとき受信領域は受信許可になっていることから、ステップＳ１０９で受信したＲＤＭＡデータパケットから得られたデータ本体をホスト１０−２の受信領域５４に転送する。このデータ転送が終了するとステップＳ１１０で送信制御部４４がａｃｋパケットを生成し、１０ＧｂイーサネットＭＡＣ５０からステップＳ１１１でネットワークにパケットを送信する。
【０２０８】
送信側処理にあってはステップＳ１０で１０ＧｂイーサネットＭＡＣ３８がａｃｋパケットを受信して受信制御部３２に引渡し、ステップＳ１１で受信制御部３２がパケットを解析してａｃｋ受信を確認し、送信制御部３０に通知して転送処理を完了する。
【０２０９】
図３１は第５転送モード処理のフローチャートである。図３１において、第５転送モード送信処理はステップＳ１で送信要求を受けると受信許可確認パケットを生成し、ステップＳ２でパケットをネットワークに送信する。
【０２１０】
続いてステップＳ３で転送先からの受信許可パケットの受信の有無をチェックしており、パケットを受信するとステップＳ４でＲＤＭＡデータパケット生成し、ステップＳ５でネットワークにパケットを送信する。そしてステップＳ６でａｃｋパケットの受信を確認すると一連の送信処理を終了する。
【０２１１】
図３２は第５転送モードの受信処理のフローチャートである。第５転送モード受信処理は、ステップＳ１で受信許可確認パケットの受信の有無をチェックしており、これを受信するとステップＳ２で転送領域管理表を参照して受信領域の受信許可の有無を取得する。ステップＳ３で受信許可を判別するとステップＳ７で受信許可パケットを転送先に送信する。
【０２１２】
これに対し転送元からはＲＤＭＡデータパケットが送られてくることからステップＳ８でこの受信を判別し、ステップＳ９でＲＤＭＡデータパケットを解析し、転送領域管理表の参照で物理アドレスと受信領域の受信許可を取得し、ステップＳ１０でデータ本体を受信許可となっている転送領域に転送する。データ転送が終了するとステップＳ１１でａｃｋパケットを生成してネットワークに送信して一連の受信処理を終了する。
【０２１３】
（転送モードの選択）
本実施形態にあっては、ＲＤＭＡ転送を行う際に、ネットワーク負荷及び受信側のメモリ使用率に基づいて第１乃至第５転送モードの中から最適な転送モードを選択してＲＤＭＡ転送を行っている。そこで、本実施形態における第１乃至第３転送モードを従来方式である第５転送モードと比較する。
【０２１４】
図３３は転送開始前に受信可能となっている場合の第１乃至第３転送モードの転送完了時間を、従来方式である第５転送モードと対比して示した説明図である。図３３（Ａ）は従来方式の第５転送モードであり、図３３（Ｂ）は第１転送モード、図３３（Ｃ）は第２転送モード及び図３３（Ｄ）は第３転送モードである。
【０２１５】
ここで第１乃至第３転送モード及び従来方式である第５転送モードの転送完了時間をＴ１，Ｔ２，Ｔ３，Ｔ５とし、また転送完了時間を求めるためのパラメータ３１０として、
片道レイテンシδ、スループットの逆数ｋ、データ長Ｌを設定する。なお、スループットの逆数ｋにデータ長Ｌを掛け合わせた（ｋＬ）は、図３３（Ａ）〜（Ｄ）における通常ＲＤＭＡ転送３１４，３１６，３１８，３２０の伝送時間となる。
【０２１６】
図３３（Ａ）〜（Ｄ）においては、送信要求が発生する前に受信側で受信可能３１２となっており、このため第１乃至第３転送モードのいずれについても転送先に損失させることなく転送を開始して、通常ＲＤＭＡ転送３１６，３１８，３２０を行っている。
【０２１７】
一方、従来方式である図３３（Ａ）の第５転送モードにあっては、転送先に受信許可確認を行って許可通知を得られた後に通常ＲＤＭＡ３１４を行っている。なお図３３（Ｄ）の第３転送モードにあっては、転送側からａｃｋが得られるまで繰り返しＲＤＭＡ転送を行っているため、転送先からａｃｋを受け取るまでの転送が損失する転送３２２となっている。
【０２１８】
このように転送開始前に受信可能３１２となっている場合の第１乃至第３転送モード及び従来方式である第５転送モードの転送完了時間は次のようになる。
第１転送モード  Ｔ１＝２δ＋ｋＬ
第２転送モード  Ｔ２＝２δ＋ｋＬ
第３転送モード  Ｔ３＝２δ＋ｋＬ
第５転送モード  Ｔ５＝４δ＋ｋＬ
この場合には、本実施形態における第１乃至第３転送モードのいずれについても転送先に受信許可確認を行わずに投機的に転送しているため、受信許可確認のための通信時間（２δ）だけ第５転送モードに対し削減することができる。
【０２１９】
図３４は図３３における第５転送モード、第１乃至第３転送モードのそれぞれにおける転送完了時間Ｔ５，Ｔ１〜Ｔ３を計算するための詳細を示している。
【０２２０】
次に転送先の受信許可が転送開始後に発行されている場合について、第１乃至第３転送モードの転送完了時間を従来方式である第５転送モードと対比して説明する。
【０２２１】
図３５（Ａ）〜（Ｄ）は、パラメータ３２４に示すように、送信要求から受信許可が発行されるまでの待ち時間Ｗが
Ｗ≧ｋＬ
の場合である。この場合の第１乃至第３転送モードの転送完了時間Ｔ１〜Ｔ３は次のようになる。
第１転送モード  Ｔ１＝Ｗ＋４δ＋ｋＬ
第２転送モード  Ｔ２＝Ｗ＋４δ＋ｋＬ
第３転送モード  Ｔ３＝Ｗ＋２δ＋ｋＬ
また従来方式である第５転送モードの転送完了時間Ｔ５は
第５転送モード  Ｔ５＝Ｗ＋４δ＋ｋＬ（固定）
となる。
【０２２２】
図３５（Ａ）〜（Ｄ）においては、ＲＤＭＡ通信３２８，３４２，３４４及び再送ＲＤＭＡ通信３３２，３３６は、受信領域へ転送され、ＲＤＭＡ通信３３０，３３４，３３８，３４０，３４６は、転送先で受信パケットが破棄される。
【０２２３】
図３６（Ａ）〜（Ｄ）は、図３５（Ａ）〜（Ｄ）に対応して転送完了時間Ｔ５，Ｔ１〜Ｔ３のそれぞれの計算内容の詳細を示している。
【０２２４】
図３７は，パラメータ３４８に示すように、送信要求から受信許可が発行されるまでの待ち時間Ｗを
ｋＬ≧Ｗ≧ｋＬ−２δ
とした場合である。この場合の図３７（Ｂ）〜（Ｄ）の第１乃至第３転送モードの転送完了時間は次のようになる。
第１転送モード  Ｔ１＝２Ｗ＋４δ
第２転送モード  Ｔ２＝Ｗ＋４δ＋ｋＬ
第３転送モード  Ｔ３＝Ｗ＋２δ＋ｋＬ
また図３７（Ａ）の従来方式である第５転送モードは、図３５の場合と同様、
第５転送モード  Ｔ５＝Ｗ＋４δ＋ｋＬ（固定）
であり、待ち時間Ｗが短くなっただけである。
【０２２５】
図３７（Ａ）〜（Ｄ）においては、ＲＤＭＡ通信３５２，３５５，３６２，３６６，３６８及び再送ＲＤＭＡ通信３５６，３６０は、受信領域へ転送され、ＲＤＭＡ通信３５４，３５８，３６４，３７０，３７２は、転送先で受信パケットが破棄される。
図３８（Ａ）〜（Ｄ）は図３７（Ａ）〜（Ｄ）における転送完了時間Ｔ５，Ｔ１〜Ｔ３の計算内容を示している。
【０２２６】
ここで図３８（Ｂ）の第１転送モードにあっては、受信可能３５０となるまでの待ち時間Ｗと受信可能３５０が発行された後の通常ＲＤＭＡ転送の転送時間ｋＬは、転送先で破棄された損失分のデータを同一速度で転送するため、データ転送時間は待ち時間Ｗと等しくなり、したがって
Ｔ１＝Ｗ＋４δ＋ｋＬ＝２Ｗ＋４δ
となる。
【０２２７】
図３９は，パラメータ３７４に示すように、送信要求から受信許可が発行されるまでの待ち時間Ｗが
ｋＬ−２δ≧Ｗ≧２δ
の場合の第１乃至第３転送モードの転送完了時間を従来方式である第５転送モードと対比して示している。
【０２２８】
この場合の第１乃至第３転送モードの転送完了時間は次のようになる。
第１転送モード  Ｔ１＝Ｗ＋２δ＋ｋＬ
第２転送モード  Ｔ２＝Ｗ＋４δ＋ｋＬ
第３転送モード  Ｔ３＝Ｗ＋２δ＋ｋＬ
なお第５転送モードの転送完了時間は
第５転送モード  Ｔ４＝Ｗ＋４δ＋ｋＬ（固定）
であり、待ち時間Ｗが短くなっただけである。
図３９（Ａ）〜（Ｄ）においては、ＲＤＭＡ通信３７８，３８２，３９０，３９４，３９６及び再送ＲＤＭＡ通信３８４，３８８は、受信領域へ転送され、ＲＤＭＡ通信３８０，３８６，３９２，３９８は、転送先で受信パケットが破棄される。
【０２２９】
図４０（Ａ）〜（Ｄ）は、図３９（Ａ）〜（Ｄ）に対応したそれぞれの転送完了時間の計算内容を示している。
【０２３０】
図４１は、パラメータ４００に示すように、送信要求から受信許可が発行されるまでの待ち時間Ｗが
２δ≧Ｗ
の場合であり、この場合の第１乃至第３転送モードの転送完了時間は次のようになる。
第１転送モード  Ｔ１＝Ｗ＋２δ＋ｋＬ
第２転送モード  Ｔ２＝２Ｗ＋２δ＋ｋＬ
第３転送モード  Ｔ３＝Ｗ＋２δ＋ｋＬ
なお第５転送モードの転送完了時間は
第５転送モード  Ｔ４＝Ｗ＋４δ＋ｋＬ（固定）
であり、待ち時間Ｗが短くなっただけである。
【０２３１】
また図４１（Ａ）〜（Ｄ）においては、ＲＤＭＡ転送４０４，４０８，４１４，４１６，４２２，４２４及び再送ＲＤＭＡ転送４１０，４１８は、受信領域へ転送され、ＲＤＭＡ通信４０６，４１２，４２０，４２６は、転送先で受信パケットが破棄される。
【０２３２】
図４２（Ａ）〜（Ｄ）は、図４１（Ａ）〜（Ｄ）の転送完了時間の計算内容を示している。
【０２３３】
ここで図４２（Ｃ）の第２転送モードの転送完了時間Ｔ２は
Ｔ２＝２Ｗ＋２δ＋ｋＬ
であるが、これは図４３に示すようにして算出されている。
【０２３４】
図４３において、第２転送モードにおける転送完了時間時間Ｔ２は
Ｔ２＝Ｗ＋４δ＋ｋＬ−ε
である。ここでεは、図４３より
ε＝２δ−Ｗ
であり、これを代入すると
Ｔ２＝Ｗ＋４δ＋ｋＬ−（２δ−Ｗ）＝２Ｗ＋２δ＋ｋＬ
となる。
【０２３５】
以上の受信許可が転送開始後に発行された場合の待ち時間Ｗの相違に対する第１乃至第３転送モードの転送完了時間Ｔ１〜Ｔ３をまとめると次のようになる。
【０２３６】
（１）Ｗ≧ｋＬの場合
第１転送モード  Ｔ１＝Ｗ＋４δ＋ｋＬ
第２転送モード  Ｔ２＝Ｗ＋４δ＋ｋＬ
第３転送モード  Ｔ３＝Ｗ＋２δ＋ｋＬ
【０２３７】
（２）ｋＬ≧Ｗ≧ｋＬ−２δの場合
第１転送モード  Ｔ１＝２Ｗ＋４δ
第２転送モード  Ｔ２＝Ｗ＋４δ＋ｋＬ
第３転送モード  Ｔ３＝Ｗ＋２δ＋ｋＬ
【０２３８】
（３）ｋＬ−２δ≧Ｗ≧２δの場合
第１転送モード  Ｔ１＝Ｗ＋２δ＋ｋＬ
第２転送モード  Ｔ２＝Ｗ＋４δ＋ｋＬ
第３転送モード  Ｔ３＝Ｗ＋２δ＋ｋＬ
【０２３９】
（４）２δ≧Ｗの場合
第１転送モード  Ｔ１＝Ｗ＋２δ＋ｋＬ
第２転送モード  Ｔ２＝２Ｗ＋２δ＋ｋＬ
第３転送モード  Ｔ３＝Ｗ＋２δ＋ｋＬ
【０２４０】
この第１乃至第３転送モードにおける転送完了時間Ｔ１〜Ｔ３の関係から、単純に転送時間を短縮するという観点から見ると第３転送モードが最も優れていることが分かる。しかしながら、第３転送モードにあっては、ａｃｋが得られるまで繰り返しＲＤＭＡ転送を行うことから、最もネットワーク帯域を消費するという問題がある。このため、ネットワーク負荷の状態に応じて最適な転送モードを選択する必要がある。
【０２４１】
本実施形態にあっては、図２に示したように、ネットワーク情報は送信側のネットワーク負荷情報収集部３６と受信側のネットワーク負荷情報収集部４８の両方で収集可能である。
したがって
（１）送信側でネットワーク負荷情報を収集する場合、ネットワーク収集情報に基づいて送信時に転送モードを選択する方法、
（２）受信側で収集する場合は、収集情報に基づいて選択した転送モードを送信側に伝え、これに基づいて送信側で指定された伝送方式で送信処理を行う方法、
のいずれかをとることができる。本実施形態は（１）の送信側で転送モードを選択している。
【０２４２】
更に本実施形態における第１乃至第３転送方式は、再送によるネットワーク帯域の増加があるものの、受信側のホスト上の一時バッファを必要としないのに対し、本実施形態の第４転送モードにあっては、再送によるネットワーク帯域の増加はないものの受信側のホスト上の一時バッファを必要とする。
【０２４３】
そこで送信側で転送方式を決定する方法において、図２のように受信側のＮＩＣ１２−２に設けているメモリ使用率情報収集部４９でホスト１０−２のメモリ使用率を収集し、これを送信側に通知し、メモリ使用率に基づいて転送モードを選択する。
【０２４４】
即ち、メモリ使用率が少なく十分にメモリがある場合には一時バッファを使用する第４転送モードを選択し、メモリ使用率が大きく十分にメモリがない場合には第１乃至第３転送モードを選択し、これによって効率よく転送処理を行う。
【０２４５】
更に、ネットワーク負荷が高く且つ受信側のホストのメモリ使用率が高い場合を考えると、第１乃至第３転送モードは無駄となるパケットの転送を伴い、ネットワーク負荷が高くなるため、好ましくはない。また一時バッファを使用する第４転送モードも、受信側のホストメモリ使用量が多いため好ましくない。このような場合には、従来方式である第５転送モードが最適な方式となる。
【０２４６】
そこで本実施形態にあっては、図２の受信側のＮＩＣ１２−２のメモリ使用率情報収集部４９がホスト１０−２のメモリ使用率情報を収集してモード選択制御部４６に通知し、モード選択制御部４６においてメモリ使用率が少なければ第４転送モードを選択し、一方、メモリ使用率が多く第４転送モードを選択できない場合には、第４転送モードを選択できない点を送信側のＮＩＣ１２−１のモード選択制御部３４に通知する。
【０２４７】
これを受けて送信側のモード選択制御部３４は、ネットワーク負荷情報収集部３６から得られたネットワーク負荷情報に基づき、第１乃至第３転送モードあるいは従来方式である第５転送モードから最適な転送モードを選択する。なお、メモリ使用率を送信側のモード選択制御部３４に通知し、モード選択制御部３４で第１乃至第５転送モードのすべてについて選択制御しても良い。
【０２４８】
図４４はネットワーク負荷情報と受信側のメモリ使用率に基づく転送モード選択のための転送モード管理表４５０の説明図である。図４４において、転送モード管理表４５０は、ネットワーク負荷については、小さい順に３つの閾値ｗ１，ｗ２，ｗ３を設定し、ネットワーク負荷を４つの領域に分けている。一方、メモリ使用量については閾値ｍを設定し、ｍ未満とｍ以上の２つの領域に分けている。
【０２４９】
この転送モード管理表４５０に基づき、次のようにして転送モードの選択を行う。
（１）メモリ使用率が閾値ｍ未満の場合は、受信不許可の場合に一時バッファに格納する第４転送モードを選択する。
（２）メモリ使用率が閾値ｍ以上の場合は、ネットワーク負荷に基づいて転送モードを選択する。
【０２５０】
またネットワーク負荷に基づく転送モードの選択は次のようになる。
（１）ネットワーク負荷がｗ１未満の場合は第３転送モードを選択する。
（２）ネットワーク負荷がｗ１以上ｗ２未満の場合は第１転送モードを選択する。
（３）ネットワーク負荷がｗ２以上ｗ３未満の場合は第２転送モードを選択する。
（４）ネットワーク負荷がｗ３以上の場合は従来方式である第５転送モードを選択する。
【０２５１】
ここでメモリ使用率については、受信側のホストにおける一時バッファとして使用可能なメモリ量とデータ転送量から閾値を求める。ネットワーク負荷に関しては、ネットワーク負荷情報を収集し、ネットワーク負荷実際の性能値を集計し、閾値の妥当性を評価することになる。
【０２５２】
図４５は図４４の転送モード管理表４５０に基づく図６のステップＳ２の送信側での転送モード選択処理の詳細を示したフローチャートであり、図２を参照して説明すると次のようになる。
【０２５３】
図４５において、転送モード選択処理は、ステップＳ１で、モード選択制御部３４はネットワーク負荷情報収集部３６で収集されたネットワーク負荷情報と、このとき受信側のＮＩＣ１２−２のメモリ使用率情報収集部４９で収集されて転送されてきたメモリ使用率を読み込む。続いてステップＳ２でメモリ使用率は閾値ｍ以上か否かチェックする。ｍ未満であればステップＳ３に進み、受信側のホスト１０−２の一時バッファ５６を使用する第４転送モードを設定する。
【０２５４】
ステップＳ２でメモリ使用率が閾値ｍ以上の場合には、ステップＳ４に進み、ネットワーク負荷が閾値ｗ１未満か否かチェックする。閾値ｗ１未満であればステップＳ５に進み、転送データをａｃｋパケットが得られるまで繰り返し転送する第３転送モードを設定する。
【０２５５】
またステップＳ６でネットワーク負荷が閾値ｗ１以上で  閾値ｗ２未満の場合には、ステップＳ７で第１転送モードを設定する。またステップＳ８でネットワーク負荷が閾値ｗ２以上で閾値ｗ３未満の場合には、ステップＳ９で第２転送モードを設定する。更にステップＳ８でネットワーク負荷が閾値ｗ３以上となった場合には、ステップＳ１０に進み、従来方式である第５転送モードを設定する。
【０２５６】
なお図４５の転送モード設定処理にあっては、送信側のＮＩＣ１２−１のモード選択制御部３４で転送モードを選択して選択指示を与えているが、第１転送モード、第２転送モード及び第４転送モードの選択については、受信側ＮＩＣ１２−２のモード選択制御部４６においてモード選択を行う構成とすることもできる。この場合には、受信側の統計情報から得られたモード選択を送信側に通知する手順を省略することができる。
【０２５７】
なお本実施形態は、受信機側のメモリ使用率に基づき、第１乃至第４転送モード及び従来方式である第５転送モードの中から最適な転送モードを選択してＲＤＭＡ転送を行う場合を例にとっているが、本実施形態における第１乃至第４転送モードのいずれか１つを固定的に選択してＲＤＭＡ転送する構成とすることもできる。
【０２５８】
また本実施形態における第１乃至第４転送モードの少なくともいずれか１つと従来方式である第５転送モードにつき、ネットワーク負荷及び受信側のメモリ使用率から最適な転送モードを選択してＲＤＭＡ転送する構成としてもよい。
【０２５９】
また本実施形態は、受信側及び送信側に設けたＮＩＣにおける送信部及び受信部として実行するプログラムを提供するものであり、このプログラムは図６，図７，図１１，図１２，図１７，図１８，図２１，図２２，図２４，図２５，図３１，図３２、更に図４５のフローチャートに示した内容を備える。
【０２６０】
また本発明は、本実施形態のＲＤＭＡ通信プログラムを記憶したコンピュータ読取可能な記録媒体を提供するものであり、この記録媒体とはＣＤ−ＲＯＭ、フロッピィ（Ｒ）ディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの可搬型記憶媒体や、コンピュータシステムの内外に備えられたハードディスクドライブなどの記憶装置の他、回線を介してプログラムを保持するデータベース、あるいは他のコンピュータシステム並びにデータベースや、更に回線上の伝送媒体を含むものである。
【０２６１】
また上記の実施形態は１０ＧｂイーサネットをサポートするＮＩＣを例に取るものであったが、これに限定されず、同等のＲＤＭＡ通信をサポートするインタフェースネットワークカードや通信機器であれば、そのまま本発明を適用することができる。
【０２６２】
また本発明は本実施形態に限定されず、その目的と利点を損なうことのない適宜の変形を含み、更に本実施形態に示した数値による限定は受けない。
【０２６３】
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
（付記）
（付記１）
ＲＤＭＡパケットを作成して送信する送信部と、ＲＤＭＡパケットを受信する受信部とを備えたＲＤＭＡ通信をサポートする通信装置に於いて、
前記送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信部と、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。（１）
【０２６４】
（付記２）
ＲＤＭＡパケットを作成して送信する送信部と、ＲＤＭＡパケットを受信する受信部とを備えたＲＤＭＡ通信をサポートする通信装置に於いて、
前記送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信部と、
転送先から受信不許可通知を受信した際に、前記パケット送信部によるパケット転送を中断する転送中断部と、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
前記パケット破棄部で前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知部と、
前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。（２）
【０２６５】
（付記３）
ＲＤＭＡパケットを作成して送信する送信部と、ＲＤＭＡパケットを受信する受信部とを備えたＲＤＭＡ通信をサポートする通信装置に於いて、
前記送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に繰返し送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。（３）
【０２６６】
（付記４）
ＲＤＭＡパケットを作成して送信する送信部と、ＲＤＭＡパケットを受信する受信部とを備えたＲＤＭＡ通信をサポートする通信装置に於いて、
前記送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送部と、
前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動させるデータ移動部と、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。（４）
【０２６７】
（付記５）
ＲＤＭＡパケットを作成して送信する送信部と、ＲＤＭＡパケットを受信する受信部とを備えたＲＤＭＡ通信をサポートする通信装置に於いて、
転送先に許可を問合せることなく投機的に転送し、不許可の場合には再送要求を受けて再送する第１転送モード処理部と、
転送先に問合せることなく投機的に転送し、不許可の場合は不許可通知を受けて転送を中断し、再送要求を受けて再送する第２転送モード処理部と、
転送完了通知を受けるまで転送先に許可を問合せることなく投機的に繰返し転送する第３転送モード処理部と、
転送先に許可を問合せることなく投機的に転送し、不許可の場合は一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する第４転送モード処理部と、
転送先に許可を問合せ、許可通知を受けて転送する第５転送モード処理部と、
前記第１乃至第５転送モード処理部のいずれか１つを、ネットワーク負荷と受信側のメモリ使用量の少なくともいずれか一方に基づいて選択してＲＤＭＡデータ転送を実行させる転送モード選択制御部と、
を備えたことを特徴とする通信装置。（５）
【０２６８】
（付記６）
付記５記載の通信装置に於いて、
前記第１転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信部と、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第１転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。（６）
【０２６９】
（付記７）
付記５記載の通信装置に於いて、
前記第２転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信部と、
転送先から受信不許可通知を受信した際に、パケット送信部によるパケット転送を中断する転送中断部と、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第２転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
前記パケット破棄部で前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知部と、
前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。（７）
【０２７０】
（付記８）
付記５記載の通信装置に於いて、
前記第３転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に繰返し送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第３転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。（８）
【０２７１】
（付記９）
付記５記載の通信装置に於いて、
前記第４転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第４転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送部と、
前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動させるデータ移動部と、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。（９）
【０２７２】
（付記１０）
付記５記載の通信装置に於いて、
前記第５転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可確認を送信して受信許可通知を受信した場合に、転送データからＲＤＭＡパケットを作成して送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第５転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
転送元から受信確認通知を受信した時に前記転送領域管理情報を参照して受信許可通知又は受信不許可通知を送信する確認応答部と、
前記受信領域に受信パケットを転送するパケット受信部と、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する転送完了通知部と、
を備えたことを特徴とする通信装置。（１０）
【０２７３】
（付記１１）
付記５記載の通信装置に於いて、前記転送モード設定部は送信部に設けられ、選択した転送モードを転送元の送信部及び受信部に通知して前記第１乃至第５転送モード処理部のいずれかによるＲＤＭＡデータ転送を実行させることを特徴とする通信装置。
【０２７４】
（付記１２）
付記５記載の通信装置に於いて、前記転送モード設定部は受信部に設けられ、選択した転送モードを送信部及び受信部に通知して前記第１乃至第５転送モード処理部のいずれかによるＲＤＭＡデータ転送を実行させることを特徴とする通信装置。
【０２７５】
（付記１３）
付記５記載の通信装置に於いて、前記転送モード設定部は、
前記受信側のメモリ使用率が少ない場合は前記第４転送モード処理部を選択し、
前記受信側のメモリ使用率が多い場合は、ネットワーク負荷の低い順に、前記第３転送モード処理部、第１転送モード処理部及び第５転送モード処理部を順次選択することを特徴とする通信装置。（１１）
【０２７６】
（付記１４）
付記１乃至５記載のいずれかに記載の通信装置に於いて、更に、論理アドレスと物理アドレスのアドレス変換情報を持ち、前記アドレス変換情報内に前記転送領域管理情報を含ませて一体化したことを特徴とする通信装置。
【０２７７】
（付記１５）
ＲＤＭＡパケットを作成して送信する送信ステップと、ＲＤＭＡパケットを受信する受信ステップとを備えたＲＤＭＡ通信をサポートする通信方法に於いて、
前記送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信ステップと、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
【０２７８】
（付記１６）
ＲＤＭＡパケットを作成して送信する送信ステップと、ＲＤＭＡパケットを受信する受信ステップとを備えたＲＤＭＡ通信をサポートする通信方法に於いて、
前記送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信ステップと、
転送先から受信不許可通知を受信した際に、前記パケット送信ステップによるパケット転送を中断する転送中断ステップと、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
前記パケット破棄ステップで前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
【０２７９】
（付記１７）
ＲＤＭＡパケットを作成して送信する送信ステップと、ＲＤＭＡパケットを受信する受信ステップとを備えたＲＤＭＡ通信をサポートする通信方法に於いて、
前記送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に繰返し送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
【０２８０】
（付記１８）
ＲＤＭＡパケットを作成して送信する送信ステップと、ＲＤＭＡパケットを受信する受信ステップとを備えたＲＤＭＡ通信をサポートする通信方法に於いて、
前記送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送ステップと、
前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動するデータ移動ステップと、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
【０２８１】
（付記１９）
ＲＤＭＡパケットを作成して送信する送信ステップと、ＲＤＭＡパケットを受信する受信ステップとを備えたＲＤＭＡ通信をサポートする通信方法に於いて、
転送先に許可を問合せることなく投機的に転送し、不許可の場合には再送要求を受けて再送する第１転送モード処理ステップと、
転送先に問合せることなく投機的に転送し、不許可の場合は不許可通知を受けて転送を中断し、再送要求を受けて再送する第２転送モード処理ステップと、
転送完了通知を受けるまで転送先に許可を問合せることなく投機的に繰返し転送する第３転送モード処理ステップと、
転送先に許可を問合せることなく投機的に転送し、不許可の場合は一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する第４転送モード処理ステップと、
転送先に許可を問合せ、許可通知を受けて転送する第５転送モード処理ステップと、
前記第１乃至第５転送モード処理ステップのいずれか１つを、ネットワーク負荷と受信側のメモリ使用量の少なくともいずれか一方に基づいて選択してＲＤＭＡデータ転送を実行させる転送モード設定ステップと、
を備えたことを特徴とする通信方法。（１２）
【０２８２】
（付記２０）
付記１９記載の通信方法に於いて、
前記第１転送モード処理ステップの送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信ステップと、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記第１転送モード処理ステップの受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
【０２８３】
（付記２１）
付記１９記載の通信方法に於いて、
前記第２転送モード処理ステップの送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信ステップと、
転送先から受信不許可通知を受信した際に、前記パケット送信ステップによるパケット転送を中断する転送中断ステップと、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記第２転送モード処理ステップの受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
前記パケット破棄ステップで前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
【０２８４】
（付記２２）
付記１９記載の通信方法に於いて、
前記第３転送モード処理ステップの送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に繰返し送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記第３転送モード処理ステップの受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
【０２８５】
（付記２３）
付記１９記載の通信方法に於いて、
前記第４転送モード処理ステップの送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記第４転送モード処理ステップの受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送ステップと、
前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動するデータ移動ステップと、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
【０２８６】
（付記２４）
付記１９記載の通信方法に於いて、
前記第５転送モード処理ステップの第５送信ステップは、
データ転送要求を受けた際に、転送先に受信許可確認を送信して受信許可通知を受信した場合に、転送データからＲＤＭＡパケットを作成して送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記第５転送モード処理ステップの第５受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
転送元から受信確認通知を受信した時に前記転送領域管理情報を参照して受信許可通知又は受信不許可通知を送信する確認応答ステップと、
前記受信領域に受信パケットを転送するパケット受信ステップと、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
【０２８７】
（付記２５）
付記１９記載の通信方法に於いて、前記転送モード選択ステップは転送元の送信ステップに設けられ、選択した転送モードを転送元及び転送先に通知して前記第１乃至第５転送モード処理ステップのいずれかによるＲＤＭＡデータ転送を実行させることを特徴とする通信方法。
【０２８８】
（付記２６）
付記１９記載の通信方法に於いて、前記転送モード設定ステップは転送先の受信ステップに設けられ、選択した転送モードを転送元及び転送先に通知して前記第１乃至第５転送モード処理ステップのいずれかによるＲＤＭＡデータ転送を実行させることを特徴とする通信方法。
【０２８９】
（付記２７）
付記１９記載の通信方法に於いて、前記転送モード設定ステップは、
前記受信側のメモリ使用率が少ない場合は前記第４転送モード処理ステップを選択し、
前記受信側のメモリ使用率が多い場合は、ネットワーク負荷の低い順に、前記第３転送モード処理ステップ、第１転送モード処理ステップ及び第５転送モード処理ステップを順次選択することを特徴とする通信方法。
【０２９０】
（付記２８）
付記１５乃至１９記載のいずれかに記載の通信方法に於いて、更に、論理アドレスと物理アドレスのアドレス変換情報を持ち、前記アドレス変換情報内に前記転送領域管理情報を含ませて一体化したことを特徴とする通信方法。
【０２９１】
（付記２９）
ＲＤＭＡ通信をサポートする通信装置のコンピュータに、
送信ステップとして、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信ステップと、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を実行させ、
前記受信ステップとして、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を実行させることを特徴とする通信プログラム。
【０２９２】
（付記３０）
ＲＤＭＡ通信をサポートする通信装置のコンピュータに、
送信ステップとして、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信ステップと、
転送先から受信不許可通知を受信した際に、前記パケット送信ステップによるパケット転送を中断する転送中断ステップと、
転送先から再送要求を受信した際に、要求された転送データからＲＤＭＡパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を実行させ、
受信ステップとして、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
前記パケット破棄ステップで前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を実行させることを特徴とする通信プログラム。
【０２９３】
（付記３１）
ＲＤＭＡ通信をサポートする通信装置のコンピュータに、
送信ステップとして、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に繰返し送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を実行させ、
受信ステップとして、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を実行させることを特徴とする通信プログラム。
【０２９４】
（付記３２）
ＲＤＭＡ通信をサポートする通信装置のコンピュータに、
送信ステップとして、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからＲＤＭＡパケットを作成して投機的に送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を実行させ、
受信ステップとして、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送ステップと、
前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動するデータ移動ステップと、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を実行させることを特徴とする通信プログラム。
【図面の簡単な説明】
【０２９５】
【図１】ホスト間通信に適用された本発明の一実施形態の説明図
【図２】本実施形態におけるＮＩＣの送信部と受信部の機能構成のブロック図
【図３】本実施形態で使用する転送領域管理表の説明図
【図４】本実施形態における送信制御部のブロック図
【図５】本実施形態における受信制御部のブロック図
【図６】本実施形態における送信処理のフローチャート
【図７】本実施形態における受信処理のフローチャート
【図８】本実施形態における第１転送モードによる転送処理の説明図
【図９】転送開始前に受信可能となっている場合の第１転送モードによる転送処理のタイムチャート
【図１０】転送開始後に受信可能となった場合の第１転送モードによる転送処理のタイムチャート
【図１１】第１転送モード送信処理のフローチャート
【図１２】第１転送モード受信処理のフローチャート
【図１３】本実施形態における第２転送モードによる転送処理の説明図
【図１４】転送開始前に受信可能となっている場合の第２転送モードによる転送処理のタイムチャート
【図１５】転送開始後に受信可能となった場合の第２転送モードによる転送処理のタイムチャート
【図１６】図１５に続く第２転送モードによる転送処理のタイムチャート
【図１７】第２転送モード送信処理のフローチャート
【図１８】第２転送モード受信処理のフローチャート
【図１９】本実施形態における第３転送モードによる転送処理の説明図
【図２０】第３転送モードによる転送処理のタイムチャート
【図２１】第３転送モード送信処理のフローチャート
【図２２】第３転送モード受信処理のフローチャート
【図２３】本実施形態における第４転送モードによる転送処理のタイムチャート
【図２４】第４転送モード送信処理のフローチャート
【図２５】第４転送モード受信処理のフローチャート
【図２６】第４転送モードの受信側における一時バッファから受信領域へのデータ移動の説明図
【図２７】図２６のデータ移動におけるアドレスマッピングの説明図
【図２８】図２７のアドレスマッピング前と後のアドレス変換表の説明図
【図２９】本実施形態における第５転送モードによる転送処理の説明図
【図３０】第５転送モードによる転送処理のタイムチャート
【図３１】第５転送モード送信処理のフローチャート
【図３２】第５転送モード受信処理のフローチャート
【図３３】転送開始前に受信可能となっている場合の第１乃至第３及び第５転送モードによる転送完了時間の説明図
【図３４】図３３の転送完了時間の計算の説明図
【図３５】転送開始の待ち時間ＷがＷ≧ｋＬの場合の第１乃至第３及び第５転送モードによる転送完了時間の説明図
【図３６】図３５の転送完了時間の計算の説明図
【図３７】転送開始の待ち時間ＷがｋＬ≧Ｗ≧ｋＬ−２δの場合の第１乃至第３及び第５転送モードによる転送完了時間の説明図
【図３８】図３７の転送完了時間の計算の説明図
【図３９】転送開始の待ち時間ＷがｋＬ−２δ≧Ｗ≧２δの場合の第１乃至第３及び第５転送モードによる転送完了時間の説明図
【図４０】図３９の転送完了時間の計算の説明図
【図４１】転送開始の待ち時間Ｗが２δ≧Ｗの場合の第１乃至第３及び第５転送モードによる転送完了時間の説明図
【図４２】図４１の転送完了時間の計算の説明図
【図４３】図４２（Ｃ）における転送完了時間の計算詳細を示した説明図
【図４４】本実施形態で使用する転送モード管理表の説明図
【図４５】本実施形態における転送モード選択処理のフローチャート
【符号の説明】
【０２９６】
１０−１，１０−２：ホスト
１２−１，１２−２：ネットワーク・インタフェース・カード（ＮＩＣ）
１４−１，１４−２：送信部
１６−１，１６−２：受信部
１８：ネットワーク
２０：送信要求部
２２：送信領域
２４：送信データ
２６：送信要求受付部
２８，４２：転送領域管理部
３０，４４：送信制御部
３２，４０：受信制御部
３４，４６：モード選択制御部
３６，４８：ネットワーク負荷情報収集部
３８，５０：１０ＧｂイーサネットＭＡＣ
４９：メモリ使用率情報収集部
５２：領域許可部
５４：受信領域
５５：転送データ
５６：一時バッファ
５８：保存データ
６０：転送制御部
６２：転送領域管理表
６４：領域ＩＤ
６６：論理アドレス
６８：物理アドレス
７０：受信許可
７２：パケット破棄情報
７４：受信不許可通知情報
７５：一時バッファアドレス
７６：第１転送モード送信部
７８：第２転送モード送信部
８０：第３転送モード送信部
８２：第４転送モード送信部
８４：第５転送モード送信部
８６，９２，１００，１０４，１１０：パケット送信部
８８，９６：パケット再送部
９０，９８，１０２，１０６，１１２：送信完了部
９４：転送中断部
１０８：受信許可確認部
１１４：第１転送モード受信部
１１６：第２転送モード受信部
１１８：第３転送モード受信部
１２０：第４転送モード受信部
１２４：第５転送モード受信部
１２６，１３４，１４４，１５０，１６０：パケット受信部
１２８，１３６，１４６：パケット破棄部
１３０，１４０：再送要求部
１３２，１４２，１４８，１５６，１６２：完了通知部
１３８：不許可通知部
１５２：バッファ転送部
１５４：データ移動部
１５８：確認応答部
【図１】
0004662273.tif 000002
【図２】
0004662273.tif 000003
【図３】
0004662273.tif 000004
【図４】
0004662273.tif 000005
【図５】
0004662273.tif 000006
【図６】
0004662273.tif 000007
【図７】
0004662273.tif 000008
【図８】
0004662273.tif 000009
【図９】
0004662273.tif 000010
【図１０】
0004662273.tif 000011
【図１１】
0004662273.tif 000012
【図１２】
0004662273.tif 000013
【図１３】
0004662273.tif 000014
【図１４】
0004662273.tif 000015
【図１５】
0004662273.tif 000016
【図１６】
0004662273.tif 000017
【図１７】
0004662273.tif 000018
【図１８】
0004662273.tif 000019
【図１９】
0004662273.tif 000020
【図２０】
0004662273.tif 000021
【図２１】
0004662273.tif 000022
【図２２】
0004662273.tif 000023
【図２３】
0004662273.tif 000024
【図２４】
0004662273.tif 000025
【図２５】
0004662273.tif 000026
【図２６】
0004662273.tif 000027
【図２７】
0004662273.tif 000028
【図２８】
0004662273.tif 000029
【図２９】
0004662273.tif 000030
【図３０】
0004662273.tif 000031
【図３１】
0004662273.tif 000032
【図３２】
0004662273.tif 000033
【図３３】
0004662273.tif 000034
【図３４】
0004662273.tif 000035
【図３５】
0004662273.tif 000036
【図３６】
0004662273.tif 000037
【図３７】
0004662273.tif 000038
【図３８】
0004662273.tif 000039
【図３９】
0004662273.tif 000040
【図４０】
0004662273.tif 000041
【図４１】
0004662273.tif 000042
【図４２】
0004662273.tif 000043
【図４３】
0004662273.tif 000044
【図４４】
0004662273.tif 000045
【図４５】
0004662273.tif 000046