JP4662273B2 - 通信装置、方法及びプログラム - Google Patents

通信装置、方法及びプログラム Download PDF

Info

Publication number
JP4662273B2
JP4662273B2 JP2006083185A JP2006083185A JP4662273B2 JP 4662273 B2 JP4662273 B2 JP 4662273B2 JP 2006083185 A JP2006083185 A JP 2006083185A JP 2006083185 A JP2006083185 A JP 2006083185A JP 4662273 B2 JP4662273 B2 JP 4662273B2
Authority
JP
Japan
Prior art keywords
transfer
packet
reception
unit
permission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006083185A
Other languages
English (en)
Other versions
JP2007257479A (ja
Inventor
耕太 中島
耕一 久門
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2006083185A priority Critical patent/JP4662273B2/ja
Priority to US11/475,908 priority patent/US7581015B2/en
Publication of JP2007257479A publication Critical patent/JP2007257479A/ja
Application granted granted Critical
Publication of JP4662273B2 publication Critical patent/JP4662273B2/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements

Description

本発明は、RDMA(Remote Direct Memory Access)方式によりデータを高速転送する通信装置、方法及びプログラムに関し、特に受信先の許可を問合せることなく投機的にRDMAパケットを転送する通信装置、方法及びプログラムに関する。
従来、大規模なPCクラスタや並列分散サーバシステムでは、ノード間やストレージ・ホスト間の接続を高性能化するため、高い通信性能を求められる部分においては、ソケット通信に代表されるセンド/レシーブ(send/receive)型通信の代わりに、リード/ライト(Read/Write)型通信のRDMA方式が用いられている。
センド/レシーブ型通信では、転送元ノードが転送元のメモリ領域を指定し、転送先ノードが転送先のメモリ領域を指定することにより通信を行うが、RDMA方式は、転送起動側が転送元及び転送先の双方のメモリ領域を指定するため、転送の際に必要となる中間バッファを削減でき、中間バッファと転送元及び転送先のメモリ領域間で発生するコピー処理を削減できる。
特に、インフィニィバンド(InfiniBand)や10ギガビットイーサネット(R)(10GbEthernet)のように、1ギガバイト/秒(1GB/s)クラスの高速なネットワークを用いる際には、コピー処理の削減により大幅に通信性能を改善することができる。
RDMA通信では、転送起動側が転送元及び転送先の双方のメモリ領域を指定し、起動処理を行う。この際、通信対象となるノードには、転送の開始及び終了が通知されない。したがって、実際には、RDMA通信を起動する際には、通信対象となる転送先のノードに対して、転送先のメモリ領域への転送の開始許可を求めるための通信処理を事前に行う必要がある。
従来のRDMA通信のデータ転送手順は次のようになる。
(1)送信側
送信側は、RDMA起動可能になったら、受信側に受信許可の有無を問い合わせる。受信許可を受信してから、RDMAデータを転送する。最後に、ack(転送完了通知)を受信すると転送を完了する。
(2)受信側
受信側は受信許可の有無の問い合わせに対し、受信可能になった時点で、受信許可を転送する。この後、RDMAデータを受信完了すると、ackを送信側へ返す。
特開2004−192179号公報 特開2005−044353号公報
しかしながら、このような従来のRDMA通信にあっては、RDMA通信を開始する前に、転送先に対し転送許可を求めるための通信処理が必要となり、その分、データ転送に時間がかかるという問題がある。この転送先に対し転送許可を求めるための通信処理は、特に高スループット、高レイテンシであるネットワークにおいて大きな問題となる。
例えば、近年の10ギガビットイーサネット(なおイーサネットは登録商標である。以下、省略する)で使用するNIC(ネットワークインタフェースカード)の実装では、スループットは1ギガバイト/秒以上であるが、レイテンシは10〜20μs程度と大きい。
このような場合に、例えば1キロバイトのデータといった短いデータをRDMA転送する場合を考えると、データ転送にかかる時間は、RDMA転送自体は1μs以下となるが、事前に必要となる転送許可を求める通信処理で発生する時間は10〜20μsであるため、レイテンシがボトルネックとなり、スループットを十分に発揮できないという問題がある。
本発明は、転送先に対し転送許可を求めるための通信処理を不要にしてスループットを高めるようにしたRDMA通信をサポートする通信装置、方法及びプログラムを提供することを目的とする。
本発明はRDMA通信をサポートする通信装置を提供する。
(第1転送モード処理)
本発明は、RDMAパケットを作成して送信する送信部と、RDMAパケットを受信する受信部とを備えた第1転送モードのRDMA通信をサポートする通信装置を提供する。
第1転送モード処理は、転送先に許可を問合せることなく投機的に転送し、不許可の場合には再送要求を受けて再送する処理である。
ここで、送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信部と、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送部と、
転送先から転送完了通知(ack)を受信してパケット送信を正常終了する送信完了部と、
を備え、
受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に前記受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共にパケット破棄を転送領域管理情報に記録するパケット破棄部と、
パケット破棄部で受信パケットを破棄した後に受信領域の転送許可を判別した場合に、転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知(ack)を送信する完了通知部と、
を備えたことを特徴とする。
(第2転送モード処理)
本発明の別の形態にあっては、RDMAパケットを作成して送信する送信部と、RDMAパケットを受信する受信部とを備えた第2転送モードのRDMA通信をサポートする通信装置を提供する。
第2転送モードは、転送先に問合せることなく投機的に転送し、不許可の場合は不許可通知を受けて転送を中断し、再送要求を受けて再送する処理である。
送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信部と、
転送先から受信不許可通知を受信した際に、パケット送信部によるパケット転送を中断する転送中断部と、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に前記受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共にパケット破棄を転送領域管理情報に記録するパケット破棄部と、
パケット破棄部で受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知部と、
パケット破棄部で受信パケットを破棄した後に受信領域の転送許可を判別した場合に、転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする。
(第3転送モード処理)
本発明の別の形態にあっては、RDMAパケットを作成して送信する送信部と、RDMAパケットを受信する受信部とを備えた第3転送モードのRDMA通信をサポートする通信装置を提供する。第3転送モードは、転送完了通知を受けるまで転送先に許可を問合せることなく繰返し転送する処理である。
送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に繰返し送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に前記受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する転送完了通知部と、
を備えたことを特徴とする。
(第4転送モード処理)
本発明の別の形態にあっては、RDMAパケットを作成して送信する送信部と、RDMAパケットを受信する受信部とを備えた第4転送モードのRDMA通信をサポートする通信装置を提供する。
第4転送モードは、転送先に許可を問合せることなく投機的に転送し、不許可の場合は一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する処理である。
送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共にバッファ転送を転送領域管理情報に記録するバッファ転送部と、
バッファ転送後に受信領域の転送許可を判別した場合に、転送領域管理情報のバッファ転送の記録に基づいてバッファ領域のデータを受信領域に移動するデータ移動部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする。
(転送モード選択)
本発明の別の形態にあっては、RDMAパケットを作成して送信する送信部と、RDMAパケットを受信する受信部とを備えたRDMA通信をサポートする通信装置に於いて、
転送先に許可を問合せることなく投機的に転送し、不許可の場合には再送要求を受けて再送する第1転送モード処理部と、
転送先に問合せることなく投機的に転送し、不許可の場合は不許可通知を受けて転送を中断し、再送要求を受けて再送する第2転送モード処理部と、
転送完了通知を受けるまで転送先に許可を問合せることなく投機的に繰返し転送する第3転送モード処理部と、
転送先に許可を問合せることなく投機的に転送し、不許可の場合は一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する第4転送モード処理部と、
転送先に許可を問合せ、許可通知を受けて転送する第5転送モード処理部と、
第1乃至第5転送モード処理部のいずれか1つを、ネットワーク負荷と受信側のメモリ使用率の少なくともいずれか一方に基づいて選択してRDMAデータ転送を実行させる転送モード設定部と、
を備えたことを特徴とする。
ここで第1乃至第4転送モード処理部は、前述した第1転送モード乃至第4転送モードの受信部と送信部と同じものである。
また第5転送モード処理部は送信部と受信部を備え、
第5転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可確認を送信して受信許可通知を受信した場合に、転送データからRDMAパケットを作成して送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
第5転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
転送元から受信確認通知を受信した時に転送領域管理情報を参照して受信許可通知又は受信不許可通知を送信する確認応答部と、
受信領域に受信パケットを転送するパケット受信部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする。
転送モード設定部は転送先の送信部に設けられ、選択した転送モードを送信部及び受信部に通知して第1乃至第5転送モード処理部のいずれかによるRDMAデータ転送を実行させる。
また転送モード設定部は受信部に設けられ、選択した転送モードを送信部及び受信部に通知して第1乃至第5転送モード処理部のいずれかによるRDMAデータ転送を実行させるようにしても良い。
転送モード設定部は、
受信側のメモリ使用率が少ない場合は第4転送モード処理部を選択し、
受信側のメモリ使用率が多い場合は、ネットワーク負荷の低い順に、第3転送モード処理部、第1転送モード処理部及び第5転送モード処理部を順次選択する。
本発明の通信装置は、更に、論理アドレスと物理アドレスのアドレス変換情報を持ち、アドレス変換情報内に転送領域管理情報を含ませて一体化する。
本発明はRDMA通信をサポートする通信方法を提供する。
(第1転送モード処理方法)
RDMAパケットを作成して送信する送信ステップと、RDMAパケットを受信する受信ステップとを備えた第1転送モードのRDMA通信をサポートする通信方法に於いて、
送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信ステップと、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に前記受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共にパケット破棄を転送領域管理情報に記録するパケット破棄ステップと、
パケット破棄ステップで受信パケットを破棄した後に受信領域の転送許可を判別した場合に、転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする。
(第2転送モード処理方法)
本発明の別の形態にあっては、RDMAパケットを作成して送信する送信ステップと、RDMAパケットを受信する受信ステップとを備えた第2転送モードのRDMA通信をサポートする通信方法に於いて、
送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信ステップと、
転送先から受信不許可通知を受信した際に、パケット送信ステップによるパケット転送を中断する転送中断ステップと、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に前記受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共にパケット破棄を転送領域管理情報に記録するパケット破棄ステップと、
パケット破棄ステップで受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知ステップと、
パケット破棄ステップで受信パケットを破棄した後に受信領域の転送許可を判別した場合に、転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする。
(第3転送モード処理方法)
本発明の別の形態にあっては、RDMAパケットを作成して送信する送信ステップと、RDMAパケットを受信する受信ステップとを備えた第3転送モードのRDMA通信をサポートする通信方法に於いて、
送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に繰返し送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する転送完了通知ステップと、
を備えたことを特徴とする。
(第4転送モード処理方法)
本発明の別の形態にあっては、RDMAパケットを作成して送信する送信ステップと、RDMAパケットを受信する受信ステップとを備えた第4転送モードのRDMA通信をサポートする通信方法に於いて、
送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送許可を判別した場合に、受信領域に受信パケットを転送すると共に受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に転送領域管理情報を参照して受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共にバッファ転送を転送領域管理情報に記録するバッファ転送ステップと、
バッファ転送後に受信領域の転送許可を判別した場合に、転送領域管理情報のバッファ転送の記録に基づいてバッファ領域のデータを受信領域に移動するデータ移動ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする。
(転送モード選択方法)
本発明の別の形態にあっては、RDMAパケットを作成して送信する送信ステップと、RDMAパケットを受信する受信ステップとを備えたRDMA通信をサポートする通信方法に於いて、
転送先に許可を問合せることなく投機的に転送し、不許可の場合には再送要求を受けて再送する第1転送モード処理ステップと、
転送先に問合せることなく投機的に転送し、不許可の場合は不許可通知を受けて転送を中断し、再送要求を受けて再送する第2転送モード処理ステップと、
転送完了通知を受けるまで転送先に許可を問合せることなく投機的に繰返し転送する第3転送モード処理ステップと、
転送先に許可を問合せることなく投機的に転送し、不許可の場合は一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する第4転送モード処理ステップと、
転送先に許可を問合せ、許可通知を受けて転送する第5転送モード処理ステップと、
第1乃至第5転送モード処理ステップのいずれか1つを、ネットワーク負荷と受信側のメモリ使用量の少なくともいずれか一方に基づいて選択してRDMAデータ転送を実行させる転送モード設定ステップと、
を備えたことを特徴とする。
更に、本発明は、RDMA通信をサポートする通信装置のコンピュータに、前述した通信方法の各ステップを実行させる通信プログラムを提供する。
本発明によれば、転送先に受信許可の有無を問合せることなく投機的にRDMAパケットを転送するため、もし受信領域が受信可能であれば、受信したRDMAパケットのデータ本体を受信領域に格納してデータ転送を完了でき、事前に転送許可を求める通信処理を必要としないため、転送許可を求める通信処理に必要としていた10〜20μs程度のレイテンシを不要にすることができる。このため転送許可通信処理のレイテンシより短い転送時間で済むデータサイズのRDMAパケット転送のスループットを高めることができ、通信処理全体としてみた場合の通信性能を向上できる。
また投機的なRDMAパケットの転送に対し転送先で受信不可能であった場合についても、受信可能となった際の再送要求により再送させることで(第1及び第2転送モード)、受信許可の有無を問合せる従来方式よりは短い転送時間とすることができる。
またネットワークの帯域に余剰があることを条件に、転送完了通知(ack)が得られるまで転送データ分のRDMAパケットを繰返し転送することで(第3転送モード)、受信可能になれば、その時点から有効に受信され、従来方式よりは短い転送時間とすることができる。
更に、転送先のメモリ領域に余剰が場合には,受信不可能な状態で受信したRDMAパケットのデータ本体を一時バッファに保存し、受信許可となったらRDMAパケットを有効に受信し且つ一時バッファのデータを受信領域に移動させることで(第4転送モード)、従来方式よりは短い転送時間とすることができる。
更に本発明にあっては、ネットワーク負荷や受信側のメモリ使用率に基づいて最適な転送モードとなるように、投機的転送を行う第1乃至第4転送モード、従来方式である第5転送モードのいずれか1つを動的に選択してRDMAパケット転送を行うことで、各転送モードの利点を最大限に生かした効率的なデータ転送を行い、全体的に見た通信性能を向上させることができる。
(通信装置の構成)
図1はホスト間通信に適用された本発明の一実施形態の説明図である。図1において、ホスト10−1,10−2に対しては、それぞれ10Gbイーサネットのネットワークインタフェースカード(以下「NIC」という)12−1,12−2が設けられ、ネットワーク18を介して接続している。
NIC12−1には送信部14−1と受信部16−1が設けられ、同様にNIC12−2にも送信部14−2と受信部16−2が設けられる。NIC12−1,12−2はネットワーク18を介してホスト10−1,10−2間でのRDMAパケット転送をサポートする。
図2は本実施形態におけるNICの送信部と受信部の機能構成のブロック図である。図2においては、ホスト10−1側を送信ノード(転送元)としており、ホスト10−1に設けたNIC12−1には送信部14−1としての機能が設けられている。一方、ホスト10−2は受信側となる受信ノード(転送先)であり、ホスト10−2に設けたNIC12−2は受信部16−2としての機能を示している。
送信側のNIC12−1には、送信要求受付部26、転送領域管理部28、送信制御部30、受信制御部32、モード選択制御部34、ネットワーク負荷情報収集部36、10GbイーサネットMAC(「10GbEMAC」と表記)38が設けられる。
送信要求受付部26は送信要求を受け付ける送信要求受付レジスタを備える。この送信要求受付レジスタはPCIを経由してホスト10−1のアドレス空間にマッピングできる。このためホスト10−1の送信要求部20は、アドレス空間にマッピングされた送信要求受付レジスタにパラメータを書き込むことにより送信要求を発行する。また送信要求部20は、ホスト10−1のメモリ空間である送信領域22に配置している送信データ24を指定して送信要求を行う。
転送領域管理部28は、論理アドレスと物理アドレスの変換を行うアドレス変換表と、転送領域の受信許可の有無を管理する転送領域管理表を備える。本実施形態にあっては、アドレス変換表と転送領域管理表は一体化されている。即ち、転送領域管理表の情報をアドレス変換表に含ませることにより転送領域管理表の情報参照をアドレスの参照と同時に実行可能とし、これにより情報参照の性能を向上することができる。
送信制御部30は、送信要求受付部26や受信制御部32からの送信要求に基づき、ホスト10−1のメモリ上の送信領域22にある送信データ24をDMA転送により取得する。この際に転送領域管理部28から送信データ24の論理アドレスから変換した物理アドレスを取得する。
このようにしてホスト10−1側から取得した送信データにヘッダを付加したRDMAデータパケットを作成し、10GbイーサネットMAC38に転送する。この場合に、モード選択制御部34からの指示に従い、選択された転送モードの転送手順に従って送信処理を実行する。
受信制御部32は受信側のNIC12−2より
(1)ackパケット
(2)再送制御パケット
(3)受信許可通知パケット
(4)受信不許可通知パケット
(5)転送モード通知パケット
を受信する。
ackパケットを受信したときには転送処理を正常終了する。再送制御パケットを受信したときには再送を送信制御部30に通知する。受信許可通知パケットを受信したときには受信許可を送信制御部30に通知する。受信不許可通知パケットを受信したときには不許可となっている受信領域に対するRDMA送信処理を停止する。転送モード通知パケットを受信したときにはモード選択制御部34に通知する。
モード選択制御部34は、本実施形態で準備されている第1乃至第5転送モードのうちの最適な転送モードを選択し、それに基づいた転送手順を行うように送信制御部30に通知する。転送モードの選択を行う際には、ネットワーク負荷情報収集部36からのネットワーク負荷情報と、受信制御部32で受信された受信側のNIC12−2によるモード選択指示情報を用いる。
ここで本実施形態における第1乃至第5転送モードは次の内容を持つ。
(1)第1転送モードは、転送先に許可を問い合わせることなく投機的に転送し、不許可の場合には再送要求を受けて再送する。
(2)第2転送モードは、転送先に許可を問い合わせることなく投機的に転送し、不許可の場合には不許可通知を受けて転送を中断し、その後、再送要求を受けて再送する。
(3)第3転送モードは、ackパケットを受け取るまで投機的に転送先に許可を問い合わせることなく繰り返し転送する。
(4)第4転送モードは、転送先に許可を問い合わせることなく投機的に転送し、不許可の場合には転送先で一時的にバッファに保存し、許可が得られたら一時バッファから受信領域に転送する。
(5)第5転送モードは、従来方式の転送モードであり、転送先に許可を問い合わせ、許可通知を受けて転送する。
これら第1乃至第5転送モードの詳細は後の説明で明らかにする。
次に受信側のNIC12−2を説明する。受信側のNIC12−2には、受信部16−2として機能する構成として、受信制御部40、転送領域管理部42、送信制御部44、モード選択制御部46、ネットワーク負荷情報収集部48、メモリ使用率情報収集部49及び10GbイーサネットMAC50が設けられている。
受信制御部40は、RDMAデータパケットや従来方式である第5転送モードにおける受信許可確認通知の制御パケットを受信する。RDMAデータパケットを受信した場合、ヘッダを解析し、受信領域が受信可能であるか否かを転送領域管理部42に問い合わせる。この問合せに対し転送領域管理部42は、受信領域の受信許可の有無を通知し、同時に論理アドレスから変化した物理アドレスも通知する。
受信可能な場合は、DMA転送によりホスト10−2の受信領域54にDMAデータパケットから得られたデータ本体を転送する。受信不許可の場合には、モード選択制御部46の現在選択状態にある転送モードの指示に従い、パケットを破棄するか(第1乃至第3転送モード)、ホスト12−2の一時バッファ56の所定の位置に転送して保存する(第4オ転送モード)。
またモード選択制御部46より第2転送モードが指示されていた場合には、転送元に受信不許可通知を制御パケットにより転送するように送信制御部44に要求する。
転送領域管理部42は、送信側のNIC12−1の場合と同様、論理物理アドレス変換表と転送領域管理表を持ち、両者は一体化されている。受信制御部40からの受信領域に対する受信許可の有無の問合せに対し、転送領域管理表を参照して応答する。この際、受信許可の場合はアドレス変換表から論理アドレスに対応した物理アドレスを取得して返す。
このとき同時に受信許可を通知した受信領域の状態を受信不許可に変更して二重受信を防止する。
一方、受信制御部40からの問合せに対し受信領域が受信不許可の場合は、受信不許可を応答すると同時に、受信不許可となっている受信領域に受信されたRDMAパケットデータが破棄されたことを記録する。更に第4転送モードが指示されている場合には、転送データ58が保存された一時バッファ56のアドレスを転送領域管理部42に通知して転送領域管理表に記録する。
受信制御部40からの問合せに対し、一度、受信領域の不許可を応答した後に、ホスト10−2の領域許可部52の通知を受けて受信許可になった場合には、転送領域管理表を参照してデータが破棄されている転送要求があったかどうかを確認する。データ破棄となった転送要求の記録があった場合には、一時バッファ56への転送の有無を確認する。転送している場合には、これは第4転送モードの場合であることから、一時バッファ56の転送先のアドレスをホスト10−2に通知し、一時バッファ56から受信領域54へのデータ転送処理を転送制御部60に行わせる。
一時バッファ56に保持していない場合には再送要求を送信制御部44に通知する。更に転送領域管理部42は、従来方式である第5転送モードの状態で受信許可確認通知を受信制御部40より受け取った場合は、対応する受信領域が受信許可となった時点で受信許可通知の送信を送信制御部44に依頼する。
送信制御部44は、受信制御部40からのack通知受信や不許可通知の要求に従って、これらの制御パケットを生成し送信する。また転送領域管理部42からの再送要求や受信許可通知に従って、これらの制御パケットを生成して送信する。
モード選択制御部46は、本実施形態でサポートしている第1乃至第5転送モードのうちの最適な転送モードを選択し、それに基づいた転送手順を行うように受信制御部40に通知する。また現在選択している転送モードを、送信制御部44を介して送信側のNIC12−1に通知する。
モード選択制御部46で転送モードを選択する際には、メモリ使用率情報収集部49で収集している受信側のメモリ使用率と、ネットワーク負荷情報収集部48で収集しているネットワーク負荷情報を使用する。
ネットワーク負荷情報収集部48は、10GbイーサネットMAC50からネットワーク負荷情報を取得し、収集する。またRDMA転送開始から完了までの転送完了時間を計測する。メモリ使用率情報収集部49は、ホスト10−2上に確保可能な一時バッファ56の使用率を収集する。
10GbイーサネットMAC50は、送信制御部44から渡されたパケットをネットワークへ送出し、またネットワークより受信したパケットを受信制御部40に渡す。またネットワークの負荷情報を取得し、ネットワーク負荷情報収集部48に受け渡す。
次に、送信側のホスト10−1の機能を説明する。ホスト10−1には送信要求部20が設けられる。送信要求部20は、通信プロセスからの通信要求を受け、送信側のNIC12−1にRDMA送信を要求する。
一方、受信側のホスト10−2には領域許可部52と転送制御部60の機能が設けられる。領域許可部52は受信領域54を使用している通信プロセスからの領域許可を受け、受信側NIC12−2に許可を受けた領域についての受信許可を通知する。転送制御部60は受信側のNIC12−2の転送領域管理部42から通知を受け、一時バッファ56に転送保持されたデータを、受信許可となった受信領域54で移動させる。
一時バッファ56から受信領域54へのデータ移動については、受信領域54へのデータ転送とページ単位でのアドレスオフセットを併せて行う。即ち一時バッファ56の保存データ58を移動させる際には、先頭ページと末尾ページについてはコピー処理を行うが、それ以外のページについてはページの再マッピングによりコピー処理なしで移動させ、コピー処理のオーバーヘッドを削減する。このデータ移動については後の説明で明らかにする。
このような送信側および受信側のNIC12−1,12−2としての機能は、各々に設けられたCPUとメモリを備えた通信処理用のプロセッサを含むハードウェア環境によるプログラムの実行により実現される。
図3は本実施形態の受信側で使用する転送領域管理表の説明図である。図3において、転送領域管理表62は、領域ID64、論理アドレス66、物理アドレス68、受信許可70、パケット破棄情報72、受信不許可通知情報74及び一時バッファ保存アドレス75で構成されている。
このように前半の論理アドレスを物理アドレスに変換するアドレス変換表と、受信領域の許可の有無、更に転送モードに応じたパケット破棄状態、受信不許可通知情報、更には一時バッファアドレスなどを記録することで一体化し、受信制御部40からの問合せに対し、転送領域管理部42による転送領域管理表62の参照によるアドレス変換、及び受信領域に関する受信許可などの情報の取得を効率的にできるようにしている。
図4は本実施形態における送信制御部の機能構成のブロック図であり、具体的には図2の送信側のNIC12−1に設けている送信制御部30の機能構成を示している。
送信制御部30には、第1転送モード送信部76、第2転送モード送信部78、第3転送モード送信部80、第4転送モード送信部82、第5転送モード送信部84が設けられており、いずれかの転送モードに対応した送信部が図2のモード選択制御部34からの指示により選択されて送信制御を行う。
第1転送モード送信部76には、パケット送信部86、パケット再送部88及び送信完了部90が設けられる。パケット送信部86はデータ転送要求を受けた際に、転送先に受信許可の有無を問い合わせることなく転送データからRDMAデータパケットを作成して投機的に送信させる。
パケット再送部88は、転送先から再送要求を受信した際に、要求された転送データからRDMAデータパケットを作成して送信する。送信完了部90は、転送先から転送完了通知であるackを受信してデータ転送を正常終了する。
第2転送モード送信部78は、パケット送信部92、転送中断部94、パケット再送部96及び送信完了部98を設けている。パケット送信部92は、データ転送要求を受けた際に、転送先に受信許可の有無を問い合わせることなく転送データからRDMAデータパケットを作成して投機的に送信する。
転送中断部94は、転送先から受信不許可通知を受信した際に、パケット送信部92によるパケット転送を中断する。パケット再送部96は、転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して再送する。送信完了部98は、転送先から転送完了通知であるackを受信してデータ転送を正常終了する。
第3転送モード送信部80は、パケット送信部100と送信完了部102を備える。パケット送信部100は、データ転送要求を受けた際に、転送先に受信許可の有無を問い合わせることなく転送データからRDMAデータパケットを作成し、投機的に繰り返し送信する。送信完了部106は、転送先から転送完了通知であるackを受信してデータ転送を正常終了する。
このため第4転送モード送信部82にあっては、送信完了部106で転送先からackを受信するまで、転送対象となった送信データをパケット送信部104から繰り返し転送することになる。
第5転送モード送信部84は、受信許可確認部108、パケット送信部110及び送信完了部112を備える。第5転送モード送信部84は従来方式であり、このため受信許可確認部108は、データ転送要求を受けた際に、転送先に受信許可確認を送信する。パケット送信部110は、転送先から受信許可通知を受信した際に、転送データからRDMAパケットを作成して送信する。送信完了部112は、転送先から転送完了通知であるackを受信してデータ転送を正常終了する。
図5は本実施形態における受信制御部のブロック図であり、具体的には図2の受信側のNIC12−2に設けた受信制御部40の機能構成である。
図5において、受信制御部40は、第1転送モード受信部114、第2転送モード受信部116、第3転送モード受信部118、第4転送モード受信部120及び第5転送モード受信部124が設けられる。この第1乃至第5転送モード受信部は、図2のモード選択制御部46からの指示により、いずれか1つの転送モードが選択されて受信制御を行うことになる。
第1転送モード受信部114には、パケット受信部126、パケット破棄部128、再送要求部130及び完了通知部132が設けられている。パケット受信部126は、パケット受信時に転送領域管理部42に問い合わせて受信領域の転送許可を判別した際に、その受信領域に受信したRDMAデータパケットのデータ本体を転送すると共に、受信領域の転送許可を転送不許可に変更し、2重受信を防止する。
パケット破棄部128は、パケット受信時に転送領域管理部42に問い合わせて転送不許可を判別した際に、受信パケットを破棄すると共に、パケット破棄を図3の転送領域管理表62のパケット破棄情報72に記録する。
再送要求部130は、パケット破棄部128でパケットを破棄した後に受信領域の転送許可を判別した際に、転送領域管理表に記録したパケット破棄情報に基づいて転送元に再送要求を送信する。完了通知部132は、受信領域に対する受信パケットによるデータ本体の転送完了を認識して、転送完了通知となるackパケットを送信する。
第2転送モード受信部116は、パケット受信部134、パケット破棄部136、不許可通知部138、再送要求部140及び完了通知部142を設けている。パケット受信部134は、パケット受信時に問い合わせた転送領域管理表の参照で得られた受信領域の転送許可を判別した場合、その受信領域に受信パケットのデータ本体を転送すると共に、転送領域管理表における受信領域の転送許可を転送不許可に変更して2重受信を防止する。
パケット破棄部136は、パケット受信時に問い合わせて得られた転送領域管理表に基づく受信領域の転送不許可を判別した際に、受信パケットを破棄すると共に、パケット破棄を転送領域管理表に記録する。
受信不許可通知部138は、パケット破棄部136で受信領域の転送不許可を判別した際に、転送元に受信不許可通知を送信する。再送要求部140は、パケット破棄部で受信パケットを破棄した後に受信領域の転送領域を判別した際に、転送領域管理表のパケット破棄の記録に基づいて転送元に再送要求を送信する。更に完了通知部142は、受信領域に対する受信パケットのデータ本体の転送完了を認識して、転送完了通知となるackパケットを送信する。
第3転送モード受信部118は、パケット受信部144、パケット破棄部146及び完了通知部148を設けている。パケット受信部144は、パケット受信時に問い合わせて転送領域管理表の参照で得られた受信領域の転送許可を判別した際に、受信領域に受信パケットのデータ本体を転送すると共に、受信領域の転送許可を転送不許可に変更して2重受信を防止する。
パケット破棄部146は、パケット受信時に転送領域管理表の参照で通知された受信領域の転送不許可を判別した際に、受信パケットを破棄する。この場合には再送要求は行わないことから、受信パケットの破棄を転送領域管理表に記録することはない。完了通知部148は、受信領域に対する受信パケットのデータ本体の転送完了を認識して、転送完了通知であるackパケットを送信する。
このような第3転送モード受信部118の機能は、図4の第3転送モード送信部80より受信許可の有無を問い合わせることなく投機的に繰り返し送られてくる転送データにつき、受信許可が得られてから完了するまでパケットを受信し、受信領域にデータ転送する単純な処理となる。
第4転送モード受信部120には、パケット受信部150、バッファ転送部152、データ移動部154及び完了通知部156が設けられる。
パケット受信部150は、パケット受信時に転送領域管理表の参照で得られた受信領域の転送許可を判別した場合、受信領域に受信パケットのデータ本体を転送すると共に、受信領域の転送許可を転送不許可に変更して2重受信を防止する。
バッファ転送部152は、パケット受信時に転送領域管理表を参照して受信領域の転送不許可を判別した際に、受信パケットから得られたデータ本体を一時バッファのバッファ領域に転送して保存すると共に、一時バッファへの保存を転送領域管理表62に記録する。
データ移動部154は、一時バッファに対するバッファ転送後に受信領域の転送許可を判別した際に、転送領域管理表のバッファ転送の記録即ち保存アドレスに基づき、一時バッファのバッファ領域の保存データを受信領域に移動する。完了通知部156は、受信領域に対する受信パケットのデータ本体の転送完了を認識して、転送完了通知であるackパケットを送信する。
第5転送モード受信部124には、確認応答部158、パケット受信部160、完了通知部162が設けられる。第5転送モード受信部は従来方式の受信機能を持つ。確認応答部158は、転送元からの確認通知を受信したときに、転送領域管理表を参照して得られた受信許可または受信不許可の通知を送信する。
パケット受信部160は、転送元に対する受信許可の通知に対応して受信された受信パケットのデータ本体を受信領域に転送する。完了通知部162は、受信領域に対する受信パケットのデータ本体の転送完了を認識して、転送完了通知であるackパケットを送信する。
図6は本実施形態における送信処理のフローチャートである。図6において、送信処理は、ステップS1でホストからの送信要求の有無をチェックしており、送信要求があると、ステップS2に進み、転送モード選択処理を実行し、ステップS3で選択された転送モードを判定し、ステップS4〜S8に示す第1乃至第5のいずれかの転送モード送信処理を選択して送信処理を行う。このようなステップS1〜S8の処理を、ステップS9で停止指示があるまで繰り返す。なおステップS4〜S8の第1乃至第5転送モード送信処理の詳細は後の説明で明らかにする。
図7は本実施形態における受信処理のフローチャートである。図7において、受信処理は、ステップS1で転送モード選択処理を実行した後、ステップS2で転送モードを判定し、ステップS3〜S7の第1乃至第5転送モード受信処理のいずれか1つを選択して受信処理を行う。このようなステップSS1〜S7の処理を、ステップS8で停止指示があるまで繰り返す。
図7におけるステップS1の転送モード設定処理の詳細、及びステップS3〜S7の第1乃至第5転送モード受信処理の詳細は後の説明で明らかにされる。
なお、本実施形態による転送モード選択処理は、図6のステップS2のように送信側で選択して受信側に通知する方法と、図7のステップS1のように受信側で選択して送信側に通知する方法とがあり、いずれか一方の転送モード選択処理を実装するが、本実施形態は、送信側で選択して受信側に通知する場合を例にとっている。
(第1転送モード)
図8は本実施形態における第1転送モードによる転送処理の説明図である。図8(A)は転送開始前に転送先の受信領域が受信可能となった場合の転送処理であり、図8(B)は転送開始後に受信可能となった場合の転送処理である。
ここで第1転送モードによる転送処理は、転送先に許可を問い合わせることなく投機的に転送し、不許可の場合には再送要求を受けて転送する処理である。
図8(A)の転送開始前に受信許可となっている場合にあっては、受信側NIC12−2で受信領域について受信許可164を受けた後に、その受信領域に対する送信要求166が送信側NIC12−1で発生すると、受信側に受信許可の有無を問い合わせることなく転送データからRDMAデータパケットを作成し、RDMA通信168を行う。
受信側NIC12−2にあっては、RDMAデータパケットを受信した際に、転送領域管理表から受信許可を判別し、許可された受信領域に受信パケットのデータ本体を格納する領域格納170を行い、格納終了でackパケット172を送信してデータ転送を終了させる。また、受信側NIC12−2で転送領域管理表を参照して受信許可を認識した際に、2重受信を防止するため、その受信領域の転送許可を不許可に変更している。
図8(B)は転送開始後に受信可能となった場合であり、送信側NIC12−1で送信要求174が発生すると、受信側に問い合わせることなく投機的にRDMA通信176を行ってデータパケットを転送する。
受信側NIC12−2にあっては、RDMAデータパケットのヘッダから転送領域管理表の受信領域を参照すると、このとき不許可にあることから、受信パケットを破棄178とする。その後、受信側NIC12−2で対応する受信領域につき受信許可180が出されたことが判別されると、転送領域管理表に記録された破棄パケットに関する情報を基に、送信側NIC12−1に対し再送要求制御パケット182を送信する。
これを受けて送信側NIC12−1は、転送データからRDMAデータパケットを作成し、RDMA通信183により再送を行い、このとき受信側NIC12−2は受信許可となっていることから、受信してRDMAパケットのデータ本体を受信領域に転送する領域格納184を行い、格納終了でackパケット186を送信してデータ転送を完了する。
図9は転送開始前に受信可能となっている場合の第1転送モードによる転送処理のタイムチャートであり、図2を参照して説明すると次のようになる。
まず送信側処理にあっては、ステップS1でホスト10−1の送信要求部20が送信要求をNIC12−1に発行する。これを受けてステップS2でNIC12−1の送信要求受付部26が送信制御部30に送信処理要求を通知する。続いてステップS3でモード選択制御部34が第1転送モードによる転送を起動するようにモード選択が行われる。
続いてステップS4で、送信制御部30はホスト10−1の送信領域22の転送データ24からRDMAデータパケットを生成し、10GbイーサネットMAC38に出力する。このとき送信元の物理アドレスを転送領域管理部28に問い合わせて取得する。続いてステップS5で10GbイーサネットMAC38が送信制御部30から送出されたRDMAデータパケットをネットワークに送信する。
一方、受信側処理にあっては、ステップS101で10GbイーサネットMAC50がネットワークからRDMAデータパケットを受信し、受信制御部40に引き渡す。受信制御部40はステップS102でRDMAデータパケットのヘッダを解析し、ステップS103で転送領域管理部42に問い合わせて受信領域54の受信許可の有無と物理アドレスを取得する。
ステップS104で受信許可を判別すると、ステップS105で受信領域54に受信パケットのデータ本体を転送し、転送完了後にステップS106でackパケットを生成し、ステップS107で10GbイーサネットMAC50からack制御パケットをネットワークに送信する。
送信側処理にあっては、ステップS6でack制御パケットを10GbイーサネットMAC38で受信し、ステップS7で受信制御部32がパケット解析によりackパケットであることを認識して送信制御部30に通知し、一連のデータ転送処理を正常終了とする。
図10は転送開始後に受信可能となった場合の第1転送モードによる転送処理のタイムチャートである。図10において、送信側処理のステップS1〜S5及びこれに続く受信側処理のステップS101〜S103は、図9と同じである。
しかしながら、図10の場合には、ステップS103で転送領域管理表を参照した際に受信領域54が不許可であることから、これをステップS104で判別すると、ステップS105で受信パケットを破棄して転送領域管理表に記録する。続いてステップS106で受信領域54の受信許可の有無を監視しており、受信許可が得られるとステップS107に進み、転送領域管理表のパケット破棄の記録に基づき送信制御部44が送制御パケットを生成し、ステップS108で10GbイーサネットMAC50からネットワークに再送通知制御パケットを送信する。
送信側処理にあっては、ステップS6で10GbイーサネットMAC38が制御パケットを受信し、ステップS7で受信制御部32がパケット解析により再送要求の制御パケットであることを認識して送信制御部30に通知する。送信制御部30は、ステップS8で再送要求に対応した転送データからRDMAデータパケットを生成し、ステップS9で10GbイーサネットMAC38に出力してネットワークにパケットを送信させる。
受信側処理にあっては、ステップS109で10GbイーサネットMAC50がRDMAデータパケット受信して受信制御部40に出力し、ステップS110で受信制御部40がRDMAデータパケットのヘッダを解析し、転送領域管理部42に問い合わせて受信領域54の許可の有無及び物理アドレスを取得し、この場合には受信許可であることから、ステップS111でホスト10−2の受信領域54に受信パケットから得られたデータ本体を転送する。
続いてステップS112で、データ転送が完了したら送信制御部44はackパケットを生成し、10GbイーサネットMAC50に出力し、ステップS113でネットワークにack制御パケットを送信する。
送信側処理にあっては、ステップS10で10GbイーサネットMAC38が制御パケットを受信し、ステップS11で受信制御部32がパケットを解析し、ackパケットの受信を確認して転送処理を正常終了する。
図11は第1転送モード送信処理のフローチャートである。第1転送モード送信処理にあっては、ステップS1でRDMAデータパケットを生成し、ステップS2でネットワークにパケットを送信する。続いてステップS3で再送要求制御パケットの受信の有無をチェックしており、受信側で受信領域が許可であれば、ステップS4でackパケットが受信され、これにより一連の転送処理を終了する。
一方、受信側で受信領域が不許可であった場合には、受信領域が許可に変わった際に再送要求制御パケットが送られてくることから、ステップS3で再送要求制御パケットを受信すると、ステップS5に進み、再送要求制御パケットの解析で得られた再送要求に対応して、再送用のRDMAデータパケットを作成し、ステップS6でネットワークにパケットを送信し、ステップS4でackパケットの受信を待って、一連のデータ転送処理を終了する。
図12は第1転送モード受信処理のフローチャートである。図12において、第1転送モード受信処理は、ステップS1でRDMAデータパケットの受信の有無をチェックしており、パケットを受信すると、ステップS2でRDMAデータパケットを解析し、ステップS3で転送領域管理表を参照し、物理アドレスと受信領域の許可の有無を取得する。
続いてステップS4で受信領域が受信許可であれば、ステップS5に進み、受信パケットから得られたデータ本体を許可された受信領域に転送し、ステップS6で転送完了を示すackパケットを生成して送信し、一連の受信処理を終了する。
一方、ステップS4で受信領域が受信不許可であった場合には、ステップS7で受信パケットを破棄し、ステップS8で受信パケットを破棄したことを転送領域管理表に記録する。続いてステップS9で転送領域管理表に対する受信領域の受信許可の有無をチェックしており、受信不許可から受信許可に変わると、ステップS10に進み、転送領域管理表の受信パケット破棄の記録を基に送信元に対し再送要求制御パケットを作成して送信する。
この再送要求制御パケットの送信に対し、送信元からはRDMAデータパケットが再送されてくることから、再送されたRDMAデータパケットをステップS1で受信すると、ステップS2〜S6の処理を行って受信処理を完了する。
(第2転送モード)
図13は本実施形態における第2転送モードにおける第2転送モード処理の説明図である。第2転送モードは転送先に問い合わせることなく投機的に転送し、不許可の場合には許可通知を受けて転送を中断し、再送要求を受けて再送する処理である。
図13(A)は転送開始前に受信可能となっている場合の第2転送モードの転送処理である。この場合には受信側NIC12−2において、受信許可190となった後にその受信領域に対し受信側NIC12−1で送信要求192が発生すると、送信データからRDMAデータパケットを作成し、RDMA通信194を行う。
受信側NIC12−2にあってはRDMAデータパケットを受信してヘッダを解析し、受信領域管理表の参照から受信領域の受信許可を判別し、受信データのパケットのデータ本体を許可状態にある受信領域54に転送する領域格納196を実行し、格納終了でack制御パケット198を送信しデータ転送を終了する。
図13(B)は転送開始後に受信可能となった場合の第2転送モードによる転送処理である。この場合、送信側NIC12−1で送信要求200が発生すると、受信側に問い合わせることなく投機的にRDMA転送206を行う。
受信側NIC12−2にあってはRDMAデータパケットの受信でヘッダを解析し、転送領域管理表の参照で受信領域の不許可を認識し、送信側NIC12−2に対し不許可通知制御パケット202を送信する。この不許可通知制御パケット202を受けて送信側NIC12−1はそれまで行っていたRDMA通信206による転送中断204を行う。このとき受信されたデータ本体は破棄208となり、転送領域管理表にデータ破棄が記録される。
受信側NIC12−2において受信パケットを破棄208にした後、受信許可210がその受信領域に対し行われると、再送要求制御パケット212を送信する。この再送要求制御パケット212を送信側NIC12−1で解析し、再送要求の対象となった転送データについてRDMAデータパケットを作成し、RDMA再送通信214を行う。再送分の転送が済むと残りの転送データについてRDMA通信216を行う。
このとき受信側NIC12−2にあっては受信領域が受信許可210となっていることから再送された受信パケット及びこれに続く受信パケットからデータ本体を取得して受信領域にデータ転送して格納する領域格納218を行い、格納終了でackパケット220を送信して一連の処理を終了する。
この第2転送モードにあっては図13(B)のように受信側に問い合わせることなく投機的にRDMA通信を行った場合、受信領域が不許可の場合には不許可通知を返すことで転送を中断させ、不許可通知により破棄される無駄なパケットの喪失を止めることで、第1転送モードの場合に比べネットワーク帯域消費を削減することができる。
図14は転送開始前に受信可能となっている場合の第2転送モードによる転送処理のタイムチャートであり、この場合の転送処理は図9に示した第1転送モードの転送処理の場合と同じである。
図15は転送開始後に可能となった場合の第2転送モードによる転送処理のタイムチャートであり、図2を参照して説明すると次のようになる。
図15において、ステップS1〜S5及びこれに続く受信側のステップS101〜S105の処理は、図10に示した第1転送モードの場合と同様であるが、第2転送モードにあってはステップS105で受信領域の不許可を認識してパケットを破棄した後、ステップS106で受信制御部40が不許可通知パケットを作成し、ステップS107で10GbイーサネットMAC50がネットワークに制御パケットを送信する。
この制御パケットを送信処理側の10GbイーサネットMAC38がステップS6で受信し、ステップS7で送信制御部30がパケットを解析し、不許可通知パケットであることを認識し、ステップS8で転送データからのパケット生成を停止してRDMA通信を中断する。
送信側でパケット転送を中断した後については、受信側においてステップS108で受信領域の許可が判別されるとステップS109で送信制御部44が再送制御パケットを生成し、ステップS110で制御パケットをネットワークに送信する。
これを受けて信側処理にあってはステップS9で10GbイーサネットMAC38がネットワークから制御パケットを受信し、ステップS10で受信制御部32がパケットを解析して再送要求を送信制御部30に通知し、通信制御部30はステップS11でRDMAデータパケットを生成し、ステップS12で10GbイーサネットMAC38がネットワークにRDMAデータパケットを再送する。
受信側処理にあってはステップS111で10GbイーサネットMAC50が再送されたRDMAデータパケットパケットを受信し、ステップS112で受信制御部40がパケットのヘッダを解析して転送領域管理表から受信領域の受信許可と物理アドレスを取得し、ステップS113でデータ本体をホスト10−2の受信領域54にDMAデータ転送する。
続いて図16のステップS114でデータ転送完了に伴い送信制御部44がackパケットを作成し、ステップS115で10GbイーサネットMAC50がackパケットをネットワークに送信する。
パケット送信を受けて受信側処理にあってはステップS13で10GbイーサネットMAC38がネットワークからパケットを受信し、ステップS14で受信制御部32が受信パケットを解析してackパケットであることを送信制御部30に通知し、データ転送完了を認識して正常終了とする。
図17は第2転送モードの送信処理のフローチャートである。図17において、第2転送モード送信処理はステップS1でRDMAデータパケットを送信要求に基づいて生成した後、ステップS2でネットワークにパケットを送信する。
続いてステップS3で受信領域不許可通知の有無をチェックしている。受信側の受信領域が受信許可であれば受信領域不許可通知はないことからステップS4に進み、ackパケットの受信を待って一連の送信処理を終了する。
一方、受信側で受信領域が不許可であった場合には、受信領域の不許可通知を送ってくることから、これをステップS3で判別するとステップS5でパケット生成を停止し、RDMA通信を中断する。
その後、ステップS6で転送先から再送制御パケットが受信されるとステップS7で再送用のRDMAデータパケットを生成し、ステップS8でネットワークに送信する。ステップSでackパケットを受信すると転送中断後の再送によるデータ転送が終了したものとして一連の処理を終了する。
図18は第2転送モード受信処理のフローチャートである。図18において、ステップS1でRDMAデータパケットの受信の有無をチェックしており、パケットを受信するとステップS2でパケットを解析し、ステップS3で転送領域管理表を参照して物理アドレスと受信領域の受信許可または不許可を取得する。
続いてステップS4で受信領域が許可であった場合にはステップS5に進み、受信パケットから得られたデータ本体を許可した受信領域に転送し、転送終了でステップS6に進み、ackパケットを生成して送信し一連の処理を終了する。なお、受信許可を認識した際には、転送領域管理表の許可を不許可に変更して2重受信を防止する。
一方、ステップS4で受信不許可であった場合には、ステップS7で受信パケットを破棄した後、ステップS8で受信パケットの破棄を転送領域管理表に記録し、ステップS9で受信領域の不許可通知を作成して転送元にパケット送信する。
その後、ステップS10で受信領域の受信許可が判別されると、ステップS11で転送領域管理表のパケット破棄の記録をもとに送信元に再送要求制御パケットを送信する。これに伴い送信元からはRDMAデータパケットが再送されてくることから、これをステップS1で受信し、ステップS2〜S6の処理をて再送されたRDMAデータパケットについて受信処理を行うことになる。
(第3転送モード)
図19は本実施形態における第3転送モードによる転送処理の説明図である。第3転送モードは転送完了通知であるackを受け取るまで転送先の許可を問い合わせることなく、投機的に転送データ分のRDMAデータパケットを繰り返し転送する処理である。この第3転送モードによる処理はネットワークの帯域が十分に余っていることを想定しており、その結果、転送時間短縮のためackが受信されるまで何度もRDMA転送を繰り返す。
図19(A)は転送開始前に受信可能となっている場合の第3転送モードの転送処理である。図19(A)において、送信側NIC12−1で送信要求232が発生した際に、信側NIC12−にあっては、送信要求232の対象となった受信領域につきそれ以前に受信許可230が出されている。
この状態で転送データからRDMAパケットを生成して、RDMA一回目通信234を行うと、受信側にあっては受信領域が受信許可となっているため受信パケットの本体データを受信領域に転送して格納完了し、転送完了でack制御パケット236を応答して一連の処理を終了する。尚、送信側は、ack制御パケット236を受け取るまで、RDMA2回目通信235を続行する。受信側は、RDMA1回目通信234を受信領域に転送した時点で、転送領域管理表を不許可とするため、RDMA2回目通信235は全て破棄237される。
図19(B)は転送開始後に受信可能となった場合の第3転送モードの転送処理である。図19(B)において、送信側NIC12−1側で送信要求238が発生するとackパケットが受信されるまで転送データ分のRDMAデータパケットを作成し、RDMA1回目通信240、RDMA2回目通信244、RDMA3回目通信252というように繰り返しデータ転送を行う。
一方、受信側NIC12−2にあってはRDMA1回目通信240の際には受信領域が不許可であるため受信パケットを破棄242とする。この例ではRDMA2回目通信244のデータ転送を開始した直後に受信許可248となり、したがって受信許可248となった以降に受信されたRDMA2回目通信244の受信パケットのデータ本体は受信許可となった受信領域に転送されて領域格納250となる。しかし、RDMA2回目通信244の先頭部分の転送データについては破棄246となっている。
RDMA2回目通信244が終了すると、続いてRDMA3回目通信252が行われる。このRDMA3回目通信252につき通信許可248の直前で破棄したRDMA2回目通信244の先頭部分のデータが受信されるとデータ転送が完了し、この時点でack制御パケット254を応答し、その結果、送信側NIC12−1にあってはack制御パケット254を受信したRDMA3回目通信252の途中で一連のデータ転送を完了することになる。尚、送信側は、ack制御パケット254を受信するまで、RDMA3回目通信252を続行する。受信側は、ack制御パケット254送信後のRDMA3回目通信252を破棄256とする。
図20は第3転送モードによる転送処理のタイムチャートであり、図2を参照して説明すると、次のようになる。送信側処理にあっては、ステップS1でホスト10−1が送信要求を送信側のNIC12−1に発行する。これを受けて送信要求受付部26は送信制御部30にステップS2で送信処理要求を通知する。
続いてステップS3でモード選択制御部34が第3転送モードによる転送を起動するように指示するモード選択を行っており、これを受けて送信制御部30はステップS4でRDMAデータパケットを生成し、10GbイーサネットMAC38に出力して、ステップS5でパケット送信をネットワークに対して行う。またステップS4でRDMAデータパケットを生成する際には転送領域管理表を参照して転送元の物理アドレスを取得している。
受信側処理にあっては、ステップS101で10GbイーサネットMAC50がネットワークからRDMAデータパケットを受信し、ステップS102で受信制御部40がパケットを解析し、ステップS103で転送領域管理表による受信許可及び物理アドレスの取得を転送領域管理部42に問い合わせる。
この問い合わせに対しステップS104で受信許可が判別されると、ステップS105で受信パケットのデータ本体を受信許可となっているホスト10−2の受信領域54にDMAデータ転送し、ステップS106でデータ転送終了で送信制御部44がackパケットを生成し、ステップS107で10GbイーサネットMAC50によりネットワークにack制御パケットを送信する。なお、ステップS104で受信許可が判別されると、転送領域管理表の受信許可を受信不許可に変更して2重受信を防止する。
一方、ステップS104で転送領域管理表の参照で得られた受信領域の状態が不許可であった場合には、許可となるまでステップS104の待ち処理となり、その間に受信されたパケットについては破棄する。受信領域が許可となればその時点から受信パケットを有効に受信して受信領域にデータ転送する。
送信側の処理にあっては、ステップS6で10GbイーサネットMAC38がackパケットをネットワークから受信し、受信制御部32に受け渡す。受信制御部32はステップS7でパケットを解析し、ack受信を確認して送信制御部30に通知し、転送処理を完了する。
図21は第3転送モードの送信処理のフローチャートである。図21において、第3転送モードの送信処理は、ステップS1で送信要求に伴いRDMAデータパケットを作成し、ステップS2でネットワークにパケットを送信する。続いてステップS3でackパケットの受信の有無をチェックしており、ackパケットを受信するまでステップS1〜S2のRDMAデータパケットの生成とパケット送信を繰り返す。
図22は第3転送モードの受信処理のフローチャートである。図22において、第3転送モード受信処理は、ステップS1でRDMAデータパケットの受信を判別するとステップS2でパケットを解析し、ステップS3で転送領域管理表を参照して物理アドレスと受信領域の許可の有無を取得する。
続いてステップS4で受信領域が受信許可であればステップS6で受信パケットのデータ本体を許可された受信領域に転送し、データ転送が終了するとステップS7でackパケットを作成しネットワークに送信する。
一方、ステップS4で受信領域が不許可であった場合にはステップS5で受信パケットを破棄し、ステップS4で受信許可となるまでステップS1〜S5の処理を繰り返す。受信パケットを破棄している途中に受信許可となれば、ステップS6で受信パケットのデータ本体を受信領域に転送し、転送完了でステップS7においてackパケットを生成し、ネットワークに送信し、一連の処理を終了する。
(第4転送モード)
図23は本実施形態における第4転送モードによる転送処理のタイムチャートである。本実施形態における第4転送モードは、転送先に許可を問い合わせることなく投機的に転送し、不許可の場合には一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する処理である。
この第4転送モードにおける転送処理は、受信側のホストにおいて十分にメモリがあまっている場合、受信領域が不許可であったときに受信パケットから得られたデータ本体を破棄せず一時バッファに保存し、受信領域が受信許可となった後に一時バッファの保存データを受信領域に転送し、これによって第1転送モードや第2転送モードにおける受信領域が不許可の場合の再送を不要とし、また第3転送モードのような受信完了まで繰り返しデータ転送を行うことによるネットワークの無駄な使用を回避できる。
第4転送モードにおける送信側の処理は、ホスト側からの送信要求によりRDMA起動可能となったら受信側に受信領域の受信許可の有無を問い合わせることなく投機的にRDMA通信を開始し、ackパケットが受信されれば送信を完了する。
一方、第4転送モードにおける受信側の処理はRDMAパケットを受信すると転送領域管理表を参照して受信領域が受信許可である場合には、受信パケットのデータ本体を受信領域に転送し格納する。このとき2重受信を防止するため受信領域の転送許可を不許可に変更する。受信領域の転送処理が完了するとackパケットを返送する。
一方、RDMAデータパケット受信した際に受信領域が不許可であった場合には、予め登録されている一時バッファとして機能するバッファ領域に受信パケットのデータ本体を転送して保存する。このとき転送領域管理表にデータを保存した一時バッファのバッファ領域のアドレスを記憶する。
その後、受信領域に受信許可が得られると受信領域管理表に記憶したバッファ保存に対する情報に基づきバッファ領域の保存データをホスト側の処理として受信領域に移動し、移動完了でackパケットを返信する。
このような第4転送モードの処理を図23のタイムチャートにつき、図2を参照して説明すると次のようになる。
図23において、送信側処理にあってはステップS1でホスト10−1が送信要求を送信側NIC12−1に発行すると、ステップS2で送信要求受付部26が送信制御部30に対し送信処理要求を通知する。続いてステップS3でモード選択制御部34が、この場合には第4転送モードを選択し、第4転送モードで転送を起動するように指示している。
送信制御部30はステップS4で転送データからRDMAデータパケットを生成し、ステップS5で10GbイーサネットMAC38によりネットワークにパケットを送信する。このとき送信制御部30は転送領域管理表を参照して物理アドレスを取得し、物理アドレスから転送データを読み出してパケット転送している。
受信側処理にあっては、ステップS101で10GbイーサネットMAC50がRDMAパケットをネットワークから受信して受信制御部40に受け渡す。受信制御部40はステップS102でRDMAパケットを解析し、受信領域にデータ本体を転送する。ステップS103で転送領域管理部42に問い合わせて転送領域管理表から受信領域の許可の有無と物理アドレスを取得する。
続いてステップS104で受信領域が不許可であればステップS105に進み、一時バッファ56に受信パケットのデータ本体を転送して保存する。このときデータ領域管理表に受信パケットのデータ本体を一時バッファ56に転送データ58として保存したことを記憶する。
続いてステップS106で受信領域につき受信許可が得られると、ステップS107に進み、転送領域管理表の一時バッファ56の記憶に基づきホスト10−2側の転送制御部60が一時バッファ56から転送データ58を読出し、受信領域54にデータを移動させる。
データ移動が済むとステップS108で送信制御部44はackパケットを生成し、ステップS109で10GbイーサネットMAC50がネットワークにパケットを送信する。このackパケットは受信側処理におけるステップS6で10GbイーサネットMAC38が受信して受信制御部32に受け渡し、受信制御部32はステップS7でackパケットであることを認識して送信制御部30に通知し、データ転送処理を完了する。
図24は第4転送モードの送信処理のフローチャートである。図24において、第4転送モードの送信処理にあっては、ステップS1でRDMAデータパケットを送信要求に基づき生成し、ステップS2でパケットをネットワークに送信する。続いてステップS3でackパケットの送信を判別しており、ackパケットの受信を判別すると一連の送信処理を完了する。
図25は第4転送モード受信処理のフローチャートである。図25において、第4転送モード受信処理は、ステップS1でRDMAデータパケットの受信の有無をチェックしており、パケットを受信するとステップS2でパケットを解析し、ステップS3で転送領域管理表を参照して物理アドレスと受信領域の受信許可の有無を取得する。
続いてステップS4で受信領域が受信許可であればステップS5で受信パケットのデータ本体を許可された受信領域に転送する。この場合、2重受信を防止するため転送領域管理表の受信許可を受信不許可に変更する。受信領域に対するデータ転送を終了するとステップS6でackパケットを生成して、転送元に送信する。
一方、ステップS4で受信領域が受信不許可であった場合にはステップS7に進み、受信領域管理表に一時バッファへの転送を記憶して受信パケットのデータ本体を一時バッファに転送保存する。続いてステップS8で受信領域の受信許可の有無をチェックしており、受信許可が判別されると、ステップS9でそのとき受信された受信パケットのデータ本体を受信許可となった受信領域に転送して格納する。
またステップS10で転送領域管理表の記録に基づき一時バッファから保存データを読出し、受信許可となった受信領域にデータを移動する。受信領域に対する受信パケットのデータ本体の転送及びまたは一時バッファからのデータ移動によりデータ転送が完了すると、ステップS6でackパケットを生成して転送元に送信することになる。
図26は第4転送モードの受信側における一時バッファから受信領域へのデータ移動の説明図である。受信側NIC12−2において、第4転送モードによる受信処理で受信領域が受信不許可になった場合には、一時バッファ56に受信パケットのデータ本体を転送して保存する。
ここで一時バッファ56には例えば5ページの領域に分けて保存され、1ページ目260−1の途中から5ページ目260−5の途中まで斜線部で示すように転送データ58が保存されている。このような一時バッファ56に対する転送データ58の保存状態において、受信側NIC12−2で受信領域の受信許可が認識されると、一時バッファ56の転送データ58を受信領域54に移動する処理を行う。
この移動処理は、先頭となる第1ページ260−1と末尾となる第5ページ260−5についてはコピー処理を行うが、その間の2ページ目260−2〜4ページ目260−4についてはページ全領域に転送データが格納されていることから、ページ単位でアドレス範囲をマッピングする処理を行い、このページ単位のマッピング処理によりコピー処理を不要とし、コピー処理のオーバーヘッドを削減する。
図27はアドレスマップ変換によるデータ移動の説明図である。図27において、受信領域54及び一時バッファ56は仮想アドレス(論理アドレス)で管理されており、例えば一時バッファ56の仮想アドレス0x8000に転送データ270を保存しており、これはアドレス変換表262により物理メモリ264のアドレス0x6000に転送データ280を格納していることを示している。
ここで、一時バッファ56の転送データ270を受信領域54の仮想アドレス0x1000に移動する場合を考える。移動前において仮想アドレス0x1000は物理メモリ264のアドレス0x3000に対応している。このデータ移動前のアドレス変換表262は図28(A)の内容を持っている。
そこで仮想アドレス0x8000の転送データ270を受信領域54の仮想アドレス0x1000に移動するためにはアドレス変換表262における移動先となる仮想アドレス0x1000の物理アドレス0x3000を一時バッファ56の転送データ270に対応した物理アドレス0x6000に書きかえる再マップを行う。即ち図28(A)のアドレス変換表262における仮想アドレス0x1000に対応した物理アドレス0x3000を図28(B)のように0x6000に書き替える。
その結果、図27の一時バッファ56の仮想アドレス0x8000の転送データ270に対応した物理メモリ264の転送データ268は、アドレス変換表262によるマッピングにより受信領域54の仮想アドレス0x1000にマッピングされ、これにより一時バッファ56から転送データ270を受信プロセスの仮想アドレス0x1000に移動して転送データ272とすることができる。
尚、一時バッファ56の仮想アドレス0x8000については図28(B)のように物理アドレス0x3000に当てており、この場合、物理アドレス0x3000は空き領域となる。
(第5転送モード)
図29は本実施形態における第5転送モードによる転送処理の説明図である。ここで第5転送モードは、転送先に許可を問い合わせ、許可通知を受けて転送する処理であり、これは従来のRDMA転送そのものであるが、本実施形態にあっては最適転送モードの選択の中に前述した本実施形態に固有な第1乃至第4転送モードに加え、従来転送モードを第5転送モードとして加えている。
図29(A)は転送開始前に受信可能となった場合の第5転送モードの転送処理である。図29(A)において、送信側NIC12−1で送信要求282が発生すると受信許可確認パケット284を受信側に送信する。このときそれ以前に受信許可280が得られるため、受信側NIC12−2は許可パケット286を返信する。
これを受けて送信側NIC12−1は転送データからRDMAデータパケットを生成し、RDMA通信288を行う。受信側NIC12−2は受信領域が受信許可であることから、受信したRDMAデータパケットから得られたデータ本体を受信領域に転送して格納する領域格納290を行い、格納終了でackパケット292を送信してデータ転送を完了する。
図29(B)は転送開始後に受信許可となった場合である。送信側NIC12−1は送信要求294が発生すると、受信側に対し、受信許可確認パケット296を送信する。このとき受信側NIC12−2にあっては受信領域の受信許可が得られていないことから、受信許可を待つ。その後、受信許可298が得られると許可パケット300を送信する。
この許可パケット300を受けて送信側NIC12−1はRDMA通信302を行い、受信側で受信パケットから得られたデータ本体を受信領域に転送して格納して領域格納304を終了するとackパケット306を送信してデータ転送を完了する。
このように第5転送モードにあっては、送信要求が発生した際に受信側に受信領域の受信許可の有無を問い合わせ、受信許可の通知が得られたときにRDMA転送を行っており、この受信領域の許可の有無を問い合わせる通信を必要とする分だけ第1乃至第4転送モードに比べるとレイテンシが大きくなる。
図30は第5転送モードによる転送処理のタイムチャートであり、図2を参照して説明すると次のようになる。送信側処理にあっては、ステップS1でホスト10−1が受信要求をNIC12−1に対し発行する。これを受けてステップS2で送信要求受付部26が送信制御部30に送信処理要求を通知する。
続いてステップS3でモード選択制御部34が、この場合には第5転送モードを選択して転送処理を起動するように指示している。続いてステップS4で送信制御部30は受信許可確認パケットを作成し、ステップS5で10GbイーサネットMAC38からネットワークにパケットを送信する。
受信側処理にあっては、ステップS101でネットワークから10GbイーサネットMAC50がパケットを受信して受信制御部40に受け渡し、受信制御部40はステップS102でパケットを解析し、受信許可確認パケットであることからステップS103で転送領域管理部40に問い合わせ、転送領域管理表から受信領域の受信許可の有無を取得する。
ステップS104で受信許可が得られると、ステップS105で受信制御部40は受信許可パケットを生成し、ステップS106で10GbイーサネットMAC50がネットワークにパケットを送信する。
送信側の処理にあっては、ステップS6で10GbイーサネットMAC38がパケットを受信し、ステップS7で受信制御部32でパケットを解析して受信許可を送信制御部30に通知する。これを受けて送信制御部30はステップS8でRDMAデータパケットを生成し、ステップS9で10GbイーサネットMAC38がネットワークにパケットを送信する。
受信側処理にあっては、ステップS107で10GbイーサネットMAC50がパケットを受信して受信制御部40に受け渡し、ステップS108で受信制御部40がパケットを解析し、転送領域管理部42に問い合わせて受信領域の受信許可の有無と物理アドレスを取得する。
このとき受信領域は受信許可になっていることから、ステップS109で受信したRDMAデータパケットから得られたデータ本体をホスト10−2の受信領域54に転送する。このデータ転送が終了するとステップS110で送信制御部44がackパケットを生成し、10GbイーサネットMAC50からステップS111でネットワークにパケットを送信する。
送信側処理にあってはステップS10で10GbイーサネットMAC38がackパケットを受信して受信制御部32に引渡し、ステップS11で受信制御部32がパケットを解析してack受信を確認し、送信制御部30に通知して転送処理を完了する。
図31は第5転送モード処理のフローチャートである。図31において、第5転送モード送信処理はステップS1で送信要求を受けると受信許可確認パケットを生成し、ステップS2でパケットをネットワークに送信する。
続いてステップS3で転送先からの受信許可パケットの受信の有無をチェックしており、パケットを受信するとステップS4でRDMAデータパケット生成し、ステップS5でネットワークにパケットを送信する。そしてステップS6でackパケットの受信を確認すると一連の送信処理を終了する。
図32は第5転送モードの受信処理のフローチャートである。第5転送モード受信処理は、ステップS1で受信許可確認パケットの受信の有無をチェックしており、これを受信するとステップS2で転送領域管理表を参照して受信領域の受信許可の有無を取得する。ステップS3で受信許可を判別するとステップS7で受信許可パケットを転送先に送信する。
これに対し転送元からはRDMAデータパケットが送られてくることからステップS8でこの受信を判別し、ステップS9でRDMAデータパケットを解析し、転送領域管理表の参照で物理アドレスと受信領域の受信許可を取得し、ステップS10でデータ本体を受信許可となっている転送領域に転送する。データ転送が終了するとステップS11でackパケットを生成してネットワークに送信して一連の受信処理を終了する。
(転送モードの選択)
本実施形態にあっては、RDMA転送を行う際に、ネットワーク負荷及び受信側のメモリ使用率に基づいて第1乃至第5転送モードの中から最適な転送モードを選択してRDMA転送を行っている。そこで、本実施形態における第1乃至第3転送モードを従来方式である第5転送モードと比較する。
図33は転送開始前に受信可能となっている場合の第1乃至第3転送モードの転送完了時間を、従来方式である第5転送モードと対比して示した説明図である。図33(A)は従来方式の第5転送モードであり、図33(B)は第1転送モード、図33(C)は第2転送モード及び図33(D)は第3転送モードである。
ここで第1乃至第3転送モード及び従来方式である第5転送モードの転送完了時間をT1,T2,T3,T5とし、また転送完了時間を求めるためのパラメータ310として、
片道レイテンシδ、スループットの逆数k、データ長Lを設定する。なお、スループットの逆数kにデータ長Lを掛け合わせた(kL)は、図33(A)〜(D)における通常RDMA転送314,316,318,320の伝送時間となる。
図33(A)〜(D)においては、送信要求が発生する前に受信側で受信可能312となっており、このため第1乃至第3転送モードのいずれについても転送先に損失させることなく転送を開始して、通常RDMA転送316,318,320を行っている。
一方、従来方式である図33(A)の第5転送モードにあっては、転送先に受信許可確認を行って許可通知を得られた後に通常RDMA314を行っている。なお図33(D)の第3転送モードにあっては、転送側からackが得られるまで繰り返しRDMA転送を行っているため、転送先からackを受け取るまでの転送が損失する転送322となっている。
このように転送開始前に受信可能312となっている場合の第1乃至第3転送モード及び従来方式である第5転送モードの転送完了時間は次のようになる。
第1転送モード T1=2δ+kL
第2転送モード T2=2δ+kL
第3転送モード T3=2δ+kL
第5転送モード T5=4δ+kL
この場合には、本実施形態における第1乃至第3転送モードのいずれについても転送先に受信許可確認を行わずに投機的に転送しているため、受信許可確認のための通信時間(2δ)だけ第5転送モードに対し削減することができる。
図34は図33における第5転送モード、第1乃至第3転送モードのそれぞれにおける転送完了時間T5,T1〜T3を計算するための詳細を示している。
次に転送先の受信許可が転送開始後に発行されている場合について、第1乃至第3転送モードの転送完了時間を従来方式である第5転送モードと対比して説明する。
図35(A)〜(D)は、パラメータ324に示すように、送信要求から受信許可が発行されるまでの待ち時間Wが
W≧kL
の場合である。この場合の第1乃至第3転送モードの転送完了時間T1〜T3は次のようになる。
第1転送モード T1=W+4δ+kL
第2転送モード T2=W+4δ+kL
第3転送モード T3=W+2δ+kL
また従来方式である第5転送モードの転送完了時間T5は
第5転送モード T5=W+4δ+kL(固定)
となる。
図35(A)〜(D)においては、RDMA通信328,342,344及び再送RDMA通信332,336は、受信領域へ転送され、RDMA通信330,334,338,340,346は、転送先で受信パケットが破棄される。
図36(A)〜(D)は、図35(A)〜(D)に対応して転送完了時間T5,T1〜T3のそれぞれの計算内容の詳細を示している。
図37は,パラメータ348に示すように、送信要求から受信許可が発行されるまでの待ち時間Wを
kL≧W≧kL−2δ
とした場合である。この場合の図37(B)〜(D)の第1乃至第3転送モードの転送完了時間は次のようになる。
第1転送モード T1=2W+4δ
第2転送モード T2=W+4δ+kL
第3転送モード T3=W+2δ+kL
また図37(A)の従来方式である第5転送モードは、図35の場合と同様、
第5転送モード T5=W+4δ+kL(固定)
であり、待ち時間Wが短くなっただけである。
図37(A)〜(D)においては、RDMA通信352,355,362,366,368及び再送RDMA通信356,360は、受信領域へ転送され、RDMA通信354,358,364,370,372は、転送先で受信パケットが破棄される。
図38(A)〜(D)は図37(A)〜(D)における転送完了時間T5,T1〜T3の計算内容を示している。
ここで図38(B)の第1転送モードにあっては、受信可能350となるまでの待ち時間Wと受信可能350が発行された後の通常RDMA転送の転送時間kLは、転送先で破棄された損失分のデータを同一速度で転送するため、データ転送時間は待ち時間Wと等しくなり、したがって
T1=W+4δ+kL=2W+4δ
となる。
図39は,パラメータ374に示すように、送信要求から受信許可が発行されるまでの待ち時間Wが
kL−2δ≧W≧2δ
の場合の第1乃至第3転送モードの転送完了時間を従来方式である第5転送モードと対比して示している。
この場合の第1乃至第3転送モードの転送完了時間は次のようになる。
第1転送モード T1=W+2δ+kL
第2転送モード T2=W+4δ+kL
第3転送モード T3=W+2δ+kL
なお第5転送モードの転送完了時間は
第5転送モード T4=W+4δ+kL(固定)
であり、待ち時間Wが短くなっただけである。
図39(A)〜(D)においては、RDMA通信378,382,390,394,396及び再送RDMA通信384,388は、受信領域へ転送され、RDMA通信380,386,392,398は、転送先で受信パケットが破棄される。
図40(A)〜(D)は、図39(A)〜(D)に対応したそれぞれの転送完了時間の計算内容を示している。
図41は、パラメータ400に示すように、送信要求から受信許可が発行されるまでの待ち時間Wが
2δ≧W
の場合であり、この場合の第1乃至第3転送モードの転送完了時間は次のようになる。
第1転送モード T1=W+2δ+kL
第2転送モード T2=2W+2δ+kL
第3転送モード T3=W+2δ+kL
なお第5転送モードの転送完了時間は
第5転送モード T4=W+4δ+kL(固定)
であり、待ち時間Wが短くなっただけである。
また図41(A)〜(D)においては、RDMA転送404,408,414,416,422,424及び再送RDMA転送410,418は、受信領域へ転送され、RDMA通信406,412,420,426は、転送先で受信パケットが破棄される。
図42(A)〜(D)は、図41(A)〜(D)の転送完了時間の計算内容を示している。
ここで図42(C)の第2転送モードの転送完了時間T2は
T2=2W+2δ+kL
であるが、これは図43に示すようにして算出されている。
図43において、第2転送モードにおける転送完了時間時間T2は
T2=W+4δ+kL−ε
である。ここでεは、図43より
ε=2δ−W
であり、これを代入すると
T2=W+4δ+kL−(2δ−W)=2W+2δ+kL
となる。
以上の受信許可が転送開始後に発行された場合の待ち時間Wの相違に対する第1乃至第3転送モードの転送完了時間T1〜T3をまとめると次のようになる。
(1)W≧kLの場合
第1転送モード T1=W+4δ+kL
第2転送モード T2=W+4δ+kL
第3転送モード T3=W+2δ+kL
(2)kL≧W≧kL−2δの場合
第1転送モード T1=2W+4δ
第2転送モード T2=W+4δ+kL
第3転送モード T3=W+2δ+kL
(3)kL−2δ≧W≧2δの場合
第1転送モード T1=W+2δ+kL
第2転送モード T2=W+4δ+kL
第3転送モード T3=W+2δ+kL
(4)2δ≧Wの場合
第1転送モード T1=W+2δ+kL
第2転送モード T2=2W+2δ+kL
第3転送モード T3=W+2δ+kL
この第1乃至第3転送モードにおける転送完了時間T1〜T3の関係から、単純に転送時間を短縮するという観点から見ると第3転送モードが最も優れていることが分かる。しかしながら、第3転送モードにあっては、ackが得られるまで繰り返しRDMA転送を行うことから、最もネットワーク帯域を消費するという問題がある。このため、ネットワーク負荷の状態に応じて最適な転送モードを選択する必要がある。
本実施形態にあっては、図2に示したように、ネットワーク情報は送信側のネットワーク負荷情報収集部36と受信側のネットワーク負荷情報収集部48の両方で収集可能である。
したがって
(1)送信側でネットワーク負荷情報を収集する場合、ネットワーク収集情報に基づいて送信時に転送モードを選択する方法、
(2)受信側で収集する場合は、収集情報に基づいて選択した転送モードを送信側に伝え、これに基づいて送信側で指定された伝送方式で送信処理を行う方法、
のいずれかをとることができる。本実施形態は(1)の送信側で転送モードを選択している。
更に本実施形態における第1乃至第3転送方式は、再送によるネットワーク帯域の増加があるものの、受信側のホスト上の一時バッファを必要としないのに対し、本実施形態の第4転送モードにあっては、再送によるネットワーク帯域の増加はないものの受信側のホスト上の一時バッファを必要とする。
そこで送信側で転送方式を決定する方法において、図2のように受信側のNIC12−2に設けているメモリ使用率情報収集部49でホスト10−2のメモリ使用率を収集し、これを送信側に通知し、メモリ使用率に基づいて転送モードを選択する。
即ち、メモリ使用率が少なく十分にメモリがある場合には一時バッファを使用する第4転送モードを選択し、メモリ使用率が大きく十分にメモリがない場合には第1乃至第3転送モードを選択し、これによって効率よく転送処理を行う。
更に、ネットワーク負荷が高く且つ受信側のホストのメモリ使用率が高い場合を考えると、第1乃至第3転送モードは無駄となるパケットの転送を伴い、ネットワーク負荷が高くなるため、好ましくはない。また一時バッファを使用する第4転送モードも、受信側のホストメモリ使用量が多いため好ましくない。このような場合には、従来方式である第5転送モードが最適な方式となる。
そこで本実施形態にあっては、図2の受信側のNIC12−2のメモリ使用率情報収集部49がホスト10−2のメモリ使用率情報を収集してモード選択制御部46に通知し、モード選択制御部46においてメモリ使用率が少なければ第4転送モードを選択し、一方、メモリ使用率が多く第4転送モードを選択できない場合には、第4転送モードを選択できない点を送信側のNIC12−1のモード選択制御部34に通知する。
これを受けて送信側のモード選択制御部34は、ネットワーク負荷情報収集部36から得られたネットワーク負荷情報に基づき、第1乃至第3転送モードあるいは従来方式である第5転送モードから最適な転送モードを選択する。なお、メモリ使用率を送信側のモード選択制御部34に通知し、モード選択制御部34で第1乃至第5転送モードのすべてについて選択制御しても良い。
図44はネットワーク負荷情報と受信側のメモリ使用率に基づく転送モード選択のための転送モード管理表450の説明図である。図44において、転送モード管理表450は、ネットワーク負荷については、小さい順に3つの閾値w1,w2,w3を設定し、ネットワーク負荷を4つの領域に分けている。一方、メモリ使用量については閾値mを設定し、m未満とm以上の2つの領域に分けている。
この転送モード管理表450に基づき、次のようにして転送モードの選択を行う。
(1)メモリ使用率が閾値m未満の場合は、受信不許可の場合に一時バッファに格納する第4転送モードを選択する。
(2)メモリ使用率が閾値m以上の場合は、ネットワーク負荷に基づいて転送モードを選択する。
またネットワーク負荷に基づく転送モードの選択は次のようになる。
(1)ネットワーク負荷がw1未満の場合は第3転送モードを選択する。
(2)ネットワーク負荷がw1以上w2未満の場合は第1転送モードを選択する。
(3)ネットワーク負荷がw2以上w3未満の場合は第2転送モードを選択する。
(4)ネットワーク負荷がw3以上の場合は従来方式である第5転送モードを選択する。
ここでメモリ使用率については、受信側のホストにおける一時バッファとして使用可能なメモリ量とデータ転送量から閾値を求める。ネットワーク負荷に関しては、ネットワーク負荷情報を収集し、ネットワーク負荷実際の性能値を集計し、閾値の妥当性を評価することになる。
図45は図44の転送モード管理表450に基づく図6のステップS2の送信側での転送モード選択処理の詳細を示したフローチャートであり、図2を参照して説明すると次のようになる。
図45において、転送モード選択処理は、ステップS1で、モード選択制御部34はネットワーク負荷情報収集部36で収集されたネットワーク負荷情報と、このとき受信側のNIC12−2のメモリ使用率情報収集部49で収集されて転送されてきたメモリ使用率を読み込む。続いてステップS2でメモリ使用率は閾値m以上か否かチェックする。m未満であればステップS3に進み、受信側のホスト10−2の一時バッファ56を使用する第4転送モードを設定する。
ステップS2でメモリ使用率が閾値m以上の場合には、ステップS4に進み、ネットワーク負荷が閾値w1未満か否かチェックする。閾値w1未満であればステップS5に進み、転送データをackパケットが得られるまで繰り返し転送する第3転送モードを設定する。
またステップS6でネットワーク負荷が閾値w1以上で 閾値w2未満の場合には、ステップS7で第1転送モードを設定する。またステップS8でネットワーク負荷が閾値w2以上で閾値w3未満の場合には、ステップS9で第2転送モードを設定する。更にステップS8でネットワーク負荷が閾値w3以上となった場合には、ステップS10に進み、従来方式である第5転送モードを設定する。
なお図45の転送モード設定処理にあっては、送信側のNIC12−1のモード選択制御部34で転送モードを選択して選択指示を与えているが、第1転送モード、第2転送モード及び第4転送モードの選択については、受信側NIC12−2のモード選択制御部46においてモード選択を行う構成とすることもできる。この場合には、受信側の統計情報から得られたモード選択を送信側に通知する手順を省略することができる。
なお本実施形態は、受信機側のメモリ使用率に基づき、第1乃至第4転送モード及び従来方式である第5転送モードの中から最適な転送モードを選択してRDMA転送を行う場合を例にとっているが、本実施形態における第1乃至第4転送モードのいずれか1つを固定的に選択してRDMA転送する構成とすることもできる。
また本実施形態における第1乃至第4転送モードの少なくともいずれか1つと従来方式である第5転送モードにつき、ネットワーク負荷及び受信側のメモリ使用率から最適な転送モードを選択してRDMA転送する構成としてもよい。
また本実施形態は、受信側及び送信側に設けたNICにおける送信部及び受信部として実行するプログラムを提供するものであり、このプログラムは図6,図7,図11,図12,図17,図18,図21,図22,図24,図25,図31,図32、更に図45のフローチャートに示した内容を備える。
また本発明は、本実施形態のRDMA通信プログラムを記憶したコンピュータ読取可能な記録媒体を提供するものであり、この記録媒体とはCD−ROM、フロッピィ(R)ディスク、DVDディスク、光磁気ディスク、ICカードなどの可搬型記憶媒体や、コンピュータシステムの内外に備えられたハードディスクドライブなどの記憶装置の他、回線を介してプログラムを保持するデータベース、あるいは他のコンピュータシステム並びにデータベースや、更に回線上の伝送媒体を含むものである。
また上記の実施形態は10GbイーサネットをサポートするNICを例に取るものであったが、これに限定されず、同等のRDMA通信をサポートするインタフェースネットワークカードや通信機器であれば、そのまま本発明を適用することができる。
また本発明は本実施形態に限定されず、その目的と利点を損なうことのない適宜の変形を含み、更に本実施形態に示した数値による限定は受けない。
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
(付記)
(付記1)
RDMAパケットを作成して送信する送信部と、RDMAパケットを受信する受信部とを備えたRDMA通信をサポートする通信装置に於いて、
前記送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信部と、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。(1)
(付記2)
RDMAパケットを作成して送信する送信部と、RDMAパケットを受信する受信部とを備えたRDMA通信をサポートする通信装置に於いて、
前記送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信部と、
転送先から受信不許可通知を受信した際に、前記パケット送信部によるパケット転送を中断する転送中断部と、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
前記パケット破棄部で前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知部と、
前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。(2)
(付記3)
RDMAパケットを作成して送信する送信部と、RDMAパケットを受信する受信部とを備えたRDMA通信をサポートする通信装置に於いて、
前記送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に繰返し送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。(3)
(付記4)
RDMAパケットを作成して送信する送信部と、RDMAパケットを受信する受信部とを備えたRDMA通信をサポートする通信装置に於いて、
前記送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送部と、
前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動させるデータ移動部と、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。(4)
(付記5)
RDMAパケットを作成して送信する送信部と、RDMAパケットを受信する受信部とを備えたRDMA通信をサポートする通信装置に於いて、
転送先に許可を問合せることなく投機的に転送し、不許可の場合には再送要求を受けて再送する第1転送モード処理部と、
転送先に問合せることなく投機的に転送し、不許可の場合は不許可通知を受けて転送を中断し、再送要求を受けて再送する第2転送モード処理部と、
転送完了通知を受けるまで転送先に許可を問合せることなく投機的に繰返し転送する第3転送モード処理部と、
転送先に許可を問合せることなく投機的に転送し、不許可の場合は一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する第4転送モード処理部と、
転送先に許可を問合せ、許可通知を受けて転送する第5転送モード処理部と、
前記第1乃至第5転送モード処理部のいずれか1つを、ネットワーク負荷と受信側のメモリ使用量の少なくともいずれか一方に基づいて選択してRDMAデータ転送を実行させる転送モード選択制御部と、
を備えたことを特徴とする通信装置。(5)
(付記6)
付記5記載の通信装置に於いて、
前記第1転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信部と、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第1転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。(6)
(付記7)
付記5記載の通信装置に於いて、
前記第2転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信部と、
転送先から受信不許可通知を受信した際に、パケット送信部によるパケット転送を中断する転送中断部と、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第2転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
前記パケット破棄部で前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知部と、
前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。(7)
(付記8)
付記5記載の通信装置に於いて、
前記第3転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に繰返し送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第3転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄部と、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。(8)
(付記9)
付記5記載の通信装置に於いて、
前記第4転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第4転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送部と、
前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動させるデータ移動部と、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
を備えたことを特徴とする通信装置。(9)
(付記10)
付記5記載の通信装置に於いて、
前記第5転送モード処理部の送信部は、
データ転送要求を受けた際に、転送先に受信許可確認を送信して受信許可通知を受信した場合に、転送データからRDMAパケットを作成して送信するパケット送信部と、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
を備え、
前記第5転送モード処理部の受信部は、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
転送元から受信確認通知を受信した時に前記転送領域管理情報を参照して受信許可通知又は受信不許可通知を送信する確認応答部と、
前記受信領域に受信パケットを転送するパケット受信部と、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する転送完了通知部と、
を備えたことを特徴とする通信装置。(10)
(付記11)
付記5記載の通信装置に於いて、前記転送モード設定部は送信部に設けられ、選択した転送モードを転送元の送信部及び受信部に通知して前記第1乃至第5転送モード処理部のいずれかによるRDMAデータ転送を実行させることを特徴とする通信装置。
(付記12)
付記5記載の通信装置に於いて、前記転送モード設定部は受信部に設けられ、選択した転送モードを送信部及び受信部に通知して前記第1乃至第5転送モード処理部のいずれかによるRDMAデータ転送を実行させることを特徴とする通信装置。
(付記13)
付記5記載の通信装置に於いて、前記転送モード設定部は、
前記受信側のメモリ使用率が少ない場合は前記第4転送モード処理部を選択し、
前記受信側のメモリ使用率が多い場合は、ネットワーク負荷の低い順に、前記第3転送モード処理部、第1転送モード処理部及び第5転送モード処理部を順次選択することを特徴とする通信装置。(11)
(付記14)
付記1乃至5記載のいずれかに記載の通信装置に於いて、更に、論理アドレスと物理アドレスのアドレス変換情報を持ち、前記アドレス変換情報内に前記転送領域管理情報を含ませて一体化したことを特徴とする通信装置。
(付記15)
RDMAパケットを作成して送信する送信ステップと、RDMAパケットを受信する受信ステップとを備えたRDMA通信をサポートする通信方法に於いて、
前記送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信ステップと、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
(付記16)
RDMAパケットを作成して送信する送信ステップと、RDMAパケットを受信する受信ステップとを備えたRDMA通信をサポートする通信方法に於いて、
前記送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信ステップと、
転送先から受信不許可通知を受信した際に、前記パケット送信ステップによるパケット転送を中断する転送中断ステップと、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
前記パケット破棄ステップで前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
(付記17)
RDMAパケットを作成して送信する送信ステップと、RDMAパケットを受信する受信ステップとを備えたRDMA通信をサポートする通信方法に於いて、
前記送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に繰返し送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
(付記18)
RDMAパケットを作成して送信する送信ステップと、RDMAパケットを受信する受信ステップとを備えたRDMA通信をサポートする通信方法に於いて、
前記送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送ステップと、
前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動するデータ移動ステップと、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
(付記19)
RDMAパケットを作成して送信する送信ステップと、RDMAパケットを受信する受信ステップとを備えたRDMA通信をサポートする通信方法に於いて、
転送先に許可を問合せることなく投機的に転送し、不許可の場合には再送要求を受けて再送する第1転送モード処理ステップと、
転送先に問合せることなく投機的に転送し、不許可の場合は不許可通知を受けて転送を中断し、再送要求を受けて再送する第2転送モード処理ステップと、
転送完了通知を受けるまで転送先に許可を問合せることなく投機的に繰返し転送する第3転送モード処理ステップと、
転送先に許可を問合せることなく投機的に転送し、不許可の場合は一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する第4転送モード処理ステップと、
転送先に許可を問合せ、許可通知を受けて転送する第5転送モード処理ステップと、
前記第1乃至第5転送モード処理ステップのいずれか1つを、ネットワーク負荷と受信側のメモリ使用量の少なくともいずれか一方に基づいて選択してRDMAデータ転送を実行させる転送モード設定ステップと、
を備えたことを特徴とする通信方法。(12)
(付記20)
付記19記載の通信方法に於いて、
前記第1転送モード処理ステップの送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信ステップと、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記第1転送モード処理ステップの受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
(付記21)
付記19記載の通信方法に於いて、
前記第2転送モード処理ステップの送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信ステップと、
転送先から受信不許可通知を受信した際に、前記パケット送信ステップによるパケット転送を中断する転送中断ステップと、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記第2転送モード処理ステップの受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
前記パケット破棄ステップで前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
(付記22)
付記19記載の通信方法に於いて、
前記第3転送モード処理ステップの送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に繰返し送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記第3転送モード処理ステップの受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
(付記23)
付記19記載の通信方法に於いて、
前記第4転送モード処理ステップの送信ステップは、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記第4転送モード処理ステップの受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送ステップと、
前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動するデータ移動ステップと、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
(付記24)
付記19記載の通信方法に於いて、
前記第5転送モード処理ステップの第5送信ステップは、
データ転送要求を受けた際に、転送先に受信許可確認を送信して受信許可通知を受信した場合に、転送データからRDMAパケットを作成して送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を備え、
前記第5転送モード処理ステップの第5受信ステップは、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
転送元から受信確認通知を受信した時に前記転送領域管理情報を参照して受信許可通知又は受信不許可通知を送信する確認応答ステップと、
前記受信領域に受信パケットを転送するパケット受信ステップと、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を備えたことを特徴とする通信方法。
(付記25)
付記19記載の通信方法に於いて、前記転送モード選択ステップは転送元の送信ステップに設けられ、選択した転送モードを転送元及び転送先に通知して前記第1乃至第5転送モード処理ステップのいずれかによるRDMAデータ転送を実行させることを特徴とする通信方法。
(付記26)
付記19記載の通信方法に於いて、前記転送モード設定ステップは転送先の受信ステップに設けられ、選択した転送モードを転送元及び転送先に通知して前記第1乃至第5転送モード処理ステップのいずれかによるRDMAデータ転送を実行させることを特徴とする通信方法。
(付記27)
付記19記載の通信方法に於いて、前記転送モード設定ステップは、
前記受信側のメモリ使用率が少ない場合は前記第4転送モード処理ステップを選択し、
前記受信側のメモリ使用率が多い場合は、ネットワーク負荷の低い順に、前記第3転送モード処理ステップ、第1転送モード処理ステップ及び第5転送モード処理ステップを順次選択することを特徴とする通信方法。
(付記28)
付記15乃至19記載のいずれかに記載の通信方法に於いて、更に、論理アドレスと物理アドレスのアドレス変換情報を持ち、前記アドレス変換情報内に前記転送領域管理情報を含ませて一体化したことを特徴とする通信方法。
(付記29)
RDMA通信をサポートする通信装置のコンピュータに、
送信ステップとして、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信ステップと、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を実行させ、
前記受信ステップとして、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を実行させることを特徴とする通信プログラム。
(付記30)
RDMA通信をサポートする通信装置のコンピュータに、
送信ステップとして、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信ステップと、
転送先から受信不許可通知を受信した際に、前記パケット送信ステップによるパケット転送を中断する転送中断ステップと、
転送先から再送要求を受信した際に、要求された転送データからRDMAパケットを作成して送信するパケット再送ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を実行させ、
受信ステップとして、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
前記パケット破棄ステップで前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知ステップと、
前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を実行させることを特徴とする通信プログラム。
(付記31)
RDMA通信をサポートする通信装置のコンピュータに、
送信ステップとして、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に繰返し送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を実行させ、
受信ステップとして、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄ステップと、
受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を実行させることを特徴とする通信プログラム。
(付記32)
RDMA通信をサポートする通信装置のコンピュータに、
送信ステップとして、
データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからRDMAパケットを作成して投機的に送信するパケット送信ステップと、
転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
を実行させ、
受信ステップとして、
受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送ステップと、
前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動するデータ移動ステップと、
前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
を実行させることを特徴とする通信プログラム。
ホスト間通信に適用された本発明の一実施形態の説明図 本実施形態におけるNICの送信部と受信部の機能構成のブロック図 本実施形態で使用する転送領域管理表の説明図 本実施形態における送信制御部のブロック図 本実施形態における受信制御部のブロック図 本実施形態における送信処理のフローチャート 本実施形態における受信処理のフローチャート 本実施形態における第1転送モードによる転送処理の説明図 転送開始前に受信可能となっている場合の第1転送モードによる転送処理のタイムチャート 転送開始後に受信可能となった場合の第1転送モードによる転送処理のタイムチャート 第1転送モード送信処理のフローチャート 第1転送モード受信処理のフローチャート 本実施形態における第2転送モードによる転送処理の説明図 転送開始前に受信可能となっている場合の第2転送モードによる転送処理のタイムチャート 転送開始後に受信可能となった場合の第2転送モードによる転送処理のタイムチャート 図15に続く第2転送モードによる転送処理のタイムチャート 第2転送モード送信処理のフローチャート 第2転送モード受信処理のフローチャート 本実施形態における第3転送モードによる転送処理の説明図 第3転送モードによる転送処理のタイムチャート 第3転送モード送信処理のフローチャート 第3転送モード受信処理のフローチャート 本実施形態における第4転送モードによる転送処理のタイムチャート 第4転送モード送信処理のフローチャート 第4転送モード受信処理のフローチャート 第4転送モードの受信側における一時バッファから受信領域へのデータ移動の説明図 図26のデータ移動におけるアドレスマッピングの説明図 図27のアドレスマッピング前と後のアドレス変換表の説明図 本実施形態における第5転送モードによる転送処理の説明図 第5転送モードによる転送処理のタイムチャート 第5転送モード送信処理のフローチャート 第5転送モード受信処理のフローチャート 転送開始前に受信可能となっている場合の第1乃至第3及び第5転送モードによる転送完了時間の説明図 図33の転送完了時間の計算の説明図 転送開始の待ち時間WがW≧kLの場合の第1乃至第3及び第5転送モードによる転送完了時間の説明図 図35の転送完了時間の計算の説明図 転送開始の待ち時間WがkL≧W≧kL−2δの場合の第1乃至第3及び第5転送モードによる転送完了時間の説明図 図37の転送完了時間の計算の説明図 転送開始の待ち時間WがkL−2δ≧W≧2δの場合の第1乃至第3及び第5転送モードによる転送完了時間の説明図 図39の転送完了時間の計算の説明図 転送開始の待ち時間Wが2δ≧Wの場合の第1乃至第3及び第5転送モードによる転送完了時間の説明図 図41の転送完了時間の計算の説明図 図42(C)における転送完了時間の計算詳細を示した説明図 本実施形態で使用する転送モード管理表の説明図 本実施形態における転送モード選択処理のフローチャート
符号の説明
10−1,10−2:ホスト
12−1,12−2:ネットワーク・インタフェース・カード(NIC)
14−1,14−2:送信部
16−1,16−2:受信部
18:ネットワーク
20:送信要求部
22:送信領域
24:送信データ
26:送信要求受付部
28,42:転送領域管理部
30,44:送信制御部
32,40:受信制御部
34,46:モード選択制御部
36,48:ネットワーク負荷情報収集部
38,50:10GbイーサネットMAC
49:メモリ使用率情報収集部
52:領域許可部
54:受信領域
55:転送データ
56:一時バッファ
58:保存データ
60:転送制御部
62:転送領域管理表
64:領域ID
66:論理アドレス
68:物理アドレス
70:受信許可
72:パケット破棄情報
74:受信不許可通知情報
75:一時バッファアドレス
76:第1転送モード送信部
78:第2転送モード送信部
80:第3転送モード送信部
82:第4転送モード送信部
84:第5転送モード送信部
86,92,100,104,110:パケット送信部
88,96:パケット再送部
90,98,102,106,112:送信完了部
94:転送中断部
108:受信許可確認部
114:第1転送モード受信部
116:第2転送モード受信部
118:第3転送モード受信部
120:第4転送モード受信部
12:第5転送モード受信部
126,134,144,150,160:パケット受信部
128,136,146:パケット破棄部
130,140:再送要求部
132,142,148,156,162:完了通知部
138:不許可通知部
152:バッファ転送部
154:データ移動部
158:確認応答部

Claims (15)

  1. ケットを作成して送信する送信部と、ケットを受信する受信部とを備えた通信をサポートする通信装置に於いて、
    前記送信部は、
    データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信部と、
    転送先から再送要求を受信した際に、要求された転送データからパケットを作成して送信するパケット再送部と、
    転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
    を備え、
    前記受信部は、
    受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
    パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
    パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
    前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
    受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
    を備えたことを特徴とする通信装置。
  2. ケットを作成して送信する送信部と、ケットを受信する受信部とを備えた通信をサポートする通信装置に於いて、
    前記送信部は、
    データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信部と、
    転送先から受信不許可通知を受信した際に、前記パケット送信部によるパケット転送を中断する転送中断部と、
    転送先から再送要求を受信した際に、要求された転送データからパケットを作成して送信するパケット再送部と、
    転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
    を備え、
    前記受信部は、
    受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
    パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
    パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
    前記パケット破棄部で前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知部と、
    前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
    受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
    を備えたことを特徴とする通信装置。
  3. ケットを作成して送信する送信部と、ケットを受信する受信部とを備えた通信をサポートする通信装置に於いて、
    前記送信部は、
    データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して繰返し送信するパケット送信部と、
    転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
    を備え、
    前記受信部は、
    受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
    パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
    パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄部と、
    受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
    を備えたことを特徴とする通信装置。
  4. ケットを作成して送信する送信部と、ケットを受信する受信部とを備えた通信をサポートする通信装置に於いて、
    前記送信部は、
    データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信部と、
    転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
    を備え、
    前記受信部は、
    受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
    パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
    パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送部と、
    前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動させるデータ移動部と、
    前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
    を備えたことを特徴とする通信装置。
  5. ケットを作成して送信する送信部と、ケットを受信する受信部とを備えた通信をサポートする通信装置に於いて、
    転送先に許可を問合せることなく転送し、不許可の場合には再送要求を受けて再送する第1転送モード処理部と、
    転送先に問合せることなく転送し、不許可の場合は不許可通知を受けて転送を中断し、再送要求を受けて再送する第2転送モード処理部と、
    転送完了通知を受けるまで転送先に許可を問合せることなく繰返し転送する第3転送モード処理部と、
    転送先に許可を問合せることなく転送し、不許可の場合は一時バッファに保存し、許可が得られたら一時バッファから受信領域に転送する第4転送モード処理部と、
    転送先に許可を問合せ、許可通知を受けて転送する第5転送モード処理部と、
    前記第1乃至第5転送モード処理部のいずれか1つを、ネットワーク負荷と受信側のメモリ使用量の少なくともいずれか一方に基づいて選択してデータ転送を実行させる転送モード選択制御部と、
    を備えたことを特徴とする通信装置。
  6. 請求項5記載の通信装置に於いて、
    前記第1転送モード処理部の送信部は、
    データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信部と、
    転送先から再送要求を受信した際に、要求された転送データからパケットを作成して送信するパケット再送部と、
    転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
    を備え、
    前記第1転送モード処理部の受信部は、
    受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
    パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
    パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
    前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
    受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
    を備えたことを特徴とする通信装置。
  7. 請求項5記載の通信装置に於いて、
    前記第2転送モード処理部の送信部は、
    データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信部と、
    転送先から受信不許可通知を受信した際に、パケット送信部によるパケット転送を中断する転送中断部と、
    転送先から再送要求を受信した際に、要求された転送データからパケットを作成して送信するパケット再送部と、
    転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
    を備え、
    前記第2転送モード処理部の受信部は、
    受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
    パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
    パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケット破棄を前記転送領域管理情報に記録するパケット破棄部と、
    前記パケット破棄部で前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知部と、
    前記パケット破棄部で受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求部と、
    受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
    を備えたことを特徴とする通信装置。
  8. 請求項5記載の通信装置に於いて、
    前記第3転送モード処理部の送信部は、
    データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して繰返し送信するパケット送信部と、
    転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
    を備え、
    前記第3転送モード処理部の受信部は、
    受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
    パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
    パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄部と、
    受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
    を備えたことを特徴とする通信装置。
  9. 請求項5記載の通信装置に於いて、
    前記第4転送モード処理部の送信部は、
    データ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信部と、
    転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
    を備え、
    前記第4転送モード処理部の受信部は、
    受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
    パケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に前記受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信部と、
    パケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ転送を前記転送領域管理情報に記録するバッファ転送部と、
    前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動させるデータ移動部と、
    前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知部と、
    を備えたことを特徴とする通信装置。
  10. 請求項5記載の通信装置に於いて、
    前記第5転送モード処理部の送信部は、
    データ転送要求を受けた際に、転送先に受信許可確認を送信して受信許可通知を受信した場合に、転送データからパケットを作成して送信するパケット送信部と、
    転送先から転送完了通知を受信してパケット送信を正常終了する送信完了部と、
    を備え、
    前記第5転送モード処理部の受信部は、
    受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理部と、
    転送元から受信確認通知を受信した時に前記転送領域管理情報を参照して受信許可通知又は受信不許可通知を送信する確認応答部と、
    前記受信領域に受信パケットを転送するパケット受信部と、
    前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する転送完了通知部と、
    を備えたことを特徴とする通信装置。
  11. 請求項5記載の通信装置に於いて、前記転送モード設定部は、
    前記受信側のメモリ使用率が少ない場合は前記第4転送モード処理部を選択し、
    前記受信側のメモリ使用率が多い場合は、ネットワーク負荷の低い順に、前記第3転送モード処理部、第1転送モード処理部及び第5転送モード処理部を順次選択することを特徴とする通信装置。
  12. ケットを作成して送信する送信ステップと、ケットを受信する受信ステップとを備えた通信をサポートする通信方法に於いて、
    コンピュータに、
    パケット送信部がデータ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信ステップと、
    パケット再送部が転送先から再送要求を受信した際に、要求された転送データからパケットを作成して送信するパケット再送ステップと、
    送信完了部が転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
    転送領域管理部が受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
    パケット受信部がパケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
    パケット受信時にパケット破棄部が前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記受信パケットの破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
    前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、再送要求部が前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
    完了通知部が受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
    を実行させることを特徴とする通信方法。
  13. パケットを作成して送信する送信ステップと、パケットを受信する受信ステップとを備えた通信をサポートする通信方法に於いて、
    コンピュータに、
    パケット送信部がデータ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信ステップと、
    転送中断部が転送先から受信不許可通知を受信した際に、前記パケット送信ステップによるパケット転送を中断する転送中断ステップと、
    パケット再送部が転送先から再送要求を受信した際に、要求された転送データからパケットを作成して送信するパケット再送ステップと、
    送信完了部が転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
    転送領域管理部が受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
    パケット受信部がパケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
    パケット破棄部がパケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄すると共に前記パケットの破棄を前記転送領域管理情報に記録するパケット破棄ステップと、
    不許可通知部が前記パケット破棄ステップで前記受信領域の転送不許可を判別した場合に、転送元に受信不許可通知を送信する不許可通知ステップと、
    前記パケット破棄ステップで受信パケットを破棄した後に前記受信領域の転送許可を判別した場合に、再送要求部が前記転送領域管理情報のパケット破棄の記録に基づいて転送元に再送要求を送信する再送要求ステップと、
    完了通知部が受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
    を実行させることを特徴とする通信方法。
  14. パケットを作成して送信する送信ステップと、パケットを受信する受信ステップとを備えた通信をサポートする通信方法に於いて、
    コンピュータに、
    パケット送信部がデータ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して繰返し送信するパケット送信ステップと、
    送信完了部が転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
    転送領域管理部が受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
    パケット受信部がパケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
    パケット破棄部がパケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に、受信パケットを破棄するパケット破棄ステップと、
    完了通知部により受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
    を実行することを特徴とする通信方法。
  15. パケットを作成して送信する送信ステップと、パケットを受信する受信ステップとを備えた通信をサポートする通信方法に於いて、
    コンピュータに、
    パケット送信部がデータ転送要求を受けた際に、転送先に受信許可の有無を問合せることなく、転送データからパケットを作成して送信するパケット送信ステップと、
    送信完了部が転送先から転送完了通知を受信してパケット送信を正常終了する送信完了ステップと、
    転送領域管理部が受信領域に対する転送許可又は転送不許可を含む転送領域管理情報を管理する転送領域管理ステップと、
    パケット受信部がパケット受信時に前記転送領域管理情報を参照して受信領域の転送許可を判別した場合に、前記受信領域に受信パケットを転送すると共に前記受信領域の転送許可を転送不許可に変更するパケット受信ステップと、
    バッファ転送部がパケット受信時に前記転送領域管理情報を参照して前記受信領域の転送不許可を判別した場合に受信パケットをバッファ領域に転送すると共に前記バッファ領域への転送を前記転送領域管理情報に記録するバッファ転送ステップと、
    データ移動部が前記バッファ転送後に前記受信領域の転送許可を判別した場合に、前記転送領域管理情報のバッファ転送の記録に基づいて前記バッファ領域のデータを前記受信領域に移動させるデータ移動ステップと、
    完了通知部が前記受信領域に対する受信パケットの転送完了を認識して転送完了通知を送信する完了通知ステップと、
    を実行させることを特徴とする通信方法。
JP2006083185A 2006-03-24 2006-03-24 通信装置、方法及びプログラム Expired - Fee Related JP4662273B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006083185A JP4662273B2 (ja) 2006-03-24 2006-03-24 通信装置、方法及びプログラム
US11/475,908 US7581015B2 (en) 2006-03-24 2006-06-28 Communication device having transmitting and receiving units supports RDMA communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006083185A JP4662273B2 (ja) 2006-03-24 2006-03-24 通信装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2007257479A JP2007257479A (ja) 2007-10-04
JP4662273B2 true JP4662273B2 (ja) 2011-03-30

Family

ID=37494025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006083185A Expired - Fee Related JP4662273B2 (ja) 2006-03-24 2006-03-24 通信装置、方法及びプログラム

Country Status (2)

Country Link
US (1) US7581015B2 (ja)
JP (1) JP4662273B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7724738B2 (en) * 2003-06-19 2010-05-25 Hung-Hsiang Jonathan Chao Packet-level multicasting
US7917597B1 (en) * 2006-11-02 2011-03-29 Netapp, Inc. RDMA network configuration using performance analysis
JP2008278269A (ja) * 2007-04-27 2008-11-13 Matsushita Electric Ind Co Ltd データ送信装置、データ受信装置及びデータ送受信システム
US20100185738A1 (en) * 2007-06-21 2010-07-22 Panasonic Corporation Information processing terminal, server, and presence distribution system
US7827325B2 (en) * 2007-10-31 2010-11-02 International Business Machines Corporation Device, system, and method of speculative packet transmission
US8108538B2 (en) * 2008-08-21 2012-01-31 Voltaire Ltd. Device, system, and method of distributing messages
EP2299652A1 (en) * 2009-09-21 2011-03-23 Thomson Licensing Device and method for generating confirmations of data transfers between communication equipments, by data comparison
JP5282124B2 (ja) * 2011-06-29 2013-09-04 アンリツ株式会社 パケット転送装置およびパケット転送方法
JP5906078B2 (ja) * 2011-12-20 2016-04-20 キヤノン株式会社 データ転送装置及びデータ転送方法
JPWO2015040833A1 (ja) * 2013-09-19 2017-03-02 日本電気株式会社 通信装置及び通信装置の制御方法
CN104065465B (zh) * 2014-06-06 2018-03-16 华为技术有限公司 一种报文重传的方法、请求端、响应端以及系统
US20170019230A1 (en) * 2015-07-13 2017-01-19 Qualcomm Incorporated Communicating a Data Payload and an Acknowledgment of the Data Payload on Different Channels
US9898439B2 (en) 2015-09-28 2018-02-20 International Business Machines Corporation Optimizing remote direct memory access (RDMA) with cache aligned operations
US10430374B2 (en) * 2016-06-29 2019-10-01 Mellanox Technologies, Ltd. Selective acknowledgement of RDMA packets
CN107766261A (zh) * 2017-09-22 2018-03-06 华为技术有限公司 数据校验的方法、装置以及网卡
US20200007608A1 (en) * 2018-06-29 2020-01-02 R-Stor Inc. System and method for performing fast file transfers
US11019132B2 (en) 2018-06-29 2021-05-25 R-Stor Inc. System and method for performing fast file transfers with dynamic bandwidth provisioning
US11403253B2 (en) * 2018-09-13 2022-08-02 Microsoft Technology Licensing, Llc Transport protocol and interface for efficient data transfer over RDMA fabric
US10785306B1 (en) 2019-07-11 2020-09-22 Alibaba Group Holding Limited Data transmission and network interface controller
JP7372527B2 (ja) * 2019-09-26 2023-11-01 富士通株式会社 通信中継プログラム、中継装置、及び通信中継方法
US11870590B2 (en) 2020-11-19 2024-01-09 Mellanox Technologies, Ltd. Selective retransmission of packets
WO2023032128A1 (ja) * 2021-09-02 2023-03-09 日本電信電話株式会社 通信システム、計算機、通信方法、および、プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07219916A (ja) * 1994-01-31 1995-08-18 Hitachi Ltd 並列計算機の通信方法
US5878226A (en) * 1997-05-13 1999-03-02 International Business Machines Corporation System for processing early arrival messages within a multinode asynchronous data communications system
US5931915A (en) * 1997-05-13 1999-08-03 International Business Machines Corporation Method for processing early arrival messages within a multinode asynchronous data communications system
US6493343B1 (en) * 1998-01-07 2002-12-10 Compaq Information Technologies Group System and method for implementing multi-pathing data transfers in a system area network
WO2004017220A1 (en) * 2002-08-19 2004-02-26 Broadcom Corporation One-shot rdma
JP2004192179A (ja) 2002-12-10 2004-07-08 Fujitsu Ltd Rdma機能を持ったnicをハードウェアメモリ保護を行わないで、専用のモニタプロセスなしにシステムに組み込むための装置
US7502826B2 (en) * 2003-03-27 2009-03-10 Hewlett-Packard Development Company, L.P. Atomic operations
US20050108518A1 (en) * 2003-06-10 2005-05-19 Pandya Ashish A. Runtime adaptable security processor
US7565454B2 (en) 2003-07-18 2009-07-21 Microsoft Corporation State migration in multiple NIC RDMA enabled devices
US20050223118A1 (en) * 2004-04-05 2005-10-06 Ammasso, Inc. System and method for placement of sharing physical buffer lists in RDMA communication
US20060075067A1 (en) * 2004-08-30 2006-04-06 International Business Machines Corporation Remote direct memory access with striping over an unreliable datagram transport
US20060075057A1 (en) * 2004-08-30 2006-04-06 International Business Machines Corporation Remote direct memory access system and method

Also Published As

Publication number Publication date
US20060274748A1 (en) 2006-12-07
US7581015B2 (en) 2009-08-25
JP2007257479A (ja) 2007-10-04

Similar Documents

Publication Publication Date Title
JP4662273B2 (ja) 通信装置、方法及びプログラム
US11899596B2 (en) System and method for facilitating dynamic command management in a network interface controller (NIC)
US6006289A (en) System for transferring data specified in a transaction request as a plurality of move transactions responsive to receipt of a target availability signal
TWI416334B (zh) 在匯流排上以封包形式傳送來自複數個客戶的資料傳送請求之方法、匯流排介面裝置及處理器
EP0762705B1 (en) Method for transmitting data via a network
US8559365B2 (en) After transmission return signal
US6857030B2 (en) Methods, system and article of manufacture for pre-fetching descriptors
JP4512068B2 (ja) ロックオペレーションを制御するネットワークインターフェイス、このネットワークインターフェイスが含まれたパケットデータ通信オンチップインターコネクトシステムおよびそのネットワークインターフェイスの動作方法
JP2018185814A (ja) NVMe−oF SSDにおける低レイテンシ直接データアクセス方法、及びそのためのシステム
US20010027486A1 (en) Method for transmitting data via a network
US6483845B1 (en) Packet transmitter-receiver and packet receiver
WO2019129023A1 (zh) 基于nof的读取控制方法、装置及系统
US7631313B2 (en) System and method for transferring data
WO2013097642A1 (zh) 快速通道互联系统中数据包重传方法、节点
CN103368703A (zh) 数据包重传方法、数据包接收方法及装置
KR101752823B1 (ko) 작동 요청을 처리하기 위한 스토리지 시스템, 방법 및 장치
US6920509B1 (en) Device information acquisition method, device controller, and bridge
JP2003174486A (ja) 情報通信装置、情報通信方法および情報通信処理プログラム
CN113572582B (zh) 数据发送、重传控制方法及系统、存储介质及电子设备
WO2015059889A1 (ja) イニシエータ端末、ターゲット端末、イニシエータ端末のエラー処理方法、ターゲット端末のエラー処理方法
JP3091184B2 (ja) 通信システム及び通信装置
CN114827300B (zh) 硬件保障的数据可靠传输系统、控制方法、设备及终端
JP3863456B2 (ja) ネットワークを介してデータを送受信する方法及びネットワークを介してデータパケットを転送するシステム
JP4264924B2 (ja) データ転送方法
CN114726883A (zh) 一种嵌入式rdma系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101028

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101224

R150 Certificate of patent or registration of utility model

Ref document number: 4662273

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees