CN107623646A - 数据流传输方法、发送设备及接收设备 - Google Patents

数据流传输方法、发送设备及接收设备 Download PDF

Info

Publication number
CN107623646A
CN107623646A CN201710795448.0A CN201710795448A CN107623646A CN 107623646 A CN107623646 A CN 107623646A CN 201710795448 A CN201710795448 A CN 201710795448A CN 107623646 A CN107623646 A CN 107623646A
Authority
CN
China
Prior art keywords
data
message
transmission channel
block
transmission
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
CN201710795448.0A
Other languages
English (en)
Other versions
CN107623646B (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.)
XFusion Digital Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710795448.0A priority Critical patent/CN107623646B/zh
Publication of CN107623646A publication Critical patent/CN107623646A/zh
Application granted granted Critical
Publication of CN107623646B publication Critical patent/CN107623646B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)

Abstract

本申请公开了一种数据流传输方法,属于通信技术领域。该方法包括:发送设备将RDMA数据流中的各个数据消息拆分成至少两个数据块,将至少两个数据块分配到至少两个传输通道,将各个传输通道中的数据块并行发送给接收设备,每个传输通道对应一条网络连接。即发送设备将RDMA数据流分段成多个数据块,并通过多个传输通道并行发送该多个数据块,以提高RDMA数据流的传输效率,不需要管理多条流的RDMA状态上下文,实现一个RDMA数据流承载在多个LLP流上,通过增加传输通道的数目来缓解同一RDMA数据流内I/O的时延累积效应,并提升单流的带宽效率。

Description

数据流传输方法、发送设备及接收设备
技术领域
本申请涉及通信技术领域,特别涉及一种数据流传输方法、发送设备及接收设备。
背景技术
RDMA(Remote Direct Memory Access,远程直接数据存取)技术通过网络将数据直接从一台计算机的内存传输到另外一台计算机,无需双方操作系统的介入,实现高通量、低延迟的远程内存访问。
在RDMA中,当发送设备和接收设备之间同时有多个读写任务时,该多个读写任务之间会存在读写控制命令和读写数据排队问题。在相关技术中,为了降低单个读写任务对应的RDMA数据流的传输时延,发送设备可以将单个读写任务对应的RDMA数据流拆分成多个RDMA数据流,并对多个RDMA数据流分别进行传输。
发送设备和接收设备之间进行RDMA数据流传输时,对于每个RDMA数据流,发送设备和接收设备需要分别维护该RDMA数据流的上下文信息,而在相关技术中,将单个读写任务对应的RDMA数据流拆分成多个RDMA数据流之后,发送设备和接收设备需要维护的上下文信息也相应增加,导致RDMA数据流的上下文信息占用发送设备和接收设备的处理和存储资源,影响RDMA系统的传输效率。
发明内容
为了提高RDMA系统的传输效率,本申请的实施例提供了一种数据流传输方法、发送设备及接收设备。
第一方面,提供了一种数据流传输方法,用于发送设备中,所述发送设备中包含至少两个传输通道,每个所述传输通道对应一条发送设备与接收设备之间的网络连接,该方法包括:
将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块,将所述至少两个数据块分配到所述至少两个传输通道;将各个所述传输通道中的数据块并行发送给所述接收设备。
在该方案中,发送设备将RDMA数据流分段成多个数据块,并通过多个传输通道并行发送该多个数据块,每个传输通道对应独立的网络连接,以提高RDMA数据流的传输效率,不需要管理多条流的RDMA状态上下文,实现一个RDMA数据流承载在多个底层协议(LowLayer Protocol,LLP)流上,通过增加传输通道的数目来缓解同一RDMA数据流内输入/输出(Input/Output,I/O)的时延累积效应,并提升单流的带宽效率,从而提升了RDMA系统的传输效率。
可选的,所述将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块,包括:对于所述各个数据消息中的每一个数据消息,将所述数据消息拆分为至少一个数据块,每个所述数据块中包含至少一个数据单元。
在该可选方案中,将数据消息切分成以数据单元为最小单位的数据块,并以数据块为单位进行传输通道的分配,以便各个传输通道基于底层协议传输数据块中的数据单元。
可选的,每个所述数据单元的报文头中包含分块位置信息、消息标识、块标识以及消息位置信息;所述分块位置信息用于指示对应的数据单元是否为所在数据块的最后一个数据单元;所述消息标识用于指示对应的数据单元所在的数据消息;所述块标识用于指示对应的数据单元所在的数据块;所述消息位置信息用于指示对应的数据单元所在的数据块是否为数据消息中的最后一个数据块。
可选的,所述每个所述数据单元的报文头中还包含所述至少两个传输通道的数量以及通道标识;所述通道标识用于指示所述至少两个传输通道中,用于传输对应的数据单元所在的数据消息的至少一个传输通道。
在该可选方案中,在数据单元的报文头中添加指示该数据单元所在的数据块、数据消息以及数据单元或数据块在数据消息中的位置的相关信息,以便后续接收设备接收到数据单元之后,根据这些相关信息进行数据消息的组合。
可选的,所述将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块,包括:对于每一个所述数据消息,当所述数据消息的数据量不大于预设阈值时,将所述数据消息划分为单个数据块;当所述数据消息的数据量大于所述预设阈值时,将所述数据消息拆分为至少两个数据块。
在该可选方案中,只有当数据消息的数据量大于一定的阈值时,才会对数据消息拆分成至少两个数据块,避免了对数据量较小的数据消息执行不必要的拆分步骤,提高了数据拆分的效率。
可选的,所述将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块,并将所述至少两个数据块分配到所述至少两个传输通道,包括:
将所述数据消息平均拆分为N个数据块,N为所述传输通道的数量;对于每一个所述数据消息对应的至少一个数据块,从首个传输通道开始,将所述至少一个数据块中的每个数据块分配至所述至少两个传输通道中的一个传输通道。
在该可选方案中,当有N个传输通道时,将每个数据消息平均拆分成N个数据块,并将每个数据块分配至其中一个传输通道,实现每个传输通道传输一条数据消息中的一个数据块,降低数据块传输的管理复杂度。
可选的,所述将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块,并将所述至少两个数据块分配到所述至少两个传输通道,包括:
将所述数据消息拆分为至少一个数据量为p比特的第一类型数据块以及一个数据量为q比特的第二类型数据块,p、q为正整数,p的数值为2的幂次方,p>q,且p+q≤N,N为所述传输通道的数量;将所述至少两个数据块中的每个数据块分配至所述至少两个传输通道中的一个传输通道。
在该可选方案中,在拆分数据块时,将每个数据块尽量的拆分成2的幂次方,以简化发送设备和接收设备对数据块收发过程的数据处理。
可选的,所述方法还包括:将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块之前,根据所述RDMA数据流对应的业务需求确定所述传输通道的数量,所述业务需求包括所述RDMA数据流的保障带宽以及时延需求中的至少一种;根据确定的传输通道的数量设置所述至少两个传输通道。
在该可选方案中,发送设备可以根据RDMA数据流的保障带宽或时延需求动态调整传输通道的数量,在满足RDMA数据流传输需求的前提下,节约传输资源,提高资源利用率。
第二方面,提供了一种数据流传输方法,用于接收设备中,所述接收设备包括至少两个传输通道,每个所述传输通道对应一条发送设备与接收设备之间的网络连接,所述方法包括:通过至少两个传输通道并行接收发送设备发送的至少两个数据块;所述至少两个数据块由所述发送设备将远程直接数据存取RDMA数据流中的各个数据消息进行拆分获得;将所述至少两个数据块组合成所述RDMA数据流中的所述各个数据消息。
在该方案中,发送设备将RDMA数据流分段成多个数据块,并通过多个传输通道并行发送该多个数据块,相应的,接收设备通过多个传输通道并行接收多个数据块后,将多个数据块组合成数据流中的数据消息,以提高RDMA数据流的传输效率,不需要管理多条流的RDMA状态上下文,实现一个RDMA数据流承载在多个LLP流上,通过增加传输通道的数目来缓解同一RDMA数据流内I/O的时延累积效应,并提升单流的带宽效率,从而提升了RDMA系统的传输效率。
可选的,将所述至少两个数据块组合成所述RDMA数据流中的所述各个数据消息,包括:
对于在第一传输通道上接收到的第一数据单元,获取所述第一数据单元的报文头中包含的分块位置信息和消息位置信息;所述第一传输通道是所述至少两个分块直接数据放置实体各自对应的传输通道中的任意传输通道,所述第一数据单元是通过所述第一传输通道接收到的任意数据单元;所述分块位置信息用于指示对应的数据单元是否为所在数据块的最后一个数据单元,所述消息位置信息用于指示对应的数据单元所在的数据块是否为数据消息中的最后一个数据块;当所述第一数据单元的分块位置信息指示所述第一数据单元是所在数据块的最后一个数据单元,且所述第一数据单元的消息位置信息指示所述第一数据单元所在的数据块是数据消息中的最后一个数据块时,获取所述第一数据单元所在的数据消息对应的各个数据单元,并将所述第一数据单元所在的数据消息对应的各个数据单元组合成所述第一数据单元所在的数据消息。
在该可选方案中,通过在数据单元的报文头中添加指示该数据单元为所在数据块的最后一个数据单元,以及指示数据单元所在的数据块为数据消息中的最后一个数据块的标识信息来触发接收设备组合数据消息,以便接收设备在合适的时机进行数据消息的组合。
可选的,所述获取所述第一数据单元所在的数据消息对应的各个数据单元,包括:从首个传输通道至所述第一传输通道中的每个传输通道所接收到的数据单元中,获取所述第一数据单元所在的数据消息对应的各个数据单元;其中,所述首个传输通道是所述至少两个分块直接数据放置实体各自对应的传输通道中的第一个传输通道。
在该可选方案中,当发送设备将一个数据消息中的各个数据块从第一个传输通道开始轮流添加至各个传输通道时,接收设备侧也相应的从第一个传输通道开始依次获取同一数据消息的数据单元,通过默认的数据块添加/提取顺序来简化多通道传输过程中的接收管理。
可选的,所述第一数据单元中还包含传输通道标识,所述传输通道标识用于指示传输所述第一数据单元所在的数据消息的各个传输通道,所述获取所述第一数据单元所在的数据消息对应的各个数据单元,包括:从传输所述第一数据单元所在的数据消息的各个传输通道所接收到的数据单元中,获取所述第一数据单元所在的数据消息对应的各个数据单元。
在该可选方案中,接收设备根据数据单元的报文头中携带的信息所指示的传输通道来提取数据消息的,即通过额外的信息来指示每个数据消息中的数据单元所在的数据通道,从而实现多通道传输过程中的接收管理。
第三方面,提供了一种网络适配器,该网络适配器包括:处理器和存储器,所述存储器中存储有指令,所述处理器执行所述指令使得所述网络适配器实现如上述第一方面或者第二方面所述的数据流传输方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有指令,网络适配器执行所述指令使得所述网络适配器实现如上述第一方面或者第二方面所述的数据流传输方法。
附图说明
图1是本申请实施例所涉及的数据流传输系统的架构图;
图2是图1所示实施例涉及的基于iWARP协议的协议层示意图;
图3是本申请一个示例性实施例提供的数据流传输方法的流程图;
图4是图3所示实施例涉及的一种数据单元的报文头格式示意图;
图5是图3所示实施例涉及的一种数据单元的报文头格式示意图;
图6是图3所示实施例涉及基本实现架构图;
图7是图3所示实施例涉及的数据流传输示意图;
图8是本申请的一个示例性实施例提供的计算机设备的结构示意图;
图9是本申请的一个示例性实施例提供的计算机设备的结构示意图;
图10是本申请的一个示例性实施例提供的一种发送设备的结构方框图;
图11是本申请的一个示例性实施例提供的一种接收设备的结构方框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例所涉及的数据流传输系统的架构图。该数据流传输系统可以是RDMA系统。如图1所示,该RDMA系统包括发送设备110和接收设备120。
发送设备110包括存储设备112、外围电路114、网络适配器(Network InterfaceCard,NIC)116以及处理器118。其中,外围电路114可以包括总线以及RDMA控制器等外围协处理器。
接收设备120包括存储设备122、外围电路124、网络适配器126以及处理器128。
发送设备110和接收设备120之间通过有线或无线网络相连接。
其中,网络适配器116和网络适配器126也称为网卡,在本申请实施例中,网络适配器116和网络适配器126可以是支持RDMA的网络适配器(Network Interface Card thatSupports RDMA,RNIC)。
发送设备110将RDMA数据流发送至接收设备120时,RDMA数据流由存储设备112流出,经外围电路114和网络适配器116流出,通过至有线或无线网络流入接收设备120,在接收设备120中经网络适配器126和外围电路124写入存储设备122。
在本申请实施例中,发送设备110和接收设备120之间存在至少两个网络连接,每个网络连接对应一条传输通道,发送设备110在发送RDMA数据流时,网络适配器116将一个RDMA数据流拆分成多个数据块(Chunk),并将多个数据块分配到至少两个传输通道并行传输,接收设备120侧的网络适配器126同样通过至少两个传输通道接收该多个数据块,并将接收到的多个数据块合并为一个数据流。
上述图1所示的数据流传输系统可以基于互联网广域RDMA协议(Internet WideArea RDMA Protocol,iWARP)在发送设备110和接收设备120之间通过至少两个LLP流并行传输单个RDMA数据流,每个LLP流对应单个网络连接。或者,上述图1所示的数据流传输系统也可以基于RDMA协议并行传输单个RDMA数据流,比如,可以基于增强聚合以太网RDMA(RDMAover Converged Ethernet Version 2,RoCEv2)协议在发送设备110和接收设备120之间通过至少两个用户数据报协议(User Datagram Protocol,UDP)流并行传输单个RDMA数据流。
以基于iWARP协议在发送设备110和接收设备120之间通过至少两个LLP流并行传输单个RDMA数据流为例,在传统的iWARP协议中,计算机设备(即发送设备110或者接收设备120)的网络适配器中的通信协议层自上而下可以包括RDMA协议(RDMA Protocol,RDMAP)层、直接数据放置(Direct Data Placement,DDP)层、协议数据单元对齐标记(MarkerProtocol Data Unit Aligned,MPA)层、传输控制协议(Transmission Control Protocol,TCP)层以及网协(Internet Protocol,IP)层等等。而本申请实施例在传统的iWARP协议基础上,对DDP层进行改进,以实现通过至少两个传输通道传输同一个RDMA数据流。
在本申请实施例中,在传统的iWARP协议的基础上,同时保留了上层协议(UpperLayer Protocol,ULP)和LLP数据面统一接口,其中,本申请实施例的协议层如下:
1、与DDP、MPA、和RDMAP层并行地增加一个多DDP(Multiple DDP,mDDP)协议处理层;
2、保留DDP协议层规范规定的所有语义(RFC5041);
3、保留RDMAP层规范规定的所有语义(RFC5040);
4、保留扩展(Extensions)协议层规范规定的所用语义(RFC7306);
5、保留DDP/MPA/RDMAP/Extensions跨层优化实现机制,如乱序DDP机制,框架协议数据单元排列(Framed Protocol Data Unit Align,FPDU Align)机制等(RFC5040,5041,5044,7306)。
具体的,请参考图2,其示出了本申请实施例涉及的基于iWARP协议的协议层示意图。如图2所示,在传统的iWARP协议中的DDP层之上新增一个多通道直接数据放置(Multiple DDP,mDDP)层,并传统的iWARP协议中的DDP层抽象为至少两个块DDP(ChunkDDP,cDDP)层,每个cDDP层对应独立的MPA层、TCP层以及IP层,即每个cDDP层对应一个独立的网络连接,且发送设备110中的至少两个cDDP层与接收设备120中的至少两个cDDP层一一对应。发送设备110中的一个cDDP层到接收设备120中对应的cDDP层之间的通道可以称为一个传输通道。
在图2中,发送设备110通过mDDP层将RDMA数据流中的数据消息拆分成至少两个数据块,并将至少两个数据块分配到至少两个cDDP层各自对应的传输通道,通过至少两个cDDP层各自对应的传输通道并行传输给接收设备120;接收设备120通过至少两个cDDP层各自对应的传输通道并行接收该RDMA数据流中的至少两个数据块,并通过接收设备120中的mDDP层将至少两个数据块组合成RDMA数据流。即在本申请实施例中,发送设备将RDMA数据流分段成多个数据块,并通过多个传输通道并行发送该多个数据块,相应的,接收设备通过多个传输通道并行接收多个数据块后,将多个数据块组合成数据流中的数据消息,以提高RDMA数据流的传输效率,不需要管理多条流的RDMA状态上下文,实现一个RDMA数据流承载在多个LLP流上,通过增加传输通道的数目来缓解同一RDMA数据流内I/O的时延累积效应,并提升单流的带宽效率,从而提升了RDMA系统的传输效率。
请参考图3,其示出了本申请一个示例性实施例提供的数据流传输方法的流程图。该方法可以用于图1所示的系统中。以基于iWARP协议在发送设备110和接收设备120之间通过至少两个LLP流并行传输单个RDMA数据流为例,如图3所示,该数据流传输方法可以包括:
步骤301,发送设备将RDMA数据流中的各个数据消息拆分成至少两个数据块。
其中,以图2所示的协议层为例,该步骤可以由发送设备通过mDDP层执行,其中,该步骤的执行过程可以通过软件实现,也可以通过软硬件结合来实现。
在本申请实施例中,每个数据消息中的数据可以是一个待写入接收设备的工作请求单元(Work Request Element,WQE)中包含的数据。
可选的,发送设备将RDMA数据流中的各个数据消息拆分成至少两个数据块时,对于各个数据消息中的每一个数据消息,发送设备将该数据消息拆分为至少一个数据块,每个数据块中包含至少一个数据单元。
在本申请实施例中,每个数据单元可以是一个框架协议数据单元(FramedProtocol Data Unit Align,FPDU)。
在一种可能的实现方式中,每个数据单元的报文头中包含分块位置信息、消息标识、块标识以及消息位置信息;其中,分块位置信息用于指示对应的数据单元是否为所在数据块的最后一个数据单元;消息标识用于指示对应的数据单元所在的数据消息;块标识用于指示对应的数据单元所在的数据块;消息位置信息用于指示对应的数据单元所在的数据块是否为数据消息中的最后一个数据块。
比如,请参考图4,其示出了本申请实施例涉及的一种数据单元的报文头格式示意图。在图4所示,数据单元的报文头中包含mDDP层头,该mDDP层头中包含LC字段、mDDP-MSN字段以及mDDP-CSN字段等。
其中,LC(即Last Segment in Chunk)字段即为上述分块位置信息,该LC字段指示该mDDP层头对应的数据单元是否为该数据单元所在的数据块中的最后一个数据单元。比如,当该数据单元不是所在的数据块中的最后一个数据单元时,mDDP层可以将该数据单元的mDDP层头中的LC字段设置为0;当该数据单元是所在的数据块中的最后一个数据单元时,mDDP层可以将该数据单元的mDDP层头中的LC字段设置为1。该LC字段可以占用1bit。
mDDP-MSN(即DDP message sequence number)字段即为上述消息标识,该mDDP-MSN字段可以是该数据单元所在的数据消息的序列号。具体的,mDDP层在对数据流进行传输时,可以对数据流中的各个数据消息按照预定的顺序进行序列号编号,获得每个数据消息对应的序列号,在拆分数据块时,mDDP层可以将数据单元的mDDP层头中的mDDP-MSN字段设置为该数据块所在的数据消息的序列号。该mDDP-MSN字段可以占用16bit。
mDDP-CSN(即DDP chunk sequence number)字段即为上述块标识,该mDDP-CSN字段可以是该数据单元所在的数据块在该数据块所在的数据消息中的序列号。具体的,mDDP层将一个数据消息拆分为至少一个数据块时,按照数据顺序对该至少一个数据块进行序列号编号,获得每个数据块对应的序列号,并将该数据块中每个数据单元的mDDP层头中的mDDP-CSN字段设置为该数据块对应的序列号。该mDDP-CSN字段可以占用16bit。
上述mDDP层头中还可以包含LM(即Last Chun in message)字段(图4未示出),即上述消息位置信息,该LM字段用于指示该数据单元所在的数据块是否为数据消息中的最后一个数据块。比如,当该数据单元所在的数据块不是数据消息中的最后一个数据块时,mDDP层可以将该数据单元的mDDP层头中的LM字段设置为0;当该数据单元所在的数据块是数据消息中的最后一个数据块时,mDDP层可以将该数据单元的mDDP层头中的LM字段设置为1。该LM字段可以占用1bit。
在另一种可能的实现方式中,每个数据单元的报文头中还包含至少两个传输通道的数量以及通道标识;其中,该通道标识用于指示至少两个传输通道中用于传输对应的数据单元所在的数据消息的至少一个传输通道。
比如,请参考图5,其示出了本申请实施例涉及的一种数据单元的报文头格式示意图。在图5所示的mDDP层头中,除了包含LC字段、mDDP-MSN字段以及mDDP-CSN字段等字段之外,还包含Channel List Size字段和Channel[N]字段。
其中,Channel List Size字段即为传输通道列表的长度,也即上述至少两个传输通道的数量。Channel List Size字段占用1bit。Channel[N]字段表示承载对应的数据单元所在的数据块的传输通道。在图5中,传输通道为16个,分别对应Channel[0]~Channel[15]。每个Channel[N]字段占用4bits。比如,当某一个数据消息中的数据块被分配到某几个Channel,比如被分配到编号为0~5的Channel时,则该数据消息对应的数据单元的mDDP层头中的Channel[0]~Channel[5]字段的值可以设置为1,而其它Channel字段(即Channel[6]~Channel[15])的值可以设置为0。
在本申请实施例中,上述至少两个传输通道的数量以及通道标识可以设置在属于一个数据消息的每一个数据单元的报文头中;或者,上述至少两个传输通道的数量以及通道标识也可以设置在一个数据消息的最后一个数据块的最后一个数据单元中,而属于该数据消息的其它数据单元中可以不包含上述至少两个传输通道的数量以及通道标识。
可选的,在将RDMA数据流中的各个数据消息拆分成至少两个数据块时,对于每一个数据消息,发送设备可以检测该数据消息的数据量是否不大于预设阈值,当该数据消息的数据量不大于预设阈值时,将该数据消息划分为单个数据块;当该数据消息的数据量大于预设阈值时,将该数据消息拆分为至少两个数据块。
在本申请实施例中,发送设备并不需要对于每个数据消息都做拆分,而是在数据消息的数据量大于一定的阈值时,才会将该数据消息进行拆分。比如,发送设备获取到一个待拆分的数据消息后,首先检测该数据消息的数据量,比如,可以从数据消息的报文头中读取该数据消息的数据量;当该数据消息的数据量大于预设阈值时,将该数据消息拆分成至少两个数据块,例如可以将该数据消息拆分成相同数据量的多个数据块,或者,也可以将该数据消息拆分成具有不同数据量的多个数据块;而当该数据消息的数据量不大于该预设阈值时,发送设备直接将该数据消息划分成一个数据块,而不将其拆分成两个或两个以上的数据块。
可选的,在将该数据消息拆分为至少两个数据块时,发送设备可以将该数据消息平均拆分为N个数据块,N为该传输通道的数量。
比如,假设发送设备中设置有8个传输通道,而某个数据消息的数据量为80MB,当发送设备对一个数据消息进行拆分时,可以将该数据消息拆分成8个数据量大小均为10MB的数据块。
或者,在另一种可能的实现方式中,在将该数据消息拆分为至少两个数据块时,发送设备可以将该数据消息拆分为至少一个数据量为p比特的第一类型数据块以及一个数据量为q比特的第二类型数据块,p、q为正整数,p的数值为2的幂次方,且p>q。即在另一种分块方式中,发送设备在拆分数据消息时,将每个数据块的数据量尽可能的切成2指数次幂。比如,在拆分数据消息时,将前几个拆分出数据块的数据量设置为p,而最后剩余的数据量不足p(即上述q为剩余的数据量)时,将剩余的数据拆分为最后一个数据块。
其中,上述p的数值可以根据数据消息的数据量的大小以及传输通道的数量来确定,比如,假设传输通道的数量为3个,而数据消息的数据量为80MB,结合通道数量和数据消息的数据量可以确定,当p为32MB时,可以拆分出3个数据块,则发送设备在拆分该数据消息时,将前两个数据块的数据量设置为32MB,并将剩余的16MB的数据作为最后一个数据块。
可选的,在另一种可能的实现方式中,当发送设备将每个数据块的数据量尽可能的切成2指数次幂时,还可以考虑避免将每个数据块的数据量设置的过小,即尽可能的保证单个数据块的数据量不小于某一数据量阈值。
比如,还是以数据消息的数据量为80MB为例,假设上述数据量阈值为64MB,此时,发送设备在拆分该数据消息时,可以将第一个数据块的数据量设置为64MB,并将剩余的16MB的数据作为最后一个数据块,即该数据消息只拆分为2个数据块。
步骤302,发送设备将至少两个数据块分配到至少两个传输通道。
在本申请实施例中,上述发送设备将各个数据消息进行拆分后,以数据块为单位,将各个数据块分配到多个传输通道中进行传输。
其中,发送设备将至少两个数据块分配到至少两个传输通道时,对于每一个数据消息对应的至少一个数据块,发送设备可以从首个传输通道开始,将该至少一个数据块中的每个数据块分配至该至少两个传输通道中的一个传输通道。
比如,假设有N个传输通道,而当发送设备在拆分数据消息时,若将数据消息平均拆分成N个数据块,则在将数据块分配至传输通道时,对于每个数据消息拆分出的N个数据块,发送设备可以从首个传输通道开始,将每个数据块分别分配到N个传输通道中的一个传输通道,从而使得该数据消息被平均分配到每个传输通道进行传输。具体的,假设有8个传输通道,该8条传输通道的编号分别为传输通道0~传输通道7,某个数据消息被平均分配为8个数据块,则发送设备将该数据消息的第1个数据块分配到传输通道0,将该数据消息的第2个数据块分配到传输通道1,以此类推,直至将该数据消息的第8个数据块分配到传输通道7。
或者,如果一个数据消息被拆分出的数据块的数量小于传输通道的数量,发送设备在分配该数据消息的数据块时,也可以从首个传输通道开始,将该至少一个数据块中的每个数据块轮询分配至该至少两个传输通道中的一个传输通道。
比如,发送设备中预先对各个传输通道按数字顺序进行编号,比如,假设有8条传输通道,则该8条传输通道的编号分别为传输通道0~传输通道7;在分配数据块时,假设第一个数据消息的数据块数量为3,则发送设备将这3个数据块依次分配到传输通道0、1和2;若第二个数据消息的数据块的数量为5,则发送设备在分配完第一个数据消息的数据块后,将第二个数据消息中的5个数据块依次分配到传输通道0、1、2、3和4,以此类推。
可选的,发送设备将至少两个数据块分配到至少两个传输通道时,可以将上述RDMA数据流的至少两个数据块中的每个数据块分配至上述至少两个传输通道中的一个传输通道。
比如,当发送设备在拆分数据消息时,若将每个数据块的数据量尽可能的切成2指数次幂,则在分配数据通道时,发送设备可以将数据流中的每个数据块轮询分配至上述至少两个传输通道中的一个传输通道,即对各个数据消息各自对应的数据块统一进行分配。比如,发送设备中预先对各个传输通道按数字顺序进行编号,假设有8条传输通道,则该8条传输通道的编号分别为传输通道0~传输通道7;发送设备分配数据块时,假设第一个数据消息的数据块数量为3,则发送设备将这3个数据块依次分配到传输通道0、1和2;若第二个数据消息的数据块的数量为5,则发送设备在分配完第一个数据消息的数据块后,将第二个数据消息中的5个数据块从传输通道3开始依次分配到传输通道3、4、5、6和7,以此类推。
步骤303,发送设备将各个传输通道中的数据块并行发送给接收设备。
在本申请实施例中,每个传输通道对应一条TCP连接,在发送数据块时,每个传输通道中的数据块通过该传输通道对应的TCP连接并行传输,从而缓解同一RDMA数据流内I/O的时延累积效应,并提升单流的带宽效率。
可选的,在本申请实施例中,上述至少两个传输通道的数量可以动态设置,比如,可以由发送设备中的mDDP层来设置。
比如,发送设备将RDMA数据流中的各个数据消息拆分成至少两个数据块之前,可以根据RDMA数据流对应的业务需求确定传输通道的数量,该业务需求包括RDMA数据流的保障带宽以及时延需求中的至少一种;发送设备中的mDDP层可以根据确定的传输通道的数量设置发送设备中的至少两个cDDP层,以及该至少两个cDDP层各自对应的传输通道。
比如,由于网络适配器架构等原因,一条TCP流只能达到20G的带宽,而网络适配器的物理口带宽是100G,此时一条RDMA数据流承载在单条TCP流上的带宽不会超过20G,如果想达到物理口的满带宽(即RDMA数据流对应的业务需求为100G带宽),则发送设备可以设置传输通道的数量为5,即将一条RDMA数据流承载在5条TCP流上。而如果100G的物理口分成两个通信业务类别(Traffic Class),其中一个用于传输RDMA数据流,带宽要达到60G(即RDMA数据流对应的业务需求为100G带宽),另一个用于传输NIC切换信息,保障带宽要达到40G,此时发送设备可以设置传输通道的数量为3。
或者,发送设备中可以预先设置各种时延需求所对应的传输通道的数量,时延需求越高(即可接受的最大时延越小),对应的传输通道的数量越大,相应的,时延需求越低(即可接受的最大时延越大),对应的传输通道的数量越小;发送设备在传输某一条RDMA数据流之前或者过程中,可以获取该RDMA数据流的时延需求,并根据该时延需求确定对应的传输通道的数量,并根据确定的传输通道的数量设置传输通道以及cDDP层。
可选的,上述根据RDMA数据流对应的业务需求确定传输通道的数量,并确定的传输通道的数量设置cDDP层和传输通道的步骤也可以由网络适配器中的其它硬件或者软件实体来控制。
步骤304,接收设备通过至少两条传输通道并行接收发送设备发送的至少两个数据块。
在本申请中,接收设备中的至少两条传输通道对应于发送设备中的至少两条传输通道,即发送设备中的cDDP层与接收设备中的cDDP层一一对应。
步骤305,接收设备将该至少两个数据块组合成RDMA数据流中的各个数据消息。
在本申请实施例中,在将至少两个数据块组合成RDMA数据流中的数据消息时,对于在第一传输通道上接收到的第一数据单元,接收设备获取该第一数据单元的报文头中包含的分块位置信息和消息位置信息;当该第一数据单元的分块位置信息指示该第一数据单元是所在数据块的最后一个数据单元,且该第一数据单元的消息位置信息指示该第一数据单元所在的数据块是数据消息中的最后一个数据块时,该接收设备获取该第一数据单元所在的数据消息对应的各个数据单元,并将该第一数据单元所在的数据消息对应的各个数据单元组合成该第一数据单元所在的数据消息。
其中,对应上述步骤302中发送设备将各个数据单元分配到传输通道的不同方式,本步骤中接收设备从各个传输通道接收到的数据块中提取到属于同一数据消息的数据块的方式也有所不同。
比如,若上述发送设备对各个数据消息各自对应的数据块单独进行分配,则接收设备获取该第一数据单元所在的数据消息对应的各个数据单元时,可以从首个传输通道至该第一传输通道中的每个传输通道所接收到的数据单元中,获取该第一数据单元所在的数据消息对应的各个数据单元;其中,该首个传输通道是该至少两个分块直接数据放置实体各自对应的传输通道中的第一个传输通道。
比如,假设有8条传输通道,且该8条传输通道的编号分别为传输通道0~传输通道7;若第一传输通道为通道2,则接收设备从传输通道0、1和2所接收到的数据单元中获取与该第一数据单元同属于同一数据消息的各个数据单元,具体的,接收设备可以根据传输通道0、1和2所接收到的数据单元的报文头中的消息标识来识别与该第一数据单元同属于同一数据消息的各个数据单元。
或者,若上述发送设备对各个数据消息各自对应的数据块统一进行分配,此时,第一数据单元中还包含传输通道标识,接收设备获取该第一数据单元所在的数据消息对应的各个数据单元时,可以从第一数据单元的报文头中包含的传输通道标识所指示的,传输该第一数据单元所在的数据消息的至少一个传输通道所接收到的数据单元中,获取该第一数据单元所在的数据消息对应的各个数据单元。
比如,假设有8条传输通道,且该8条传输通道的编号分别为传输通道0~传输通道7;若第一数据单元的报文头中的传输通道标识指示对应的数据消息在传输通道0、1和2上进行传输,则接收设备从传输通道0、1和2所接收到的数据单元中获取与该第一数据单元同属于同一数据消息的各个数据单元。
可选的,接收设备获取该第一数据单元所在的数据消息对应的各个数据单元后,在将该第一数据单元所在的数据消息对应的各个数据单元组合成该第一数据单元所在的数据消息时。对于每一个数据消息,该接收设备首先根据该数据消息对应的各个数据单元中的块标识将各个数据单元组合成各个数据块,在将各个数据块组合成该数据消息。
需要说明的是,本申请实施例上述方案中,都是以一个数据消息拆分出的数据块的数量小于或者等于传输通道的数量为例进行说明,在实际应用中,一个数据消息拆分出的数据块的数量也可能大于传输通道的数量。当一个数据消息被拆分出的数据块的数量大于传输通道的数量时,发送设备和接收设备可以在上述方案的基础上进行改进,以正确的进行数据传输。
在一种可能的实现方式中,当一个数据消息被拆分出的数据块的数量大于传输通道的数量时,发送设备和接收设备之间可以增加临时传输通道,该临时传输通道的数量为数据消息被拆分出的数据块的数量与已有的传输通道的数量之间的差值,发送设备将数据消息中的每个数据块分别添加至一个已有的传输通道或者临时传输通道上进行传输,接收设备按照上述方案,在已有的传输通道以及临时传输通道上进行数据块的接收和数据消息的组合。当该数据消息传输完成后,发送设备和接收设备可以释放该临时传输通道。
比如,比如,假设发送设备和接收设备之间存在8条已有的传输通道,当某一个数据消息被拆分时,其可以拆分出大于8个数据块,比如,发送设备可以将该数据消息拆分为10个数据块。此时,发送设备和接收设备之间可以协商增设2条临时传输通道,并将10个数据块中的每个数据块分别添加至8条已有的传输通道和2条临时传输通道中的一条传输通道上进行传输。
在另一种可能的实现方式中,当一个数据消息被拆分出的数据块的数量大于传输通道的数量时,发送设备可以从第一个传输通道开始,将该数据消息中的每个数据块轮询分配到一个传输通道,并在数据消息中的数据单元的报文头中增设指示信息,该指示信息可以指示用于传输该数据消息的每个传输通道用于传输该数据消息中的几个数据块,以及每个数据单元所述的数据消息的标识、每个数据块的排列顺序等等,以便接收设备能够对提取出的数据单元进行正确的组合。
本申请实施例的基本实现架构图如图6所示。以上述方案应用于改进型的iWARP协议中,以将传统的iWARP协议中的DDP层抽象成mDDP和cDDP两层为例,在图6中:
1、mDDP层完成RDMA Read Response或RDMA Write消息的数据块分段(即拆分为数据块)和重组,其中引入多路复用器(Multiplexor)和解复用器(Demultiplexor)两个功能模块。其中,Multiplexor包括图6中发送设备侧的mDDP层、多个cDDP层以及确认队列(Confirmation Queue);相应的,Demultiplexor包括图6中接收设备侧的mDDP层、多个cDDP层以及传递队列(Delivery Queue)。
在发送侧Multiplexor中的mDDP层按实际配置的策略及当前使用的DDP通道(即传输通道)数目对RDMA消息(即上述数据消息)进行分块,并递交给cDDP层进行发送处理,并将每个数据块的状态记录到确认队列中。
在接收侧,每个传输通道接收DDP数据(即接收各个数据单元),负责整个数据块内的数据单元的排序、接收、确认,并在传递队列中维护当前数据块的完成状态,当一条RDMA数据消息拆分的所有数据块均接收完毕(通过最后一个数据单元的报文头中的标识确定)后,Delivery Queue上报RDMAP层传递整个RDMA数据消息;在发送侧Confirmation Queue中的RDMA数据消息拆分的所有数据块均得到传输完成的确认后,向RMDAP层确认完成(Complete)此RDMA数据消息的传输,当重传发生时,基于传输通道自己的重传记录和Confirmation Queue中的记录进行业务的重传处理。
2、接收设备中的cDDP层完成对应的DDP通道内的每个数据块的传输,并由接收设备中的mDDP层完成数据消息的重组。
请参考图7,其示出了本申请实施例涉及的数据流传输示意图。以当前有3个传输通道为例,如图7所示,对RDMA数据消息的拆分机制、数据块传输、数据块接收、数据块排序重组进行详细描述:
如图7所示,在发送端,网络适配器驱动确保RDMA数据消息按序列号MSN=1,2,3的顺序,将各个数据消息添加到发送处理流程,如果数据消息是RDMA Write,则数据消息的WQE在RDMA数据流的发送队列(Send Queue)中;如果数据消息是RDMA Read Response,则数据消息的WQE在RDMA数据流的上行RDMA Read请求队列(Inbound RDMARead Queue,IRQ)中。
在图7中,mDDP层处理序列号MSN=1,2,3的数据消息时,判断当前有3个DDPChannel(即cDDP层对应的传输通道),则将每个RDMA数据消息进行拆分,拆分可以基于两个原则进行:
1、超过一定门限才拆分数据块,太小的RDMA消息切IO的必要性较小。
2、每个数据块的数据尽可能切成2指数次幂。比如,大于32K的数据消息会进行数据块拆分,当消息长度70K时,按3个DDP Channel拆分数据块,则每个通道分配的数据块的大小可以分别为32K,32K,6K。或者,也可以按照传输通道的数量平均分配每个数据块的数据量,比如,当消息长度为60K时,按照3个DDP Channel拆分数据块,则每个通道分配的数据块大小均为20K。
在图7中,发送设备侧的mDDP层将数据块块的基本信息记录到ConfirmationQueue中,并触发各DDP Channel开始工作,比如,可以采用类似门铃(Doorbell)机制的方式触发个DDP Channel开始工作。
其中,每个DDP Channel按RDMA协议规范将数据块按FPDU进行分片,封装报文头后向网络上发送,并记录重传信息到该DDP Channel管理的重传记录队列中,当重传发生时可以通过重传记录间接找到数据块、WQE及待重传的RDMA数据消息的位置信息进行重传。
以下表1呈现了图7所示实施例涉及的多DDP Channel消息处理的策略:
表1
结合上述表1,在图7所示的方案中,每个数据消息中的至少一个数据块,按照其对应的CSN,从第一个DDP Channel开始依次分配至各个DDP Channel。具体的,在图7中,MSN=1的RDMA数据消息拆分为3个数据块,每个数据块包含两个FPDU,其中CSN=1的数据块分配至Channel A,CSN=2的数据块分配至Channel B,CSN=3的数据块分配至Channel C;MSN=2的RDMA数据消息拆分为3个数据块,前两个数据块各自包含两个FPDU,最后一个数据块包含一个FPDU,其中CSN=1的数据块分配至Channel A,CSN=2的数据块分配至Channel B,CSN=3的数据块分配至Channel C;MSN=3的RDMA数据消息拆分为2个数据块,前一个数据块包含两个FPDU,后一个数据块包含一个FPDU,其中CSN=1的数据块分配至Channel A,CSN=2的数据块分配至Channel B;若后续还有MSN=4的RDMA数据消息,则该MSN=4的RDMA数据消息拆分后获得各个数据块中,CSN=1的数据块分配至Channel A,CSN=2的数据块分配至Channel B,以此类推。每个DDP Channel在本通道内按照FPDU ACK确认机制,乱序接收FPDU,并且支持丢包重传等。
如图7所示,在接收设备侧,每个DDP Channel根据报文中的MSN,CSN等信息处理收到的FPDU,进行DDP操作。若报文中的LastFlag=1,则意味某个数据块的最后一片FPDU报文已经接收到,则触发更新Delivery Queue中的记录信息状态;若报文中的LastChunk=1,则意味当前FDPU是最后一个数据块拆分出来的FPDU;若报文中的LastFlag=1,且LastChunk=1,则意味当前FPDU为RDMA数据消息拆分的最后一个数据块的最后一个FPDU,则会触发Delivery RDMA消息的行为。
结合上述表1,接收设备通过Channel A、Channel B和Channel C并行接收上述MSN=1,2和3的3个数据消息的数据块时,对于每一个Channel,当该Channel中接收到一个FPDU的LastFlag=1,且LastChunk=1时,对于第一个Channel到当前Channel中的每个Channel,接收设备根据该Channel接收到的各个FPDU的CSN,将属于同一个数据块的FPDU组合成一个数据块,并根据FPDU的报文头中的MSN,将第一个Channel到当前Channel所接收到的,属于同一数据消息的数据块组合成该数据消息。
比如,以上述MSN=3的数据消息为例,当接收设备通过Channel B接收到的表1中的最后一个FPDU时,确定该FPDU的报文头中LastChunk=1且LastFlag=1,则接收设备中的mDDP层将Channel A和Channel B各自接收到的FPDU中,对应相同的CSN的FPDU组合成一个数据块,并将对应相同MSN(即MSN=3)的数据块组合成一个数据消息。其中,需要说明的是,对于上述MSN=3的数据消息,由于接收到该数据消息中的最后一个Channel是Channel B,而图7中发送设备侧的mDDP层在分配传输通道时,对于每个数据消息的各个数据块单独进行轮训分配,因此,在组合该数据消息时,接收设备中的mDDP层仅在第一个Channel(即Channel A)到当前Channel(即Channel B)中获取需要组合的FPDU,而默认当前Channel之后的其它Channel(即Channel C)未传输该MSN=3的数据消息中的数据块。
其中,上述图7所示的方案中的数据块分配是一种不公平调度方案,每个RDMA数据消息所拆分成的各个数据块,分别从第一个Channel开始依次分配,比如,请参考表2。
Message1 Message2 Message3 Message4 Message5 Message6 Message7
Channel#0 4MB 4MB 4MB 4MB 4MB 4MB 4MB
Channel#1 4MB 4MB 4MB 4MB 4MB 4MB 4MB
Channel#2 4MB 4MB 4MB 4MB 4MB 4MB
Channel#3 4MB 4MB 4MB 4MB 4MB
Channel#4 4MB 4MB 4MB
Channel#5 4MB 4MB
Channel#6 4MB
Channel#7 4MB
表2
如表2所示,Message1~Message7分别被拆分成多个数据块,每个数据块为4MB,其中,Message1~7被拆分成的数据块数量分别为4、5、8、3、6、2以及4,而Channel数量为8,编号为Channel#0~Channel#7,则按照图7所示的调度方案,Message1的4个数据块被分配至前4个Channel,Message2的5个数据块被分配至前5个Channel,以此类推。
由上述表2可见,不同编号的Channel被分配数据块的概率不等,编号越靠前的Channel,被分配数据块的概率越高,而编号越靠后的Channel,被分配数据块的概率越低。即在图7所示的分配方案中,虽然Channel数目可不受限制扩展,但会导致DDP Channel的带宽不均衡。在极端情况下会导致前面的DDP Channel发生拥塞而后面的DDP Channel还处于空跑状态。因此,在本申请实施例还提供多DDP Channel间的公平调度机制。具体比如,发送设备的Multiplexor按顺序将数据块提交给不同的DDP Channel处理,并在最后一个数据块的最后一个FPDU中携带通道列表信息,接收设备收到最后一个数据块的最后一片FPDU时,触发Demultiplexor根据此报文中的通道列表进行数据块的重组和Message的Delivery。
比如,假设mDDP流存在4个DDP Channel,当前传输的MSN=5的RDMA数据消息被拆分成3个数据块,当前下一个Channel的ID为#2,下一个数据块的编号为#10,则发送设备中的Multiplexor会做如下处理:
1、把#10的数据块放在#2的DDP Channel发送;
2、把#11的数据块放在#3的DDP Channel发送;
3、把#12的数据块放在#0的DDP Channel发送。
其中,RDMA数据消息的最后一个数据块中的最后一个FPDU的DDP扩展头可以由DDPChannel#0对应的cDDP层负责添加。
上述的公平调度方式可以如下表3:
表3
以Message1~Message7分别被拆分成多个数据块,每个数据块为4MB,其中,Message1~7被拆分成的数据块数量分别为4、5、8、3、6、2以及4,而Channel数量为8,编号为Channel#0~Channel#7为例,按照公平调度的方法,Message1的4个数据块被分配至Channel#0~Channel#3,紧随其后的Message2的前4个数据块被分配至Channel#4~Channel#7,Message2的最后1个数据块被分配至Channel#0,在Message2之后的Message3的前6个数据块被分配至Channel#1~Channel#7,Message3的最后1个数据块被分配至Channel#0,以此类推。这样将多个RDMA数据消息的数据块轮流添加至每一个Channel,从而保证多DDP Channel的带宽均衡,提高传输效率。
比如,以Message2为例,当接收设备通过Channel#0接收到Message2的最后一个FPDU时,确定该FPDU的报文头中Last数据块=1且LastFlag=1,则接收设备中的mDDP实体获取最后一个FPDU的报文头中携带的通道列表信息,根据获取到的通道列表信息确定该Message2被分配到Channel#0以及Channel#4~Channel#7中传输,则接收设备中的mDDP实体将Channel#0以及Channel#4~Channel#7各自接收到的FPDU中,对应相同的CSN的FPDU组合成一个数据块,并将对应相同MSN(即MSN=2)的数据块组合成一个数据消息(即Message2)。其中,接收设备中的mDDP实体将数据块组合成Message2时,可以按照属于该Message2的各个数据块的编号(即CSN)的数字顺序进行组合。
本申请实施例以iWARP场景为例对本申请的方案进行举例说明,在实际应用中,本申请实施例的方案还可以应用到其它具有类似问题的场景中,比如,RoCEv2采用UDP进行传递,也存在I/O排队问题,时延累积效应同时存在,也可以基于上述方案,使RoCEv2一个QPN承载在多个UDP流之上,从而降低大I/O时延以及提升单流带宽。
综上所述,本申请实施例所示的数据流传输方法,发送设备中设置mDDP层和至少两个cDDP层,每个cDDP层对应一条传输通道,每个传输通道对应一条发送设备与接收设备之间的网络连接;mDDP层将RDMA数据流中的各个数据消息拆分成至少两个数据块,并将该至少两个数据块分配到至少两个cDDP层各自对应的传输通道,发送设备将该至少两个传输通道中的数据块并行发送给接收设备;即发送设备将RDMA数据流分段成多个数据块,并通过多个传输通道并行发送该多个数据块,相应的,接收设备通过多个传输通道并行接收多个数据块后,将多个数据块组合成数据流中的数据消息,以提高RDMA数据流的传输效率,不需要管理多条流的RDMA状态上下文,实现一个RDMA数据流承载在多个LLP流上,通过增加传输通道的数目来缓解同一RDMA数据流内I/O的时延累积效应,并提升单流的带宽效率,从而提升了RDMA系统的传输效率。
请参考图8,其示出了本申请的一个示例性实施例提供的计算机设备的结构示意图。该计算机设备80可以是上述图1所示的发送设备110。
该计算机设备80可以包括:网络适配器81;该网络适配器81具体可以实现为一个芯片;该网络适配器81用于支持计算机设备80与其他计算机设备或者网络设备之间的通信。
其中,该网络适配器81包括处理器81a和存储器81b。
处理器81a可以包括一个或者多个处理器核,该处理器81a可以是专用处理器、专用集成电路(Application-specific integrated circuit,ASIC)、中央处理单元(英文:central processing unit,CPU)或者协处理器等具有处理能力的器件。
存储器81b可以是flash存储介质或者其他存储介质。存储器81b存储有可执行的指令以及其它各类数据,比如各类业务数据或者用户数据。具体的,上述指令可以包括处理模块和至少两个发送模块,其中,每个发送模块对应一条传输通道;
其中,处理模块可以由处理器81a执行,以实现上述图3所示实施例中由发送设备执行的有关将RDMA数据流中的数据消息拆分为数据块,将数据块分配至至少两个传输通道,以及,根据RDMA数据流的业务需求设置至少两个传输通道的全部或部分步骤;
至少两个发送模块可以由处理器81a执行,以实现上述图3所示实施例中由发送设备执行的有关将各条传输通道中的数据块并行发送给接收设备的全部或部分步骤。
可以理解的是,图8仅仅示出了计算机设备的简化设计,在实际应用中,所述计算机设备可以包含任意数量的网络适配器81。
请参考图9,其示出了本申请的一个示例性实施例提供的计算机设备的结构示意图。该计算机设备90可以是上述图1所示接收设备120。
该计算机设备90可以包括:网络适配器91;该网络适配器91具体可以实现为一个芯片;该网络适配器91用于支持计算机设备90与其他计算机设备或者网络设备之间的通信。
其中,该网络适配器91包括处理器91a和存储器91b。
处理器91a可以包括一个或者多个处理器核,该处理器91a可以是专用处理器、专用集成电路(Application-specific integrated circuit,ASIC)、中央处理单元(英文:central processing unit,CPU)或者协处理器等具有处理能力的器件。
存储器91b以是flash存储介质或者其他存储介质。存储器91b存储有可执行的指令以及其它各类数据,比如各类业务数据或者用户数据。具体的,上述指令可以包括处理模块和至少两个接收模块,其中,每个接收模块对应一条传输通道;
至少两个接收模块可以由处理器91a执行,以实现上述图3所示实施例中由接收设备执行的有关通过至少两个传输通道并行接收发送设备发送的数据块的全部或部分步骤;
处理模块可以由处理器91a执行,以实现上述图3所示实施例中由接收设备执行的有关将接收到的数据块组合成RDMA数据流中的数据消息的全部或部分步骤。
可以理解的是,图9仅仅示出了计算机设备的简化设计,在实际应用中,所述计算机设备可以包含任意数量的网络适配器91。
图10是本申请的一个示例性实施例提供的一种发送设备的结构方框图,该发送设备可以通过硬件电路或者软件硬件的结合实现成为发送设备的部分或者全部,该发送设备可以是上述图1所示的实施例中的发送设备110。该发送设备可以包括:处理单元1001和至少两个发送单元1002;
其中,处理单元1001,用于实现图3所示实施例中由发送设备执行的有关将RDMA数据流中的数据消息拆分为数据块,将数据块分配至至少两个传输通道,以及,根据RDMA数据流的业务需求设置至少两个传输通道的全部或部分步骤。
至少两个发送单元1002,用于实现图3所示实施例中由发送设备执行的有关将各条传输通道中的数据块并行发送给接收设备的全部或部分步骤。
其中,当发送设备实现为图2所示的计算机设备时,处理单元1001实现的功能与上述图2中的mDDP层所实现的功能类似;而发送单元1002实现的功能与上述图2中的cDDP层、MPA层以及TCP层等协议层所实现的功能类似。
图11是本申请的一个示例性实施例提供的一种接收设备的结构方框图,该接收设备可以通过硬件电路或者软件硬件的结合实现成为接收设备的部分或者全部,该接收设备可以是上述图1所示的实施例中的接收设备120。该接收设备可以包括:至少两个接收单元1101和处理单元1102。
至少两个接收单元1101,用于实现图3所示实施例中由接收设备执行的有关通过至少两个传输通道并行接收发送设备发送的数据块的全部或部分步骤。
处理单元1102,用于实现图3所示实施例中由接收设备执行的有关将接收到的数据块组合成RDMA数据流中的数据消息的全部或部分步骤。
其中,当接收设备实现为图2所示的计算机设备时,处理单元1102实现的功能与上述图2中的mDDP层所实现的功能类似;而接收单元1101实现的功能与上述图2中的cDDP层、MPA层以及TCP层等协议层所实现的功能类似。
需要说明的是:上述实施例提供的发送设备和接收设备在RDMA数据流传输时,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。另外,上述实施例提供的发送设备和接收设备与数据流传输方法的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本申请的实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例由处理器执行的全部或部分步骤可以通过硬件来完成,也可以通过指令来控制相关的硬件完成,所述的指令可以存储于一种计算机可读存储介质中,上述提到的计算机可读存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本申请能够实现的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,以权利要求为基础进行变化或替换所得到的方案,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (20)

1.一种发送设备,其特征在于,所述发送设备包括:处理单元和至少两个发送单元;每个所述发送单元对应一条传输通道,每个所述传输通道对应一条所述发送设备与接收设备之间的网络连接;
所述处理单元,用于将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块,并将所述至少两个数据块分配到所述至少两个发送单元各自对应的传输通道;
所述至少两个发送单元,用于将各自对应的所述传输通道中的数据块并行发送给所述接收设备。
2.根据权利要求1所述的发送设备,其特征在于,在将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块时,所述处理单元,具体用于,
对于所述各个数据消息中的每一个数据消息,将所述数据消息拆分为至少一个数据块,每个所述数据块中包含至少一个数据单元。
3.根据权利要求2所述的发送设备,其特征在于,每个所述数据单元的报文头中包含分块位置信息、消息标识、块标识以及消息位置信息;
所述分块位置信息用于指示对应的数据单元是否为所在数据块的最后一个数据单元;
所述消息标识用于指示对应的数据单元所在的数据消息;
所述块标识用于指示对应的数据单元所在的数据块;
所述消息位置信息用于指示对应的数据单元所在的数据块是否为数据消息中的最后一个数据块。
4.根据权利要求1所述的发送设备,其特征在于,在将所述数据消息拆分为至少两个数据块,并将所述至少两个数据块分配到所述至少两个发送单元各自对应的传输通道时,所述处理单元,具体用于,
将所述数据消息平均拆分为N个数据块,N为所述传输通道的数量;
对于每一个所述数据消息对应的至少一个数据块,从首个传输通道开始,将所述至少一个数据块中的每个数据块分配至所述至少两个传输通道中的一个传输通道。
5.根据权利要求1所述的发送设备,其特征在于,在将所述至少两个数据块分配到至少两个分块直接数据放置实体各自对应的传输通道,并将所述至少两个数据块分配到所述至少两个发送单元各自对应的传输通道时,所述处理单元,具体用于,
将所述数据消息拆分为至少一个数据量为p比特的第一类型数据块以及一个数据量为q比特的第二类型数据块,p、q为正整数,p的数值为2的幂次方,p>q,且p+q≤N,N为所述传输通道的数量;
将所述至少两个数据块中的每个数据块分配至所述至少两个传输通道中的一个传输通道。
6.根据权利要求1至5任一所述的发送设备,其特征在于,所述处理单元,还用于,
将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块之前,根据所述RDMA数据流对应的业务需求确定所述传输通道的数量,所述业务需求包括所述RDMA数据流的保障带宽;
根据确定的传输通道的数量设置所述至少两个传输通道。
7.一种接收设备,其特征在于,所述接收设备包括:至少两个接收单元和处理单元;每个所述接收单元对应一条传输通道,每个所述传输通道对应一条发送设备与所述接收设备之间的网络连接;
所述至少两个接收单元,用于通过各自对应的传输通道并行接收所述发送设备发送的至少两个数据块,所述至少两个数据块由所述发送设备将远程直接数据存取RDMA数据流中的各个数据消息进行拆分获得;
所述处理单元,用于将所述至少两个数据块组合成所述RDMA数据流中的所述各个数据消息。
8.根据权利要求7所述的接收设备,其特征在于,所述处理单元,具体用于,
对于在第一传输通道上接收到的第一数据单元,获取所述第一数据单元的报文头中包含的分块位置信息和消息位置信息;所述第一传输通道是所述至少两个接收单元各自对应的传输通道中的任意传输通道,所述第一数据单元是通过所述第一传输通道接收到的任意数据单元;所述分块位置信息用于指示对应的数据单元是否为所在数据块的最后一个数据单元,所述消息位置信息用于指示对应的数据单元所在的数据块是否为数据消息中的最后一个数据块;
当所述第一数据单元的分块位置信息指示所述第一数据单元是所在数据块的最后一个数据单元,且所述第一数据单元的消息位置信息指示所述第一数据单元所在的数据块是数据消息中的最后一个数据块时,获取所述第一数据单元所在的数据消息对应的各个数据单元,并将所述第一数据单元所在的数据消息对应的各个数据单元组合成所述第一数据单元所在的数据消息。
9.一种数据流传输方法,用于发送设备中,其特征在于,所述发送设备中包含至少两个传输通道,每个所述传输通道对应一条所述发送设备与接收设备之间的网络连接,所述方法包括:
将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块,并将所述至少两个数据块分配到所述至少两个传输通道;
将各个所述传输通道中的数据块并行发送给所述接收设备。
10.根据权利要求9所述的方法,其特征在于,所述将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块,包括:
对于所述各个数据消息中的每一个数据消息,将所述数据消息拆分为至少一个数据块,每个所述数据块中包含至少一个数据单元。
11.根据权利要求10所述的方法,其特征在于,每个所述数据单元的报文头中包含分块位置信息、消息标识、块标识以及消息位置信息;
所述分块位置信息用于指示对应的数据单元是否为所在数据块的最后一个数据单元;
所述消息标识用于指示对应的数据单元所在的数据消息;
所述块标识用于指示对应的数据单元所在的数据块;
所述消息位置信息用于指示对应的数据单元所在的数据块是否为数据消息中的最后一个数据块。
12.根据权利要求9所述的方法,其特征在于,所述将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块,并将所述至少两个数据块分配到所述至少两个传输通道,包括:
将所述数据消息平均拆分为N个数据块,N为所述传输通道的数量;
对于每一个所述数据消息对应的至少一个数据块,从首个传输通道开始,将所述至少一个数据块中的每个数据块分配至所述至少两个传输通道中的一个传输通道。
13.根据权利要求9所述的方法,其特征在于,所述将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块,并将所述至少两个数据块分配到所述至少两个传输通道,包括:
将所述数据消息拆分为至少一个数据量为p比特的第一类型数据块以及一个数据量为q比特的第二类型数据块,p、q为正整数,p的数值为2的幂次方,p>q,且p+q≤N,N为所述传输通道的数量;
将所述至少两个数据块中的每个数据块分配至所述至少两个传输通道中的一个传输通道。
14.根据权利要求9至13任一所述的方法,其特征在于,所述方法还包括:
将远程直接数据存取RDMA数据流中的各个数据消息拆分成至少两个数据块之前,根据所述RDMA数据流对应的业务需求确定所述传输通道的数量,所述业务需求包括所述RDMA数据流的保障带宽以及时延需求中的至少一种;
根据确定的传输通道的数量设置所述至少两个传输通道。
15.一种数据流传输方法,用于接收设备中,其特征在于,所述接收设备包括至少两个传输通道,每个所述传输通道对应一条发送设备与所述接收设备之间的网络连接,所述方法包括:
通过所述至少两个传输通道并行接收所述发送设备发送的至少两个数据块;所述至少两个数据块由所述发送设备将远程直接数据存取RDMA数据流中的各个数据消息进行拆分获得;
将所述至少两个数据块组合成所述RDMA数据流中的所述各个数据消息。
16.根据权利要求15所述的方法,其特征在于,所述将所述至少两个数据块组合成所述RDMA数据流中的所述各个数据消息,包括:
对于在第一传输通道上接收到的第一数据单元,获取所述第一数据单元的报文头中包含的分块位置信息和消息位置信息;所述第一传输通道是所述至少两个分块直接数据放置实体各自对应的传输通道中的任意传输通道,所述第一数据单元是通过所述第一传输通道接收到的任意数据单元;所述分块位置信息用于指示对应的数据单元是否为所在数据块的最后一个数据单元,所述消息位置信息用于指示对应的数据单元所在的数据块是否为数据消息中的最后一个数据块;
当所述第一数据单元的分块位置信息指示所述第一数据单元是所在数据块的最后一个数据单元,且所述第一数据单元的消息位置信息指示所述第一数据单元所在的数据块是数据消息中的最后一个数据块时,获取所述第一数据单元所在的数据消息对应的各个数据单元,并将所述第一数据单元所在的数据消息对应的各个数据单元组合成所述第一数据单元所在的数据消息。
17.一种网络适配器,其特征在于,所述网络适配器包含处理器和存储器,所述存储器中存储有指令,所述处理器执行所述指令使得所述网络适配器实现如权利要求9至14任一所述的数据流传输方法。
18.一种网络适配器,其特征在于,所述网络适配器包含处理器和存储器,所述存储器中存储有指令,所述处理器执行所述指令使得所述网络适配器实现如权利要求15或16所述的数据流传输方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,网络适配器执行所述指令使得所述网络适配器实现如权利要求9至14任一所述的数据流传输方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,网络适配器执行所述指令使得所述网络适配器实现如权利要求15或16所述的数据流传输方法。
CN201710795448.0A 2017-09-06 2017-09-06 数据流传输方法、发送设备及接收设备 Active CN107623646B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710795448.0A CN107623646B (zh) 2017-09-06 2017-09-06 数据流传输方法、发送设备及接收设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710795448.0A CN107623646B (zh) 2017-09-06 2017-09-06 数据流传输方法、发送设备及接收设备

Publications (2)

Publication Number Publication Date
CN107623646A true CN107623646A (zh) 2018-01-23
CN107623646B CN107623646B (zh) 2020-11-17

Family

ID=61089493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710795448.0A Active CN107623646B (zh) 2017-09-06 2017-09-06 数据流传输方法、发送设备及接收设备

Country Status (1)

Country Link
CN (1) CN107623646B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108631947A (zh) * 2018-05-21 2018-10-09 南京大学 一种基于纠删码的rdma网络数据传输方法
CN108924059A (zh) * 2018-07-05 2018-11-30 郑州云海信息技术有限公司 一种基于动态调节虚拟逻辑通道实现报文传输的方法
CN108924205A (zh) * 2018-06-25 2018-11-30 北京旷视科技有限公司 数据传输方法、装置、电子设备、网闸适配器
CN109600388A (zh) * 2019-01-03 2019-04-09 腾讯科技(深圳)有限公司 数据传输方法、装置、计算机可读介质及电子设备
CN110113425A (zh) * 2019-05-16 2019-08-09 南京大学 一种基于rdma网卡纠删码卸载的负载均衡系统及均衡方法
WO2019165855A1 (zh) * 2018-02-28 2019-09-06 华为技术有限公司 一种报文传输的方法及装置
CN110888827A (zh) * 2018-09-10 2020-03-17 华为技术有限公司 数据传输方法、装置、设备及存储介质
CN111726288A (zh) * 2020-06-24 2020-09-29 国电南瑞科技股份有限公司 一种电力二次设备实时数据传输与恢复方法及系统
CN111917812A (zh) * 2019-05-10 2020-11-10 北京百度网讯科技有限公司 数据的传输控制方法、装置、设备以及存储介质
CN112541036A (zh) * 2020-11-24 2021-03-23 南方电网数字电网研究院有限公司 电网数据同步方法、系统、装置、计算机设备和存储介质
CN113238982A (zh) * 2021-04-25 2021-08-10 深圳市广和通无线股份有限公司 数据通信方法、装置、计算机设备和存储介质
CN113422669A (zh) * 2020-07-09 2021-09-21 阿里巴巴集团控股有限公司 数据传输方法、装置和系统、电子设备以及计算机可读存储介质
CN113515563A (zh) * 2021-03-31 2021-10-19 浙江大华技术股份有限公司 一种数据对接方法、数据库、系统及计算机可读存储介质
CN113541865A (zh) * 2021-06-21 2021-10-22 浙江中控技术股份有限公司 组态传输方法、装置、电子设备和存储介质
CN113554335A (zh) * 2021-08-02 2021-10-26 南京邮电大学 一种基于大数据的生产计划方法
CN115174702A (zh) * 2022-09-08 2022-10-11 深圳华锐分布式技术股份有限公司 基于rdma协议的数据传输方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120331243A1 (en) * 2011-06-24 2012-12-27 International Business Machines Corporation Remote Direct Memory Access ('RDMA') In A Parallel Computer
US8874680B1 (en) * 2011-11-03 2014-10-28 Netapp, Inc. Interconnect delivery process
CN104484295A (zh) * 2014-12-16 2015-04-01 中国人民解放军国防科学技术大学 并行计算机系统中基于接收方滑动窗口的数据传输方法
CN106953797A (zh) * 2017-04-05 2017-07-14 广东浪潮大数据研究有限公司 一种基于动态连接的rdma数据传输的方法与装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120331243A1 (en) * 2011-06-24 2012-12-27 International Business Machines Corporation Remote Direct Memory Access ('RDMA') In A Parallel Computer
US8874680B1 (en) * 2011-11-03 2014-10-28 Netapp, Inc. Interconnect delivery process
CN104484295A (zh) * 2014-12-16 2015-04-01 中国人民解放军国防科学技术大学 并行计算机系统中基于接收方滑动窗口的数据传输方法
CN106953797A (zh) * 2017-04-05 2017-07-14 广东浪潮大数据研究有限公司 一种基于动态连接的rdma数据传输的方法与装置

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019165855A1 (zh) * 2018-02-28 2019-09-06 华为技术有限公司 一种报文传输的方法及装置
CN110213170A (zh) * 2018-02-28 2019-09-06 华为技术有限公司 一种报文传输的方法及装置
CN108631947A (zh) * 2018-05-21 2018-10-09 南京大学 一种基于纠删码的rdma网络数据传输方法
CN108924205A (zh) * 2018-06-25 2018-11-30 北京旷视科技有限公司 数据传输方法、装置、电子设备、网闸适配器
CN108924059A (zh) * 2018-07-05 2018-11-30 郑州云海信息技术有限公司 一种基于动态调节虚拟逻辑通道实现报文传输的方法
CN110888827A (zh) * 2018-09-10 2020-03-17 华为技术有限公司 数据传输方法、装置、设备及存储介质
CN110888827B (zh) * 2018-09-10 2021-04-09 华为技术有限公司 数据传输方法、装置、设备及存储介质
CN109600388A (zh) * 2019-01-03 2019-04-09 腾讯科技(深圳)有限公司 数据传输方法、装置、计算机可读介质及电子设备
CN111917812A (zh) * 2019-05-10 2020-11-10 北京百度网讯科技有限公司 数据的传输控制方法、装置、设备以及存储介质
CN111917812B (zh) * 2019-05-10 2022-09-30 北京百度网讯科技有限公司 数据的传输控制方法、装置、设备以及存储介质
CN110113425A (zh) * 2019-05-16 2019-08-09 南京大学 一种基于rdma网卡纠删码卸载的负载均衡系统及均衡方法
CN111726288A (zh) * 2020-06-24 2020-09-29 国电南瑞科技股份有限公司 一种电力二次设备实时数据传输与恢复方法及系统
CN111726288B (zh) * 2020-06-24 2022-07-19 国电南瑞科技股份有限公司 一种电力二次设备实时数据传输与恢复方法及系统
CN113422669B (zh) * 2020-07-09 2023-09-08 阿里巴巴集团控股有限公司 数据传输方法、装置和系统、电子设备以及存储介质
CN113422669A (zh) * 2020-07-09 2021-09-21 阿里巴巴集团控股有限公司 数据传输方法、装置和系统、电子设备以及计算机可读存储介质
CN112541036A (zh) * 2020-11-24 2021-03-23 南方电网数字电网研究院有限公司 电网数据同步方法、系统、装置、计算机设备和存储介质
CN112541036B (zh) * 2020-11-24 2023-12-12 南方电网数字电网研究院有限公司 电网数据同步方法、系统、装置、计算机设备和存储介质
CN113515563A (zh) * 2021-03-31 2021-10-19 浙江大华技术股份有限公司 一种数据对接方法、数据库、系统及计算机可读存储介质
CN113238982A (zh) * 2021-04-25 2021-08-10 深圳市广和通无线股份有限公司 数据通信方法、装置、计算机设备和存储介质
CN113541865A (zh) * 2021-06-21 2021-10-22 浙江中控技术股份有限公司 组态传输方法、装置、电子设备和存储介质
CN113554335A (zh) * 2021-08-02 2021-10-26 南京邮电大学 一种基于大数据的生产计划方法
CN115174702A (zh) * 2022-09-08 2022-10-11 深圳华锐分布式技术股份有限公司 基于rdma协议的数据传输方法、装置、设备及介质
CN115174702B (zh) * 2022-09-08 2022-11-22 深圳华锐分布式技术股份有限公司 基于rdma协议的数据传输方法、装置、设备及介质

Also Published As

Publication number Publication date
CN107623646B (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
CN107623646A (zh) 数据流传输方法、发送设备及接收设备
US20240160584A1 (en) System and method for facilitating dynamic command management in a network interface controller (nic)
CN101340574B (zh) 一种实现零拷贝发送流媒体数据的方法及系统
EP3503507B1 (en) Network interface device
WO2016187813A1 (zh) 一种光电混合网络的数据传输方法及装置
US9436636B2 (en) Structure for non-blocking serial attached SCSI infrastructure utilizing virtual pathways
US9424224B2 (en) PCIe tunneling through SAS
US9055392B2 (en) Method and apparatus of communicating packet data units in a wireless network environment and system using thereof
CN102185833B (zh) 一种基于fpga的fc i/o并行处理方法
US11394664B2 (en) Network interface device
CN103152260B (zh) 报文转发系统、方法及装置
CN101997916B (zh) 一种基于网络进行文件传输的方法和装置
CN103348641A (zh) 单一调制解调器板上改进的多小区支持的方法和系统
CN102647370B (zh) WiFi网络和ZigBee网络之间的通信方法
CN105141603B (zh) 通信数据传输方法及系统
CN108768667B (zh) 一种用于多核处理器片内核间网络通信的方法
CN107342906A (zh) 一种大象流的检测方法、设备及系统
US11165705B2 (en) Data transmission method, device, and computer storage medium
CN109684269A (zh) 一种pcie交换芯片内核及工作方法
CN105988948B (zh) 一种数据传输的方法及设备
CN103885840A (zh) 一种基于AXI4总线的FCoE协议加速引擎IP核
CN110312283A (zh) 一种信息处理方法及装置
EP2389632B1 (en) Communication protocol for sharing memory resources between components of a device
CN102315918B (zh) 一种tcp连接与sctp连接互通的方法及装置
CN108173909A (zh) 数据同步方法、移动终端及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211224

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: Super fusion Digital Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.