本申请提供了基于用户态协议栈的数据处理方法、装置以及处理设备,通过提供一个用户态协议栈的新型应用机制,以此在基于用户态协议栈进行数据处理时,可以避免内核态与用户态之间的频繁切换开销,有效降低对于软硬件成本和人力成本的需求,实现高性能的协议处理能力,进而满足用户态协议栈的高质量应用效果。
【技术实现步骤摘要】
本申请涉及数据处理领域,具体涉及基于用户态协议栈的数据处理方法、装置以及处理设备。
技术介绍
1、随着云计算、数据中心和网络应用的增长,对高性能、灵活性和低延迟的协议处理的需求也随之增加,而传统的协议处理方法通常是同步和阻塞的,并不适合现代高并发和低延迟的网络环境,因此在对转发性能要求高的网络环境下,常采用基于用户态协议栈的报文转发处理。
2、现在面临的一个问题是,基于用户态协议栈的应用往往涉及到多个协议,传统的做法是,将从用户态协议栈中读到的数据由一个协议完成后交给另一个协议,完成后再将数据传输回来,然而这样的处理机制存在以下两个问题:
3、1)每个协议对数据的处理速度都不一样,如果中间某个协议对上一个协议传递的数据一次处理不了,需要将数据缓存下来,这里的数据缓存既浪费系统空间,又影响系统性能;
4、2)在新加一个协议时,需要改动原有的其他协议的实现,以便其他协议能将数据传递给新加的协议,如此也存在不利于协议扩展的问题。
5、显然,现有的基于用户态协议栈的应用机制,在涉及到软硬件成本和人力成本的处理成本上,存在着明显的局限问题。
技术实现思路
1、本申请提供了基于用户态协议栈的数据处理方法、装置以及处理设备,通过提供一个用户态协议栈的新型应用机制,以此在基于用户态协议栈进行数据处理时,可以避免内核态与用户态之间的频繁切换开销,有效降低对于软硬件成本和人力成本的需求,实现高性能的协议处理能力,进而满足用户态协议栈的高质量应用效果。p>2、第一方面,本申请提供了一种基于用户态协议栈的数据处理方法,方法包括:
3、处理设备获取待处理的数据报文;
4、处理设备将数据报文输入到预先配置的用户态协议栈中,使得用户态协议栈进行对应的数据处理,其中,用户态协议栈中的每一个协议都配置有对应的协议控制块,协议控制块对应客户端侧和服务端侧,分别配置一个动态流描述符,动态流描述符用于描述数据的读写方法,动态流描述符包括一个流句柄和一组处理函数,流句柄用于标识处理对象,处理函数包括读回调处理、写回调处理和关闭回调处理,在用户态协议栈的工作过程中,协议链中的下游协议在处理时,直接以上游协议配置的动态流描述符中描述的处理函数,来处理上游协议配置的动态流描述符中流句柄指示的处理对象,并将处理结果回调给上游协议继续进行处理;
5、处理设备提取用户态协议栈对于数据报文输出的处理结果。
6、结合本申请第一方面,在本申请第一方面第一种可能的实现方式中,流句柄具体为tcp会话。
7、结合本申请第一方面,在本申请第一方面第二种可能的实现方式中,用户态协议栈中的协议包括https协议、tls协议、ssl协议和icap协议中的至少两种。
8、结合本申请第一方面,在本申请第一方面第三种可能的实现方式中,用户态协议栈中每一个协议以全异步方式进行协议处理。
9、结合本申请第一方面,在本申请第一方面第四种可能的实现方式中,用户态协议栈中每一个协议都配置为各自对应的异步模块,模块之间按照需求进行单独使用或者组合使用。
10、结合本申请第一方面,在本申请第一方面第五种可能的实现方式中,方法还包括:
11、处理设备根据用户输入的配置指令,对用户态协议栈中至少一个协议的处理顺序进行重新排序,或者以添加或者移除的方式更新用户态协议栈中至少一个协议。
12、结合本申请第一方面,在本申请第一方面第六种可能的实现方式中,数据报文具体为报文转发处理中涉及的报文。
13、第二方面,本申请提供了一种基于用户态协议栈的数据处理装置,装置包括:
14、获取单元,用于获取待处理的数据报文;
15、处理单元,用于将数据报文输入到预先配置的用户态协议栈中,使得用户态协议栈进行对应的数据处理,其中,用户态协议栈中的每一个协议都配置有对应的协议控制块,协议控制块对应客户端侧和服务端侧,分别配置一个动态流描述符,动态流描述符用于描述数据的读写方法,动态流描述符包括一个流句柄和一组处理函数,流句柄用于标识处理对象,处理函数包括读回调处理、写回调处理和关闭回调处理,在用户态协议栈的工作过程中,协议链中的下游协议在处理时,直接以上游协议配置的动态流描述符中描述的处理函数,来处理上游协议配置的动态流描述符中流句柄指示的处理对象,并将处理结果回调给上游协议继续进行处理;
16、提取单元,用于提取用户态协议栈对于数据报文输出的处理结果。
17、结合本申请第二方面,在本申请第二方面第一种可能的实现方式中,流句柄具体为tcp会话。
18、结合本申请第二方面,在本申请第二方面第二种可能的实现方式中,用户态协议栈中的协议包括https协议、tls协议、ssl协议和icap协议中的至少两种。
19、结合本申请第二方面,在本申请第二方面第三种可能的实现方式中,用户态协议栈中每一个协议以全异步方式进行协议处理。
20、结合本申请第二方面,在本申请第二方面第四种可能的实现方式中,用户态协议栈中每一个协议都配置为各自对应的异步模块,模块之间按照需求进行单独使用或者组合使用。
21、结合本申请第二方面,在本申请第二方面第五种可能的实现方式中,装置还包括配置单元,用于:
22、处理设备根据用户输入的配置指令,对用户态协议栈中至少一个协议的处理顺序进行重新排序,或者以添加或者移除的方式更新用户态协议栈中至少一个协议。
23、结合本申请第二方面,在本申请第二方面第六种可能的实现方式中,数据报文具体为报文转发处理中涉及的报文。
24、第三方面,本申请提供了一种处理设备,包括处理器和存储器,存储器中存储有计算机程序,处理器调用存储器中的计算机程序时执行本申请第一方面或者本申请第一方面任一种可能的实现方式提供的方法。
25、第四方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质存储有多条指令,指令适于处理器进行加载,以执行本申请第一方面或者本申请第一方面任一种可能的实现方式提供的方法。
26、从以上内容可得出,本申请具有以下的有益效果:
27、本申请提供了一个用户态协议栈的新型应用机制,用户态协议栈中的每一个协议都配置有对应的协议控制块,协议控制块对应客户端侧和服务端侧,分别配置一个动态流描述符,动态流描述符用于描述数据的读写方法,动态流描述符包括一个流句柄和一组处理函数,流句柄用于标识处理对象,处理函数包括读回调处理、写回调处理和关闭回调处理,在用户态协议栈的工作过程中,协议链中的下游协议在处理时,直接以上游协议配置的动态流描述符中描述的处理函数,来处理上游协议配置的动态流描述符中流句柄指示的处理对象,并将处理结果回调给上游协议继续进行处理,如此在基于用户态协议栈进行数据处理时,上游协议不需要将具体数据交给下游协议,整个过程中也没有数据的二次拷贝,下游协议可以在不知道上游协议时按本文档来自技高网
...
【技术保护点】
1.一种基于用户态协议栈的数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述流句柄具体为TCP会话。
3.根据权利要求1所述的方法,其特征在于,所述用户态协议栈中的所述协议包括HTTPS协议、TLS协议、SSL协议和ICAP协议中的至少两种。
4.根据权利要求1所述的方法,其特征在于,所述用户态协议栈中每一个所述协议以全异步方式进行协议处理。
5.根据权利要求1所述的方法,其特征在于,所述用户态协议栈中每一个所述协议都配置为各自对应的异步模块,模块之间按照需求进行单独使用或者组合使用。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述数据报文具体为报文转发处理中涉及的报文。
8.一种基于用户态协议栈的数据处理装置,其特征在于,所述装置包括:
9.一种处理设备,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的方法。
...
【技术特征摘要】
1.一种基于用户态协议栈的数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述流句柄具体为tcp会话。
3.根据权利要求1所述的方法,其特征在于,所述用户态协议栈中的所述协议包括https协议、tls协议、ssl协议和icap协议中的至少两种。
4.根据权利要求1所述的方法,其特征在于,所述用户态协议栈中每一个所述协议以全异步方式进行协议处理。
5.根据权利要求1所述的方法,其特征在于,所述用户态协议栈中每一个所述协议都配置为各自对应的异步模块,模块之间按照需求进行单独使用或者组合使用。
【专利技术属性】
技术研发人员:蒋丽,
申请(专利权)人:武汉思普崚技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。