一种基于RDMA的通信方法、系统及通信设备技术方案

技术编号:9434529 阅读:99 留言:0更新日期:2013-12-12 00:35
本发明专利技术实施例公开了一种基于RDMA的通信方法,包括:发送设备向接收设备发送第一申请消息,所述第一申请消息用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接收设备发送的信息;所述发送设备接收所述接收设备发送的第一内存信息,其中,所述第一内存信息至少包含所述第一接收内存的第一地址信息;当所述发送设备向所述接收设备发送信息时,所述发送设备根据所述第一地址信息通过RDMA操作将所述信息存放至所述第一接收内存。相应地,本发明专利技术实施例还公开了相关的系统和设备。本发明专利技术实施例可以提高设备的内存的利用率,以及提高RDMA通信的传输效率。

【技术实现步骤摘要】
一种基于RDMA的通信方法、系统及通信设备
本专利技术涉及通信领域,尤其涉及一种基于远程直接内存访问(RemoteDirectMemoryAccess,RDMA)的通信方法、系统及通信设备。
技术介绍
RDMA是一种直接进行远程内存存取的技术,该技术可以减少中央处理器(CentralProcessingUnit,CPU)参与数据传输过程的消耗,提升系统处理业务的性能。目前的RDMA技术中,RDMA通信中的通信设备各自都分配出独立的用于RDMA通信的内存区,该内存内划分为大小相同的发送内存区和接收内存区,并进一步划分为多个固定的缓冲区。消息发送过程中,发送方从发送内存区获取一个空闲的发送缓冲区并填充消息内容,发送方将通过RDMA操作将发送缓冲区内填充的消息内容发送到接收方的接收内存区对应的缓冲区。接收方接收此消息后回复该缓冲区序号给发送方,发送方通过释放发送内存区的发送缓冲区完成回收,此时消息发送过程结束。上述技术中,由于每个设备为RDMA通信分配出的内存空间都是预先分配好的,且空间大小是固定的,但在RDMA通信中发送的消息所需要的内存空间是不定的,在实际应用中RDMA通信中传输的消息会包括不同的类型的消息,例如:存放时占用很小内存空间的小消息和存放时占用很大内存空间的大消息。而每个设备分配出的内存空间都是根据上述大消息在而分配的,即每个设备分配出的内存空间都会比较大。但在实际应用中RDMA通信中大多数消息都为上述小消息,由于小消息存放占用的内存空间比较小,即设备分配出的内存空间经常会存在大量的空闲空间。可见,上述技术中设备的内存的利用率不高。
技术实现思路
专利技术实施例提供了一种基于RDMA的通信方法、系统及通信设备,用于解决设备的内存的利用率不高的问题。第一方面,本专利技术实施例提供一种基于RDMA的通信方法,包括:发送设备向接收设备发送第一申请消息,所述第一申请消息用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接收设备发送的信息;所述发送设备接收所述接收设备发送的第一内存信息,其中,所述第一内存信息至少包含所述第一接收内存的第一地址信息;当所述发送设备向所述接收设备发送信息时,所述发送设备根据所述第一地址信息通过RDMA操作将所述信息存放至所述第一接收内存。在第一方面的第一种可能的实现方式中,所述第一内存信息还包括所述第一接收内存的内存空间信息,所述发送设备接收所述接收设备发送的所述第一内存信息之后,所述方法还包括:当所述发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第一内存空闲阈值时,所述发送设备向所述接收设备发送内存释放消息,所述内存释放消息用于请求释放所述第一接收内存中存放的信息。结合第一方面,在第一方面的第二种可能的实现方式中,所述第一内存信息还包括所述第一接收内存的内存空间信息,所述发送设备接收所述接收设备发送的所述第一内存信息之后,所述方法还包括:当所述发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第二内存空闲阈值时,所述发送设备向接收设备发送第二申请消息,所述第二申请消息用于在所述接收设备申请第二接收内存,所述第二接收内存用于存放所述发送设备向所述接收设备发送的信息;所述发送设备接收所述接收设备发送的第二内存信息,其中,所述第二内存信息至少包含所述第二接收内存的第二地址信息。结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述第一接收内存与所述第二接收内存的地址连续,所述发送设备根据所述第一地址信息通过RDMA操作将所述信息存放至所述第一接收内存,包括:当所述第一接收内存的空闲空间不够存放所述信息时,所述发送设备根据所述第一地址信息和所述第二地址信息通过RDMA操作将所述信息存放至连续接收内存,所述连续接收内存包括所述第一接收内存中的空闲内存和所述第二接收内存中与所述空闲内存连续的内存。第二方面,本专利技术实施例提供一种基于RDMA的通信方法,包括:接收设备接收发送设备发送的第一申请消息,所述第一申请消息用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接收设备发送的信息;所述接收设备根据所述第一申请消息从所述接收设备的内存中选择所述第一接收内存;所述接收设备向所述发送设备发送第一内存信息;其中,所述第一内存信息至少包含所述第一接收内存的第一地址信息;所述接收设备的所述第一接收内存存放信息,所述信息为所述发送设备根据所述第一地址信息通过RDMA操作存放的信息。在第二方面的第一种可能的实现方式中,所述第一内存信息还包括所述第一接收内存的内存空间信息,所述接收设备向所述发送设备发送第一内存信息之后,所述方法还包括:所述接收设备接收所述发送设备发送的内存释放消息,所述述内存释放消息用于请求释放所述第一接收内存中存放的信息;所述内存释放消息是当所述发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第一内存空闲阈值时发送的消息;所述接收设备根据所述内存释放消息释放所述第一接收内存中存放的信息。结合第二方面,在第二方面的第二种可能的实现方式中,所述第一内存信息还包括所述第一接收内存的内存空间信息,所述接收设备向所述发送设备发送第一内存信息之后,所述方法还包括:所述接收设备接收所述发送设备发送的第二申请消息,所述第二申请消息用于在所述接收设备申请第二接收内存,所述第二接收内存用于存放所述发送设备向所述接收设备发送的信息,所述第二申请消息为当所述发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第二内存空闲阈值时发送的消息;所述接收设备根据所述第二申请消息从所述接收设备的内存中选择所述第二接收内存;所述接收设备向所述发送设备发送第二内存信息;其中,所述第二内存信息至少包含所述第二接收内存的第二地址信息。结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第一接收内存与所述第二接收内存的地址连续,所述接收设备的所述第一接收内存存放信息,包括:所述接收设备的连续接收内存存放信息,所述信息为当所述第一接收内存的空闲空间不够存放所述信息时,为所述发送设备根据所述第一地址信息和所述第二地址信息通过RDMA操作存放的信息;所述连续接收内存包括所述第一接收内存中的空闲内存和所述第二接收内存中与所述空闲内存连续的内存。第三方面,本专利技术实施例提供一种通信设备,包括:第一发送单元、第一接收单元和存放单元,其中:所述第一发送单元,用于向接收设备发送第一申请消息,所述第一申请消息用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接收设备发送的信息;所述第一接收单元,用于接收所述接收设备发送的第一内存信息;其中,所述第一内存信息至少包含所述第一接收内存的第一地址信息;所述存放单元,用于当所述通信设备需要向所述本文档来自技高网...
一种基于RDMA的通信方法、系统及通信设备

【技术保护点】
一种基于远程直接内存访问RDMA的通信方法,其特征在于,包括:发送设备向接收设备发送第一申请消息,所述第一申请消息用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接收设备发送的信息;所述发送设备接收所述接收设备发送的第一内存信息,其中,所述第一内存信息至少包含所述第一接收内存的第一地址信息;当所述发送设备向所述接收设备发送信息时,所述发送设备根据所述第一地址信息通过RDMA操作将所述信息存放至所述第一接收内存。

【技术特征摘要】
1.一种基于远程直接内存访问RDMA的通信方法,其特征在于,包括:发送设备向接收设备发送第一申请消息,所述第一申请消息用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接收设备发送的信息;所述发送设备接收所述接收设备发送的第一内存信息,其中,所述第一内存信息至少包含所述第一接收内存的第一地址信息;当所述发送设备向所述接收设备发送信息时,所述发送设备根据所述第一地址信息通过RDMA操作将所述信息存放至所述第一接收内存;其中,所述第一内存信息还包括所述第一接收内存的内存空间信息,所述发送设备接收所述接收设备发送的所述第一内存信息之后,所述方法还包括:当所述发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第一内存空闲阈值时,所述发送设备向所述接收设备发送内存释放消息,所述内存释放消息用于请求释放所述第一接收内存中存放的信息;或者当所述发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第一内存空闲阈值时,所述发送设备向接收设备发送第二申请消息,并接收所述接收设备发送的第二内存信息,所述第二申请消息用于在所述接收设备申请第二接收内存,所述第二接收内存用于存放所述发送设备向所述接收设备发送的信息,所述第二内存信息至少包含所述第二接收内存的第二地址信息。2.如权利要求1所述的方法,其特征在于,所述第一接收内存与所述第二接收内存的地址连续,所述发送设备根据所述第一地址信息通过RDMA操作将所述信息存放至所述第一接收内存,包括:当所述第一接收内存的空闲空间不够存放所述信息时,所述发送设备根据所述第一地址信息和所述第二地址信息通过RDMA操作将所述信息存放至连续接收内存,所述连续接收内存包括所述第一接收内存中的空闲内存和所述第二接收内存中与所述空闲内存连续的内存。3.一种基于远程直接内存访问RDMA的通信方法,其特征在于,包括:接收设备接收发送设备发送的第一申请消息,所述第一申请消息用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接收设备发送的信息;所述接收设备根据所述第一申请消息从所述接收设备的内存中选择所述第一接收内存;所述接收设备向所述发送设备发送第一内存信息;其中,所述第一内存信息至少包含所述第一接收内存的第一地址信息;所述接收设备的所述第一接收内存存放信息,所述信息为所述发送设备根据所述第一地址信息通过RDMA操作存放的信息;其中,所述第一内存信息还包括所述第一接收内存的内存空间信息,所述接收设备向所述发送设备发送第一内存信息之后,所述方法还包括:所述接收设备接收所述发送设备发送的内存释放消息,所述内存释放消息用于请求释放所述第一接收内存中存放的信息;所述内存释放消息是当所述发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第一内存空闲阈值时发送的消息;所述接收设备根据所述内存释放消息释放所述第一接收内存中存放的信息;或者所述接收设备接收所述发送设备发送的第二申请消息,根据所述第二申请消息从所述接收设备的内存中选择所述第二接收内存,并向所述发送设备发送第二内存信息,所述第二申请消息用于在所述接收设备申请第二接收内存,所述第二接收内存用于存放所述发送设备向所述接收设备发送的信息,所述第二申请消息为当所述发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第一内存空闲阈值时发送的消息,所述第二内存信息至少包含所述第二接收内存的第二地址信息。4.如权利要求3所述的方法,其特征在于,所述第一接收内存与所述第二接收内存的地址连续,所述接收设备的所述第一接收内存存放信息,包括:所述接收设备的连续接收内存存放信息,所述信息为当所述第一接收内存的空闲空间不够存放所述信息时,所述发送设备根据所述第一地址信息和所述第二地址信息通过RDMA操作存放的信息;所述连续接收内存包括所述第一接收内存中的空闲内存和所述第二接收内存中与所述空闲内存连续的内存。5.一种通信设备,其特征在于,包括:第一发送单元、第一接收单元和存放单元,其中:所述第一发送单元,用于向接收设备发送第一申请消息,所述第一申请消息用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述通信设备向所述接收设备发送的信息;所述第一接收单元,用于接收所述接收设备发送的第一内存信息;其中,所述第一内存信息至少包含所述第一接收内存的第一地址信息;所述存放单元,用于当所述通信设备需要向所述接收设备发送信息时,根据所述第一地址信息通过RDMA操作将所述信息存放至所述第一接收内存;其中,所述第一内存信息还包括所述第一接收内存的内存空间信息,所述设备还包括:第二发送单元,用于当所述通信设备根据所述内存空间信息,以及所述通信设备通过RDMA操作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第一内存空闲阈值时,向所述接收设备发送内存释放消息,所述内存释放消息用于请求释放所述第一接收内存中存放的信息;或者第二发送单元,用于当...

【专利技术属性】
技术研发人员:曾德勋殷罗英林水平陈剑军
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1