JP2015216450A - 情報処理装置、情報処理システム及び中継プログラム - Google Patents

情報処理装置、情報処理システム及び中継プログラム Download PDF

Info

Publication number
JP2015216450A
JP2015216450A JP2014096871A JP2014096871A JP2015216450A JP 2015216450 A JP2015216450 A JP 2015216450A JP 2014096871 A JP2014096871 A JP 2014096871A JP 2014096871 A JP2014096871 A JP 2014096871A JP 2015216450 A JP2015216450 A JP 2015216450A
Authority
JP
Japan
Prior art keywords
information processing
processing apparatus
data
predetermined area
message
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.)
Withdrawn
Application number
JP2014096871A
Other languages
English (en)
Inventor
中村 実
Minoru Nakamura
実 中村
耕太 中島
Kota Nakajima
耕太 中島
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 JP2014096871A priority Critical patent/JP2015216450A/ja
Priority to US14/682,385 priority patent/US9769093B2/en
Publication of JP2015216450A publication Critical patent/JP2015216450A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9031Wraparound memory, e.g. overrun or underrun detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • H04L49/358Infiniband Switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】インフィニバンドのRC通信において、不正なメッセージの受信を防ぐためにメッセージにQP番号を付加して送付する場合に、QP番号を効率よくチェックすること。
【解決手段】送信部71は、一定間隔でメッセージにQP番号を付加して送信し、IMMを用いてQP番号が付加されているか否かを識別できるようにする。そして、確認部73は、IMMを用いて受信メッセージにQP番号が付加されているか否かを判定し、QP番号が付加されている場合だけ、QP番号のチェックを行う。
【選択図】図3

Description

本発明は、情報処理装置、情報処理システム及び中継プログラムに関する。
近年、HPC(High Performance Computing)系のサーバ間の通信などで、インフィニバンド(InfiniBand)が用いられている。インフィニバンドでは、情報処理装置にHCA(Host Channel Adaptor)が装着され、送信側のHCA内のQP(Queue Pair)と受信側のHCA内のQPとの間で通信が行われる。HCAの各ポートには、LID(Local Identifier)と呼ばれ、ネットワーク内で一意な1から49,151までの番号が割り振られる。1つのHCAは、理論上224−1個のQPを持つことができ、HCA内でユニークな1〜224−1までのQP番号を持つ。
インフィニバンドの通信方式には、RC(Reliable Connection)と呼ばれる通信方式があり、RCでは1個のQPと1個のQPとの間で1対1の通信が行われる。2つのQPは、互いのLIDとQP番号を通知して交換しあうことでコネクションを確立する。インフィニバンドのメッセージには送信元を示すLIDが埋め込まれており、本来の通信相手とは異なるLIDを持っている情報処理装置に属するQPから送られてきたメッセージは、受信側のHCAにより破棄される。
図16は、RC通信の本来の通信相手以外からのメッセージの破棄を示す図である。図16では、LIDが1でありQP番号が3000であるQPとLIDが2でありQP番号が4000であるQPとの間で1対1の通信が行われている。このとき、LIDが3でありQP番号が5000であるQPがLIDが2でありQP番号が4000であるQPに一方的にメッセージを送信すると、受信側のHCAがメッセージ内のLIDをチェックしてメッセージを受理しない。このため、QPは、本来の通信相手以外から送られてきたメッセージを誤って受理することはない。
しかし、インフィニバンドのメッセージには、送信元を識別するQP番号は含まれない。また、本来の通信相手と同一の情報処理装置に属する別のQPは同一のLIDを持っている。したがって、本来の通信相手と同一の情報処理装置に属する別のQPからメッセージが送られてきた場合、受信側のQPは本来の通信相手と区別できずにメッセージを受信してしまう。
図17は、RC通信の本来の通信相手以外からのメッセージの受理を示す図である。図16と比較して、図17では、QP番号が5000のQPが同一の情報処理装置に属する。したがって、QP番号が5000のQPのLIDはQP番号が3000のQPのLIDと同一であるため、受信側のQPは本来の通信相手以外から送られてきたメッセージを受理する。
すなわち、同一の情報処理装置内に複数のプログラムがあり、それぞれがインフィニバンドの通信を行う場合、別々のQPが割り当てられる。当然、インフィニバンドのRC通信は2つのプログラム間で行うことを想定している。しかし、受信側のQPは、通信相手と同じ情報処理装置にいる別のプログラムと本来の通信相手のプログラムを区別できない。このため、悪意あるプログラムがインフィニバンドのメッセージを偽造して送り込むことが可能になる。
また、プログラムに悪意がなくても、RC通信のコネクションを切断後にQPを再利用する設計では、通信相手のQPがすでに自分以外の通信相手とコネクションを確立していることに気づかず、QPがメッセージを送信する可能性がある。すると、受信側のQPは、その時点での本来の通信相手以外からのメッセージを受信する危険がある。このような本来失効するべき古いコネクションが残っている状態はStale Connectionと呼ばれる。
そこで、送信側のQPがメッセージにQP番号を含めて送信し、受信側のQPがQP番号をチェックすることが行われている。受信側は、QP番号が本来の通信相手のQP番号でない場合に、メッセージが不正に送信されたことを知ることができる。
なお、RC通信のコネクションを上位のミドルウェアにより管理する技術があるが、上位のミドルウェアを利用するためにはインフィニバンドのソースプログラムを改変する必要があり、既存のプログラムにはこの技術を適用することはできない。また、全てのインフィニバンドプログラムをミドルウェアの管理下で動作させる必要があるため、一部のインフィニバンドプログラムをミドルウェアの管理外で動作させることが許されない。
また、送信側と受信側の間で論理接続が確立するとインスタンス番号が論理接続に関連づけられ、送信側はデータにインスタンス番号を付加して送信し、受信側がインスタンス番号をチェックすることで論理接続に属するデータであるかを判定する従来技術がある。
特表2005−524264号公報
しかしながら、全てのメッセージにQP番号を含めてチェックすることは効率が悪いという問題がある。具体的には、メッセージにQP番号を含める処理やメッセージからQP番号を取り除く処理に時間がかかる。また、QP番号を含めることによって、通信量が増加する。
本発明は、1つの側面では、メッセージが正しい通信相手から送信されたか否かを効率よくチェックするRC通信を実現することを目的とする。
本願の開示する情報処理装置は、インフィニバンドを用いて他の情報処理装置との間で通信を行う。また、本願の開示する情報処理装置は、1つの態様において、送信部と受信確認部とを備える。前記送信部は、前記他の情報処理装置にQP番号付きデータを送信する際に、送信処理要求の所定領域に特定のコードを入力し、該所定領域の情報はデータ部に移動し、データ部にQP番号を追記して送信する。前記受信確認部は、他の情報処理装置から受信したデータの所定領域に前記特定のコードが入っている場合、データはQP番号付きと判別し、前記他の情報処理装置をQP番号に基づいて判別し、データ部に移動された所定領域の情報を所定領域に移動する。また、前記受信確認部は、QP番号を削除してユーザライブラリに送信する。
1実施態様によれば、メッセージが正しい通信相手から送信されたか否かを効率よくチェックすることができる。
図1は、インフィニバンドのRC方式を用いてプログラムがメッセージ通信を行う場合のモデルを説明するための図である。 図2は、インフィニバンドとイーサネット(登録商標)及びIPの概念の対比を示す図である。 図3は、実施例に係る情報処理装置の機能構成を示す図である。 図4は、本来の送信データの一例を示す図である。 図5は、カプセル化された送信データの一例を示す図である。 図6は、カプセル化されていない受信データの一例を示す図である。 図7は、カプセル化された受信データの一例を示す図である。 図8は、送信WRのデータ構造の一例を示す図である。 図9は、受信WRのデータ構造の一例を示す図である。 図10は、スキャッタ/ギャザーリストの1つのエントリのデータ構造の一例を示す図である。 図11は、受信WCのデータ構造の一例を示す図である。 図12は、送信処理のフローを示すフローチャートである。 図13は、受信確認処理のフローを示すフローチャートである。 図14は、実施例に係る情報処理装置のハードウェア構成を示す図である。 図15は、実施例に係る情報処理システムの構成を示す図である。 図16は、RC通信の本来の通信相手以外からのメッセージの破棄を示す図である。 図17は、RC通信の本来の通信相手以外からのメッセージの受理を示す図である。
以下に、本願の開示する情報処理装置、情報処理システム及び中継プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、インフィニバンドのRC方式を用いてプログラムがメッセージ通信を行う場合のモデルについて説明する。図1は、インフィニバンドのRC方式を用いてプログラムがメッセージ通信を行う場合のモデルを説明するための図である。
図1において、ユーザプログラム5は、インフィニバンドのRC方式を用いて通信するプログラムである。ibv_post_send、ibv_post_recv及びibv_poll_cqは、ユーザプログラム5がインフィニバンドのRC方式を用いて通信する場合に呼び出すIBユーザライブラリの関数である。
HCA4は、インフィニバンドを用いて通信する情報処理装置に装着されるアダプタである。HCA4は、QP41と、CQ42と、CQ43と、ポート44とを有する。QP41は、他のHCAが有するQPと通信する。QP41は、SQ(Send Queue:送信キュー)45と、RQ(Receive Queue:受信キュー)46とを有する。SQ45は、送信するメッセージに関する情報を格納するキューであり、RQ46は、受信したメッセージに関する情報を格納するキューである。
CQ42は、送信が完了したメッセージに関する情報を格納するキューであり、CQ43は、メッセージの受信完了に関する情報を格納するキューである。ポート44は、他のHCAのポートとメッセージを送受信する。
ユーザプログラム5は、メッセージの送信を行うとき、QP41に対してibv_post_send関数を実行する。ibv_post_send関数に渡されるデータは、送信処理要求SendWR(Send Work Request:送信WR)と呼ばれ、送信先の情報やバッファのアドレスを有する。
送信WRは、ibv_post_sendによってWQE(Work Queue Element)に変換されSQ45に積まれる。WQEには、送信すべきデータのポインタが含まれている。SQ45にWQEを積むことに成功すればibv_post_send関数はすぐに復帰する。
HCA4は、SQ45にWQEが積まれると、WQEの内容に従ってメッセージを送信する。送信が成功すると、HCA4は、SQからWQEを削除し、CQ42に対してCQE(Completion Queue Entry)を1つ積む。
ユーザプログラム5は、CQ42に対してibv_poll_cq関数を実行すると、CQEを順番に取り出すことができる。取り出し時にCQEは送信WC(Work Completion)に変換される。ユーザプログラム5は、送信WCの内容を確認することでメッセージの送信の完了を確認できる。
メッセージの受信を行うには、ユーザプログラム5は、メッセージが到着する前にQP41に対してibv_post_recv関数を実行する。ibv_post_recv関数に渡されるデータは、受信処理要求ReceiveWR(Receive Work Request:受信WR)と呼ばれ、バッファのアドレスなどを有する。受信WRは、ibv_post_recvによってWQEに変換されRQ46に積まれる。RQ46にWQEを積むことに成功すればibv_post_recv関数はすぐに復帰する。
HCA4は、メッセージがQP41に到着すると、RQ46のWQEを1個取り出して、その内容に従いメモリ上にメッセージデータを格納する。その後、HCA4は、CQ43に対してメッセージの受信完了を通知するCQEを1つ積む。
ユーザプログラム5は、CQ43に対してibv_poll_cq関数を実行すると、CQEを順番に取り出すことができる。取り出し時にCQEは受信WCに変換される。ユーザプログラム5は、受信WCの内容を確認することでメッセージの受信の完了を確認できる。
図2は、インフィニバンドとイーサネット(登録商標)及びIP(Internet Protocol)の概念の対比を示す図である。図2に示すように、HCAはNICに対応し、LIDはIPアドレスに対応し、QPはソケットに対応し、QP番号はポート番号に対応し、RCはTCPに対応し、SQはソケットの送信バッファに対応し、RQはソケットの受信バッファに対応する。ただし、インフィニバンドのCQに対応するイーサネット及びIPの概念はない。
次に、実施例に係る情報処理装置の機能構成について説明する。図3は、実施例に係る情報処理装置の機能構成を示す図である。図3に示すように、情報処理装置1は、ユーザランド2と、カーネルランド3と、HCA4とを有する。ユーザランド2は、CPUのユーザモードで実行されるプログラム部分であり、ユーザランド2のプログラムには、実行するCPUの命令やアクセスするメモリ空間に制限がある。カーネルランド3は、CPUの特権モードで実行されるプログラム部分であり、カーネルランド3のプログラムには、実行するCPUの命令やアクセスするメモリ空間に制限がない。
カーネルランド3には、HCAドライバ8が含まれる。HCAドライバ8は、HCA4を用いてメッセージを送受信するドライバである。
ユーザランド2には、ユーザプログラム5、IBユーザライブラリ6、中継プロキシ7が含まれる。IBユーザライブラリ6は、ユーザプログラム5がインフィニバンドを用いて通信する場合に呼び出すプログラムのライブラリであり、ibv_post_send、ibv_post_recv及びibv_poll_cqは、IBユーザライブラリ6に含まれる。
中継プロキシ7は、IBユーザライブラリ6に含まれる関数の呼び出しを横取りして追加処理を行うプログラムである。中継プロキシ7は、送信部71と受信部72と確認部73とを有する。
送信部71は、一定間隔でメッセージにQP番号を付加する。ここで、一定間隔とは、例えば、一定のメッセージの個数である。具体的には、ユーザプログラム5がibv_post_sendを使って送信WRを登録しようとすると、送信部71は、送信WRを横取りし、送信メッセージの間隔に基づいてQP番号をメッセージに付加するか否かを判断する。
そして、QP番号をメッセージに付加すると判断した場合には、送信部71は、ユーザプログラム5のメッセージ本体に4バイトのソースQPNを附加してカプセル化メッセージとして送信する。ここで、ソースQPNとはQP番号であり、カプセル化とは、ソースQPNを付加することである。
図4は、本来の送信データの一例を示す図であり、図5はカプセル化された送信データの一例を示す図である。図4に示すように、送信WR31には、sg_listとIMMが含まれる。sg_listは、スキャッタ/ギャザーリスト(scatter/gather list)32へのポインタであり、スキャッタ/ギャザーリスト32は、送信データを分散して格納する送信バッファへのポインタaddrのリストである。スキャッタ/ギャザーとは、複数のバッファに分かれたデータを集めて送・受信する機構である。なお、図4では、2つのaddrだけを示すが、スキャッタ/ギャザーリスト32は、3つ以上のaddrを有してよい。
IMMは、メモリを介したデータ転送とは別に、メッセージ毎につけられる4バイトのデータである。IMMはメッセージと一緒に転送されるが、受信バッファとは別の受信完了通知(受信WC)の中に記録される。すなわち、IMMを使ったデータ転送では、受信バッファなしに4バイトのデータを通知することができる。
送信部71は、IMMをメッセージがカプセル化されているか否かの識別に用いる。ただし、ユーザプログラム5はIMMを使用しており、ユーザによりIMMに設定された値を保護する必要がある。そこで、送信部71は、統計的な性質によりユーザプログラム5がIMMに設定することが少ない特定の値をカプセル化を識別する識別子として用いる。ここでは、送信部71は、特定の値として0xCAFEBABEを用いる。なお、0xは16進数を示す。
図5に示すように、送信部71は、ソースQPNを付加したカプセル化を行う場合、IMMフィールドに0xCAFEBABEを入れる。そして、送信部71は、ソースQPNと本来のIMMの値を記憶した送信バッファを用意し、用意した送信バッファへのポインタをスキャッタ/ギャザーリスト32に加える。
一方、QP番号をメッセージに付加しないと判断した場合には、送信部71は、本来の送信データをそのまま送信するようにHCAドライバ8に指示する。ただし、送信部71は、本来のメッセージのIMMの値が0xCAFEBABEである場合には、カプセル化してメッセージを送信する。このカプセル化は余分な処理でありオーバーヘッドであるが、識別子として統計的に出現頻度が小さい値を用いることによって、オーバーヘッドを少なくすることができる。
受信部72は、ユーザプログラム5がibv_post_recvを使って受信WRを登録しようとすると、ibv_post_recv関数の呼び出しを横取りする。そして、受信部72は、ソースQPNと本来のIMMの値を受け取るための余分の受信バッファを附加してカプセル化メッセージを受信可能な状態で登録する。
図6は、カプセル化されていない受信データの一例を示す図であり、図7はカプセル化された受信データの一例を示す図である。図6に示すように、カプセル化されていない受信データの場合、受信WR33のIMMには、ユーザプログラム5が指定した値が設定されている。一方、図7に示すように、カプセル化された受信データの場合、受信WR33のIMMには、0xCAFEBABEが設定されており、ユーザが指定した値は、追加された受信バッファにソースQPNとともに格納される。
確認部73は、ユーザプログラム5がibv_poll_cqを使って受信状態を確認しようとすると、受信WCのIMMの値を判定し、IMMの値が0xCAFEBABEでない場合には、ユーザプログラム5に受信WCを返す。
一方、IMMの値が0xCAFEBABEである場合には、確認部73は、メッセージからQP番号を取り出し、取り出したQP番号が本来の通信相手のQP番号であるか否かを判定する。そして、確認部73は、取り出したQP番号が本来の通信相手のQP番号である場合には、カプセル化を解除してユーザプログラム5に受信WCを返す。ここで、カプセル化の解除とは、バッファから取り出したIMMをメッセージ内にIMMに書き戻し、BYTE_LENの値を8減らし最後の8バイトを切り捨てることである。一方、取り出したQP番号が本来の通信相手のQP番号でない場合には、確認部73は、ユーザプログラム5には受信WCを返さない。
また、確認部73は、ユーザプログラム5がibv_poll_cqを使って送信状態を確認しようとすると、送信WCをユーザプログラム5に返す。
次に、送信WR31、受信WR33、スキャッタ/ギャザーリスト34、受信WCのデータ構造について図8〜図11を用いて説明する。図8は、送信WR31のデータ構造の一例を示す図である。図8に示すように、送信WR31には、sg_listと、num_sgeと、IMMとが含まれる。sg_listは、スキャッタ/ギャザーリスト34の配列へのポインタであり、num_sgeは、sg_listの先にある配列の個数である。IMMは、受信側に送る即値データである。
図9は、受信WR33のデータ構造の一例を示す図である。図9に示すように、受信WR33には、wr_idと、sg_listと、num_sgeと、IMMとが含まれる。wr_idは、受信WR33ごとに設定できる64ビット値であり、sg_listは、スキャッタ/ギャザーリスト34の配列へのポインタである。num_sgeは、sg_listの先にある配列の個数であり、IMMは、送信側から送られてきた即値データである。
図10は、スキャッタ/ギャザーリスト34の1つのエントリのデータ構造の一例を示す図である。図10に示すように、スキャッタ/ギャザーリスト34の1つのエントリには、addrと、lengthとが含まれる。addrは、スキャッタ/ギャザーリスト34の1組の開始アドレスすなわちデータが格納されたバッファへのポインタであり、lengthはスキャッタ/ギャザーリスト34の1組のバイトサイズすなわちバッファに格納されたデータのサイズである。
図11は、受信WCのデータ構造の一例を示す図である。図11に示すように、受信WCには、wr_idと、byte_lenと、IMMと、slidとが含まれる。wr_idは、受信WR33のwr_idがコピーされたものであり、byte_lenは、受信データのサイズである。IMMは、送信WR31のIMMがコピーされたものであり、slidは、送信元のLIDである。
次に、送信処理のフローについて説明する。図12は、送信処理のフローを示すフローチャートである。図12に示すように、送信部71は、メッセージをカプセル化するか否かを判定し(ステップS1)、カプセル化する場合には、メッセージをカプセル化してから送信する(ステップS3)。
一方、カプセル化しない場合には、送信部71は、IMMの値は0xCAFEBABEか否かを判定し(ステップS2)、0xCAFEBABEである場合には、メッセージをカプセル化してから送信する(ステップS3)。一方、0xCAFEBABEでない場合には、送信部71は、本来のインフィニバンドのメッセージのまま送信する(ステップS4)。
このように、送信部71は、一部のメッセージだけをカプセル化して送ることによって、効率よくメッセージを送信することができる。
次に、受信確認処理のフローについて説明する。図13は、受信確認処理のフローを示すフローチャートである。なお、確認部73は、ユーザプログラム5がibv_poll_cqを呼び出したタイミングで受信確認処理を横取りし、代わりに本処理を実行する。
図13に示すように、確認部73は、受信WCはあるか否かを判定し(ステップS11)、受信WCがない場合には、ユーザプログラム5に受信WCはなかったことを報告する(ステップS19)。
一方、受信WCがある場合には、確認部73は、受信WCのIMMを読み(ステップS12)、IMMは0xCAFEBABEか否かを判定する(ステップS13)。その結果、IMMが0xCAFEBABEでない場合には、本来のインフィニバンドのメッセージと判明するので、確認部73は、そのままユーザプログラム5に受信WCを返す(ステップS14)。
一方、IMMが0xCAFEBABEである場合には、カプセル化されたメッセージと判明するので、確認部73は、メッセージからソースQPNを取り出す(ステップS15)。具体的には、確認部73は、受信WCのWR_idから受信データを受け取った受信WR33を特定し、受信WR33のバッファに格納されたデータの最後の8バイト分にソースQPNと本来のIMMが付加されているのでこれを取り出す。そして、確認部73は、メッセージのソースQPNとQPの通信相手のQP番号を比較する(ステップS16)。
その結果、メッセージのソースQPNとQPの通信相手のQP番号が一致した場合には、確認部73は、メッセージのカプセル化を解除し、受信WCをユーザプログラム5に返す(ステップS17)。
一方、メッセージのソースQPNとQPの通信相手のQP番号が一致しない場合には、意図しない通信相手からの送信と判明するので、確認部73は、メッセージ及び受信WCを内部で破棄する。そして、確認部73は、ユーザプログラム5には受信WCがなかったと報告する(ステップS18)。
このように、確認部73は、メッセージのソースQPNとQPの通信相手のQP番号が一致しない場合にメッセージを内部で破棄するので、不正な送信者からのメッセージの受信を防ぐことができる。
上述してきたように、実施例では、送信部71は、一定間隔でメッセージにQP番号を付加して送信し、IMMを用いてQP番号が付加されているか否かを識別できるようにする。そして、確認部73は、IMMを用いて受信メッセージにQP番号が付加されているか否かを判定し、QP番号が付加されている場合だけ、QP番号のチェックを行う。したがって、中継プロキシ7は、効率よくQP番号をチェックすることができる。
また、実施例では、確認部73は、メッセージに付加されたQP番号が本来の通信相手のQP番号と異なる場合に、メッセージを破棄するので、ユーザプログラム5が不正に送信されるデータを誤って受信することを防ぐことができる。
また、実施例では、送信部71は、IMMを用いてメッセージがカプセル化されているか否かを識別できるようにするので、確認部73は、メッセージがカプセル化されているか否かを効率よく判定することができる。
なお、図3では、情報処理装置1の機能構成について説明したが、中継プロキシ7は、情報処理装置1が有するCPU(Central Processing Unit)によって実行される。そこで、中継プロキシ7を実行する情報処理装置1のハードウェア構成について説明する。
図14は、実施例に係る情報処理装置1のハードウェア構成を示す図である。図14に示すように、情報処理装置1は、メインメモリ21と、CPU22と、HCA23と、HDD(Hard Disk Drive)24とを有する。また、情報処理装置1は、スーパーIO(Input Output)25と、DVI(Digital Visual Interface)26と、ODD(Optical Disk Drive)27とを有する。
メインメモリ21は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU22は、メインメモリ21からプログラムを読み出して実行する中央処理装置である。CPU22は、メモリコントローラを有するチップセットを含む。
HCA23は、インフィニバンドにより通信を行う。HDD24は、プログラムやデータを格納するディスク装置であり、スーパーIO25は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI26は、液晶表示装置を接続するインタフェースであり、ODD27は、DVDの読み書きを行う装置である。
そして、情報処理装置1において実行される中継プロキシ7は、DVDに記憶され、ODD27によってDVDから読み出されて情報処理装置1にインストールされる。あるいは、中継プロキシ7は、HCA23を介して接続された他の情報処理装置のデータベースなどに記憶され、これらのデータベースから読み出されて情報処理装置1にインストールされる。そして、インストールされた中継プロキシ7は、HDD24に記憶され、メインメモリ21に読み出されてCPU22によって実行される。
図15は、実施例に係る情報処理システムの構成を示す図である。図15に示すように、情報処理システム10は、4つの情報処理装置1を有し、4つの情報処理装置1がスイッチ11で接続される。なお、ここでは、4つの情報処理装置1と1つのスイッチ11を有する場合を示したが、情報処理システム10は、任意の個数の情報処理装置1と複数のスイッチ11を有することができる。
1 情報処理装置
2 ユーザランド
3 カーネルランド
4 HCA
5 ユーザプログラム
6 IBユーザライブラリ
7 中継プロキシ
8 HCAドライバ
10 情報処理システム
11 スイッチ
21 メインメモリ
22 CPU
23 HCA
24 HDD
25 スーパーIO
26 DVI
27 ODD
31 送信WR
32,34 スキャッタ/ギャザーリスト
33 受信WR
41 QP
42,43 CQ
44 ポート
45 SQ
46 RQ
71 送信部
72 受信部
73 確認部

Claims (5)

  1. インフィニバンドを用いて他の情報処理装置との間で通信を行う情報処理装置において、
    前記他の情報処理装置にQP番号付きデータを送信する際に、送信処理要求の所定領域に特定のコードを入力し、該所定領域の情報はデータ部に移動し、データ部にQP番号を追記して送信する送信部と、
    他の情報処理装置から受信したデータの所定領域に前記特定のコードが入っている場合、データはQP番号付きと判別し、前記他の情報処理装置をQP番号に基づいて判別し、データ部に移動された所定領域の情報を所定領域に移動し、QP番号を削除してユーザライブラリに送信する受信確認部と
    を備えることを特徴とする情報処理装置。
  2. 前記受信確認部は、前記他の情報処理装置をQP番号に基づいて判別し、前記他の情報処理装置が本来の通信相手でない場合に、データを破棄することを特徴とする請求項1に記載の情報処理装置。
  3. 前記送信部は、前記他の情報処理装置にQP番号付きデータを送信しない場合でも、前記所定領域に特定のコードが入っている場合には、該所定領域の情報はデータ部に移動し、データ部にQP番号を追記して送信することを特徴とする請求項1に記載の情報処理装置。
  4. インフィニバンドを用いて第1の情報処理装置と第2の情報処理装置との間で通信を行う情報処理システムにおいて、
    前記第1の情報処理装置は、
    前記第2の情報処理装置にQP番号付きデータを送信する際に、送信処理要求の所定領域に特定のコードを入力し、所定領域の情報はデータ部に移動し、データ部にQP番号を追記して送信する送信部を備え、
    前記第2の情報処理装置は、
    前記第1の情報処理装置から受信したデータの所定領域に特定のコードが入っている場合、データはQP番号付きと判別し、前記第1の情報処理装置をQP番号に基づいて判別し、データ部に移動された所定領域の情報を所定領域移動し、QP番号を削除してユーザライブラリに送信する受信確認部を備え
    ることを特徴とする情報処理システム。
  5. インフィニバンドを用いて他の情報処理装置との間で通信を行う情報処理装置で実行される中継プログラムにおいて、
    前記他の情報処理装置にQP番号付きデータを送信する際に、送信処理要求の所定領域に特定のコードを入力し、所定領域の情報はデータ部に移動し、データ部にQP番号を追記して送信し、
    他の情報処理装置から受信したデータの所定領域に特定のコードが入っている場合、データはQP番号付きと判別し、前記他の情報処理装置をQP番号に基づいて判別し、データ部に移動された所定領域の情報を所定領域に移動し、QP番号を削除してユーザライブラリに送信する
    処理を前記情報処理装置に実行させる中継プログラム。
JP2014096871A 2014-05-08 2014-05-08 情報処理装置、情報処理システム及び中継プログラム Withdrawn JP2015216450A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014096871A JP2015216450A (ja) 2014-05-08 2014-05-08 情報処理装置、情報処理システム及び中継プログラム
US14/682,385 US9769093B2 (en) 2014-05-08 2015-04-09 Apparatus and method for performing InfiniBand communication between user programs in different apparatuses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014096871A JP2015216450A (ja) 2014-05-08 2014-05-08 情報処理装置、情報処理システム及び中継プログラム

Publications (1)

Publication Number Publication Date
JP2015216450A true JP2015216450A (ja) 2015-12-03

Family

ID=54368890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014096871A Withdrawn JP2015216450A (ja) 2014-05-08 2014-05-08 情報処理装置、情報処理システム及び中継プログラム

Country Status (2)

Country Link
US (1) US9769093B2 (ja)
JP (1) JP2015216450A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318362B2 (en) 2017-04-19 2019-06-11 Fujitsu Limited Information processing apparatus, information processing method, and non-transitory computer-readable storage medium
US10581748B2 (en) 2017-04-19 2020-03-03 Fujitsu Limited Information processing apparatus, information processing method, and non-transitory computer-readable storage medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11379404B2 (en) * 2018-12-18 2022-07-05 Sap Se Remote memory management

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010607B1 (en) * 1999-09-15 2006-03-07 Hewlett-Packard Development Company, L.P. Method for training a communication link between ports to correct for errors
US7149220B2 (en) 2002-04-25 2006-12-12 International Business Machines Corporation System, method, and product for managing data transfers in a network
US7024613B2 (en) * 2003-02-06 2006-04-04 International Business Machines Corporation Method and apparatus for implementing infiniband transmit queue
US7342934B1 (en) * 2004-03-29 2008-03-11 Sun Microsystems, Inc. System and method for interleaving infiniband sends and RDMA read responses in a single receive queue
US7620693B1 (en) * 2004-03-29 2009-11-17 Sun Microsystems, Inc. System and method for tracking infiniband RDMA read responses
US7466716B2 (en) * 2004-07-13 2008-12-16 International Business Machines Corporation Reducing latency in a channel adapter by accelerated I/O control block processing
US8458280B2 (en) * 2005-04-08 2013-06-04 Intel-Ne, Inc. Apparatus and method for packet transmission over a high speed network supporting remote direct memory access operations
US7889762B2 (en) * 2006-01-19 2011-02-15 Intel-Ne, Inc. Apparatus and method for in-line insertion and removal of markers
US7870306B2 (en) * 2006-08-31 2011-01-11 Cisco Technology, Inc. Shared memory message switch and cache
US8244825B2 (en) * 2006-11-06 2012-08-14 Hewlett-Packard Development Company, L.P. Remote direct memory access (RDMA) completion
US7899050B2 (en) * 2007-09-14 2011-03-01 International Business Machines Corporation Low latency multicast for infiniband® host channel adapters
US7936753B1 (en) * 2007-11-30 2011-05-03 Qlogic, Corporation Method and system for reliable multicast
US8566509B2 (en) * 2009-08-25 2013-10-22 International Business Machines Corporation Efficiently implementing a plurality of finite state machines
US8804752B2 (en) * 2011-05-31 2014-08-12 Oracle International Corporation Method and system for temporary data unit storage on infiniband host channel adaptor
US8880935B2 (en) * 2012-06-12 2014-11-04 International Business Machines Corporation Redundancy and load balancing in remote direct memory access communications
JP5896032B2 (ja) * 2012-09-20 2016-03-30 富士通株式会社 情報処理システム並びに管理装置、管理プログラム及び管理方法
US9069633B2 (en) * 2012-12-20 2015-06-30 Oracle America, Inc. Proxy queue pair for offloading
US9307053B2 (en) * 2013-04-23 2016-04-05 Cisco Technology, Inc. Direct data placement over user datagram protocol in a network environment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318362B2 (en) 2017-04-19 2019-06-11 Fujitsu Limited Information processing apparatus, information processing method, and non-transitory computer-readable storage medium
US10581748B2 (en) 2017-04-19 2020-03-03 Fujitsu Limited Information processing apparatus, information processing method, and non-transitory computer-readable storage medium

Also Published As

Publication number Publication date
US20150326661A1 (en) 2015-11-12
US9769093B2 (en) 2017-09-19

Similar Documents

Publication Publication Date Title
EP3706005B1 (en) Secure stream protocol for serial interconnect
US9158810B2 (en) Hardware message queues for intra-cluster communication
US8244826B2 (en) Providing a memory region or memory window access notification on a system area network
JP4743894B2 (ja) データ・パケットを伝送しながらセキュリティを改良するための方法及び装置
US7577707B2 (en) Method, system, and program for executing data transfer requests
CN111930676B (zh) 多处理器间的通信方法、装置、系统及存储介质
KR101752964B1 (ko) Am을 통한 rma api의 지원
EP2932690B1 (en) Copy offload for disparate offload providers
CN108023829B (zh) 报文处理方法及装置、存储介质、电子设备
US11095626B2 (en) Secure in-line received network packet processing
WO2014118652A1 (en) Boosting remote direct memory access performance using cryptographic hash based approach
US8438641B2 (en) Security protocol processing for anti-replay protection
CN101937417B (zh) Usb中断端点共享
US20230208825A1 (en) Method and Apparatus for Managing Reception of Secure Data Packets
JP2015216450A (ja) 情報処理装置、情報処理システム及び中継プログラム
CN110958216B (zh) 安全的在线网络分组传输
US11599649B2 (en) Method and apparatus for managing transmission of secure data packets
CN113037696B (zh) 一种数据传输方法、系统服务器、存储介质和计算机设备
JP2001027877A (ja) データ・ストリームに対してアルゴリズムを実行する装置
Frey Zero-copy network communication: An applicability study of iWARP beyond micro benchmarks
Liu et al. The implementation of video encryption network card
JP2020058028A (ja) 秘密情報送受信システム
JPWO2018131550A1 (ja) コネクション管理ユニット、およびコネクション管理方法
CN105681417A (zh) 计算机病毒隔离文件传输系统及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170206

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20171225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171228