【技术实现步骤摘要】
网络操作系统及报文转发方法
本申请涉及网络通信技术,特别涉及网络操作系统及报文转发方法。
技术介绍
随着智能设备的普及,很多应用程序(APP)拥有非常大的用户数量,甚至,有的APP拥有高达数亿用户,这对智能设备内承载APP的网络操作系统的性能有很高的要求。网络操作系统中协议栈的处理性能反映了整个网络操作系统的性能。目前,在网络操作系统中,常用的协议栈是Linux内核协议栈。但是,Linux内核协议栈在设置时没有过多考虑自身的处理性能,并且由于加锁等原因,在多核并发的情况下,Linux内核协议栈的处理性能急剧下降。
技术实现思路
本申请提供了网络操作系统及报文转发方法,以实现网络操作系统通过在用户态融合共享模型和独享模型中的协议栈,提高网络操作系统的性能。本申请提供的技术方案包括:第一方面,本申请提供了一种网络操作系统,所述网络操作系统包括:运行在用户态的转发进程和至少一个业务进程;转发进程包括:数据平面开发配置DPDK组件、IP转发组件、协议栈代理、第一协议栈;第一协议栈为至少一种应用提供服务;每一业务进程,与协议栈代理连接,至少包括:第二协议栈;每一业务进程的第二协议栈为该业务进程对应的应用提供服务;DPDK组件,向IP转发组件发送第一报文在内存中的第一存储位置信息;IP转发组件,接收第一存储位置信息,判断内存中第一存储位置信息对应的第一报文是否由第一协议栈处理,若是,向第一协议栈发送第一存储位置信息,以由第一协议栈按照第一处理方式对内存中 ...
【技术保护点】
1.一种网络操作系统,其特征在于,所述网络操作系统包括:运行在用户态的转发进程和至少一个业务进程;/n所述转发进程包括:数据平面开发配置DPDK组件、IP转发组件、协议栈代理、第一协议栈;所述第一协议栈为至少一种应用提供服务;/n每一业务进程,与所述协议栈代理连接,至少包括:第二协议栈;每一业务进程的第二协议栈为该业务进程对应的应用提供服务;/nDPDK组件,向IP转发组件发送第一报文在内存中的第一存储位置信息;/nIP转发组件,接收第一存储位置信息,判断所述内存中第一存储位置信息对应的第一报文是否由第一协议栈处理,若是,向第一协议栈发送第一存储位置信息,以由第一协议栈按照第一处理方式对内存中第一存储位置信息对应的第一报文进行处理,否则,向协议栈代理发送第一存储位置信息;/n协议栈代理,接收第一存储位置信息,从相连接的各个业务进程中选择一个目标业务进程,向目标业务进程发送第一存储位置信息,以由目标业务进程依据第二协议栈并按照第二处理方式对内存中第一存储位置信息对应的第一报文进行处理。/n
【技术特征摘要】
1.一种网络操作系统,其特征在于,所述网络操作系统包括:运行在用户态的转发进程和至少一个业务进程;
所述转发进程包括:数据平面开发配置DPDK组件、IP转发组件、协议栈代理、第一协议栈;所述第一协议栈为至少一种应用提供服务;
每一业务进程,与所述协议栈代理连接,至少包括:第二协议栈;每一业务进程的第二协议栈为该业务进程对应的应用提供服务;
DPDK组件,向IP转发组件发送第一报文在内存中的第一存储位置信息;
IP转发组件,接收第一存储位置信息,判断所述内存中第一存储位置信息对应的第一报文是否由第一协议栈处理,若是,向第一协议栈发送第一存储位置信息,以由第一协议栈按照第一处理方式对内存中第一存储位置信息对应的第一报文进行处理,否则,向协议栈代理发送第一存储位置信息;
协议栈代理,接收第一存储位置信息,从相连接的各个业务进程中选择一个目标业务进程,向目标业务进程发送第一存储位置信息,以由目标业务进程依据第二协议栈并按照第二处理方式对内存中第一存储位置信息对应的第一报文进行处理。
2.根据权利要求1所述的网络操作系统,其特征在于,所述IP转发组件判断所述内存中第一存储位置信息对应的第一报文是否由第一协议栈处理,包括:
依据所述第一存储位置信息从所述内存读取第一报文;
在已获取的各业务进程对应的应用的应用信息中,查找所述第一报文匹配的目标应用信息;
若未查找到,则确定所述第一报文由所述第一协议栈处理,若查找到,则确定所述第一报文由所述第二协议栈处理。
3.根据权利要求1所述的网络操作系统,其特征在于,每一业务进程进一步用于:向协议栈代理发送第二存储位置信息,所述第二存储位置信息表示业务进程待发送的第二报文在内存中的存储位置;
所述协议栈代理进一步用于:接收所述第二存储位置信息,向IP转发组件发送所述第二存储位置信息,以由IP转发组件通过与DPDK组件配合转发所述内存中的第二报文。
4.根据权利要求3所述的网络操作系统,其特征在于,所述协议栈代理进一步用于:依据所述第二存储位置信息从所述内存读取第二报文,依据第二报文中的报文特征信息、发送所述第二存储位置信息的业务进程的业务进程标识生成流表项并记录至本地流表;
所述协议栈代理从相连接的各个业务进程中选择一个目标业务进程包括:
依据所述第一存储位置信息从所述内存读取第一报文,在本地流表中查找到与所述第一报文的报文特征信息匹配的流表项,将查找到的流表项中的业务进程标识对应的业务进程确定为所述目标业务进程。
5.根据权利要求3所述的网络操作系统,其特征在于,所述第二报文携带有报文特征信息,所述报文特征信息至少包括:源端口号、目的端口号;
其中,当业务进程运行在客户端,所述源端口号是从设定端口号范围内选择出的且满足设定条件,所述目的端口号是服务器上的指定端口号;
所述设定条件为:按照设定业务分担算法将包括所述源端口号、目的端口号的所述报文特征信息、以及指定值M进行运算得到的结果为所述业务进程的业务进程标识,所述指定值M为:所述业务进程所属的应用对应的业务进程总数;
当业务进程运行在服务器,则所述源端口号是服务器上的指定端口号,所述目的端口号是已接收的第三报文的源端口号,所述第二报文为响应所述第三报文的响应报文。
6.根据权利要求5所述的网络操作系统,其特征在于,所述协议栈代理从相连接的各个业务进程中选择一个目标业务进程包括:
依据所述第一存储位置信息从所述内存读取第一报文,确定与所述第一报文所属的应用对应的业务进程;
在确定出的业务进程的数量N等于1时,将确定出的业务进程确定为所述目标业务进程;
在确定出的业务进程的数量N大于1时,按照设定业务分担算法并将所述第一报文的报文特征信息和所述N进行运算得到业务进程标识,将与计算出的业务进程标识对应的业务进程确定为所述目标业务...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。