[发明专利]进程间通信方法、系统、存储介质和计算机设备在审
申请号: | 202210152816.0 | 申请日: | 2022-02-18 |
公开(公告)号: | CN114518969A | 公开(公告)日: | 2022-05-20 |
发明(设计)人: | 王佰平;裴斐;冯常健;陈谔;方志恒 | 申请(专利权)人: | 杭州朗和科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 孙宝海;阚梓瑄 |
地址: | 310052 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 进程 通信 方法 系统 存储 介质 计算机 设备 | ||
本公开的实施方式涉及计算机技术领域,更具体地,涉及进程间通信方法、系统、存储介质和计算机设备。进程间通信方法应用于共享内核的进程,包括:消息发送进程将待发送的数据报文发送至共享内存,并向消息接收进程发送通知报文,通知报文携带数据报文存储于共享内存中的地址信息;内核响应于通知报文,将通知报文传输至消息接收进程;消息接收进程解析通知报文以获得地址信息,并根据地址信息自共享内存中获取数据报文。本公开能够减少进程间通信所需的数据拷贝开销,并能够进一步避免内核的网络栈开销,实现提高进程间通信速度,减少系统消耗。
技术领域
本公开的实施方式涉及计算机技术领域,更具体地,本公开的实施方式涉及进程间通信方法、系统、存储介质和计算机设备。
背景技术
本部分旨在为权利要求中陈述的本公开的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。
目前的进程间通信方式,需要调用内核的网络栈,将待交换的完整数据从发送进程拷贝到内核空间,再从内核空间拷贝到接收进程。进程运行在用户空间,进程间通信过程中,需要用户空间与内核空间之间大量的数据拷贝开销和内核大量的网络栈开销,造成通信速度慢、系统消耗大。
发明内容
本公开的实施方式期望提供一种进程间通信方法、系统、存储介质和计算机设备,能够减少进程间通信所需的数据拷贝开销,并进一步避免内核的网络栈开销,以实现提高进程间通信速度,减少系统消耗。
根据本公开的一个方面,提供一种进程间通信方法,应用于共享内核的进程,包括:消息发送进程将待发送的数据报文发送至共享内存,并向消息接收进程发送通知报文,所述通知报文携带所述数据报文存储于所述共享内存中的地址信息;所述内核响应于所述通知报文,将所述通知报文传输至所述消息接收进程;所述消息接收进程解析所述通知报文以获得所述地址信息,并根据所述地址信息自所述共享内存中获取所述数据报文。
在本公开的一示例性实施例中,所述内核中部署有eBPF应用;所述将所述通知报文传输至所述消息接收进程,包括:所述内核在所述消息发送进程与所述消息接收进程之间建立Socket连接,生成分别对接所述消息发送进程和所述消息接收进程的Socket接口;所述eBPF应用自对接所述消息发送进程的Socket接口劫持所述通知报文,并将所述通知报文传输至对接所述消息接收进程的Socket接口。
在本公开的一示例性实施例中,所述内核还生成分别对应所述消息发送进程和所述消息接收进程的Socket接口的Socket句柄;所述将所述通知报文传输至对接所述消息接收进程的Socket接口,包括:解析所述通知报文,获得所述通知报文中包含的接口地址;根据所述接口地址确定目标Socket句柄;将所述通知报文传输至所述目标Socket句柄对应的目标Socket接口,所述目标Socket接口为对接所述消息接收进程的Socket接口。
在本公开的一示例性实施例中,每个所述Socket句柄中分别存储所述Socket连接的本地接口地址和对端接口地址,所述接口地址包括源接口地址和目的接口地址;所述根据所述接口地址确定目标Socket句柄,包括:获取以所述目的接口地址为本地接口地址、且以所述源接口地址为对端接口地址的Socket句柄,确定为所述目标Socket句柄。
在本公开的一示例性实施例中,所述将所述通知报文传输至所述消息接收进程,包括:在所述消息发送进程与所述消息接收进程之间建立Socket连接,生成分别对接所述消息发送进程和所述消息接收进程的Socket接口;调用网络协议栈,通过所述网络协议栈将所述通知报文由对接所述消息发送进程的Socket接口传输至对接所述消息接收进程的Socket接口。
在本公开的一示例性实施例中,所述地址信息包括所述数据报文存储于所述共享内存中的首地址和所述数据报文的长度。
在本公开的一示例性实施例中,所述消息发送进程和所述消息接收进程互为业务进程和所述业务进程伴生的Sidecar进程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州朗和科技有限公司,未经杭州朗和科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210152816.0/2.html,转载请声明来源钻瓜专利网。