电子通信装置的制造及其应用技术一种实现rdma网络可靠组播方法、装置、存储介质及设备技术领域1.本技术涉及通信技术领域,尤其涉及一种实现rdma网络可靠组播方法、装置、存储介质及设备。背景技术:2.随着网络技术的快速发展,当今的世界已经进入快速发展的网络时代,而组播(multicast)作为网络的基本传输模式之一,如何确保每一个目的端能够可靠的接收到源端发送的每一份数据,实现可靠组播显得尤为重要。其中,组播的特点是一个源端将同样的数据发送给多个目的端。组播包含多种实现方式,比如源端利用单播,通过n次发送把同样的数据发给n个目的端;或者源端发送一份数据,再由网络设备(交换机或路由器)将报文复制n份,分别传输到n个目的端。显然,第二种实现方式中由于源端只发送了一份数据,使得发送时延更小、占用带宽更少。3.目前常用的实现组播的基本架构如图1所示,图1中交换机分别和组播源端(mc source)和各个目的端(receiver)建立远程直接内存访问(remote direct memory access,rdma)单播reliable connection(rc)连接。在组播时,源端首先向交换机发送携带组播相关信息的元数据,交换机接收元数据并记录。然后,源端向交换机发送组播数据报文。交换机根据记录的元数据信息,将该数据报文复制并发送给每一个目的端。但在该实现组播的方法中,由于交换机和源端、目的端间均建立了rc连接,导致交换机需要维护复杂的rc连接相关状态机。并且,交换机作为rc连接的一端,还需要具备丢包重传功能,因而需要储存尚未被确认的报文,从而占用了宝贵的交换机缓存资源。此外,由于交换机和源端、目的端间均建立了rc连接,也打破了端到端的通信原则,导致可能产生假的确认报文(acknowledge character,ack)的问题。例如,当交换机收到源端发送的组播数据报文后需要回复ack,源端收到ack即认为组播通信完成。然而,如果此时交换机与某个目的端的连接断开,该组播通信最终无法完成,从而造成源端认知与实际情况的不一致,无法实现可靠组播。技术实现要素:4.本技术实施例提供了一种实现rdma网络可靠组播方法、装置、存储介质及设备,能够是在兼容标准rdma协议的前提下,利用交换机实现rdma网络中的可靠组播。5.第一方面,本技术提供了一种实现rdma网络可靠组播方法,该方法包括:交换机首先接收源端发送的envelope控制报文和组播数据报文,其中,envelope控制报文为标准rdma协议报文,envelope控制报文的载荷包括envelope报文识别标签tag、与源端建立了队列对qp关联的目的端的网络地址、与源端建立了队列对qp关联的目的端队列对的qpn、目的端的内存区mr信息、源端的qpn,然后,交换机根据envelope报文识别标签tag识别envelope控制报文,并提取和记录envelope控制报文的载荷中包含的内容,接着,交换机利用记录的envelope控制报文中的内容替换组播数据报文和/或组播数据报文对应的反馈报文ack/nack中的对应域,进一步可以再按照预设规则对组播数据报文进行转发。6.与传统技术相比,本技术实施例能够是在兼容标准rdma协议且无需交换机与源端、目的端间分别建立rc连接的情况下,利用交换机实现组播报文的复制和转发,进而实现了rdma网络中的可靠组播。7.一种可能的实现方式中,交换机利用记录的envelope控制报文中的内容替换组播数据报文和/或所述组播数据报文对应的反馈报文ack/nack中的对应域,包括:交换机利用记录的envelope控制报文中的内容替换组播数据报文中的目的网络地址、bth包头内的目的qpn和内存地址域;和/或,交换机利用记录的envelope控制报文中的内容替换组播数据报文对应的反馈报文ack/nack的源网络地址、bth包头内的目的qpn。8.一种可能的实现方式中,交换机按照预设规则对组播数据报文进行转发,包括:9.交换机按照预设规则,根据与源端建立了队列对qp的目的端的网络地址,将组播数据报文发送到各个出端口;10.其中,预设规则包括:11.交换机仅将组播数据报文转发给尚未收到对应确认报文ack的目的端;12.交换机仅转发所有目的端发来的ack报文中最后一个到达的;13.交换机仅转发所有目的端发来的nack报文中包序列号psn最小的一个。14.第二方面,本技术还提供了一种实现rdma网络可靠组播方法,该方法包括:首先源端和目的端按照标准rdma协议,分别建立队列对qp,其中,qp包含队列对识别号qpn;源端qp与第一目的端的qp关联;所有目的端qp与源端qp关联;关联包括指定qp对端的qpn和网络地址,然后源端利用该qp,向交换机发送envelope控制报文和组播数据报文,以便交换机利用envelope控制报文中的内容替换组播数据报文和/或组播数据报文对应的反馈报文ack/nack中的对应域,并按照预设规则对组播数据报文进行转发;15.其中,envelope控制报文的载荷包括envelope报文识别标签tag、目的端的网络地址、目的端的qpn、目的端的内存区mr信息、源端的qpn。16.一种可能的实现方式中,源端利用qp,向交换机发送envelope控制报文和组播数据报文包括:源端利用qp,采用rdma write操作或send/recv操作的方式向交换机发送envelope控制报文和组播数据报文。17.第三方面,本技术还提供了一种实现rdma网络可靠组播装置,该装置包括:18.接收单元,用于交换机接收源端发送的envelope控制报文和组播数据报文,其中,envelope控制报文为标准rdma协议报文,其中,envelope控制报文的载荷包括envelope报文识别标签tag、与源端建立了队列对qp关联的目的端的网络地址、与源端建立了队列对qp关联的目的端队列对的qpn、目的端的内存区mr信息、源端的qpn;19.提取单元,用于交换机根据envelope报文识别标签tag识别envelope控制报文,并提取和记录envelope控制报文包含的内容;20.替换单元,用于交换机利用记录的envelope控制报文中的内容替换组播数据报文和/或组播数据报文对应的反馈报文ack/nack中的对应域;21.转发单元,用于交换机按照预设规则对组播数据报文进行转发。22.一种可能的实现方式中,替换单元具有用于:交换机利用记录的envelope控制报文中的内容替换组播数据报文中的目的网络地址、bth包头内的目的qpn和内存地址域;23.和/或,所述交换机利用记录的所述envelope控制报文中的内容替换所述组播数据报文对应的反馈报文ack/nack的源网络地址、bth包头内的目的qpn。24.一种可能的实现方式中,转发单元具体用于:交换机按照预设规则,根据与源端建立了队列对qp的目的端的网络地址,将组播数据报文发送到各个出端口;25.其中,预设规则包括:26.交换机仅将组播数据报文转发给尚未收到对应确认报文ack的目的端;27.交换机仅转发所有目的端发来的ack报文中最后一个到达的;28.交换机仅转发所有目的端发来的nack报文中包序列号psn最小的一个。29.第四方面,本技术还提供了一种实现rdma网络可靠组播装置,该装置包括:30.建立单元,用于源端和目的端按照标准rdma协议,分别建立队列对qp,所述qp包含队列对识别号qpn;所述源端qp与第一目的端的qp关联;所有目的端qp与源端qp关联;所述关联包括指定qp对端的qpn和网络地址;31.发送单元,用于源端利用qp,向交换机发送envelope控制报文和组播数据报文,以便交换机利用envelope控制报文中的内容替换所述组播数据报文和/或所述组播数据报文对应的反馈报文ack/nack中的对应域,并按照预设规则对组播数据报文进行转发;32.其中,所述envelope控制报文的载荷包括envelope报文识别标签tag、所述目的端的网络地址、所述目的端的qpn、目的端的内存区mr信息、所述源端的qpn。33.一种可能的实现方式中,发送单元具体用于:源端利用qp,采用rdma write操作或send/recv操作的方式向交换机发送envelope控制报文和组播数据报文。34.第五方面,本技术还提供了一种实现rdma网络可靠组播设备,该设备包括:存储器、处理器;35.存储器,用于存储指令;处理器,用于执行存储器中的指令,执行上述第一方面及其任意一种可能的实现方式中的方法。36.第六方面,本技术还提供了一种实现rdma网络可靠组播设备,该设备包括:存储器、处理器;37.存储器,用于存储指令;处理器,用于执行存储器中的指令,执行上述第二方面及其任意一种可能的实现方式中的方法。38.第七方面,本技术还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述任意一项方法。39.从以上技术方案可以看出,本技术实施例具有以下优点:40.本技术实施例为了实现rdma网络的可靠组播,交换机首先接收源端发送的envelope控制报文和组播数据报文,其中,envelope控制报文为标准rdma协议报文,envelope控制报文的载荷包括envelope报文识别标签tag、与源端建立了队列对qp关联的目的端的网络地址、与源端建立了队列对qp关联的目的端队列对的qpn、目的端的内存区mr信息、源端的qpn,然后,交换机根据envelope报文识别标签tag识别envelope控制报文,并提取和记录envelope控制报文的载荷中包含的内容,接着,交换机利用记录的envelope控制报文中的内容替换组播数据报文和/或组播数据报文对应的反馈报文ack/nack中的对应域,进一步可以再按照预设规则对组播数据报文进行转发。从而能够是在兼容标准rdma协议且无需交换机与源端、目的端间分别建立rc连接的情况下,利用交换机实现组播报文的复制和转发,进而实现了rdma网络中的可靠组播。附图说明41.图1为本技术实施例提供的目前常用的实现组播的基本架构图;42.图2为本技术实施例提供的一种实现rdma网络可靠组播方法的流程图;43.图3为本技术实施例的提供的利用交换机进行报文转发的交互示意图;44.图4为本技术实施例提供的另一种实现rdma网络可靠组播方法的流程图;45.图5为本技术实施例的提供的实现rdma网络可靠组播的场景示例图之一;46.图6为本技术实施例的提供的实现rdma网络可靠组播的场景示例图之二;47.图7为本技术实施例提供的一种实现rdma网络可靠组播装置的结构框图;48.图8为本技术实施例提供的另一种实现rdma网络可靠组播装置的结构框图;49.图9为本技术实施例提供的一种实现rdma网络可靠组播设备的结构示意图;50.图10为本技术实施例提供的另一种实现rdma网络可靠组播设备的结构示意图。具体实施方式51.本技术实施例提供了一种实现rdma网络可靠组播方法、装置、存储介质及设备,能够是在兼容标准rdma协议的前提下,利用交换机实现rdma网络中的可靠组播。52.下面结合附图,对本技术的实施例进行描述。53.在目前常用的实现组播方法中,通常是交换机分别和组播源端和各个目的端建立rdma单播连接。在组播时,源端首先向交换机发送携带组播相关信息的元数据,交换机接收元数据并记录。然后,源端向交换机发送组播数据报文。交换机根据记录的元数据信息,将该数据报文复制并发送给每一个目的端。但在该实现组播的方法中,由于交换机和源端、目的端间均建立了rc连接,导致交换机需要维护复杂的rc连接相关状态机。并且,交换机作为rc连接的一端,还需要具备丢包重传功能,因而需要储存尚未被确认的报文,从而占用了宝贵的交换机缓存资源。此外,由于交换机和源端、目的端间均建立了rc连接,也打破了端到端的通信原则,导致可能产生假的ack的问题。例如,当交换机收到源端发送的组播数据报文后需要回复ack,源端收到ack即认为组播通信完成。然而,如果此时交换机与某个目的端的连接断开,该组播通信最终无法完成,从而造成源端认知与实际情况的不一致,无法实现可靠组播。54.为了解决上述问题,本技术提供了一种实现rdma网络的可靠组播方法,能够是在兼容标准rdma协议的前提下,利用交换机实现rdma网络中的可靠组播。具体来讲,交换机首先接收源端发送的envelope控制报文和组播数据报文,其中,envelope控制报文为标准rdma协议报文,envelope控制报文的载荷包括envelope报文识别标签tag、与源端建立了队列对qp关联的目的端的网络地址、与源端建立了队列对qp关联的目的端队列对的qpn、目的端的内存区mr信息、源端的qpn,然后,交换机根据envelope报文识别标签tag识别envelope控制报文,并提取和记录envelope控制报文的载荷中包含的内容,接着,交换机利用记录的envelope控制报文中的内容替换组播数据报文和/或组播数据报文对应的反馈报文ack/nack中的对应域,进一步可以再按照预设规则对组播数据报文进行转发。从而能够是在兼容标准rdma协议且无需交换机与源端、目的端间分别建立rc连接的情况下,利用交换机实现组播报文的复制和转发,进而实现了rdma网络中的可靠组播。55.参见图2,为本实施例提供的一种实现rdma网络可靠组播方法的流程示意图,该方法包括以下步骤:56.s201:交换机接收源端发送的envelope控制报文和组播数据报文,其中,envelope控制报文为标准rdma协议报文,envelope控制报文的载荷包括envelope报文识别标签tag、与源端建立了队列对qp关联的目的端的网络地址、与源端建立了队列对qp关联的目的端队列对的qpn、目的端的内存区mr信息、源端的qpn。57.在本实施例中,为了实现rdma网络可靠组播,首先需要组播源端和组播目的端按照标准rdma协议分别建立队列对(queue pair,qp),且qp包含队列对识别号qpn。源端qp与第一目的端的qp关联;所有目的端qp与源端qp关联;其中,关联包括指定qp对端的qpn和网络地址。具体来讲,源端qp关联的对端(即目的端),qpn为特定虚拟qpn(例如,0x800001),起始包序列号(packet sequence number,psn)为0,网络地址为目的端dst0的网络地址。而目的端qp关联的对端,qpn为特定虚拟qpn,起始psn为0,网络地址为源端的网络地址。58.在此基础上,交换机接收源端利用建立好的qp发送的envelope控制报文和组播数据报文。其中,envelope控制报文为标准rdma协议报文,envelope控制报文的载荷包括envelope报文识别标签tag、目的端的网络地址、目的端的qpn、目的端的内存区mr信息、源端的qpn,例如,一种envelope报文的可能格式如下表1所示:59.eth,dst0’s ip,udp,bth(qpn=0x800001),reth(用于放mr信息)envelope tagdst1~dstn’s ipdst0~dstn’s qpndst0~dstn’s mrsource’s qpn60.表161.这样,交换机在接收到源端发送的如表1所示的envelope控制报文和对应的组播数据报文后,可以通过执行后续步骤s202-s204,按照如图3所示的报文转发流程,实现rdma网络可靠组播。62.s202:交换机根据envelope报文识别标签tag识别envelope控制报文,并提取和记录envelope控制报文的载荷中包含的内容。63.在本实施例中,交换机通过步骤s201接收到源端发送的envelope控制报文和组播数据报文后,进一步可以根据上述虚拟qpn(属于bth中的一部分)识别包含envelope控制报文和组播数据报文的组播报文,再根据envelope报文识别标签tag识别envelope控制报文,并提取和记录envelope控制报文的载荷中包含的内容,即,envelope报文识别标签tag、与源端建立了队列对qp关联的目的端的网络地址、与源端建立了队列对qp关联的目的端队列对的qpn、目的端的内存区mr信息、源端的qpn等,在将这些信息保存后,可将其用于执行后续步骤s203。64.s203:交换机利用记录的envelope控制报文中的内容替换组播数据报文和/或组播数据报文对应的反馈报文ack/nack中的对应域。65.在本实施例中,交换机通过步骤s202提取并记录了envelope控制报文包含的内容后,进一步可以利用记录的envelope控制报文中的内容替换组播数据报文和/或组播数据报文对应的反馈报文ack/nack中的对应域,一种可选的实现方式是,可以利用记录的envelope控制报文中的内容替换组播数据报文中的目的网络地址、bth包头内的目的qpn和内存地址域。和/或,交换机可以利用记录的envelope控制报文中的内容替换组播数据报文对应的反馈报文ack/nack的源网络地址、bth包头内的目的qpn。66.具体的替换方式如下表2所示:[0067][0068]表2[0069]其中,需要说明得是,如果报文出端口和服务器直连,即,多层组网的情况,则上述替换操作发生在最后一跳。[0070]s204:交换机按照预设规则对组播数据报文进行转发。[0071]在本实施例中,交换机通过步骤s203复制了envelope控制报文,并利用envelope控制报文中的内容替换组播数据报文中的对应域后,进一步可以按照预设规则对组播数据报文进行转发,实现rdma网络的可靠组播。[0072]一种可选的实现方式是,交换机可以根据与源端建立了队列对qp的目的端的网络地址,将组播数据报文发送到各个出端口。并按照预设规则,对后续收到的组播数据报文、ack报文、nack报文进行转发处理。[0073]其中,预设规则包括以下3个规则:[0074]交换机仅将组播数据报文转发给尚未收到对应确认报文ack的目的端;[0075]交换机仅转发所有目的端发来的ack报文中最后一个到达的;[0076]交换机仅转发转发所有目的端发来的nack报文中包序列号psn最小的一个。[0077]具体来讲,交换机对每一个连接组播目的端的端口,记录该端口的ack psn状态。其中,ack psn状态在从该端口接收到ack报文/nack报文时更新。如果某端口当前记录的ack psn=psn_ack,则如果接收到ack报文,其psn=m,且m》psn_ack,则更新psn_ack=m;如果接收到nack报文,其psn=m,且m-1》psn_ack,则更新psn_ack=m-1。[0078]在对组播数据报文进行转发时,对每一个交换机端口,如果该端口尚未收到该报文对应的ack,即该数据报文的psn》psn_ack,则将该报文从该端口发出。否则,该端口将丢弃该报文。[0079]在对ack报文进行转发时,交换机仅转发最后一个到达的ack报文。即,如果到达的ack报文psn为m,且对任意连接组播目的端的交换机端口i,有m《psn_ack_i,则转发该报文。否则丢弃该ack报文。[0080]在对nack报文进行转发时,交换机会维护一份nack报文缓存,并将缓存的nack报文的psn定义为psn_nack_buf。在此基础上,对接收到的nack报文,将其psn记录为m。如果交换机nack报文缓存为空,或者m-1《psn_nack_buf,则将该nack报文写入缓存,并更新psn_nack_buf=m-1,否则丢弃该报文。此外,如果对任意连接组播目的端的交换机端口i,有psn_nack_buf≤psn_ack_i,则将缓存的nack报文发出,并清空nack报文缓存。[0081]这样,通过采用虚拟qpn,在兼容标准rdma协议的前提下,可以有效的区分组播和单播报文,并区分来自不同组播组的组播报文。并且,使用envelope控制报文,可以使得交换机不需要长期保存组播相关的状态信息。相关状态信息在后续组播数据报文完成传输后即可删除。同时,交换机在替换相关域后,还可以使得组播相关报文可以被源端、目的端的标准rdma网卡正确接收。进而在发送重传时,交换机仅会将重传报文发送给尚未接收到对应ack的目的端,避免了其他目的端接收到冗余的重传报文。同时,使得组播源端对每份数据仅会收到1份ack报文,且该ack报文代表所有的目的端成功接收到该对应的数据。此外,在发送丢包时,组播源端也可以根据标准rdma协议的规则进行重传,从而保证组播的可靠性。[0082]综上,本实施例提供的一种实现rdma网络可靠组播方法,为了实现rdma网络的可靠组播,交换机首先接收源端发送的envelope控制报文和组播数据报文,其中,envelope控制报文为标准rdma协议报文,envelope控制报文的载荷包括envelope报文识别标签tag、与源端建立了队列对qp关联的目的端的网络地址、与源端建立了队列对qp关联的目的端队列对的qpn、目的端的内存区mr信息、源端的qpn,然后,交换机根据envelope报文识别标签tag识别envelope控制报文,并提取和记录envelope控制报文的载荷中包含的内容,接着,交换机利用记录的envelope控制报文中的内容替换组播数据报文和/或组播数据报文对应的反馈报文ack/nack中的对应域,进一步可以再按照预设规则对组播数据报文进行转发。从而能够是在兼容标准rdma协议且无需交换机与源端、目的端间分别建立rc连接的情况下,利用交换机实现组播报文的复制和转发,进而实现了rdma网络中的可靠组播。[0083]参见图4,该图为本技术实施例提供的另一种实现rdma网络可靠组播方法的流程图。下面对该方法进行介绍。[0084]s401:源端和目的端按照标准rdma协议,分别建立队列对qp,其中,qp包含队列对识别号qpn;源端qp与第一目的端的qp关联;所有目的端qp与源端qp关联;关联包括指定qp对端的qpn和网络地址。[0085]s402:源端利用qp,向交换机发送envelope控制报文和组播数据报文,以便交换机利用所述envelope控制报文中的内容替换组播数据报文和/或组播数据报文对应的反馈报文ack/nack中的对应域,并按照预设规则对组播数据报文进行转发。[0086]其中,envelope控制报文的载荷包括envelope报文识别标签tag、目的端的网络地址、目的端的qpn、目的端的内存区mr信息、源端的qpn。[0087]具体来讲,源端在按照标准rdma协议与目的端建立队列对qp后,进一步可以利用该qp,采用rdma write操作或send/recv操作方式向交换机发送envelope控制报文和组播数据报文。[0088]接下来,为便于理解,现将本技术提供的实现rdma网络可靠组播的方法应用于存储系统中基于rocev2网络的多副本写的场景进行示例介绍:[0089]如图5所示,其中,左侧图表示的是目前存储系统的多副本写采用的单播的方式实现。即对每份数据报文,client(即源端)发起n(图中n=3)次单播写,将数据报文分别发送给n(图中n=3)个server(即目的端)。而在采用将本技术提供的实现rdma网络可靠组播的方法后,client可以如图5的右侧图所示,通过一次写将数据报文组播给n(图中n=3)个server。从而在发起时延更小、占用带宽更少的情况下,实现了可靠组播,具体流程如下:[0090](1)、client和对应的n个server构成一个组播组。client和server分别按照标准rdma协议创建qp。在进行qp关联时,client和server的qp关联的对端qpn均为0x8xxxxx,不同的组播组使用不同的虚拟qpn。client的qp关联的对端网络地址为server0的网络地址,每个server的qp关联的对端网络地址为client的网络地址。[0091](2)、client使用上述qp发送envelope控制报文,envelope控制报文的格式如上述表1所示。[0092](3)、client使用上述qp发送组播数据报文。数据报文采用rdma write单边写进行发送。[0093](4)、交换机通过执行上述步骤s201-s204,对envelope控制报文、组播数据报文、ack/nack报文进行处理。在处理后,每个server都能正确接收client发送的envelope控制报文和组播数据报文;对client来说,每发送一份数据可以接收到一份ack报文,该ack报文代表所有n个server均已正确接收到对应报文。[0094](5)、如果出现丢包,client将能够正确接收到交换机处理过后的nack报文,进而可以按照标准rdma协议进行丢包重传,以实现可靠组播。[0095]这样,client通过一次发送即可将数据报文可靠的组播给所有server,从而可以有效降低多副本写操作的任务完成时延,提升系统的iops性能。[0096]另外,为便于理解,现将本技术提供的实现rdma网络可靠组播的方法应用于分布式高性能计算hpc的场景进行示例介绍:[0097]如图6所示,与上述图5所示的示例场景类似,在本示例场景中,一个组播源端利用本技术提供的实现rdma网络可靠组播的方法通过一次发送,将相同的数据组播给所有的目的端。二者的主要差别包括如下两点:[0098](1)、在hpc系统中,多使用send/recv双边操作,而不是rdma write单边操作。因而,在envelope控制报文中不需要包含目的端的内存地址信息。[0099](2)、hpc系统中往往包含大量节点,因而存在多层组网的情况。在多层组网时,路径上的每一台交换机都利用本技术提供的实现rdma网络可靠组播的方法进行相关报文的替换和转发。此处需要说明的是,交换机在进行报文复制时,如果某一个端口对应多个目的端,如图6中switch 0上方的端口连接到dst2和dst3,则交换机只应该从该端口发送一份复制的数据报文。[0100]这样,组播源端可以通过一次发送将数据可靠地组播给所有的目的端,降低组播操作的完成时延,从而使组播操作的完成时间降低到接近于单播。[0101]为便于更好的实施本技术实施例的上述方案,下面还提供用于实施上述方案的一种相关装置。请参见图7所示,本技术实施例提供的一种实现rdma网络可靠组播装置700。该装置700可以包括:接收单元701、提取单元702、替换单元703和转发单元704。其中,接收单元701用于执行图2所示实施例中的s201。提取单元702用于执行图2所示实施例中的s202。替换单元703用于执行图2所示实施例中的s203。转发单元704用于执行图2所示实施例中的s204。具体的,[0102]接收单元701,用于交换机接收源端发送的envelope控制报文和组播数据报文,其中,envelope控制报文为标准rdma协议报文,所述envelope控制报文的载荷包括envelope报文识别标签tag、与源端建立了队列对qp关联的目的端的网络地址、与所述源端建立了队列对qp关联的目的端队列对的qpn、目的端的内存区mr信息、源端的qpn;[0103]提取单元702,用于交换机根据envelope报文识别标签tag识别envelope控制报文,并提取和记录envelope控制报文包含的内容;[0104]替换单元703,用于交换机利用记录的envelope控制报文中的内容替换组播数据报文和/或所述组播数据报文对应的反馈报文ack/nack中的对应域;[0105]转发单元704,用于交换机按照预设规则对组播数据报文进行转发。[0106]在本实施例的一种实现方式中,替换单元703具有用于:[0107]交换机利用记录的envelope控制报文中的内容替换组播数据报文中的目的网络地址、bth包头内的目的qpn和内存地址域;[0108]和/或,所述交换机利用记录的所述envelope控制报文中的内容替换所述组播数据报文对应的反馈报文ack/nack的源网络地址、bth包头内的目的qpn。[0109]在本实施例的一种实现方式中,转发单元704具体用于:交换机按照预设规则,根据与源端建立了队列对qp的目的端的网络地址,将组播数据报文发送到各个出端口;[0110]其中,预设规则包括:[0111]交换机仅将组播数据报文转发给尚未收到对应确认报文ack的目的端;[0112]交换机仅转发所有目的端发来的ack报文中最后一个到达的;[0113]交换机仅转发所有目的端发来的nack报文中包序列号psn最小的一个。[0114]为便于更好的实施本技术实施例的上述方案,下面还提供用于实施上述方案的另一种相关装置。请参见图8所示,本技术实施例提供的另一种实现rdma网络可靠组播装置800。该装置800可以包括:建立单元801和发送单元802。其中,建立单元801用于执行图4所示实施例中的s401。发送单元802用于执行图4所示实施例中的s402。具体的,[0115]建立单元801,用于源端和目的端按照标准rdma协议,分别建立队列对qp,所述qp包含队列对识别号qpn;所述源端qp与第一目的端的qp关联;所有目的端qp与源端qp关联;所述关联包括指定qp对端的qpn和网络地址;[0116]发送单元802,用于源端利用qp,向交换机发送envelope控制报文和组播数据报文,以便交换机利用envelope控制报文中的内容替换所述组播数据报文和/或所述组播数据报文对应的反馈报文ack/nack中的对应域,并按照预设规则对组播数据报文进行转发;[0117]其中,所述envelope控制报文的载荷包括envelope报文识别标签tag、所述目的端的网络地址、所述目的端的qpn、目的端的内存区mr信息、所述源端的qpn。[0118]在本实施例的一种实现方式中,发送单元802具体用于:源端利用qp,采用rdma write操作或send/recv操作的方式向交换机发送envelope控制报文和组播数据报文。[0119]参见图9,本技术实施例提供了一种实现rdma网络可靠组播设备900,该设备包括存储器901、处理器902和通信接口903,[0120]存储器901,用于存储指令;[0121]处理器902,用于执行存储器901中的指令,执行上述应用于图2所示实施例中的实现rdma网络可靠组播方法;[0122]通信接口903,用于进行通信。[0123]存储器901、处理器902和通信接口903通过总线904相互连接;总线904可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。[0124]在具体实施例中,处理器902用于为了实现rdma网络的可靠组播,交换机首先接收源端发送的envelope控制报文和组播数据报文,其中,envelope控制报文为标准rdma协议报文,envelope控制报文的载荷包括envelope报文识别标签tag、与源端建立了队列对qp关联的目的端的网络地址、与源端建立了队列对qp关联的目的端队列对的qpn、目的端的内存区mr信息、源端的网络地址,然后,交换机根据envelope报文识别标签tag识别envelope控制报文,并提取和记录envelope控制报文的载荷中包含的内容,接着,交换机利用记录的envelope控制报文和/或组播数据报文对应的反馈报文ack/nack中的内容替换组播数据报文中的对应域,进一步可以再按照预设规则对组播数据报文进行转发。从而能够是在兼容标准rdma协议且无需交换机与源端、目的端间分别建立rc连接的情况下,利用交换机实现组播报文的复制和转发,进而实现了rdma网络中的可靠组播。该处理器902的详细处理过程请参考上述图2所示实施例中s201、s202、s203和s204的详细描述,这里不再赘述。[0125]参见图10,本技术实施例提供了另一种实现rdma网络可靠组播设备1000,该设备包括存储器1001、处理器1002和通信接口1003,[0126]存储器1001,用于存储指令;[0127]处理器1002,用于执行存储器1001中的指令,执行上述应用于图4所示实施例中的实现rdma网络可靠组播方法;[0128]通信接口1003,用于进行通信。[0129]存储器1001、处理器1002和通信接口1003通过总线1004相互连接;总线1004可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。[0130]在具体实施例中,处理器1002用于为了实现rdma网络的可靠组播,源端首先和目的端按照标准rdma协议,分别建立队列对qp,其中,qp包含队列对识别号qpn;源端qp与第一目的端的qp关联;所有目的端qp与源端qp关联;关联包括指定qp对端的qpn和网络地址,然后,源端再利用该qp,向交换机发送envelope控制报文和组播数据报文,以便交换机利用envelope控制报文中的内容替换组播数据报文和/或组播数据报文对应的反馈报文ack/nack中的对应域,并按照预设规则对所述组播数据报文进行转发;其中,envelope控制报文的载荷包括envelope报文识别标签tag、目的端的网络地址、目的端的qpn、内存区mr信息、源端的qpn。该处理器1002的详细处理过程请参考上述图4所示实施例中s401和s402的详细描述,这里不再赘述。[0131]上述存储器901和存储器1001可以是随机存取存储器(random-access memory,ram)、闪存(flash)、只读存储器(read only memory,rom)、可擦写可编程只读存储器(erasable programmable read only memory,eprom)、电可擦除可编程只读存储器(electrically erasable programmable read only memory,eeprom)、寄存器(register)、硬盘、移动硬盘、cd-rom或者本领域技术人员知晓的任何其他形式的存储介质。[0132]上述处理器902和处理器1002例如可以是中央处理器(central processing unit,cpu)、通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术实施例公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。[0133]上述通信接口903和通信接口1003例如可以是接口卡等,可以为以太(ethernet)接口或异步传输模式(asynchronous transfer mode,atm)接口。[0134]本技术实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述用于实现rdma网络可靠组播方法。[0135]本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本技术的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。[0136]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0137]在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0138]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0139]另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。[0140]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。[0141]以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
一种实现RDMA网络可靠组播方法、装置、存储介质及设备与流程 专利技术说明
作者:admin
2022-12-06 20:57:02
761
关键词:
电子通信装置的制造及其应用技术
专利技术