【技术实现步骤摘要】
一种进程间报文传输的方法、设备及介质
本说明书涉及计算机应用
,尤其涉及一种进程间报文传输的方法、设备及介质。
技术介绍
在网络设备收发与处理报文的过程中,在操作系统(一般是linux)层面上往往会运行3种进程,分别是用于收发报文的网卡驱动进程、用于对报文进行网络协议层面处理的协议栈进程以及用于对报文进行应用层面处理的应用进程。其中,网卡驱动进程与协议栈进程之间需要进行报文传输,协议栈进程与应用进程之间需要进行报文传输。在实际应用中,网卡驱动进程与协议栈进程是基于内核态运行的,应用进程是基于用户态运行的。然而,基于内核态运行的进程与基于用户态运行的进程通常是基于Socket机制进行报文传输的,在进行报文传输时,会涉及到对报文的多次拷贝操作,此操作需要一定的时间开销,会降低报文传输效率。
技术实现思路
为克服现有技术中存在的报文传输效率低的问题,本说明书提供了一种进程间报文传输的方法、设备及介质。根据本说明书实施例的第一方面,提供一种进程间报文传输的方法,将网络设备的部分物理内存空间映射到网卡驱动进程与协议栈进程之间共享的地址空间,得到内核态虚拟内存空间,以及将所述部分物理内存空间映射到应用进程的地址空间,得到用户态虚拟内存空间;所述协议栈进程属于内核态进程,所述方法包括:所述网卡驱动进程接收报文,并将所述报文写入所述内核态虚拟内存空间;所述协议栈进程对所述报文处理后,基于所述报文在所述内核态虚拟内存空间中的缓存地址与所述内核态虚拟内存空间的起始地址,确 ...
【技术保护点】
1.一种进程间的报文传输方法,其特征在于,将网络设备的部分物理内存空间映射到网卡驱动进程与协议栈进程之间共享的地址空间,得到内核态虚拟内存空间,以及将所述部分物理内存空间映射到应用进程的地址空间,得到用户态虚拟内存空间,所述方法包括:/n所述网卡驱动进程接收报文,并将所述报文写入所述内核态虚拟内存空间;/n所述协议栈进程对所述报文处理后,基于所述报文在所述内核态虚拟内存空间中的缓存地址与所述内核态虚拟内存空间的起始地址,确定地址偏移量;/n所述协议栈进程基于套接字Socket机制,将所述地址偏移量传输给所述应用进程;/n所述应用进程基于所述地址偏移量与所述用户态虚拟内存空间的起始地址,确定所述报文在所述用户态虚拟内存空间中的缓存地址,并基于确定的缓存地址获取所述报文。/n
【技术特征摘要】
1.一种进程间的报文传输方法,其特征在于,将网络设备的部分物理内存空间映射到网卡驱动进程与协议栈进程之间共享的地址空间,得到内核态虚拟内存空间,以及将所述部分物理内存空间映射到应用进程的地址空间,得到用户态虚拟内存空间,所述方法包括:
所述网卡驱动进程接收报文,并将所述报文写入所述内核态虚拟内存空间;
所述协议栈进程对所述报文处理后,基于所述报文在所述内核态虚拟内存空间中的缓存地址与所述内核态虚拟内存空间的起始地址,确定地址偏移量;
所述协议栈进程基于套接字Socket机制,将所述地址偏移量传输给所述应用进程;
所述应用进程基于所述地址偏移量与所述用户态虚拟内存空间的起始地址,确定所述报文在所述用户态虚拟内存空间中的缓存地址,并基于确定的缓存地址获取所述报文。
2.如权利要求1所述的方法,其特征在于,预先为Socket机制的发送函数添加第一计算功能,用于将所述报文在所述内核态虚拟内存空间中的缓存地址与所述内核态虚拟内存空间的起始地址相减,得到地址偏移量;预先为Socket机制的接收函数添加第二计算功能,用于将所述地址偏移量与所述用户态虚拟内存空间的起始地址相加,得到所述报文在所述用户态虚拟内存空间的缓存地址。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述应用进程在对所述报文完成处理后,通过所述用户态虚拟内存空间释放所述报文占用的物理内存。
4.一种进程间的报文传输方法,其特征在于,将网络设备的部分物理内存空间映射到网卡驱动进程与协议栈进程之间共享的地址空间,得到内核态虚拟内存空间,以及将所述部分物理内存空间映射到应用进程的地址空间,得到用户态虚拟内存空间,所述方法包括:
所述应用进程对报文处理完成后,将所述处理完成后的报文写入所述用户态虚拟内存空间;
所述应用进程基于所述报文在所述用户态虚拟内存空间中的缓存地址与所述用户态虚拟内存空间的起始地址,确定地址偏移量;
所述应用进程基于套接字Socket机制,将所述地址偏移量传输给所述协议栈进程;
所述协议栈程基于所述地址偏移量与所述内核态虚拟内存空间的起始地址,确定所述报文在所述内核态虚拟内存空间中的缓存地址,并基于确定的缓存地址获取所述报文并对所述报文进行处理;
在协议栈进程对所述报文处理完成后,网卡驱动进程通过所述内核态虚拟内存空间,获取并发送所述报文。
5.如权利要求4所述方法,其特征在于,预先为Socket机制的发送函数添加第一计算功能,用于将所述报文在所述用户态虚拟内存空间中的缓存地址与所述用户态虚拟内存空间...
【专利技术属性】
技术研发人员:曲博,
申请(专利权)人:杭州迪普科技股份有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。