传输报文的系统和方法技术方案

技术编号:18356031 阅读:33 留言:0更新日期:2018-07-02 09:31
本发明专利技术实施例公开了一种传输报文的系统和方法,该系统包括:所述系统包括工作在用户态下的开放虚拟交换模块和连接模块,所述开放虚拟交换模块用于接收数据报文;所述开放虚拟交换模块还用于向所述连接模块发送所述数据报文;所述连接模块用于存储与所述数据报文的连接信息相关的第一信息,其中,所述第一信息是通过与所述数据报文的连接信息相关的控制报文的应用层信息得到的;所述连接模块还用于接收所述开放虚拟交换模块发送的所述数据报文,并根据存储的所述第一信息确定所述数据报文的连接信息;所述连接模块还用于将所述数据报文的连接信息发送给所述开放虚拟交换模块,可以提高系统性能。

【技术实现步骤摘要】
传输报文的系统和方法
本专利技术实施例涉及通信领域,特别涉及通信领域中的传输报文的系统和方法。
技术介绍
网络中按五元组(源地址,目的地址,源端口,目的端口,协议号)标识一条有方向(从源到目的)的流。方向相反(源地址和目的地址互反、源端口和目的端口互反)的两条流组成一条连接,网络中的两点通过连接进行通信。连接跟踪(conntrack)模块会记录每一条连接的状态,是防火墙的状态监测的基础。Linux内核中的conntrack模块实现了连接跟踪功能,记录了所有连接的状态,conntrack为每一个经过的报文查找对应的连接,并返回连接状态。应用层网关(ApplicationLayerGateway,简称“ALG”)模块是连接跟踪的增强功能,Linux内核里ALG模块实现了应用层网关的功能,conntrack和ALG共同实现了Linux内核中的连接跟踪功能。开放虚拟交换模块(OpenVirtualSwitch,简称“OVS”)和数据平面开发套件(DataPlaneDevelopmentKit,简称“DPDK”)运行在Linux用户态,目前用户态已经实现了conntrack功能,但是用户态没有实现ALG模块的功能,现有技术中为了在用户态实现ALG模块的功能,OVS在用户态收到报文,将报文发送到内核态,经过内核态的conntrack模块和ALG模块处理后,将报文的连接信息返回给用户态的OVS,但是,报文需要经过两次用户态和内核态的切换,使得报文在用户态和内核态报文之间的通信损耗较大,造成系统性能下降。
技术实现思路
本专利技术实施例提供的传输报文的系统和方法,可以提高系统性能。第一方面,提供了一种传输报文的方法,应用于传输报文的系统,该系统包括开放虚拟交换模块和连接模块,该开放虚拟交换模块和该连接模块工作在用户态下,该方法包括:该开放虚拟交换模块接收数据报文;该开放虚拟交换模块向该连接模块发送该数据报文,该连接模块保存有与该数据报文的连接信息的相关的第一信息,其中,该第一信息是通过与该数据报文的连接信息相关的控制报文的应用层信息得到的;该连接模块接收该开放虚拟交换模块发送的该数据报文,并根据保存的该第一信息确定该数据报文的连接信息;该连接模块将该数据报文的连接信息发送给该开放虚拟交换模块。在本专利技术实施例中,用户态下可以根据连接模块保存的与数据报文的连接信息相关的第一信息确定数据报文的连接信息,不需要在内核态下的应用层网关模块分析数据报文的连接信息,可以降低数据态与内核态之间的通信损耗,能够提高系统性能。可选地,第一信息可以是与控制报文的应用层信息相关的信息,例如,该第一信息可以是内核态下的应用层网关模块解析控制报文的应用层信息得到的,并且应用层网关模块将第一信息发送给连接模块。进一步地,连接模块可以是现有技术中的conntrack模块,开放虚拟交换模块可以是现有技术中的OVS。在某些实现方式中,该系统还包括应用层网关模块,该应用层网关模块工作在内核态下;在该连接模块接收该开放虚拟交换模块发送的该数据报文之前,该方法还包括:该应用层网关模块根据该控制报文的应用层信息确定该第一信息;该应用层网关模块向该连接模块发送该第一信息;该连接模块还接收该应用层网关模块发送的该第一信息。即在连接模块保存的第一信息可以是应用层网关模块根据控制报文确定的,然后将确定的第一信息发送给连接模块,连接模块进行保存。在本专利技术实施例中,通过内核态下的应用层网关模块的根据控制报文分析出的第一信息,并将第一信息发送到用户态下的连接模块,连接模块将第一信息进行保存,当开放虚拟交换模块接收到数据报文时,根据连接模块保存的第一信息,确定数据报文的连接信息,而不是将数据报文也发送到内核态下的应用层网关模块进行分析,直接利用控制报文的应用层信息与数据报文的连接信息之间的相关性,该相关性可以用第一信息表征,确定数据报文的连接信息,降低数据态与内核态之间的通信损耗,能够提高系统性能。在某些实现方式中,该连接模块包括连接跟踪子模块和报文期望子模块,其中,该连接模块接收该应用层网关模块发送的该第一信息,包括:该报文期望子模块接收该应用层网关模块发送的该第一信息;该连接模块接收该开放虚拟交换模块发送的该数据报文,包括:该连接跟踪子模块接收该开放虚拟交换模块发送的数据报文;在该连接跟踪子模块接收该开放虚拟交换模块发送的数据报文之后,该方法还包括:该连接跟踪子模块确定该数据报文是否为数据通道的首包;若该连接跟踪子模块确定该数据报文为该数据通道的首包,则向该报文期望子模块发送该数据报文;该报文期望子模块接收该连接跟踪子模块发送的该数据报文,并根据该数据报文向该连接跟踪子模块发送该第一信息;该连接跟踪子模块接收该报文期望子模块发送的该第一信息并保存。进一步地,报文期望子模块中可以保存多个数据报文的连接信息的相关信息,第一信息属于多个数据报文的连接信息的相关信息中的一个信息,当连接跟踪子模块接收到数据报文后,确定该数据报文是数据通道的首包时,将该数据报文发送给报文期望子模块,报文期望子模块在多个数据报文的连接信息的相关信息中确定第一信息,例如,多个数据报文的连接信息中可以有多个数据报文的五元组,报文期望子模块通过匹配多个数据报文的五元组确定接收到该数据报文的第一信息。在本专利技术实施例中,前述的连接模块可以包括连接跟踪子模块和报文期望子模块,连接跟踪子模块接收到数据报文时,首先连接跟踪子模块判断数据报文是否为数据通道的首包,例如,根据该数据报文的报文头的五元组(源地址,目的地址,源端口,目的端口,协议号)确定该数据报文是否为数据通道的首包,连接跟踪子模块接收到数据报文时,发现该数据报文的五元组没有解析过,则认为该数据报文是数据通道的首包,则将该数据报文发送给报文期望子模块,报文期望子模块中保存有第一信息,报文期望子模块将该第一信息发送给连接跟踪子模块,当连接跟踪子模块接收到数据通道上的非首包,即后续数据报文时,连接跟踪子模块分析数据报文的报文头中的五元组,若连接跟踪子模块发现该报文头中的五元组之前分析过,则认为是一个后续数据报文,对于后续包的处理,直接根据连接跟踪子模块中保存的第一信息,确定后续数据报文的连接信息,将确定的后续数据报文的连接信息发送给开放虚拟交换模块。进一步地,当数据报文是首包时,则前述的连接模块可以分为连接跟踪子模块和报文期望子模块,连接跟踪子模块用来判断数据报文是首包还是后续包,若为首包,则将首包发送给报文期望子模块,根据首包在报文期望子模块中确定与首包相关的第一信息;当数据报文是后续包时,则数据报文就仅在前述的连接模块保存的第一信息,确定该数据报文的连接信息。在某些实现方式中,在该应用层网关模块根据该控制报文的应用层信息确定该第一信息之前,该方法还包括:该开放虚拟交换模块接收该控制报文,并将该控制报文发送给该连接跟踪子模块;该连接跟踪子模块接收该开放虚拟交换模块发送的该控制报文;该连接跟踪子模块向该应用层网关模块发送该控制报文;该应用层网关模块接收该连接跟踪子模块发送的该控制报文;其中,该应用层网关模块根据该控制报文的应用层信息确定该第一信息,包括:该应用层网关模块在接收到该控制报文之后,解析该控制报文的应用层信息得到该第一信息;该应用层网关模块将该第一信本文档来自技高网...
传输报文的系统和方法

【技术保护点】
1.一种传输报文的系统,其特征在于,所述系统包括工作在用户态下的开放虚拟交换模块和连接模块,所述开放虚拟交换模块用于接收数据报文;所述开放虚拟交换模块还用于向所述连接模块发送所述数据报文;所述连接模块用于存储与所述数据报文的连接信息相关的第一信息,其中,所述第一信息是通过与所述数据报文的连接信息相关的控制报文的应用层信息得到的;所述连接模块还用于接收所述开放虚拟交换模块发送的所述数据报文,并根据存储的所述第一信息确定所述数据报文的连接信息;所述连接模块还用于将所述数据报文的连接信息发送给所述开放虚拟交换模块。

【技术特征摘要】
1.一种传输报文的系统,其特征在于,所述系统包括工作在用户态下的开放虚拟交换模块和连接模块,所述开放虚拟交换模块用于接收数据报文;所述开放虚拟交换模块还用于向所述连接模块发送所述数据报文;所述连接模块用于存储与所述数据报文的连接信息相关的第一信息,其中,所述第一信息是通过与所述数据报文的连接信息相关的控制报文的应用层信息得到的;所述连接模块还用于接收所述开放虚拟交换模块发送的所述数据报文,并根据存储的所述第一信息确定所述数据报文的连接信息;所述连接模块还用于将所述数据报文的连接信息发送给所述开放虚拟交换模块。2.根据权利要求1所述的系统,其特征在于,所述系统还包括工作在内核态下的应用层网关模块,所述应用层网关模块用于:在所述连接模块接收所述开放虚拟交换模块发送的所述数据报文之前,根据所述控制报文的应用层信息确定所述第一信息;所述应用层网关模块还用于向所述连接模块发送所述第一信息;所述连接模块还用于接收所述应用层网关模块发送的所述第一信息。3.根据权利要求2所述的系统,其特征在于,所述连接模块包括连接跟踪子模块和报文期望子模块,所述报文期望子模块用于接收所述应用层网关模块发送的所述第一信息;所述报文期望子模块用于存储所述第一信息;所述连接跟踪子模块用于接收所述开放虚拟交换模块发送的数据报文;所述连接跟踪子模块还用于确定所述数据报文是否为数据通道的首包;所述连接跟踪子模块还用于若所述连接跟踪子模块确定所述数据报文为所述数据通道的首包,向所述报文期望子模块发送所述数据报文;所述报文期望子模块还用于接收所述连接跟踪子模块发送的所述数据报文,并根据所述数据报文向所述连接跟踪子模块发送所述第一信息;所述连接跟踪子模块还用于接收所述报文期望子模块发送的所述第一信息。4.根据权利要求3所述的系统,其特征在于,所述开放虚拟交换模块还用于:在所述应用层网关模块根据所述控制报文的应用层信息确定所述第一信息之前,接收所述控制报文,并将所述控制报文发送给所述连接跟踪子模块;所述连接跟踪子模块还用于接收所述开放虚拟交换模块发送的所述控制报文;所述连接跟踪子模块还用于向所述应用层网关模块发送所述控制报文;所述应用层网关模块还用于接收所述连接跟踪子模块发送的所述控制报文;所述应用层网关模块还用于在接收到所述控制报文之后,解析所述控制报文的应用层信息得到所述第一信息,并将所述第一信息发送给所述报文期望子模块。5.根据权利要求4所述的系统,其特征在于,所述系统还包括工作在用户态下的解析模块,所述连接跟踪子模块用于确定所述控制报文是否为控制通道的首包;所述连接跟踪子模块还用于若所述控制报文为所述控制通道的首包,向所述解析模块发送所述控制报文;所述解析模块用于接收所述控制报文,并确定是否需要解析所述控制报文的应用层信息;所述解析模块还用于若所述确定需要解析所述控制报文的应用层信息,则向所述连接跟踪子模块发送指示信息,所述指示信息用于指示需要解析所述控制报文的应用层信息;所述连接跟踪子模块用于接收所述指示信息,并根据所述指示信息将向所述应用层网关模块发送所述控制报文。6.根据权利要求4或5所述的系统,其特征在于,所述系统还包括适配模块,所述连接跟踪子模块还用于向所述适配模块发送所述控制报文;所述适配模块用于接收所述连接跟踪子模块发送的所述控制报文,并将所述控制报文的在用户态下的格式转换为所述控制报文在内核态下的格式;所述应用层网关模块还用于接收所述适配模块发送的所述控制报文。7.一种传输报文的方法,应用于传输报文的系统,所述系统包括工作在用户态下的开放虚拟交换模块和连接模块,其特征在于,所述方法包括:所述开放虚拟交换模块接收数据报文;所述开放虚拟交换模块向所述连接模块发送所述数据报文,所述连接模块保存有...

【专利技术属性】
技术研发人员:李玮
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1