一种基于socket接口的通信方法和系统与流程
- 国知局
- 2024-09-11 15:08:35
本申请涉及通信,尤其涉及一种基于socket接口的通信方法和系统。
背景技术:
1、大规模数据分析和事务处理、高频交易系统、实时数据同步和备份、大型并行计算任务和人工智能模型训练、以及云计算和数据中心内部网络优化场景,对主机间通信性能有着严格的要求。
2、用户态远程直接内存访问 (remote direct memory access,rdma)verbs 是上述高性能网络通信场景下的第一选择,其允许用户态进程绕过内核和中央处理器(centralprocessing unit,简称为 cpu)直接在网络硬件上操作数据,能显著减少延迟和cpu负载,提供更高的数据吞吐量和更低的数据传输延迟。然而基于 verbs开发rdma应用要求开发者和运维团队不仅需要具备专业的网络和硬件知识,还需要持续投入时间和资源进行技术更新和系统优化,从而确保系统的高效运行和稳定性。
3、共享内存通信(shared memory communication,smc)是 ibm 提出的一种高性能网络协议,无需应用任何修改即可将tcp通信透明替换成rdma通信,解决了上述基于 verbs接口编程过于复杂的问题,同时将维护成本限制在内核内,极大地降低了开发者和维护团队的成本。然而,为了完全兼容标准的 tcp 应用,smc 在实现上引入了用户态和内核之间切换的指令开销和拷贝开销。针对该技术问题,相关技术尚未提出有效地解决方案。
技术实现思路
1、本申请实施例提供了一种基于socket接口的通信方法和系统,以解决上述一个或多个技术问题。
2、第一方面,本申请实施例提供了一种基于socket接口的通信方法,包括:
3、在本地节点与远端节点支持共享内存通信smc协议且目标链路可达的情况下,将用户态申请的本地内存地址注册到内核中,得到本地地址注册信息,其中,所述目标链路与所述smc的底层硬件设备类型对应;
4、将所述本地地址注册信息发送至所述远端节点,并接收所述远端节点发送的远端地址注册信息;
5、在所述用户态将目标数据写入所述本地内存地址的空间后,通过直接内存访问方式从所述用户态读取所述目标数据并将所述目标数据传输至所述远端地址注册信息对应的远端内存地址的空间中。
6、第二方面,本申请实施例提供了一种socket接口,包括:
7、第一子接口,用于在本地节点与远端节点支持共享内存通信smc协议且目标链路可达的情况下,将用户态申请的本地内存地址注册到内核中,得到本地地址注册信息,其中,所述目标链路与所述smc的底层硬件设备类型对应,将所述本地地址注册信息发送至所述远端节点,并接收所述远端节点发送的远端地址注册信息;
8、第二子接口,用于在所述用户态将目标数据写入所述本地内存地址的空间后,通过直接内存访问方式从所述用户态读取所述目标数据并将所述目标数据传输至所述远端地址注册信息对应的远端内存地址的空间中。
9、第三方面,本实施例提供了一种基于socket接口的通信系统,包括:
10、本地节点,用于在本地节点与远端节点支持共享内存通信smc协议且目标链路可达的情况下,将用户态申请的本地内存地址注册到内核中,得到本地地址注册信息,其中,所述目标链路与所述smc的底层硬件设备类型对应;将所述本地地址注册信息发送至所述远端节点,并接收所述远端节点发送的远端地址注册信息;在所述用户态将目标数据写入所述本地内存地址的空间后,通过直接内存访问方式从所述用户态读取所述目标数据并将所述目标数据传输至所述远端地址注册信息对应的远端内存地址的空间中;
11、远端节点,用于确定远端地址注册信息,并向所述本地节点发送所述远端地址注册信息 ,以及在接收到所述目标数据后,将所述目标数据写入到所述远端地址注册信息对应的远端内存地址的空间中。
12、第四方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现上述任一项所述的方法。
13、第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法。
14、第六方面,本申请实施例提供了一种计算机程序产品,包括计算机指令,所示计算机指令被处理器执行时实现上述任一项所述的方法。
15、与相关技术相比,本申请具有如下优点:
16、本申请实施例对socket接口进行了扩展,扩展后的socket接口在本地节点与远端节点支持共享内存通信smc协议且目标链路可达的情况下,将用户态申请的本地内存地址注册到内核中,得到本地地址注册信息,其中,该目标链路与该smc的底层硬件设备类型对应;将该本地地址注册信息发送至该远端节点,并获取该远端节点的远端地址注册信息;在该用户态将目标数据写入该本地内存地址的空间后,通过直接内存访问方式从该用户态读取该目标数据并将该目标数据传输至该远端地址注册信息对应的远端内存地址的空间中。也就是说,本申请实施例扩展后的socket接口可以允许应用使用用户态内存区域直接进行数据通信,而无需cpu在通信数据路径上进行任何操作,解决了相关技术中基于smc协议通信时,需要cpu参与内核态和用户态之间内存拷贝和语义转换,导致通信性能降低的技术问题,进而达到了提高通信性能的技术效果。
17、上述说明仅是本申请技术方案的概述 ,为了能够更清楚了解本申请的技术手段,可依照说明书的内容予以实施,并且为了让本申请的上述和其他目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
技术特征:1.一种基于socket接口的通信方法,包括:
2.根据权利要求1所述的方法,其中,通过直接内存访问方式从所述用户态读取所述目标数据并将所述目标数据传输至所述远端地址注册信息对应的远端内存地址的空间中包括:
3.根据权利要求2所述的方法,其中,将所述目标数据映射到所述内核中,得到数据映射关系包括:
4.根据权利要求1所述的方法,其中,将所述本地地址注册信息发送至所述远端节点包括:
5.根据权利要求1所述的方法,其中,所述目标数据包括:应用数据、用户态自定义控制数据,其中,所述用户态自定义控制数据包括以下至少之一:远端地址注册信息、写入偏移信息、写入长度信息、读取偏移信息、读取长度信息。
6.根据权利要求1至5任一项所述的方法,其中,所述底层硬件设备包括内部共享内存ism设备或者远程直接内存访问rdma设备。
7.根据权利要求6所述的方法,其中,在所述底层硬件设备为所述ism设备时,所述目标链路为直接内存访问dma链路,在所述底层硬件设备为所述rdma设备时,所述目标链路为rdma链路。
8.一种socket接口,包括:
9.根据权利要求8所述的socket接口,其中,所述目标数据包括:应用数据、用户态自定义控制数据,其中,所述用户态自定义控制数据包括以下至少之一:远端地址注册信息、写入偏移信息、写入长度信息、读取偏移信息、读取长度信息。
10.一种基于socket接口的通信系统,包括:
11.根据权利要求10所述的系统,其中,所述底层硬件设备包括内部共享内存ism设备或者远程直接内存访问rdma设备,在所述底层硬件设备为所述ism设备时,所述目标链路为直接内存访问dma链路,在所述底层硬件设备为所述rdma设备时,所述目标链路为rdma链路。
12.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现权利要求1- 7中任一项所述的方法。
13.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1- 7中任一项所述的方法。
14.一种计算机程序产品,包括计算机指令,所示计算机指令被处理器执行时实现权利要求1- 7中任一项所述的方法。
技术总结本申请提供了一种基于socket接口的通信方法和系统,其中,通信方法包括:在本地节点与远端节点支持共享内存通信SMC协议且目标链路可达的情况下,将用户态申请的本地内存地址注册到内核中,得到本地地址注册信息,其中,目标链路与SMC的底层硬件设备类型对应;将本地地址注册信息发送至远端节点,并获取远端节点的远端地址注册信息;在用户态将目标数据写入本地内存地址的空间后,通过直接内存访问方式从用户态读取目标数据并将目标数据传输至远端地址注册信息对应的远端内存地址的空间中,解决了相关技术中基于SMC协议通信,需要CPU参与内核态和用户态之间内存拷贝和语义转换,导致通信性能降低的技术问题。技术研发人员:施威,李靖轩受保护的技术使用者:阿里云计算有限公司技术研发日:技术公布日:2024/9/9本文地址:https://www.jishuxx.com/zhuanli/20240911/293358.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表