CN102165739A - 使用散列对经由rdma写入的消息的可靠接收 - Google Patents

使用散列对经由rdma写入的消息的可靠接收 Download PDF

Info

Publication number
CN102165739A
CN102165739A CN2009801381794A CN200980138179A CN102165739A CN 102165739 A CN102165739 A CN 102165739A CN 2009801381794 A CN2009801381794 A CN 2009801381794A CN 200980138179 A CN200980138179 A CN 200980138179A CN 102165739 A CN102165739 A CN 102165739A
Authority
CN
China
Prior art keywords
message
hash
network system
rdma
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2009801381794A
Other languages
English (en)
Other versions
CN102165739B (zh
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.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
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 Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN102165739A publication Critical patent/CN102165739A/zh
Application granted granted Critical
Publication of CN102165739B publication Critical patent/CN102165739B/zh
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
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC

Landscapes

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

Abstract

本发明涉及使用散列对经由RDMA写入的消息的可靠接收。在一个实施例中,因为RDMA读取操作或RDMA写入操作,第一网络系统从第二网络系统获得消息和与之邻接的消息散列。第一网络系统生成所获得消息的计算出的散列并且将所计算的消息散列与所获得的消息散列比较。第一网络系统根据所计算散列是否等于所获得散列来处理所获得消息。

Description

使用散列对经由RDMA写入的消息的可靠接收
相关申请的交叉引用
本申请要求在2008年9月29日提交的USSN:12/240,830的优先权和利益,出于所有目的其全部合并在此作为参考。
技术领域
本公开一般地涉及用于处理经由远程直接存储器访问(RDMA)接收的消息的方法和装置。
背景技术
远程直接存储器访问(RDMA)是网络接口卡(NIC)的特征,其使得一台计算机直接访问另一台计算机的存储器中的信息。具体地,经由RDMA技术,计算机可从另一台计算机的存储器读取信息,以及将信息写入另一台计算机的存储器,而不会牵涉到计算机的操作系统或者中央处理器(CPU)中的任何一个。
附图说明
图1是示出其中可实现各个实施例的示例系统的框图。
图2是示出在贯穿于更新存储器的过程中的存储器内容以及当这些内容在更新过程期间被读取时可能导致的问题的示例的图形。
图3A是示出根据一个实施例的所更新存储器的示例的图形。
图3B是示出处理经由RDMA读取或写入操作获得的消息的示例性通常方法的处理流程图。
图4A是示出经由RDMA从存储器读取的示例性通常方法的处理流程图。
图4B是示出经由RDMA从存储器读取的示例方法的处理流程图。
图5A是示出经由RDMA写入到存储器的示例性通常方法的处理流程图。
图5B是示出经由RDMA写入到存储器的示例方法的处理流程图。
图6是其中可实现各个实施例的示例网络设备的图形表示。
具体实施方式
在以下的描述中,阐述了许多特定细节以便提供对所公开实施例的透彻理解。然而,对于本领域技术人员来说将明显的是,可在没有这些特定细节中的某些或全部的情况下实现所公开的实施例。在其它情况下,没有详细描述众所周知的处理步骤,以便简化描述。
概述
在一个实施例中,作为RDMA读取操作或RDMA写入操作的结果,第一网络系统从第二网络系统获得消息和与其邻接的消息的散列。第一网络系统生成所获得消息的计算出的散列,并且将所计算的消息散列与所获得的消息散列比较。第一网络系统根据所计算散列是否等于所获得散列来处理所获得消息。
实施例的具体示例
在以下描述中,经由RDMA读取操作读取或经由RDMA写入操作写入的存储器内容可称作为“消息”。该消息可包括数据和/或其它信息,例如命令(如请求)。命令可以是有条件的并且请求接收系统在出现指定条件时执行指定的动作。例如,条件可基于消息中提供的至少一部分数据。作为一个示例,第一系统可请求第二系统在处理达到特定的序号时执行指定的动作。
所公开的实施例使得经由RDMA读取操作或RDMA写入操作接收消息的系统能够确定消息是否为完整和有效的消息。当系统确定消息完整并且有效时,它可以继续处理消息。然而,如果系统确定RDMA读取操作或RDMA写入操作没有成功地完成,系统将不会处理消息。
图1是示出其中可实现各个实施例的示例系统的框图。如图1中所示,第一网络系统(例如计算机)102经由网络106连接到第二网络系统(例如计算机)104。该网络可以用多种RDMA技术实现,例如无限带宽或因特网广域RDMA协议(iWARP)。
第一计算机102的RDMA设备108(例如NIC)可以与第二计算机104的RDMA设备110通信。具体地,第一计算机102的RDMA设备108可以向第二计算机104的RDMA设备110发送请求(例如读取或写入请求)以便访问第二计算机104的存储器112。然后,第二计算机104的RDMA设备110可以通过经由系统总线114(例如外围组件互连(PCI)总线)访问存储器112来实现请求(例如读取或写入请求),该系统总线114可连接到芯片组116,芯片组116进一步连接到存储器112。以该方式,第二计算机104的RDMA设备110可代表第一计算机102执行操作。重要的是,要注意,以该方式访问第二计算机104的存储器112,不牵涉第二计算机104的中央处理器(CPU)118。
类似地,第二计算机104的RDMA设备110(例如NIC)可以与第一计算机102的RDMA设备108通信。具体地,第二计算机104的RDMA设备110可以向第一计算机102的RDMA设备108发送请求(例如读取或写入请求)以便访问第一计算机102的存储器120。然后,第一计算机102的RDMA设备108可以通过经由系统总线122(例如PCI总线)访问存储器120来实现请求(例如读取或写入请求),该系统总线122可连接到芯片组124,芯片组124进一步连接到存储器120。以该方式,第一计算机102的RDMA设备108可代表第二计算机104执行操作。重要的是,要注意,以该方式访问第一计算机102的存储器120,不牵涉第一计算机102的中央处理器(CPU)126。
图2是示出在贯穿于更新存储器的过程中的存储器内容以及当这些内容在更新过程期间被读取时可能导致的问题的示例的图形。假设在该示例中,第一计算机102的RDMA设备108向第二计算机104的RDMA设备110发出了读取请求,以便读取第二计算机104的存储器112的内容。然而,第二计算机104的CPU 118正在更新第二计算机104的存储器112的内容。在更新过程期间,可执行一个以上的计算。因此,当执行计算时刻更新存储器112的不同块,并且因此可在不同的时间更新存储器112的不同块。
例如,在第一时刻,可在202表示存储器112的内容。如所示的,存储块204、206、和208都存储有值“0”。在第二时刻,可在210表示存储器112的内容。如该示例中所示的,存储块204的内容已更新为存储有值“1”。在第三时刻,可在218表示存储器112的内容。存储块206的内容现在已更新为值“2”。不幸地,如果在更新过程的中间RDMA读取请求被发出,那么可在完成那些存储器的块的更新之前,读取一个或多个存储器的块。而且,可无序地读取存储器的块。在该示例中,存储器的块204、206、208的读取结果可分别为“0”、“2”、和“0”,如226所示,尽管已被读取的存储器的块204、206、208的内容在特定的时间点从没有存在过。
类似的问题可由于经由RDMA写入操作执行的远程存储器更新而出现。具体地,RDMA写入操作是“单向的”。换言之,当第一网络系统的第一RDMA执行RDMA写入操作来将消息写入到第二网络系统的存储器时,当RDMA写入操作完成时第一RDMA不通知第二网络系统。更具体地,第二网络系统的第二RDMA和在第二网络系统上运行的软件都不会接收RDMA写入操作完成的通知。不幸地,RDMA写入操作可按任何顺序将数据写入到接收系统的存储器。这些排序问题可能在接收系统无序地接收接收分组时,或者由于RDMA设备、系统总线等中的实现细节而出现。
为了避免获得和处理经由RDMA读取操作或RDMA写入操作获得的不完整的消息,所公开的实施例使得系统能够确定是否已经写入了完整的消息,以及该消息是否已准备好用于处理(而不是将会至少部分地由随后的操作重写的不完整消息)。尽管可以标记另外的存储位置(例如“有效”位)以表示存储器已被更新,该另外的存储器位置也可能被无序地写入。因此,有效位可在消息已变为有效之前被写入。还可以执行另外的事务(例如轮询存储器位置)以便确定存储器的更新是否已完成。然而,执行另外的事务将会减慢系统并且导致网络使用的效率降低。
在所公开的实施例中,可在RDMA读取操作或RDMA写入操作中涉及的两个网络系统上配置软件和/或硬件,将在下面更详细地描述。根据一个实施例,准备或生成要经由RDMA写入操作或本地写入操作写入的消息的系统可向消息应用散列函数以生成消息散列。然后,消息散列可连同消息一起以邻接方式存储在存储器中。例如,消息散列可“附加”到消息并且然后被存储。为了描绘消息及其对应散列之间的分隔,可在消息和对应散列之间存储指示符。作为候选,发送和接收网络系统两者可配置为识别消息和/或对应散列中的预定数量的位或预定组的位。尽管消息和/或对应散列可以是固定大小,所公开的实施例也可以用大小可变的消息来实现。例如,消息可包含表示消息和/或对应散列的长度的字段。然后,可通过消息的长度来计算散列。
所存储消息的一个示例将在下面参考图3来描述。然后,因为RDMA读取或RDMA写入操作而“接收”消息的系统可获得所存储散列,用于确定消息是否为有效完整的消息,如将在下面参考图4A到B以及图5A到B进一步详细描述。
图3A是示出根据一个实施例的所更新存储器的示例的图形。根据一个实施例,相关于单个“事务”(例如,将被在单次时间写入并且可被单独处理的每一个单位)有关的所有数据计算散列值。有关于单个事务的数据可称作为单个消息。散列值可存储在与消息相同的数据缓冲区中的邻接存储器中,这使得能够用传输消息的相同的RDMA操作来读取或写入散列值。以该方式,可尽可能高效地使用RDMA硬件,以最小化执行的操作数量。
如该示例中所示,存储器包括包含第一消息302的第一数据缓冲区,包含第二消息304的第二数据缓冲区,包含新的第三消息306的第三数据缓冲区、以及包含基于新的第三消息306生成的散列值308的第四数据缓冲区。在该示例中,散列值308存储为与新的第三消息306邻接,使得第三消息306和对应的散列值308能够经由单次读取操作从存储器被获取。重要的是,要注意,每一个消息可存储在一个或多个数据缓冲区中。可以按例如图3A中所示的方式来更新存储器。处理例如图3A中所示的数据结构(其可因为RDMA读取或RDMA写入操作而获得)的示例方法将在下面参考图3B来更详细地描述。
在以下描述中,清楚地指定由RDMA设备执行的操作。在所有其它情况下,操作被描述为经由“网络系统”被执行。换言之,网络系统可经由硬件和/或软件来实现这些操作。在一个实施例中,支持这里公开的RDMA读取操作和RDMA写入操作的软件在每一个网络系统上配置。因此,当该软件执行时,所公开的步骤可经由CPU(而不是RDMA设备)被执行。
图3B是示出确保经由RDMA读取或RDMA写入操作获得的消息为完整消息的示例性通常方法的处理流程图。在320,第一网络系统可从第一网络系统的存储器获得消息,其中存储器存储消息和消息散列为使得消息散列邻接消息,其中因为RDMA读取操作或RDMA写入操作,存储器中存储的消息和消息散列已经从第二网络系统接收。在322,第一网络系统可计算所获得消息的散列。在324,第一网络系统还可以从第一网络系统的存储器获得消息散列。在326,第一网络系统可以比较所计算的消息散列与所获得的消息散列,以确定所计算的散列是否等于所获得的散列。然后在328,第一网络系统可根据比较结果来处理所获得的消息。
参考图3B描述的处理可以应用于RDMA读取操作或RDMA写入操作的情况。确保在处理经由RDMA读取获得的消息之前已经写入了完整的消息的方法将在下面参考图4A到B来更详细地描述。执行实现了如图3A中所示的格式以确保在处理消息之前已写入了完整的消息的RDMA写入的方法将在下面参考图5A到B来更详细地描述。
如上所述,当网络系统更新其本地存储器时,网络系统可生成正被存储的消息的散列并且将该消息散列与消息以邻接方式存储。网络系统可在同一操作,或者在两个单独的操作中存储消息散列和消息。然后,消息和对应的散列可经由RDMA读取操作来获取。
图4A是示出经由RDMA读取操作从存储器进行读取的示例性通常方法的处理流程图。在402,第一网络系统的第一RDMA可将RDMA读取发送到第二网络系统的第二RDMA,其中RDMA读取请求第二网络系统的存储器中的下一个消息。然后在404,第一网络系统的第一RDMA可从第二网络系统的第二RDMA接收第二网络系统的存储器的块的内容,其中内容包括消息和消息散列(消息散列邻接于消息)。然后在406,第一RDMA可将数据缓冲区的内容存储到第一网络系统的存储器。在408,第一网络系统可从第一网络系统的存储器获得消息并且计算所获得消息的散列。在410,第一网络系统还可从第一网络系统的存储器获得消息散列。消息和消息散列可在单次读取操作中从第一网络系统的存储器获取。然后在412,第一网络系统可比较所计算的消息散列与所获得的消息散列,以确定所计算散列是否等于所获得散列。
然后在414,第一网络系统可根据比较结果来处理所获得的消息。更具体地,如果所计算散列等于所获得散列,第一网络系统可断定已经从第二网络系统的存储器成功读取了完整有效的消息。然后,第一网络系统可处理所获得的消息。处理可包括存储消息和/或另外的处理,将在下面参考图4B来更详细地描述。然而,如果所计算的散列不等于所获得的散列,消息(或消息散列)仍然在第一网络系统的存储器中被更新。因此,第一网络系统可断定,还没有从第二网络系统的存储器成功地取回完整有效的消息。然后,第一网络系统可重复步骤408-414,直到它确定已取回了有效完整的消息。
图4B是示出经由RDMA技术从存储器进行读取的示例方法的处理流程图。在该示例中,假设第二网络系统已经在先前更新了它的存储器,使得消息和消息散列以邻接方式存储。消息可包括在指定条件出现时执行指定动作的请求。在420,用户应用可启动第一网络系统的CPU(CPU1)以请求第一网络系统的RDMA(RDMA1)读取第二网络系统的存储器(MEM2)中的下一个消息。然后在422,RDMA1可经由网络向第二网络系统的RDMA(RDMA2)发送RDMA读取,以请求MEM2中的下一个消息的内容。在424,RDMA2可读取MEM2的至少一个数据缓冲区的内容并且将内容发送到RDMA1,使得RDMA1能够将内容存储到第一网络系统的存储器(MEM1)。在426,CPU可等待从MEM2读取消息缓冲区并且将其复制到MEM1完成的通知。然后在428,CPU1可检查本地存储器MEM1的内容。如果在430,确定MEM1为空,处理可在426重复。当确定MEM1不为空时,在432,CPU1可从MEM1读取消息以及从MEM1读取对应的散列,计算消息的散列并且将所计算散列与已从MEM1读取的散列比较。如果在434确定所计算散列与从存储器读取的散列匹配,那么可在436处理消息。然而,如果所计算散列与从存储器读取的散列不匹配,那么第一网络系统可在438断定MEM2仍在被更新,并且处理可在426重复。
图5A是示出经由RDMA写入操作写入到存储器的示例性通常方法的处理流程图。在502,第二网络系统的第二RDMA可从第一网络系统的第一RDMA接收块和RDMA写入,其中RDMA写入指示第一网络系统的第一RDMA请求将块写入到第二网络系统的存储器。块可包括消息和消息散列(消息散列邻接于消息)。在504,第二网络系统的第二RDMA可在第二网络系统的存储器的至少一个数据缓冲区中存储包括消息和消息散列的块,使得消息散列邻接于消息。在506,第二网络系统可从第二存储器获得消息并且计算所获得消息的散列。在508,第二网络系统还可从第二网络系统的存储器获得消息散列。从第二网络系统的存储器获得消息和从第二网络系统的存储器获得消息散列(如分别在步骤506和508中所述)可在单次读取操作中执行。在510,第二网络系统可比较所计算的消息散列与所获得消息散列,以确定所计算散列是否等于所获得的散列。
然后在512,第二网络系统可根据比较结果处理所获得的消息。更具体地,如果所计算散列等于所获得散列,第二网络系统可断定,第一网络系统已经成功地向第二网络系统的存储器写入了完整有效的消息。然后,第二网络系统可处理所获得消息。然而,如果所计算散列不等于所获得散列,RDMA写入仍然在进行中。换言之,消息(或消息的散列)仍然正在第二网络系统的存储器中更新。因此,第二网络系统可断定,还没有向第二网络系统的存储器成功地写入完整有效的消息。然后,第二网络系统可重复506-512,直到它确定已从其存储器取回了有效完整的消息。执行RDMA写入和随后的消息处理的示例将在下面参考图5B来更详细地描述。
图5B是示出经由RDMA技术写入到存储器的示例方法的处理流程图。在该示例中,消息包括当出现指定条件时第二网络系统执行指定动作的请求。在520,CPU1生成请求并且计算请求的散列,其中请求要求第二网络系统在出现指定条件(条件X)时执行指定动作。在522,CPU1可临时地存储请求和散列,使得它们以邻接方式作为块存储。在524,RDMA1可经由网络将RDMA写入和包括请求和散列的块发送到RDMA2。在526,RDMA2可将块写入到MEM2。在528,CPU2可从MEM2获取请求并且计算请求的散列。然后在530,CPU2可比较所计算散列与已存储在MEM2中的散列,以确定所计算散列是否等于先前存储的散列。如果在532确定所计算散列匹配于先前存储的散列,在534,CPU2可处理请求以在条件X出现时执行指定动作。如果所计算散列不匹配于先前存储的散列,处理可在528重复。
其它实施例
一般地,所公开的技术可以在软件和/或硬件上实现。例如,它们可在操作系统内核中,在单独的用户进程中,在绑定到网络应用的库程序包中,在专门构造的机器上,或者在网络接口卡上实现。在具体实施例中,所公开的技术以软件实现,例如操作系统或者操作系统上运行的应用。
所公开实施例的软件或软件/硬件混合实现可在存储器中存储的计算机程序选择性启动或重配置的通用可编程机器上实现。该可编程机器可以是设计为处理网络流量的网络设备,例如路由器或交换机。这些网络设备可具有多个网络接口,例如包括帧中继和ISDN接口。这些网络设备的具体示例包括路由器和交换机。例如,可在从San Jose,California的Cisco Systems公司可得到的特定配置的路由器或服务器中实现各个实施例。用于这些机器中某一些机器的通常体系结构将从下面给出的描述呈现。在候选实施例中,所公开技术可在通用网络主机上实现,例如个人计算机或工作站。此外,所公开实施例可至少部分地在用于网络设备或通用计算设备的卡(例如接口卡)上实现。
现在参考图5,适于实现所公开实施例的网络设备1560包括主中央处理器(CPU)1562、接口1568、和总线1567(例如PCI总线)。当在适当软件或固件的控制下作用时,CPU 1562可负责实现关联于期望网络设备的功能的特定功能。CPU 1562可在包括操作系统(例如Windows NT)和任何适当的应用软件的软件的控制下完成这些功能。
CPU 1562可包括一个或多个处理器1563,例如来自Motorola处理器系列或MIPS处理器系列的处理器。在候选实施例中,处理器1563可包括专门设计的硬件,用于控制网络设备1560的操作。在具体实施例中,存储器1561(例如非易失性RAM和/或ROM)也形成CPU 1562的一部分。然而,存在存储器可连接到系统的许多不同方式。存储器的块1561可用于多种目的,例如获取和/或存储消息或其它数据、编程指令等。
接口1568通常提供为接口卡(有时候称作为“线卡”)。通常,它们控制经由网络发送和接收数据分组并且有时候支持与网络设备1560一起使用的其它外围设备。一个或多个接口1568可包括RDMA设备。在可被提供的接口中,有以太网接口、帧中继接口、电缆接口、DSL接口、令牌环接口等。
另外,可提供各种非常高速的接口,例如快速以太网接口、千兆以太网接口、ATM接口、HSSI接口、POS接口、FDDI接口、ASI接口、DHEI接口等。通常,这些接口可包括适合于与适当媒体通信的端口。在某些情况下,它们也可包括独立的处理器,并且在某些情况下包括易失性RAM。独立处理器可控制这些通信密集型的任务,例如分组交换、媒体控制和管理。通过提供用于通信密集型任务的单独处理器,这些接口使得主微处理器1562能够有效地执行例行的计算、网络诊断、安全功能等。
尽管图5中示出的系统示出了一个具体的网络设备,但它绝不是所公开的实施例可在其上实现的唯一网络设备的体系结构。例如,常常使用具有处理通信以及路由计算的单个处理器的体系结构。此外,其它类型的接口和媒体也可与网络设备一起使用。
不管网络设备的结构如何,它可使用配置为存储数据、用于通用网络操作的程序指令和/或涉及这里描述的技术的功能的其它信息的一个或多个存储器或存储模块(例如存储模块1565)。程序指令例如可控制操作系统和/或一个或多个应用的操作。
因为这些信息和程序指令可用于实现这里描述的系统/方法,所公开的实施例涉及包括用于执行这里描述的各种操作的程序指令、状态信息等的机器可读媒体。机器可读媒体的示例包括但不限于磁性媒体,例如硬盘、软盘、和磁带;光学媒体,例如CD-ROM盘;磁光媒体,例如光磁软盘;和专门配置为存储和执行程序指令的硬件设备,例如只读存储器设备(ROM)和随机访问存储器(RAM)。程序指令的示例包括例如由编译器产生的机器码,和包含可由计算机使用解释器执行的高级代码的文件。
尽管这里示出和描述了说明性实施例和所公开实施例的应用,仍然处于所公开实施例的原理、范围、和精神内的许多变化和修改是可能的,并且在熟读了本申请之后,这些变化对于本领域技术人员来说将变得清楚。而且,所公开的实施例不必使用上述的步骤来实现。因此,本实施例应当被认为是说明性而非限制性的,并且所公开的实施例不限于这里给出的细节,而是可以在所附权利要求的范围及其等同物内被修改。

Claims (20)

1.一种方法,包括:
由第二网络系统的第二RDMA从第一网络系统的第一RDMA接收RDMA写入和块,所述块包括消息和所述消息的散列,所述消息的散列邻接于所述消息,其中所述RDMA写入指示所述第一网络系统的第一RDMA请求将所述块写入到所述第二网络系统的存储器;
由所述第二网络系统的第二RDMA在所述第二网络系统的存储器的至少一个数据缓冲区中存储包括所述消息和所述消息的散列的所述块,使得所述消息的所述散列邻接于所述消息;
由所述第二网络系统从所述第二网络系统的存储器获得所述消息并且由所述第二网络系统计算所获得消息的散列;
从所述第二网络系统的存储器获得所述消息的散列;
由所述第二网络系统确定所计算的所述消息的散列是否等于所获得的所述消息的散列;以及
根据所述确定结果来处理所获得的消息。
2.根据权利要求1所述的方法,其中当所计算的散列等于所获得的散列时处理所获得的消息。
3.根据权利要求2所述的方法,其中所述消息包括所述第二网络系统在出现指定条件时执行指定动作的请求,所述方法还包括:
当出现所述指定条件时执行所述指定动作。
4.根据权利要求3所述的方法,其中所述消息还包括数据,并且其中所述指定的条件基于所包括的数据。
5.根据权利要求1所述的方法,其中当所计算散列不等于所获得散列时,重复获得消息、计算散列、获得散列、以及确定的步骤。
6.根据权利要求1所述的方法,还包括:
由所述第一网络系统生成所述消息;和
由所述第一网络系统计算所述消息的散列。
7.根据权利要求1所述的方法,其中从所述第二网络系统的存储器获得所述消息和从所述第二网络系统的存储器获得所述消息的散列在单次读取操作中被执行。
8.一种方法,包括:
由第一网络系统的第一RDMA将RDMA读取发送到第二网络系统的第二RDMA,所述RDMA读取请求所述第二网络系统的存储器中的下一个消息;
由所述第一网络系统的第一RDMA从所述第二网络系统的第二RDMA接收所述第二网络系统的存储器的至少一个数据缓冲区的内容,所述内容包括消息和所述消息的散列,所述消息的散列邻接于所述消息;
由所述第一RDMA将所述数据缓冲区的内容存储到所述第一网络系统的存储器;
从所述第一网络系统的存储器获得所述消息并且由所述第一网络系统计算所获得消息的散列;
从所述第一网络系统的存储器获得所述消息的散列;
由所述第一网络系统确定所计算的所述消息的散列是否等于所获得的所述消息的散列;以及
根据所述确定结果来处理所获得的消息。
9.根据权利要求8所述的方法,其中当所计算的散列等于所获得的散列时处理所获得的消息。
10.根据权利要求9所述的方法,其中所述消息包括在出现指定条件时执行指定动作的请求,所述方法还包括:
当出现所述指定条件时执行所述指定动作。
11.根据权利要求10所述的方法,其中所述消息还包括数据,并且其中所述指定的条件基于所述数据。
12.根据权利要求8所述的方法,其中当所计算散列不等于所获得散列时,重复获得消息、计算消息的散列、获得消息的散列、以及确定的步骤。
13.根据权利要求8所述的方法,还包括:
由所述第二网络系统的第二RDMA从所述第一网络系统的第一RDMA接收所述RDMA读取;
由所述第二网络系统的第二RDMA读取所述第二网络系统的存储器的至少一个数据缓冲区;和
由所述第二网络系统的第二RDMA向所述第一网络系统的所述第一RDMA发送所述数据缓冲区的内容。
14.根据权利要求8所述的方法,还包括:
其中从所述第一网络系统的存储器获得所述消息和从所述第一网络系统的存储器获得所述消息的散列在单次读取操作中被执行。
15.一种装置,包括:
RDMA设备;和
处理器和存储器,所述处理器或所述存储器中的至少一个适用于:
从所述存储器获得消息,其中所述存储器存储所述消息和所述消息的散列,使得所述消息的散列邻接于所述消息,其中所述存储器中存储的所述消息和所述消息的散列是由于RDMA读取操作或RDMA写入操作而被从另一个网络系统接收的;
计算所获得消息的散列;
从所述存储器获得所述消息的散列;
确定所计算的所述消息的散列是否等于所获得的所述消息的散列;以及
根据所述确定的结果来处理所获得的消息。
16.根据权利要求15所述的装置,其中当所计算的散列等于所获得的散列时处理所获得的消息。
17.根据权利要求15所述的装置,其中当所计算散列不等于所获得散列时,重复获得消息、计算消息的散列、获得消息的散列、以及确定的步骤。
18.根据权利要求15所述的装置,其中所述消息和所述消息的散列经由单次读取操作从存储器获得。
19.根据权利要求15所述的装置,其中所述消息包括当出现指定条件时执行指定动作的请求。
20.一种计算机可读介质,其上存储有计算机可读指令,所述指令包括:
用于由第一网络系统从所述第一网络系统的存储器获得消息的指令,其中所述存储器存储所述消息和所述消息的散列,使得所述消息的散列邻接于所述消息,其中所述存储器中存储的所述消息和所述消息的散列是由于RDMA读取操作或RDMA写入操作而被从第二网络系统接收的;
用于由所述第一网络系统计算所获得消息的散列的指令;
用于从所述第一网络系统的存储器获得所述消息的散列的指令;
用于由所述第一网络系统确定所计算的所述消息的散列是否等于所获得的所述消息的散列的指令;以及
用于根据所述确定结果来处理所获得的消息的指令。
CN200980138179.4A 2008-09-29 2009-09-24 使用散列对经由rdma写入的消息的可靠接收 Expired - Fee Related CN102165739B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/240,830 2008-09-29
US12/240,830 US8019826B2 (en) 2008-09-29 2008-09-29 Reliable reception of messages written via RDMA using hashing
PCT/US2009/058262 WO2010036823A1 (en) 2008-09-29 2009-09-24 Reliable reception of messages written via rdma using hashing

Publications (2)

Publication Number Publication Date
CN102165739A true CN102165739A (zh) 2011-08-24
CN102165739B CN102165739B (zh) 2014-05-07

Family

ID=42058727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980138179.4A Expired - Fee Related CN102165739B (zh) 2008-09-29 2009-09-24 使用散列对经由rdma写入的消息的可靠接收

Country Status (4)

Country Link
US (1) US8019826B2 (zh)
EP (1) EP2342872B1 (zh)
CN (1) CN102165739B (zh)
WO (1) WO2010036823A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506828A (zh) * 2020-12-18 2021-03-16 展讯半导体(成都)有限公司 直接内存访问的传输配置方法及装置
CN113132413A (zh) * 2015-11-11 2021-07-16 万事达卡国际股份有限公司 通过接受帧验证散列数据的方法和系统

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601310B2 (en) 2010-08-26 2013-12-03 Cisco Technology, Inc. Partial memory mirroring and error containment
US9569400B2 (en) * 2012-11-21 2017-02-14 International Business Machines Corporation RDMA-optimized high-performance distributed cache
US9332083B2 (en) 2012-11-21 2016-05-03 International Business Machines Corporation High performance, distributed, shared, data grid for distributed Java virtual machine runtime artifacts
US9378179B2 (en) 2012-11-21 2016-06-28 International Business Machines Corporation RDMA-optimized high-performance distributed cache
US9218314B2 (en) 2013-02-01 2015-12-22 International Business Machines Corporation Boosting remote direct memory access performance using cryptographic hash based approach
WO2019140556A1 (zh) 2018-01-16 2019-07-25 华为技术有限公司 一种报文传输的方法及装置
US11379404B2 (en) * 2018-12-18 2022-07-05 Sap Se Remote memory management
US10785306B1 (en) 2019-07-11 2020-09-22 Alibaba Group Holding Limited Data transmission and network interface controller

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020026502A1 (en) * 2000-08-15 2002-02-28 Phillips Robert C. Network server card and method for handling requests received via a network interface
CN1487418A (zh) * 2002-09-05 2004-04-07 �Ҵ���˾ 远端直接存储器存取启用网络适配器的存储器管理卸载
US20060067346A1 (en) * 2004-04-05 2006-03-30 Ammasso, Inc. System and method for placement of RDMA payload into application memory of a processor system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823453B1 (en) * 2000-10-06 2004-11-23 Hewlett-Packard Development Company, L.P. Apparatus and method for implementing spoofing-and replay-attack-resistant virtual zones on storage area networks
US7343541B2 (en) * 2003-01-14 2008-03-11 Broadcom Corporation Data integrity in protocol offloading
US7114033B2 (en) * 2003-03-25 2006-09-26 Emc Corporation Handling data writes copied from a remote data storage device
US20060034283A1 (en) * 2004-08-13 2006-02-16 Ko Michael A Method and system for providing direct data placement support
US7619993B2 (en) 2005-11-01 2009-11-17 International Business Machines Corporation Efficient probabilistic duplicate packet detector in computer networks
US7303301B2 (en) * 2005-11-01 2007-12-04 Nexxus Lighting, Inc. Submersible LED light fixture
US8244826B2 (en) * 2007-10-23 2012-08-14 International Business Machines Corporation Providing a memory region or memory window access notification on a system area network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020026502A1 (en) * 2000-08-15 2002-02-28 Phillips Robert C. Network server card and method for handling requests received via a network interface
CN1487418A (zh) * 2002-09-05 2004-04-07 �Ҵ���˾ 远端直接存储器存取启用网络适配器的存储器管理卸载
US20060067346A1 (en) * 2004-04-05 2006-03-30 Ammasso, Inc. System and method for placement of RDMA payload into application memory of a processor system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113132413A (zh) * 2015-11-11 2021-07-16 万事达卡国际股份有限公司 通过接受帧验证散列数据的方法和系统
CN113132413B (zh) * 2015-11-11 2023-08-25 万事达卡国际股份有限公司 通过接受帧验证散列数据的方法和系统
CN112506828A (zh) * 2020-12-18 2021-03-16 展讯半导体(成都)有限公司 直接内存访问的传输配置方法及装置
CN112506828B (zh) * 2020-12-18 2024-05-17 展讯半导体(成都)有限公司 直接内存访问的传输配置方法及装置

Also Published As

Publication number Publication date
EP2342872A4 (en) 2014-08-06
US20100082766A1 (en) 2010-04-01
CN102165739B (zh) 2014-05-07
WO2010036823A1 (en) 2010-04-01
EP2342872A1 (en) 2011-07-13
EP2342872B1 (en) 2019-03-13
US8019826B2 (en) 2011-09-13

Similar Documents

Publication Publication Date Title
CN102165739B (zh) 使用散列对经由rdma写入的消息的可靠接收
JP4452742B2 (ja) Tcp(transportcontrolprotocol)スタック処理の高速化
US7784060B2 (en) Efficient virtual machine communication via virtual machine queues
US8495262B2 (en) Using a table to determine if user buffer is marked copy-on-write
US10846124B2 (en) Communication method, apparatus and system for virtual machine and host machine
US9921868B2 (en) Cooperated interrupt moderation for a virtualization environment
US20060010254A1 (en) Dynamic network interface
CN112416840A (zh) 一种计算资源的远程映射方法、装置、设备及存储介质
WO1994008308A1 (en) Method and apparatus for processing data within stations of a communication network
CN103294580B (zh) 实时性能监控
US11210127B2 (en) Method and apparatus for processing request
CN110046114B (zh) 基于pcie协议的dma控制器及dma数据传输方法
CN114025032B (zh) Ems与bms的传输协议方法、系统、设备及存储介质
CN107741965B (zh) 数据库同步处理方法、装置、计算设备及计算机存储介质
JP2012089948A (ja) データ転送装置及びデータ転送方法
CN115904259A (zh) 非易失性存储器标准NVMe指令的处理方法及相关装置
CN111371799B (zh) Mctp控制器收发数据的控制方法、装置及设备
JP4218034B2 (ja) データ通信システムおよびデータ通信方法、データ通信プログラム
CN113868218A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN117076409B (zh) 文件共享方法、装置、系统、电子设备及存储介质
US7478137B1 (en) Lightweight messaging with and without hardware guarantees
JP4164270B2 (ja) サーボコントローラ
JP2853607B2 (ja) ジョブ間通信システム
CN113485784A (zh) 一种模型训练方法及装置
JPH09171493A (ja) データ転送装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140507

Termination date: 20200924

CF01 Termination of patent right due to non-payment of annual fee