G06F12/02
1.一种基于远程直接内存访问RDMA的通信方法,其特征在于,包括:
发送设备向接收设备发送第一申请消息,所述第一申请消息用于在所述接 收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接 收设备发送的信息;
所述发送设备接收所述接收设备发送的第一内存信息,其中,所述第一内 存信息至少包含所述第一接收内存的第一地址信息;
当所述发送设备向所述接收设备发送信息时,所述发送设备根据所述第一 地址信息通过RDMA操作将所述信息存放至所述第一接收内存。
2.如权利要求1所述的方法,其特征在于,所述第一内存信息还包括所述 第一接收内存的内存空间信息,所述发送设备接收所述接收设备发送的所述第 一内存信息之后,所述方法还包括:
当所述发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操 作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空 间小于或者等于第一内存空闲阈值时,所述发送设备向所述接收设备发送内存 释放消息,所述内存释放消息用于请求释放所述第一接收内存中存放的信息。
3.如权利要求1所述的方法,其特征在于,所述第一内存信息还包括所述 第一接收内存的内存空间信息,所述发送设备接收所述接收设备发送的所述第 一内存信息之后,所述方法还包括:
当所述发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操 作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空 间小于或者等于第二内存空闲阈值时,所述发送设备向接收设备发送第二申请 消息,所述第二申请消息用于在所述接收设备申请第二接收内存,所述第二接 收内存用于存放所述发送设备向所述接收设备发送的信息;
所述发送设备接收所述接收设备发送的第二内存信息,其中,所述第二内 存信息至少包含所述第二接收内存的第二地址信息。
4.如权利要求3所述的方法,其特征在于,所述第一接收内存与所述第二 接收内存的地址连续,所述发送设备根据所述第一地址信息通过RDMA操作将 所述信息存放至所述第一接收内存,包括:
当所述第一接收内存的空闲空间不够存放所述信息时,所述发送设备根据 所述第一地址信息和所述第二地址信息通过RDMA操作将所述信息存放至连续 接收内存,所述连续接收内存包括所述第一接收内存中的空闲内存和所述第二 接收内存中与所述空闲内存连续的内存。
5.一种基于远程直接内存访问RDMA的通信方法,其特征在于,包括:
接收设备接收发送设备发送的第一申请消息,所述第一申请消息用于在所 述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所 述接收设备发送的信息;
所述接收设备根据所述第一申请消息从所述接收设备的内存中选择所述第 一接收内存;
所述接收设备向所述发送设备发送第一内存信息;其中,所述第一内存信 息至少包含所述第一接收内存的第一地址信息;
所述接收设备的所述第一接收内存存放信息,所述信息为所述发送设备根 据所述第一地址信息通过RDMA操作存放的信息。
6.如权利要求5所述的方法,其特征在于,所述第一内存信息还包括所述 第一接收内存的内存空间信息,所述接收设备向所述发送设备发送第一内存信 息之后,所述方法还包括:
所述接收设备接收所述发送设备发送的内存释放消息,所述述内存释放消 息用于请求释放所述第一接收内存中存放的信息;所述内存释放消息是当所述 发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操作在所述第 一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空间小于或者 等于第一内存空闲阈值时发送的消息;
所述接收设备根据所述内存释放消息释放所述第一接收内存中存放的信 息。
7.如权利要求5所述的方法,其特征在于,所述第一内存信息还包括所述 第一接收内存的内存空间信息,所述接收设备向所述发送设备发送第一内存信 息之后,所述方法还包括:
所述接收设备接收所述发送设备发送的第二申请消息,所述第二申请消息 用于在所述接收设备申请第二接收内存,所述第二接收内存用于存放所述发送 设备向所述接收设备发送的信息,所述第二申请消息为当所述发送设备根据所 述内存空间信息,以及所述发送设备通过RDMA操作在所述第一接收内存中已 存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第二内存空 闲阈值时发送的消息;
所述接收设备根据所述第二申请消息从所述接收设备的内存中选择所述第 二接收内存;
所述接收设备向所述发送设备发送第二内存信息;其中,所述第二内存信 息至少包含所述第二接收内存的第二地址信息。
8.如权利要求7所述的方法,其特征在于,所述第一接收内存与所述第二 接收内存的地址连续,所述接收设备的所述第一接收内存存放信息,包括:
所述接收设备的连续接收内存存放信息,所述信息为当所述第一接收内存 的空闲空间不够存放所述信息时,为所述发送设备根据所述第一地址信息和所 述第二地址信息通过RDMA操作存放的信息;所述连续接收内存包括所述第一 接收内存中的空闲内存和所述第二接收内存中与所述空闲内存连续的内存。
9.一种通信设备,其特征在于,包括:第一发送单元、第一接收单元和存 放单元,其中:
所述第一发送单元,用于向接收设备发送第一申请消息,所述第一申请消 息用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述发 送设备向所述接收设备发送的信息;
所述第一接收单元,用于接收所述接收设备发送的第一内存信息;其中, 所述第一内存信息至少包含所述第一接收内存的第一地址信息;
所述存放单元,用于当所述通信设备需要向所述接收设备发送信息时,根 据所述第一地址信息通过RDMA操作将所述信息存放至所述第一接收内存。
10.如权利要求9所述的设备,其特征在于,所述第一内存信息还包括所 述第一接收内存的内存空间信息,所述设备还包括:
第二发送单元,用于当所述通信设备根据所述内存空间信息,以及所述通 信设备通过RDMA操作在所述第一接收内存中已存放信息的大小,确定所述第 一接收内存的空闲空间小于或者等于第一内存空闲阈值时,向所述接收设备发 送内存释放消息,所述内存释放消息用于请求释放所述第一接收内存中存放的 信息。
11.如权利要求9所述的设备,其特征在于,所述第一内存信息还包括所 述第一接收内存的内存空间信息,所述设备还包括:
第三发送单元,用于当所述通信设备根据所述内存空间信息,以及所述通 信设备通过RDMA操作在所述第一接收内存中已存放信息的大小,确定所述第 一接收内存的空闲空间小于或者等于第二内存空闲阈值时,向接收设备发送第 二申请消息,所述第二申请消息用于在所述接收设备申请第二接收内存,所述 第二接收内存用于存放所述发送设备向所述接收设备发送的信息;
第二接收单元,用于接收所述接收设备发送的第二内存信息;其中,所述 第二内存信息至少包含所述第二接收内存的第二地址信息。
12.如权利要求11所述的设备,其特征在于,所述第一接收内存与所述第 二接收内存的地址连续存;
所述存放发送单元具体用于当所述通信设备需要向所述接收设备发送消 息,且所述第一接收内存的空闲空间不够存放所述信息时,根据所述第一地址 信息和所述第二地址信息通过RDMA操作将信息存放至连续接收内存,所述连 续接收内存包括所述第一接收内存中的空闲内存和所述第二接收内存中与所述 空闲内存连续的内存。
13.一种通信设备,其特征在于,包括:第一接收单元、第一选择单元和 第一发送单元,其中:
所述第一接收单元,用于接收发送设备发送的第一申请消息,所述第一申 请消息用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所 述发送设备向所述通信设备发送的信息;
所述第一选择单元,用于根据所述第一申请消息将从所述通信设备的内存 中选择所述第一接收内存;
所述第一发送单元,用于向所述发送设备发送第一内存信息;其中,所述 第一内存信息至少包含所述第一接收内存的第一地址信息;
所述通信设备的所述第一接收内存存放信息,所述信息为所述发送设备根 据第一地址信息通过RDMA操作存放的信息。
14.如权利要求13所述的设备,其特征在于,所述第一内存信息还包括所 述第一接收内存的内存空间信息,所述设备还包括:
第二接收单元,用于接收所述发送设备发送的内存释放消息,所述述内存 释放消息用于请求释放所述第一接收内存中存放的信息;所述内存释放消息是 当所述发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操作在 所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空间小 于或者等于第一内存空闲阈值时发送的消息;
释放单元,用于根据所述内存释放消息释放所述第一接收内存中存放的信 息。
15.如权利要求13所述的设备,其特征在于,所述第一内存信息还包括所 述第一接收内存的内存空间信息,所述设备还包括:
第三接收单元,用于接收所述发送设备发送的第二申请消息,所述第二申 请消息用于在所述接收设备申请第二接收内存,所述第二接收内存用于存放所 述发送设备向所述接收设备发送的信息,所述第二申请消息为当所述发送设备 根据所述内存空间信息,以及所述发送设备通过RDMA操作在所述第一接收内 存中已存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第二 内存空闲阈值时发送的消息;
第二选择单元,用于根据所述第二申请消息从所述通信设备的内存中选择 所述第二接收内存;
第二发送单元,用于向所述发送设备发送第二内存信息;其中,所述第二 内存信息至少包含所述第二接收内存的第二地址信息。
16.如权利要求15所述的设备,其特征在于,所述第一接收内存与所述第 二接收内存的地址连续,所述通信设备的连续接收内存存放信息,所述信息为 当所述第一接收内存的空闲空间不够存放所述信息时,为所述发送设备根据所 述第一地址信息和所述第二地址信息通过RDMA操作存放的信息;所述连续接 收内存包括所述第一接收内存中的空闲内存和所述第二接收内存中与所述空闲 内存连续的内存。
17.一种基于远程直接内存访问RDMA的通信系统,其特征在于,包括: 第一通信设备和第二通信设备,其中:
所述第一通信设备用于向所述向第二通信设备发送第一申请消息,所述第 一申请消息用于在所述第二通信设备申请第一接收内存,所述第一接收内存用 于存放所述第一通信设备向所述第二通信设备发送的信息;以及接收所述第二 通信设备发送的第一内存信息;其中,所述第一内存信息至少包含所述第一接 收内存的第一地址信息;当所述第一通信设备需要向所述第二通信设备发送信 息时,根据所述第一地址信息通过RDMA操作将信息存放至所述第一接收内存;
所述第二通信设备用于第二通信设备接收第一通信设备发送的所述第一申 请消息;以及根据所述第一申请消息从所述第二通信设备的内存中选择所述第 一接收内存;以及向所述第一通信设备发送第一内存信息;其中,所述第一内 存信息至少包含所述第一接收内存的第一地址信息。
本发明涉及通信领域,尤其涉及一种基于远程直接内存访问(Remote Direct Memory Access,RDMA)的通信方法、系统及通信设备。
RDMA是一种直接进行远程内存存取的技术,该技术可以减少中央处理器 (Central Processing Unit,CPU)参与数据传输过程的消耗,提升系统处理业务 的性能。
目前的RDMA技术中,RDMA通信中的通信设备各自都分配出独立的用于 RDMA通信的内存区,该内存内划分为大小相同的发送内存区和接收内存区, 并进一步划分为多个固定的缓冲区。消息发送过程中,发送方从发送内存区获 取一个空闲的发送缓冲区并填充消息内容,发送方将通过RDMA操作将发送缓 冲区内填充的消息内容发送到接收方的接收内存区对应的缓冲区。接收方接收 此消息后回复该缓冲区序号给发送方,发送方通过释放发送内存区的发送缓冲 区完成回收,此时消息发送过程结束。
上述技术中,由于每个设备为RDMA通信分配出的内存空间都是预先分配 好的,且空间大小是固定的,但在RDMA通信中发送的消息所需要的内存空间 是不定的,在实际应用中RDMA通信中传输的消息会包括不同的类型的消息, 例如:存放时占用很小内存空间的小消息和存放时占用很大内存空间的大消息。 而每个设备分配出的内存空间都是根据上述大消息在而分配的,即每个设备分 配出的内存空间都会比较大。但在实际应用中RDMA通信中大多数消息都为上 述小消息,由于小消息存放占用的内存空间比较小,即设备分配出的内存空间 经常会存在大量的空闲空间。可见,上述技术中设备的内存的利用率不高。
本发明实施例提供了一种基于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的通信方法的流程示意图;
图2是本发明实施例提供的另一种基于RDMA的通信方法的流程示意图;
图3是本发明实施例提供的另一种基于RDMA的通信方法的流程示意图;
图4是本发明实施例提供的另一种基于RDMA的通信方法的流程示意图;
图5是本发明实施例提供的另一种基于RDMA的通信方法的流程示意图;
图6是本发明实施例提供的另一种基于RDMA的通信方法的流程示意图;
图7是本发明实施例提供的另一种基于RDMA的通信方法的流程示意图;
图8是本发明实施例提供的另一种基于RDMA的通信方法的流程示意图;
图9是本发明实施例提供的另一种基于RDMA的通信方法的流程示意图;
图10是本发明实施例提供的另一种基于RDMA的通信方法的示意图;
图11是本发明实施例的举例示意图;
图12是本发明实施例提供的一种通信设备的结构示意图;
图13是本发明实施例提供的另一种通信设备的结构示意图;
图14是本发明实施例提供的另一种通信设备的结构示意图;
图15是本发明实施例提供的另一种通信设备的结构示意图;
图16是本发明实施例提供的另一种通信设备的结构示意图;
图17是本发明实施例提供的另一种通信设备的结构示意图;
图18是本发明实施例提供的一种基于RDMA的通信系统的结构示意图;
图19是本发明实施例提供的另一种通信设备的结构示意图;
图20是本发明实施例提供的另一种通信设备的结构示意图。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种基于RDMA的通信方法流程示意图,如图 1所示,包括以下步骤:
101、发送设备向接收设备发送第一申请消息,所述第一申请消息用于在所 述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所 述接收设备发送的信息。
即可以理解为发送设备向接收设备申请上述第一接收内存,该第一接收内 存用于存放发送设备向接收设备发送的信息。
102、发送设备接收所述接收设备发送的第一内存信息;其中,所述第一内 存信息至少包含所述第一接收内存的第一地址信息。
当发送设备向接收设备申请到上述第一接收内存后,发送设备就会接收到 接收设备发送的上述第一内存信息,以得知申请的第一接收内存的地址等信息。
103、当所述发送设备需要向所述接收设备发送信息时,所述发送设备根据 所述第一地址信息通过RDMA操作将信息存放至所述第一接收内存。
具体可以是发送设备向接收设备通过RDMA操作将信息存放至所述第一接 收内存,具体可以是该RDMA操作中携带有上述第一地址信息,即该RDMA 操作根据第一地址信息可以知道上述第一接收内存的地址,从而可以将信息存 放至上述第一接收内存中。这样接收设备还可以通过第一地址信息获取第一接 收内存中存放的上述信息,例如,接收设备的上层应用通过第一地址信息获取 第一接收内存中存放的上述信息,对该信息进行处理。
其中,上述信息具体可以是通知、数据、数据包或者报文等传输信息。
其中,上述发送设备可以是任何可以支持RDMA通信的设备,例如:、 计算机或服务器等可以支持RDMA通信的设备。
其中,上述接收设备可以是任何可以支持RDMA通信的设备,例如:、 计算机或服务器等可以支持RDMA通信的设备。
上述第一接收内存具体可以是以内存页为单位的内存,例如上述第一接收 内存包括至少一个内存页。具体可以是接收设备预先将接收设备包括的一部分 或者部分内存划分为至少一个内存页。接收设备再从这至少一个接收内存页中 选择一个作为上述第一接收内存。
上述技术方案中,发送设备向接收设备申请第一接收内存;所述发送设备 再根据第一接收内存的地址信息通过RDMA操作将信息存放至所述第一接收内 存。这样由于接收设备的接收内存是由发送设备主动申请的,即发送设备可以 按需、动态地向接收设备申请接收内存,从而可以提高设备的内存的利用率。
图2是本发明实施例提供的另一种基于RDMA的通信方法的流程示意图, 如图2所示,包括以下步骤:
201、发送设备向接收设备发送第一申请消息,所述第一申请消息用于在所 述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所 述接收设备发送的信息。
该步骤中具体可以是根据发送设备需要向接收设备发送的信息所需要的内 存空间,向接收设备发送第一申请消息,即第一申请消息申请的第一内存空间 可以是大于或者等于发送设备需要向接收设备发送的信息所需要的内存空间, 即第一接收内存的空间大小是发送设备需要向接收设备发送的信息所需要的内 存空间大小而确定的,这样可以实现按需向接收设备申请接收内存。
还可以是接收设备预先设置至少一个接收内存,其中,上述第一接收内存 为该至少一个接收内存中的一个。
202、发送设备接收所述接收设备发送的第一内存信息;其中,所述第一内 存信息至少包含所述第一接收内存的第一地址信息和所述第一接收内存的内存 空间信息。
上述第一内存信息包括上述第一地址信息和上述内存空间信息,这样发送 设备接收到上述第一内存信息后就可以获取到第一内存的地址和空间大小。
203、当所述发送设备需要向所述接收设备发送信息时,所述发送设备根据 所述第一地址信息通过RDMA操作将信息存放至所述第一接收内存。
作为一种可选的实施方式,在步骤202之后,所述方法还可以包括:
204、当所述发送设备根据所述内存空间信息,以及所述发送设备通过 RDMA操作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存 的空闲空间小于或者等于第一内存空闲阈值时,所述发送设备向所述接收设备 发送内存释放消息,所述内存释放消息用于请求释放所述第一接收内存中存放 的信息。
其中,上述第一空闲阈值可以是用户预先设置好的,例如:10个字节或者 0个字节等。上述所述第一接收内存的空闲空间小于或者等于第一内存空间值时 具体还可以理解为所述第一接收内存的空闲空间不能够存放发送设备向接收设 备发送的信息。
该实施方式中,步骤203是可以多次执行的,但每次执行时发送的信息可 以是相同的,也可以是不同的。且发送设备向接收设备发送的信息,该信息的 大小,即该信息存放时需要占用的内存大小,发送设备是知晓的,这样每执行 一次步骤203后,发送设备就可以计算出第一接收内存的空闲空间为多少,当 所述第一接收内存的空闲空间小于或者等于第一内存空闲阈值时,所述发送设 备向所述接收设备发送内存释放消息,所述内存释放消息用于请求释放所述第 一接收内存中存放的信息。
该实施方式,可以实现当发送设备识别出第一接收内存的空闲空间小于或 者等于第一内存空间值时,发送设备请求接收设备释放第一接收内存,即将第 一接收内存中存放的消息转移或者删除,这样第一接收内存就可以继续存放发 送设备发送的信息。
需要说明的是,步骤204可以是在步骤203之前执行,也可以是在步骤203 之后执行,当步骤204可以是在步骤203之前执行,步骤203中存放上述消息 的第一接收内存就为经过步骤204释放后的第一接收内存。
作为一种可选的实施方式,如图4所示,在步骤202之后,所述方法还可 以包括:
205、当所述发送设备根据所述内存空间信息,以及所述发送设备通过 RDMA操作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存 的空闲空间小于或者等于第二内存空闲阈值时,所述发送设备向接收设备发送 第二申请消息,所述第二申请消息用于在所述接收设备申请第二接收内存,所 述第二接收内存用于存放所述发送设备向所述接收设备发送的信息。
其中,上述第二空闲阈值可以是用户预先设置好的,例如:10个字节或者 20个字节等。上述所述第一接收内存的空闲空间小于或者等于第二空闲阈值时 具体还可以理解为所述第一接收内存的空闲空间不能够存放发送设备向接收发 送的信息,或者所述第一接收内存的空闲空间不能够存放发送设备向接收发送 的多个信息,例如,在执行完步骤203中的消息之后的多个信息。
206、发送设备接收所述接收设备发送的的第二内存信息;其中,所述第二 内存信息至少包含所述第二接收内存的第二地址信息。
该实施方式可以实现当上述第一接收内存的空闲空间小于或者等于上述和 二空闲阈值时,发送设备向接收设备申请第二接收内存。
该实施方式,所述第一接收内存与所述第二接收内存的地址连续。步骤203 具体可以包括:
当所述发送设备需要向所述接收设备发送信息,且所述第一接收内存的空 闲空间不够存放所述信息时,所述发送设备根据所述第一地址信息和所述第二 地址信息通过RDMA操作将所述信息存放至连续接收内存,所述连续接收内存 包括所述第一接收内存中的空闲内存和所述第二接收内存中与所述空闲内存连 续的内存。
即可以实现将信息存放至第一接收内存和第二接收内存,即第一接收内存 和第二接收内存共同存放上述信息,例如,第一接收内存存放上述信息的一部 分,第二接收内存存放上述信息的另一部分。
具体还可以是发送设备向接收设备申请到第二接收内存后,就可以将第一 接收内存和第二接收内存作为一个新的接收内存,新的接收内存的空闲内存等 于第一接收内存的空闲内存加上第二接收内存的空闲内存。再通过RDMA操作 将信息存放在新的接收内存中。
上述两个实施方式中,发送设备都可以通过所述内存空间信息,以及所述 发送设备通过RDMA操作在所述第一接收内存中已存放信息的大小识别出第一 接收内存的空闲空间,即发送设备可以管理接收设备的第一接收内存,接收设 备可以不需要对第一内存进行管理,例如,发送设备向接收设备发送的信息为 需要小内存空间的小信息时,发送设备可以申请小空间的第一接收内存,这样 可以减少内存碎片,提高内存的有效利用率;发送设备向接收设备发送的信息 为需要大内存空间的大信息时,发送设备可以申请大空间的第一接收内存,或 者申请多个连续的第一接收内存,这样可以避免额外的分片操作,提高消息传 输的效率。
作为一种可选的实施方式,在步骤203之后,所述方法还可以包括将第一 接收内存的使用情况进行实时更新。这样可以清楚地知道第一接收内存页的使 用情况,以更好地安排以后消息的发送。
作为一种可选的实施方式,上述发送设备具体可以是发送设备包括的主机 通道适配器(Host Channel Adapt,HCA)通过交换机与接收设备包括的HCA进 行通信,即上述第一申请消息、第二申请消息、第一内存信息、第二内存信息 以及RDMA操作都是通过发送设备的HCA、交换机和接收设备的HCA进行传 输的,即可以理解为发送设备的HCA通过交换机与接收设备的HCA连接。例 如:图5所示的连接关系,其中,上述发送设备和接收设备可以是图5中的任 意两个设备,即本实施例还可以支持两个以上的设备进行所述方法的通信。
上述技术方案中,在上面实施例的基础上增加了多种可选的实施方式,且 都可以实现提高设备的内存的利用率。
图6是本发明实施提供的另一种基于RDMA的通信方法的流程示意图,如 图6所示,包括以下步骤:
301、接收设备接收发送设备发送的第一申请消息,所述第一申请消息用于 在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备 向所述接收设备发送的信息。
302、接收设备根据所述第一申请消息从所述接收设备的内存中选择所述第 一接收内存。
可以理解为接收设备根据上述第一申请消息将上述第一接收内存分配给发 送设备使用,即第一接收内存专用于存放发送设备发送的消息。
具体可以是接收设备预先分配至少一个接收内存,当接收到上述第一请求 消息时,就可以从这至少一个接收内存中选择一个作为上述第一接收内存。还 可以是上述第一请求消息包括第一接收内存的空间大小信息,接收设备该根据 空间大小信息从接收设备的内存中选择该空间大小信息所指示的大小的内存作 为上述第一接收内存。
303、接收设备向所述发送设备发送所第一内存信息;其中,所述第一内存 信息至少包含所述第一接收内存的第一地址信息。
304、接收设备的所述第一接收内存存放信息,所述信息为所述发送设备根 据所述第一述第一地址信息通过RDMA操作存放的信息。
具体可以是发送设备根据第一地址信息通过RDMA操作将信息存放至所述 第一接收内存,具体可以是该RDMA操作中携带有上述第一地址信息,即该 RDMA操作通过第一地址信息可以知道上述第一接收内存的地址,从而可以将 信息存放至上述第一接收内存中。这样接收设备还可以通过第一地址信息获取 第一接收内存中存放的上述信息,例如,接收设备的上层应用通过第一地址信 息获取第一接收内存中存放的上述信息,对该信息进行处理。
其中,上述发送设备可以是任何可以支持RDMA通信的设备,例如:、 计算机或服务器等可以支持RDMA通信的设备。
其中,上述接收设备可以是任何可以支持RDMA通信的设备,例如:、 计算机或服务器等可以支持RDMA通信的设备。
上述第一接收内存具体可以是以内存页为单位的内存,例如上述第一接收 内存包括至少一个内存页。具体可以是接收设备预先将接收设备包括的一部分 或者部分内存划分为至少一个内存页。
上述技术方案中,接收设备接收发送设备发送的第一申请消息;接收设备 根据所述第一申请消息从所述接收设备的内存中选择所述第一接收内存;接收 设备向所述发送设备发送第一内存信息;接收设备的所述第一接收内存存放信 息,所述信息为所述发送设备通过RDMA操作存放的信息。这样由于接收设备 的接收内存是由发送设备主动申请的,即发送设备可以按需、动态地向接收设 备申请接收内存,从而可以提高设备的内存的利用率。
图7是本发明实施例提供的另一种基于RDMA的通信方法的流程示意图, 如图7所示,包括以下步骤:
401、接收设备接收发送设备发送的第一申请消息,所述第一申请消息用于 在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备 向所述接收设备发送的信息。
上述第一申请消息具体可以是根据发送设备需要向接收设备发送的信息所 需要的内存空间,向接收设备发送第一申请消息,即第一申请消息申请的第一 内存空间可以是大于或者等于发送设备需要向接收设备发送的信息所需要的内 存空间,即第一接收内存的空间大小是发送设备需要向接收设备发送的信息所 需要的内存空间大小而确定的,这样可以实现按需向接收设备申请接收内存。
还可以是接收设备预先设置至少一个接收内存,其中,上述第一接收内存 为该至少一个接收内存中的一个。
402、接收设备根据所述第一申请消息从所述接收设备的内存中选择所述第 一接收内存。
403、接收设备向所述发送设备发送第一内存信息;其中,所述第一内存信 息至少包含所述第一接收内存的第一地址信息和所述第一接收内存的内存空间 信息。
上述第一内存信息包括上述第一地址信息和上述内存空间信息,这样发送 设备接收到上述第一内存信息后就可以获取到第一内存的地址和空间大小。
404、接收设备的所述第一接收内存存放信息,所述信息为所述发送设备根 据所述第一地址信息通过RDMA操作存放的信息。
作为一种可选的实施方式,如图8所示,在步骤403之后,所述方法还可 以包括:
405、接收设备接收所述发送设备发送的内存释放消息,所述述内存释放消 息用于请求释放所述第一接收内存中存放的信息;所述内存释放消息是当所述 发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操作在所述第 一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空间小于或者 等于第一内存空闲阈值时发送的消息;
406、接收设备根据所述内存释放消息释放所述第一接收内存中存放的信 息。
其中,上述第一空闲阈值可以是用户预先设置好的,例如:10个字节或者 0个字节等。上述所述第一接收内存的空闲空间小于或者等于第一空闲阈值时具 体还可以理解为所述第一接收内存的空闲空间不能够存放发送设备向接收发送 的信息。
该实施方式中,步骤404是可以多次执行的,但每次执行时发送的信息可 以是相同的,也可以是不同的。且发送设备向接收设备发送的信息,该信息的 大小,即该信息存放时需要占用的内存大小,发送设备是知晓的,这样每执行 一次步骤404后,发送设备就可以计算出第一接收内存的空闲空间为多少,当 所述第一接收内存的空闲空间小于或者等于第一内存空闲阈值时,所述发送设 备向所述接收设备发送内存释放消息,所述内存释放消息用于请求释放所述第 一接收内存中存放的信息。
需要说明的是,步骤405可以是在步骤404之前执行,也可以是在步骤404 之后执行,当步骤405可以是在步骤404之前执行,步骤404中存放上述消息 的第一接收内存就为经过步骤406释放后的第一接收内存。
作为一种可选的实施方式,如图9所示,在步骤403之后,所述方法还可 以包括:
407、接收设备接收所述发送设备发送的第二申请消息,所述第二申请消息 用于在所述接收设备申请第二接收内存,所述第二接收内存用于存放所述发送 设备向所述接收设备发送的信息,所述第二申请消息为当所述发送设备根据所 述内存空间信息,以及所述发送设备通过RDMA操作在所述第一接收内存中已 存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第二内存空 闲阈值时发送的消息;
408、接收设备根据所述第二申请消息从所述接收设备的内存中选择所述第 二接收内存;
409、接收设备向所述发送设备发送第二内存信息;其中,所述第二内存信 息至少包含所述第二接收内存的第二地址信息。
其中,上述第二空闲阈值可以是用户预先设置好的,例如:10个字节或者 20个字节等。上述所述第一接收内存的空闲空间小于或者等于第二空闲阈值时 具体还可以理解为所述第一接收内存的空闲空间不能够存放发送设备向接收发 送的消息,或者所述第一接收内存的空闲空间不能够存放发送设备向接收发送 的多个信息,例如,在执行完步骤404中的消息之后的多个信息。
该实施方式可以实现当上述第一接收内存的空闲空间小于或者等于上述和 二空闲阈值时,发送设备向接收设备申请第二接收内存,即接收设备将上述第 二接收内存作为存放发送设备发送的信息的内存。
该实施方式,所述第一接收内存与所述第二接收内存的地址连续。步骤404 具体可以包括:
接收设备的连续接收内存存放信息,所述信息为当所述第一接收内存的空 闲空间不够存放所述信息时,为所述发送设备根据所述第一地址信息和所述第 二地址信息通过RDMA操作存放的信息;所述连续接收内存包括所述第一接收 内存中的空闲内存和所述第二接收内存中与所述空闲内存连续的内存。
即可以实现将信息存放至第一接收内存和第二接收内存,即第一接收内存 和第二接收内存共同存放上述信息,例如,第一接收内存存放上述信息的一部 分,第二接收内存存放上述信息的另一部分。
作为一种可选的实施方式,上述发送设备具体可以是发送设备包括的HCA 通过交换机与接收设备包括的HCA进行通信,即上述第一申请消息、第二申请 消息、第一内存信息、第二内存信息以及RDMA操作都是通过发送设备的HCA、 交换机和接收设备的HCA进行传输的,即可以理解为发送设备的HCA通过交 换机与接收设备的HCA连接。例如:图5所示的连接关系,其中,上述发送设 备和接收设备可以是图5中的任意两个设备,即本实施例还可以支持两个以上 的设备进行所述方法的通信。
上述技术方案中,在上面实施例的基础上增加了多种可选的实施方式,且 都可以实现提高设备的内存的利用率。
图10是本发明实施例提供的另一种基于RDMA的通信方法的示意图,如 图10所示,包括以下步骤:
501、发送设备向接收设备发送第一申请消息,所述第一申请消息用于在所 述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所 述接收设备发送的信息。
502、接收设备根据所述第一申请消息从接收设备的内存中选择所述第一接 收内存。
503、接收设备向发送设备发送第一内存信息;其中,所述第一内存信息至 少包含所述第一接收内存的第一地址信息。
504、当所述发送设备需要向所述接收设备发送信息时,所述发送设备根据 所述第一地址信息通过RDMA操作将信息存放至所述第一接收内存。
本实施例中具体的实施例可以参考上面实施例的描述,此处不作重复说明。
上述技术方案中,发送设备向接收设备发送第一申请消息;接收设备根据 所述第一申请消息从接收设备的内存中选择所述第一接收内存;接收设备向发 送设备发送第一内存信息;当所述发送设备需要向所述接收设备发送信息时, 所述发送设备根据所述第一地址信息通过RDMA操作将信息存放至所述第一接 收内存。这样由于接收设备的接收内存是由发送设备主动申请的,即发送设备 可以按需、动态地向接收设备申请接收内存,从而可以提高设备的内存的利用 率,以及提高RDMA通信的传输效率。
下面以一个具体的实例对上述方法进一步说明:
如图11所示,发送设备61包括:应用层611、发送消息管理612、发送驱 动613、发送内存池614、接收消息管理615、接收内存池616和通信代理617; 发送设备62包括:应用层621、发送消息管理622、发送驱动623、发送内存池 624、接收消息管理625、接收内存池626和通信代理627;其中,消息发送流 程如下:
a)、发送设备61和接收设备62分别申请接收内存,并将申请到的接收内 存划分为页。具体可以是向本地内存申请接收内存。由于在实际应用中通信都 是双向的发送设备61可以是发送方也可以是接收方,接收设备62可以是发送 方也可以是接收方。
b)、应用层611通过发送消息管理612发送信息。
c)、发送消息管理612在发送内存池614中申请内存。其中,该步骤具体 请见下面描述的内存申请流程。
d)、发送消息管理612将申请到的内存填充至发送内存池614,并将信息发 送给发送驱动613。
e)、发送驱动613通过RDMA操作将信息写入接收设备62的接收内存页, 并通过接收消息管理622。该RDMA操作中携带有接收内存页的地址信息。
f)、接收消息管理622将接收到的接收内存页的地址信息通知应用层621。
g)、应用层621使用该地址信息获取上述信息。
其中,上述发送内存池614为一个虚拟的内存池,该内存池为用于描述或 者管理发送设备61向接收设备62申请到的接收内存页。例如:发送内存池614 描述了接收内存页1的内存信息,如空间信息和地址信息等。即发送设备61可 以通过发送内存池614管理接收设备62的接收内存池624中的接收内存页1, 当也可以发送设备61向接收设备62申请多个接收内存页。由于发送设备61可 以通过发送内存池614得知接收设备62的接收内存池624的接收内存页的使用 情况,这样可以解决传输小消息时减少内存碎片的问题,例如:发送设备61可 以通过发送内存池614得到接收设备62的接收内存池624的接收内存页只存在 少量的空闲空间时,发送设备61可以向接收设备62申请与该空闲空间连续的 接收内存页,从而可以保证在传输小消息时也可以不产生内存碎片,提高内存 的利用率。还可以解决传输大消息时避免额外的分片操作,例如:发送设备61 可以通过发送内存池614得到接收设备62的接收内存池624的接收内存页的空 闲空间不够存放该大消息时,发送设备61可以向接收设备62申请与该空闲空 间连续的接收内存页,这样该大消息就可以存放在这连续的内存中,从而避免 额外的分片操作,提高传输效率。
其中,内存申请流程可以如下:
a)、发送消息管理612发起内存页申请。其中,该申请包括申请新的接收 内存页,或者申请释放接收内存页。其中,当该申请包括申请新的接收内存页 时,该步骤具体可以是在初始化场景下执行的,也可以是在发送内存池614的 发送内存页(即预先申请到的接收内存页)的空闲空间少于一定量时执行的。 当该申请包括申请释放接收内存页时,该步骤可以是在发送内存池614的发送 内存页(即预先申请到的接收内存页)的空闲空间为零或者少于一定量时执行 的。
b)、通信代理617将上述申请发送至通信代理627。
c)、通信代理627处理上述申请,通过接收消息管理625为发送设备61分 配新的接收内存页或者释放发送设备61已经申请的接收内存页。
d)、接收消息管理625将上述申请的响应返回给通信代理627。其中,响应 具体可以是新申请到的接收内存页的内存信息或者释放已经申请的接收内存页 的释放结果信息。
e)、通信代理627将上述申请的响应返回给通信代理617。
f)、通信代理617将上述申请的响应发送给发送消息管理612。
g)、发送消息管理612更新发送内存池614。其中,更新发送内存池614包 括将新申请的接收内存页加入发送内存池,或者将已经申请的接收内存页的释 放结果更新。
需要说明的是,上述应用层、发送消息管理、发送驱动、发送内存池、接 收消息管理和通信代理都可以是软件虚拟模块。
下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例 一至五实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具 体技术细节未揭示的,请参照本发明实施例一、实施例二、实施例三、实施例 四和实施例五。
图12是本发明实施例提供的一种通信设备的结构示意图,如图12所示, 包括:第一发送单元71、第一接收单元72和存放单元73,其中:
第一发送单元71,用于向接收设备发送第一申请消息,所述第一申请消息 用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送 设备向所述接收设备发送的信息。
即可以理解为第一单元71向接收设备申请上述第一接收内存,该第一接收 内存用于存放所述通信设备向接收设备发送的信息。
第一接收单元72,用于接收所述接收设备发送的第一内存信息;其中,所 述第一内存信息至少包含所述第一接收内存的第一地址信息。
存放单元73,用于当所述通信设备需要向所述接收设备发送信息时,根据 所述第一地址信息通过RDMA操作将所述信息存放至所述第一接收内存。
具体可以是通信设备向接收设备通过RDMA操作将信息存放至所述第一接 收内存,具体可以是该RDMA操作中携带有上述第一地址信息,即该RDMA 操作根据第一地址信息可以知道上述第一接收内存的地址,从而可以将信息存 放至上述第一接收内存中。这样接收设备还可以通过第一地址信息获取第一接 收内存中存放的上述信息,例如,接收设备的上层应用通过第一地址信息获取 第一接收内存中存放的上述信息,对该信息进行处理。
其中,上述信息具体可以是通知、数据、数据包或者报文等传输信息。
其中,上述通信设备可以是任何可以支持RDMA通信的设备,例如:、 计算机或服务器等可以支持RDMA通信的设备。
其中,上述接收设备可以是任何可以支持RDMA通信的设备,例如:、 计算机或服务器等可以支持RDMA通信的设备。
上述第一接收内存具体可以是以内存页为单位的内存,例如上述第一接收 内存包括至少一个内存页。具体可以是接收设备预先将接收设备包括的一部分 或者部分内存划分为至少一个内存页。接收设备再从这至少一个接收内存页中 选择一个作为上述第一接收内存。
上述技术方案中,通信设备向接收设备发送申请第一接收内存;所述通信 设备再根据第一接收内存的地址信息通过RDMA操作将信息存放至所述第一接 收内存。这样由于接收设备的接收内存是由通信设备主动申请的,即通信设备 可以按需、动态地向接收设备申请接收内存,从而可以提高设备的内存的利用 率,以及提高RDMA通信的传输效率。
图13是本发明实施例提供的另一种通信设备的结构示意图,如图13所示, 包括:第一发送单元81、第一接收单元82和存放单元83,其中:
第一发送单元81,用于向接收设备发送第一申请消息,所述第一申请消息 用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述发送 设备向所述接收设备发送的信息。
第一单元81具体可以是根据通信设备需要向接收设备发送的信息所需要的 内存空间,向接收设备发送第一申请消息,即第一申请消息申请的第一内存空 间可以是大于或者等于通信设备需要向接收设备发送的信息所需要的内存空 间,即第一接收内存的空间大小是通信设备需要向接收设备发送的信息所需要 的内存空间大小而确定的,这样可以实现按需向接收设备申请接收内存。
还可以是接收设备预先设置至少一个接收内存,其中,上述第一接收内存 为该至少一个接收内存中的一个。
第一接收单元82,用于接收所述接收设备发送的第一内存信息;其中,所 述第一内存信息至少包含所述第一接收内存的第一地址信息和所述第一接收内 存的内存空间信息。
上述第一内存信息包括上述第一地址信息和上述内存空间信息,这样通信 设备接收到上述第一内存信息后就可以获取到第一内存的地址和空间大小。
存放单元83,用于当所述通信设备需要向所述接收设备发送信息时,根据 所述第一地址信息通过RDMA操作将所述信息存放至所述第一接收内存。
作为一种可选的实施方式,所述设备还可以包括:
第二发送单元84,用于当所述通信设备根据所述内存空间信息,以及所述 通信设备通过RDMA操作在所述第一接收内存中已存放信息的大小,确定所述 第一接收内存的空闲空间小于或者等于第一内存空闲阈值时,向所述接收设备 发送内存释放消息,所述内存释放消息用于请求释放所述第一接收内存中存放 的信息。
该实施方式,可以实现当通信设备识别出第一接收内存的空闲空间小于或 者等于第一内存空间值时,通信设备请求接收设备释放第一接收内存,即将第 一接收内存中存放的消息转移或者删除,这样第一接收内存就可以继续存放通 信设备发送的信息。
需要说明的是,存放单元83中存放上述消息的第一接收内存就为经过第二 发送单元84释放后的第一接收内存,还可以是未经常释放前的第一接收内存。
作为一种可选的实施方式,如图14所示,所述设备还可以包括:
第三发送单元85,用于当所述通信设备根据所述内存空间信息,以及所述 通信设备通过RDMA操作在所述第一接收内存中已存放信息的大小,确定所述 第一接收内存的空闲空间小于或者等于第二内存空闲阈值时,向接收设备发送 第二申请消息,所述第二申请消息用于在所述接收设备申请第二接收内存,所 述第二接收内存用于存放所述发送设备向所述接收设备发送的信息;
第二接收单元86,用于接收所述接收设备发送的第二内存信息;其中,所 述第二内存信息至少包含所述第二接收内存的第二地址信息。
该实施方式可以实现当上述第一接收内存的空闲空间小于或者等于上述和 二空闲阈值时,通信设备向接收设备申请第二接收内存。
该实施方式,所述第一接收内存与所述第二接收内存的地址连续。存放单 元83具体还可以用于当所述第一接收内存的空闲空间不够存放所述信息时,根 据所述第一地址信息和所述第二地址信息通过RDMA操作将所述信息存放至连 续接收内存,所述连续接收内存包括所述第一接收内存中的空闲内存和所述第 二接收内存中与所述空闲内存连续的内存。
具体还可以是通信设备向接收设备申请到第二接收内存后,就可以将第一 接收内存和第二接收内存作为一个新的接收内存,新的接收内存的空闲内存等 于第一接收内存的空闲内存加上第二接收内存的空闲内存。再通过RDMA操作 将信息存放在新的接收内存中。
作为一种可选的实施方式,所述通信设备还可以将第一接收内存的使用情 况进行实时更新。这样可以清楚地知道第一接收内存页的使用情况,以更好地 安排以后消息的发送。
作为一种可选的实施方式,上述通信设备具体可以是通信设备包括的HCA 通过交换机与接收设备包括的HCA进行通信,即上述第一申请消息、第二申请 消息、第一内存信息、第二内存信息以及RDMA操作都是通过通信设备的HCA、 交换机和接收设备的HCA进行传输的,即可以理解为通信设备的HCA通过交 换机与接收设备的HCA连接。例如:图5所示的连接关系,其中,上述通信设 备和接收设备可以是图5中的任意两个设备,即本实施例还可以支持两个以上 的设备进行所述方法的通信。
上述技术方案中,在上面实施例的基础上增加了多种可选的实施方式,且 都可以实现提高设备的内存的利用率。
图15是本发明实施例提供的另一种通信设备的结构示意图,如图15所示, 包括:第一接收单元91、第一选择单元92和第一发送单元93,其中:
第一接收单元91,用于接收发送设备发送的第一申请消息,所述第一申请 消息用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述 发送设备向所述通信设备发送的信息。
第一选择单元92,用于根据所述第一申请消息将从所述通信设备的内存中 选择所述第一接收内存。
可以理解为通信设备根据上述第一申请消息将上述第一接收内存分配给发 送设备使用,即第一接收内存专用于存放发送设备发送的消息。
具体可以是通信设备预先分配至少一个接收内存,当接收到上述第一请求 消息时,就可以从这至少一个接收内存中选择一个作为上述第一接收内存。还 可以是上述第一请求消息包括第一接收内存的空间大小信息,第一选择单元92 该根据空间大小信息从接收设备的内存中选择该空间大小信息所指示的大小的 内存作为上述第一接收内存。
第一发送单元93,用于向所述发送设备发送第一内存信息;其中,所述第 一内存信息至少包含所述第一接收内存的第一地址信息。
所述通信设备的所述第一接收内存存放信息,所述信息为所述发送设备根 据第一地址信息通过RDMA操作存放的信息。
具体可以是发送设备向通信设备根据第一地址信息通过RDMA操作将信息 存放至所述第一接收内存,具体可以是该RDMA操作中携带有上述第一地址信 息,即该RDMA操作通过第一地址信息可以知道上述第一接收内存的地址,从 而可以将消息存放至上述第一接收内存中。这样通信设备还可以通过第一地址 信息获取第一接收内存中存放的上述信息,例如,通信设备的上层应用通过第 一地址信息获取第一接收内存中存放的上述信息,对该信息进行处理。
其中,上述发送设备可以是任何可以支持RDMA通信的设备,例如:、 计算机或服务器等可以支持RDMA通信的设备。
其中,上述通信设备可以是任何可以支持RDMA通信的设备,例如:、 计算机或服务器等可以支持RDMA通信的设备。
上述第一接收内存具体可以是以内存页为单位的内存,例如上述第一接收 内存包括至少一个内存页。具体可以是通信设备预先将通信设备包括的一部分 或者部分内存划分为至少一个内存页。
上述技术方案中,通信设备接收发送设备发送的第一申请消息;通信设备 根据所述第一申请消息从通信设备的内存中选择所述第一接收内存;通信设备 向所述发送设备发送第一内存信息;通信设备的所述第一接收内存存放信息, 所述消息为所述发送设备通过RDMA操作存放的信息。这样由于通信设备的接 收内存是由发送设备主动申请的,即发送设备可以按需、动态地向通信设备申 请接收内存,从而可以提高设备的内存的利用率。
图16是本发明实施例提供的另一种通信设备的结构示意图,如图16所示, 包括:第一接收单元101、第一选择单元102和第一发送单元103,其中:
第一接收单元101,用于接收发送设备发送的第一申请消息,所述第一申请 消息用于在所述接收设备申请第一接收内存,所述第一接收内存用于存放所述 发送设备向所述通信设备发送的信息。
上述第一申请消息具体可以是根据发送设备需要向通信设备发送的消息所 需要的内存空间,向通信设备发送第一申请消息,即第一申请消息申请的第一 内存空间可以是大于或者等于发送设备需要向通信设备发送的消息所需要的内 存空间,即第一接收内存的空间大小是发送设备需要向通信设备发送的信息所 需要的内存空间大小而确定的,这样可以实现按需向通信设备申请接收内存。
还可以是接收设备预先设置至少一个接收内存,其中,上述第一接收内存 为该至少一个接收内存中的一个。
第一选择单元102,用于根据所述第一申请消息将从所述通信设备的内存中 选择所述第一接收内存。
第一发送单元103,用于向所述发送设备发送第一内存信息;其中,所述第 一内存信息至少包含所述第一接收内存的第一地址信息和所述第一接收内存的 内存空间信息。
上述第一内存信息包括上述第一地址信息和上述内存空间信息,这样发送 设备接收到上述第一内存信息后就可以获取到第一内存的地址和空间大小。
所述通信设备的所述第一接收内存存放消息,所述消息为所述发送设备通 过携带所述第一地址信息的RDMA操作存放的消息。
作为一种可选的实施方式,所述设备还可以包括:
第二接收单元104,用于接收所述发送设备发送的内存释放消息,所述述内 存释放消息用于请求释放所述第一接收内存中存放的信息;所述内存释放消息 是当所述发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操作 在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空间 小于或者等于第一内存空闲阈值时发送的消息;
释放单元105,用于根据所述内存释放消息释放所述第一接收内存中存放的 信息。
需要说明的是,所述第一接收内存存放的消息具体可以是存放经过释放单 元105释放后的第一接收内存中,还可以是存放在未经过释放单元105释放后 的第一接收内存中。
作为一种可选的实施方式,如图17所示,所述设备还可以包括:
第三接收单元106,用于接收所述发送设备发送的第二申请消息,所述第二 申请消息用于在所述接收设备申请第二接收内存,所述第二接收内存用于存放 所述发送设备向所述接收设备发送的信息,所述第二申请消息为当所述发送设 备根据所述内存空间信息,以及所述发送设备通过RDMA操作在所述第一接收 内存中已存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第 二内存空闲阈值时发送的消息;
第二选择单元107,用于根据所述第二申请消息从所述通信设备的内存中选 择所述第二接收内存;
第二发送单元108,用于向所述发送设备发送第二内存信息;其中,所述第 二内存信息至少包含所述第二接收内存的第二地址信息。
该实施方式可以实现当上述第一接收内存的空闲空间小于或者等于上述和 二空闲阈值时,发送设备向通信设备申请第二接收内存,即通信设备将上述第 二接收内存作为存放发送设备发送的信息的内存。
该实施方式,所述第一接收内存与所述第二接收内存的地址连续。所述通 信设备的连续接收内存存放信息,所述信息为当所述第一接收内存的空闲空间 不够存放所述信息时,为所述发送设备根据所述第一地址信息和所述第二地址 信息通过RDMA操作存放的信息;所述连续接收内存包括所述第一接收内存中 的空闲内存和所述第二接收内存中与所述空闲内存连续的内存。
即可以实现将信息存放至第一接收内存和第二接收内存,即第一接收内存 和第二接收内存共同存放上述信息,例如,第一接收内存存放上述信息的一部 分,第二接收内存存放上述信息的另一部分。
作为一种可选的实施方式,上述发送设备具体可以是发送设备包括的HCA 通过交换机与通信设备包括的HCA进行通信,即上述第一申请消息、第二申请 消息、第一内存信息、第二内存信息以及RDMA操作都是通过发送设备的HCA、 交换机和通信设备的HCA进行传输的,即可以理解为发送设备的HCA通过交 换机与通信设备的HCA连接。例如:图5所示的连接关系,其中,上述发送设 备和通信设备可以是图5中的任意两个设备,即本实施例还可以支持两个以上 的设备进行所述方法的通信。
上述技术方案中,在上面实施例的基础上增加了多种可选的实施方式,且 都可以实现提高设备的内存的利用率。
图18是本发明实施例提供的一种基于RDMA的通信系统的结构示意图, 如图18所示,包括:第一通信设备111和第二通信设备112,其中:
第一通信设备111用于向所述向第二通信设备112发送第一申请消息,所述 第一申请消息用于在所述第二通信设备112申请第一接收内存,所述第一接收 内存用于存放所述第一通信设备111向所述第二通信设备112发送的信息;以及 接收所述第二通信设备112发送的第一内存信息;其中,所述第一内存信息至 少包含所述第一接收内存的第一地址信息;当所述第一通信设备111需要向所 述第二通信设备112发送信息时,根据所述第一地址信息通过RDMA操作将信 息存放至所述第一接收内存;
所述第二通信设备112用于第二通信设备112接收第一通信设备111发送的 第一申请消息;以及根据所述第一申请消息从所述第二通信设备112的内存中 选择所述第一接收内存;以及向所述第一通信设备111发送第一内存信息;其 中,所述第一内存信息至少包含所述第一接收内存的第一地址信息。
作为一种可选的实施方式,第一通信设备111可以是图12至图14所示的 实施例中任一实施方式的通信设备。
作为一种可选的实施方式,第二通信设备112可以是图15至图17所示的 实施例中任一实施方式的通信设备。
上述技术方案中,第一通信设备向第二通信设备申请第一接收内存;所述 第一通信设备接收所述第二通信设备发送的第一内存信息;当所述第一通信设 备需要向所述第二通信设备发送信息时,所述第一通信设备通过RDMA操作将 信息存放至所述第一接收内存。这样由于第二通信设备的接收内存是由第一通 信设备主动申请的,即第一通信设备可以按需、动态地向第二通信设备申请接 收内存,从而可以提高设备的内存的利用率,以及提高RDMA通信的传输效率。
图19是本发明实施例提供的另一种通信设备的结构示意图,如图19所示, 包括:通信接口121和存储器122,以及与所述通信接口121和所述存储器122 连接的处理器123,所述存储器122存储一组程序代码,所述处理器123用于调 用所述存储器122存储的程序执行如下操作:
向接收设备发送第一申请消息,所述第一申请消息用于在所述接收设备申 请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接收设备发 送的信息;
接收所述接收设备发送的第一内存信息;其中,所述第一内存信息至少包 含所述第一接收内存的第一地址信息;
当所述发送设备需要向所述接收设备发送信息时,根据所述第一地址信息 通过RDMA操作将信息存放至所述第一接收内存。
在另一个实施例中,处理器123还可以用于执行如下操作:
向接收设备发送第一申请消息,所述第一申请消息用于在所述接收设备申 请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接收设备发 送的信息;
接收所述接收设备发送的第一内存信息;其中,所述第一内存信息至少包 含所述第一接收内存的第一地址信息和所述第一接收内存的内存空间信息;
当所述发送设备需要向所述接收设备发送信息时,根据所述第一地址信息 通过RDMA操作将信息存放至所述第一接收内存;
当所述通信设备根据所述内存空间信息,以及所述通信设备通过RDMA操 作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空 间小于或者等于第一内存空闲阈值时,向所述接收设备发送内存释放消息,所 述内存释放消息用于请求释放所述第一接收内存中存放的信息。
该实施方式,可以实现当通信设备识别出第一接收内存的空闲空间小于或 者等于第一内存空间值时,通信设备请求接收设备释放第一接收内存,即将第 一接收内存中存放的消息转移或者删除,这样第一接收内存就可以继续存放通 信设备发送的信息。
需要说明的是,当所述通信设备所述内存空间信息,以及所述发送设备通 过RDMA操作在所述第一接收内存中已存放信息的大小识别出所述第一接收内 存的空闲空间小于或者等于第一内存空间值时,所述通信设备向所述接收设备 发送内存释放消息的操作可以是在当所述通信设备需要向所述接收设备发送信 息时,所述通信设备根据所述第一地址信息通过RDMA操作将信息存放至所述 第一接收内存之前执行,也可以是在当所述通信设备需要向所述接收设备发送 信息时,所述通信设备根据所述第一地址信息通过RDMA操作将信息存放至所 述第一接收内存之后执行,即处理器123向RDMA操作将消息存放至所述第一 接收内存可以为经过释放后的第一接收内存,也可以为未释放后的第一接收内 存。
在另一个实施例中,处理器123还可以用于执行如下操作:
向接收设备发送第一申请消息,所述第一申请消息用于在所述接收设备申 请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接收设备发 送的信息;
接收所述接收设备发送的第一内存信息;其中,所述第一内存信息至少包 含所述第一接收内存的第一地址信息和所述第一接收内存的内存空间信息;
当所述通信设备需要向所述接收设备发送信息时,根据所述第一地址信息 通过RDMA操作将信息存放至所述第一接收内存;
当所述发送设备根据所述内存空间信息,以及所述发送设备通过RDMA操 作在所述第一接收内存中已存放信息的大小,确定所述第一接收内存的空闲空 间小于或者等于第二内存空闲阈值时,所述发送设备向接收设备发送第二申请 消息,所述第二申请消息用于在所述接收设备申请第二接收内存,所述第二接 收内存用于存放所述发送设备向所述接收设备发送的信息;
接收所述接收设备发送的的第二内存信息;其中,所述第二内存信息至少 包含所述第二接收内存的第二地址信息。
该实施方式可以实现当上述第一接收内存的空闲空间小于或者等于上述和 二空闲阈值时,通信设备向接收设备申请第二接收内存。
该实施方式,所述第一接收内存与所述第二接收内存的地址连续。处理器 123执行的当所述通信设备需要向所述接收设备发送信息时,根据所述第一地址 信息通过RDMA操作将信息存放至所述第一接收内存的操作可以包括:
当所述通信设备需要向所述接收设备发送信息,且所述第一接收内存的空 闲空间不够存放所述信息时,根据所述第一地址信息和所述第二地址信息通过 RDMA操作将所述信息存放至连续接收内存,所述连续接收内存包括所述第一 接收内存中的空闲内存和所述第二接收内存中与所述空闲内存连续的内存。
即可以实现将信息存放至第一接收内存和第二接收内存,即第一接收内存 和第二接收内存共同存放上述信息,例如,第一接收内存存放上述信息的一部 分,第二接收内存存放上述信息的另一部分。
其中,上述网络接口131具体可以是HCA。
其中,上述通信设备可以是任何可以支持RDMA通信的设备,例如:、 计算机或服务器等可以支持RDMA通信的设备。
其中,上述接收设备可以是任何可以支持RDMA通信的设备,例如:、 计算机或服务器等可以支持RDMA通信的设备。
上述第一接收内存具体可以是以内存页为单位的内存,例如上述第一接收 内存包括至少一个内存页。具体可以是接收设备预先将接收设备包括的一部分 或者部分内存划分为至少一个内存页。
上述技术方案中,通信设备向接收设备申请第一接收内存;所述通信设备 再根据第一接收内存的地址信息通过RDMA操作将信息存放至所述第一接收内 存。这样由于接收设备的接收内存是由发送设备主动申请的,即发送设备可以 按需、动态地向接收设备申请接收内存,从而可以提高设备的内存的利用率。
图20是本发明实施例提供的另一种通信设备的结构示意图,如图20所示, 包括:通信接口131和存储器132,以及与所述通信接口131和所述存储器132 连接的处理器133,所述存储器132存储一组程序代码,所述处理器133用于调 用所述存储器存储的程序执行如下操作:
接收发送设备发送的第一申请消息,所述第一申请消息用于在所述接收设 备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接收设 备发送的信息;
根据所述第一申请消息从所述接收设备的内存中选择所述第一接收内存;
向所述发送设备发送所第一内存信息;其中,所述第一内存信息至少包含 所述第一接收内存的第一地址信息;
通信设备的所述第一接收内存存放信息,所述信息为所述发送设备根据所 述第一述第一地址信息通过RDMA操作存放的信息。
在另一个实施例中,处理器123还可以用于执行如下操作:
接收发送设备发送的第一申请消息,所述第一申请消息用于在所述接收设 备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接收设 备发送的信息;
根据所述第一申请消息从所述接收设备的内存中选择所述第一接收内存;
向所述发送设备发送第一内存信息;其中,所述第一内存信息至少包含所 述第一接收内存的第一地址信息和所述第一接收内存的内存空间信息;
通信设备的所述第一接收内存存放信息,所述信息为所述发送设备根据所 述第一述第一地址信息通过RDMA操作存放的信息;
接收所述发送设备发送的内存释放消息,所述述内存释放消息用于请求释 放所述第一接收内存中存放的信息;所述内存释放消息是当所述发送设备根据 所述内存空间信息,以及所述发送设备通过RDMA操作在所述第一接收内存中 已存放信息的大小,确定所述第一接收内存的空闲空间小于或者等于第一内存 空闲阈值时发送的消息;
根据所述内存释放消息释放所述第一接收内存中存放的信息。
该实施方式,可以实现当发送设备识别出第一接收内存的空闲空间小于或 者等于第一内存空间值时,发送设备请求通信设备释放第一接收内存,即将第 一接收内存中存放的消息转移或者删除,这样第一接收内存就可以继续存放发 送设备发送的消息。
在另一个实施例中,处理器133还可以执行如下操作:
接收发送设备发送的第一申请消息,所述第一申请消息用于在所述接收设 备申请第一接收内存,所述第一接收内存用于存放所述发送设备向所述接收设 备发送的信息;
根据所述第一申请消息从所述接收设备的内存中选择所述第一接收内存;
向所述发送设备发送第一内存信息;其中,所述第一内存信息至少包含所 述第一接收内存的第一地址信息和所述第一接收内存的内存空间信息;
通信设备的所述第一接收内存存放信息,所述信息为所述发送设备根据所 述第一述第一地址信息通过RDMA操作存放的信息;
接收所述发送设备发送的第二申请消息,所述第二申请消息用于在所述接 收设备申请第二接收内存,所述第二接收内存用于存放所述发送设备向所述接 收设备发送的信息,所述第二申请消息为当所述发送设备根据所述内存空间信 息,以及所述发送设备通过RDMA操作在所述第一接收内存中已存放信息的大 小,确定所述第一接收内存的空闲空间小于或者等于第二内存空闲阈值时发送 的消息;
根据所述第二申请消息从所述接收设备的内存中选择所述第二接收内存;
向所述发送设备发送第二内存信息;其中,所述第二内存信息至少包含所 述第二接收内存的第二地址信息。
其中,上述网络接口131具体可以是HCA。
其中,上述发送设备可以是任何可以支持RDMA通信的设备,例如:、 计算机或服务器等可以支持RDMA通信的设备。
其中,上述通信设备可以是任何可以支持RDMA通信的设备,例如:、 计算机或服务器等可以支持RDMA通信的设备。
上述第一接收内存具体可以是以内存页为单位的内存,例如上述第一接收 内存包括至少一个内存页。具体可以是通信设备预先将通信设备包括的一部分 或者部分内存划分为至少一个内存页。
上述技术方案中,通信设备接收发送设备发送的第一申请消息;通信设备 根据所述第一申请消息从所述接收设备的内存中选择所述第一接收内存;通信 设备向所述发送设备发送第一内存信息;通信设备的所述第一接收内存存放信 息,所述信息为所述发送设备通过RDMA操作存放的信息。这样由于通信设备 的接收内存是由发送设备主动申请的,即发送设备可以按需、动态地向通信设 备申请接收内存,从而可以提高设备的内存的利用率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存取存储器(Random Access Memory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之 权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
本文发布于:2023-04-13 23:52:13,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/86293.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |