一种多通道流程的流分类方法和装置与流程

文档序号:18850510发布日期:2019-10-13 00:48阅读:221来源:国知局
一种多通道流程的流分类方法和装置与流程

本申请涉及通信技术领域,特别涉及一种多通道流程的流分类方法和装置。



背景技术:

在多核网络环境中,为了保证流量有序地转发,通常将同一流程分配到同一CPU上转发,以消除同一条流量在多个CPU转发时,因某个CPU繁忙而导致流量乱序的问题。通常的协议是产生一条流量,如PING(Packet Internet Groper,因特网包探索器)、Telnet协议、HTTP(HyperText Transfer Protocol,超文本传输协议),可以在会话上记录CPU,并通过此记录将后续的数据报文送至同一个CPU处理,达到按流量分配CPU的目的。但是当启用FTP(File Transfer Protocol,文件传输协议)、RSTP(Real Time Streaming Protocol,实时流传输协议)等多通道协议时,上述方案不能将同一会话的流量送至同一CPU处理,可能造成流量乱序的问题。



技术实现要素:

有鉴于此,本申请提供一种多通道流程的流分类方法和装置,用以解决在处理多通道协议的流量时,同一会话的流量被送至多个CPU处理,可能造成的流量乱序问题。

具体地,本申请是通过如下技术方案实现的:

一种多通道流程的流分类方法,应用于多核网络设备,所述多核网络设备基于多通道协议与对端设备建立会话;所述会话包括一个控制连接和至少一个数据连接,包括:

从所述数据连接承载的数据报文中,提取指定报文特征;

查询预设的全局查询表,确定与所述指定报文特征对应的目标CPU;其中,所述全局查询表包括从所述控制连接承载的控制报文中提取出的对应于所述数据连接的指定报文特征和处理所述控制连接的控制报文的CPU的映射关系;

将所述数据报文送至所述目标CPU,以由所述目标CPU处理所述数据报文。

在所述多通道流程的流分类方法中,还包括:

从所述控制连接承载的控制报文中提取出对应于所述数据连接的指定报文特征;

基于所述指定报文特征生成对应的关联关系表项,所述关联关系表项包括从所述控制连接承载的控制报文中提取出的对应于所述数据连接的指定报文特征和处理所述控制连接的控制报文的CPU的映射关系;

将所述关联关系表项存储到所述预设的全局查询表中;以及,将所述关联关系表项保存到与所述控制连接对应的存储空间。

在所述多通道流程的流分类方法中,还包括:

当确定出与所述指定报文特征对应的目标CPU时,将与所述目标CPU对应的关联关系表项保存到与所述数据连接对应的存储空间,以使得再次接收到数据报文后,基于本地的所述关联关系表项将所述数据报文发送至所述目标CPU,以由所述目标CPU处理所述数据报文;

删除所述控制连接对应的存储空间中的所述关联关系表项。

在所述多通道流程的流分类方法中,还包括:

当确定出与所述指定报文特征对应的目标CPU时,将所述全局查询表中的所述关联关系表项标记为已使用状态;其中,标记为已使用状态的作用是防止所述关联关系表项被所述数据连接的数据报文以外的其它报文使用。

在所述多通道流程的流分类方法中,还包括:

当所述控制连接老化时,将与该控制连接对应的关联关系表项从所述全局查询表中删除;

当所述数据连接老化时,将与该数据连接对应的关联关系表项从与该数据连接对应的存储空间中删除。

一种多通道流程的流分类装置,应用于多核网络设备,所述多核网络设备基于多通道协议与对端设备建立会话;所述会话包括一个控制连接和至少一个数据连接,包括:

提取单元,用于从所述数据连接承载的数据报文中,提取指定报文特征;

查询单元,用于查询预设的全局查询表,确定与所述指定报文特征对应的目标CPU;其中,所述全局查询表包括从所述控制连接承载的控制报文中提取出的对应于所述数据连接的指定报文特征和处理所述控制连接的控制报文的CPU的映射关系;

分配单元,用于将所述数据报文送至所述目标CPU,以由所述目标CPU处理所述数据报文。

在所述多通道流程的流分类装置中,还包括:

所述提取单元,进一步用于从所述控制连接承载的控制报文中提取出对应于所述数据连接的指定报文特征;

生成单元,用于基于所述指定报文特征生成对应的关联关系表项,所述关联关系表项包括从所述控制连接承载的控制报文中提取出的对应于所述数据连接的指定报文特征和处理所述控制连接的控制报文的CPU的映射关系;

存储单元,用于将所述关联关系表项存储到所述预设的全局查询表中;以及,将所述关联关系表项保存到与所述控制连接对应的存储空间。

在所述多通道流程的流分类装置中,还包括:

保存单元,用于当确定出与所述指定报文特征对应的目标CPU时,将与所述目标CPU对应的关联关系表项保存到与所述数据连接对应的存储空间,以使得再次接收到数据报文后,基于本地的所述关联关系表项将所述数据报文发送至所述目标CPU,以由所述目标CPU处理所述数据报文;

删除单元,用于删除所述控制连接对应的存储空间中的所述关联关系表项。

在所述多通道流程的流分类装置中,还包括:

标记单元,用于当确定出与所述指定报文特征对应的目标CPU时,将所述全局查询表中的所述关联关系表项标记为已使用状态;其中,标记为已使用状态的作用是防止所述关联关系表项被所述数据连接的数据报文以外的其它报文使用。

在所述多通道流程的流分类装置中,还包括:

所述删除单元,进一步用于当所述控制连接老化时,将与该控制连接对应的关联关系表项从所述全局查询表中删除;当所述数据连接老化时,将与该数据连接对应的关联关系表项从与该数据连接对应的存储空间中删除。

本发明实施例中,从所述数据连接承载的数据报文中,提取指定报文特征,根据所述指定报文特征查询预设的全局查询表,确定与所述指定报文特征对应的目标CPU,然后将所述数据报文送至所述目标CPU,以由所述目标CPU处理所述数据报文。

由于预设的全局查询表中,包括从与所述数据连接属于同一会话的控制报文中提取出的对应于所述数据连接的指定报文特征,和处理所述控制连接的控制报文的CPU的映射关系,因此所述数据报文是被送至处理与所述数据报文属于同一会话的控制报文的CPU,从而解决了在处理多通道协议的流量时,同一会话的流量被送至多个CPU处理,可能造成的流量乱序问题。

附图说明

图1是本申请示出的一种多通道流程的流分类方法的流程图;

图2是本申请示出的一种多通道流程的流分类装置的逻辑框图;

图3是本申请示出的一种多通道流程的流分类装置的硬件结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。

参见图1,为本申请多通道流程的流分类方法的流程图,该实施例的执行主体是多核网络设备,该多核网络设备基于多通道协议与对端设备建立会话;其中,上述会话包括一个控制连接和至少一个数据连接;所述方法包括以下步骤:

步骤101:从所述数据连接承载的数据报文中,提取指定报文特征。

步骤102:查询预设的全局查询表,确定与所述指定报文特征对应的目标CPU;其中,所述全局查询表包括从所述控制连接承载的控制报文中提取出的对应于所述数据连接的指定报文特征和处理所述控制连接的控制报文的CPU的映射关系。

步骤103:将所述数据报文送至所述目标CPU,以由所述目标CPU处理所述数据报文。

上述多核网络设备,是指拥有多个CPU的网络设备,网络设备的每个CPU可以独立处理业务,由于多核网络设备相比单核网络设备在计算能力和性能上更为优越,被越来越广泛地使用。多核网络环境指的是多核网络设备内部处理业务的环境,在多个CPU的情况下,处理业务与单个CPU的情况会存在差异。

上述多通道协议,是指在通信过程中需占用两个或两个以上端口的协议。多通道协议通常使用约定的固定端口来建立一个控制连接,再动态地选择端口用于建立数据连接;控制连接负责处理各类请求和协商数据连接的端口,数据连接负责数据传输。例如,常用的多通道协议包括FTP协议、RTSP协议、SIP(Session Initiation Protocol,会话初始协议),等等。

上述全局查询表,用于存储所有上述多核网络设备基于多通道协议与对端设备建立会话后,从控制连接中提取的对应于数据连接的指定报文特征与处理控制连接的控制报文的CPU的映射关系。其中,控制连接和数据连接都具有该全局查询表的访问权限。

在相关技术中,在多核网络环境中,通常将同一条流程固定在同一CPU上处理,以消除同一条流在多个CPU处理时,因某一个CPU繁忙而导致的流量乱序的问题。对于只有一条流量的协议,可以在会话上记录CPU,通过此记录,将后续的报文全部送至同一个CPU处理,达到按流分配CPU的目的。然而,对于有不止一条流量的协议,上述方法不再适用。

在本实施例中,为了解决上述问题,可以通过从控制连接的控制报文中提取对应于数据连接的指定报文特征,生成并存储上述指定报文特征与处理控制连接的控制报文的CPU的映射关系,在接收到数据连接的数据报文后,提取数据报文的指定报文特征,经过查询确定处理控制连接的控制报文的目标CPU,再将数据报文送至上述目标CPU,达到同一会话的流量都由同一个CPU处理的结果。

下面以FTP协议为例,对本申请实施例进行说明。当然,在实际应用中,上述多通道协议,也可以是FTP以外的其它类型的多通道协议,在本例中不再一一列举。

多核网络设备基于FTP协议与对端设备建立会话时,先通过控制连接的控制报文建立连接,并以控制连接处理各类请求和协商数据连接的源端口、目的端口。

在本实施例中,可以解析控制连接的控制报文,提取对应于数据连接的指定报文特征,其中,上述指定报文特征可以确定具体的某一条数据连接。

在示出的一种实施例中,可以从FTP协议的控制连接的控制报文中,获得FTP协议的数据连接的目的端口,并结合控制连接的源IP、目的IP以及协议,得出数据连接的四元组(源IP、目的IP、协议、目的端口)。

在本实施例中,获得FTP协议的数据连接的指定报文特征后,可以基于上述指定报文特征生成对应的关联关系表项,该关联关系表项可以包括上述指定报文特征与处理上述控制连接的控制报文的CPU的映射关系;该映射关系可以使后续根据上述指定报文特征获取处理上述控制连接的控制报文的CPU。

在该关联关系表项生成之后,可以将该关联关系表项存储至上述全局查询表中;可以为FTP协议的控制连接提前分配一段存储空间,在存储空间内创建一个关联关系表,对于该关联关系表,只有该关联关系表对应的上述控制连接具有访问权项,数据连接或其它控制连接没有访问权项;上述关联关系表项生成之后,还可以将该关联关系表项存储到与控制连接对应的存储空间内的上述关联关系表中。

在示出的一种实施方式中,因为上述全局查询表存储的关联关系表项可能数量众多,为提高后续的查询速度,可以针对上述指定报文特征进行hash计算,获得hash值,将得到的hash值与处理控制连接的控制报文的CPU的映射关系以关联关系表项的形式存储到全局查询表中。其中,上述全局查询表的形式可以是链表。

在本实施例中,接收到FTP协议的数据连接的数据报文后,从该数据报文中提取指定报文特征,根据提取出的指定报文特征,查询上述全局查询表,确定处理与该指定报文特征对应的目标CPU。例如:从FTP协议的数据连接的数据报文中,提取数据连接的四元组,针对该四元组进行hash计算,获得hash值,根据该hash值查询上述全局查询表,查询得到与该hash值对应的关联关系表项,从该关联关系表项中确定目标CPU。

在本实施例中,可以为FTP协议的数据连接提前分配一段存储空间,在存储空间内创建一个关联关系表,对于该关联关系表,只有该关联关系表对应的上述数据连接具有访问权项,控制连接或其它数据连接没有访问权项。当上述数据连接根据从上述全局查询表中查询到的关联关系表项,确定出与上述指定报文特征对应的目标CPU时,可以将上述关联关系表项保存到与数据连接对应的存储空间内的上述关联关系表中,这样当后续再次接收到数据连接的数据报文时,可以直接根据本地的关联关系表项,获得与上述指定报文特征对应的目标CPU,不再需要查询全局查询表,提高了工作速度。

同时,当上述数据连接保存了上述关联关系表项后,可以删除上述控制连接对应的存储空间中的上述关联关系表项。

另外,当上述数据连接确定出与上述指定报文特征对应的目标CPU时,还可以将上述全局查询表中的上述关联关系表项标记为已使用状态,被标记为已使用状态的关联关系表项,如果被另外的数据连接查到,将不能被使用;因为每个关联关系表项只能被一个数据连接使用,此举是防止具有相同的指定的报文特征的数据连接使用该关联关系表项,由此避免了具有相同指定报文特征的异常报文、攻击报文利用该关联关系表项对会话造成影响。

在本实施例中,在确定出处理与上述指定报文特征对应的目标CPU后,将上述数据连接的数据报文送至该目标CPU。该目标CPU接收到数据报文后,对该数据报文进行处理。

在本实施例中,从FTP协议的控制连接承载的控制报文中提取出对应于属于同一会话的数据连接的指定报文特征,生成关联关系表项后,FTP协议的数据连接的数据报文可能因为某些原因(例如:对端设备发生故障)未能到达本端的多核网络设备。在这种情况下,关联关系表项在与控制连接对应的存储空间内、与数据连接对应的存储空间内以及上述全局查询表中的状态与接收到数据连接的数据报文后的情况是不同的。针对关联关系表项的处理,可以先判断在关联关系表项创建后,是否被拥有与该关联关系表项相同的指定报文特征的数据连接使用。

由于在查询到与数据连接对应的关联关系表项后,会将该关联关系表项保存到与该数据连接对应的存储空间内,并删除与控制连接对应的存储空间内的该关联关系表项,同时将全局查询表中的该关联关系表项标记为已使用状态。

所以,可以根据与控制连接对应的存储空间内是否存在该关联关系表项,判断该关联关系表项是否被使用。

在示出的一种实施方式中,可以根据预先设置的时间,周期性地检查与控制连接对应的存储空间内是否存在某个关联关系表项;例如,针对具体的某个关联关系表项,预设值一个超时定时器,该超时定时器的超时时间可以是10分钟,每次到达该超时定时器的超时时间,可以检查FTP协议中与控制连接对应的存储空间内的关联关系表,判断此前创建的上述关联关系表项是否存在:

一方面,如果上述关联关系表项存在,说明上述关联关系表项在创建以后始终未被对应的数据连接使用。在这种情况下,当上述控制连接老化时,在删除本地的上述关联关系表项的同时可以删除上述全局查询链表中的上述关联关系表项,以防止无效的关联关系表项占用内存。

另一方面,如果在上述关联关系表项不存在,说明上述关联关系表项在创建以后已被对应的数据连接使用。在这种情况下,当上述数据连接老化时,可以删除与上述数据连接对应的存储空间内的上述关联关系表项,以防止无效的关联关系表项占用内存;上述全局查询链表的上述关联关系表项已标记为已使用状态,在上述控制连接老化前予以保留,防止上述控制连接再次建立的数据连接使用上述关联关系表项,对会话造成影响。

综上所述,本发明实施例从所述数据连接承载的数据报文中,提取指定报文特征,根据所述指定报文特征查询预设的全局查询表,确定与所述指定报文特征对应的目标CPU,然后将所述数据报文送至所述目标CPU,以由所述目标CPU处理所述数据报文。由于预设的全局查询表中,包括从与所述数据连接属于同一会话的控制报文中提取出的对应于所述数据连接的指定报文特征和处理所述控制连接的控制报文的CPU的映射关系,因此所述数据报文是被送至处理与所述数据报文属于同一会话的控制报文的CPU。通过这些措施,使得在多核网络环境下,多通道协议的每条流量都能在同一个CPU处理,避免了同一会话的流量在多个CPU处理时,可能产生的流量乱序的问题。

与本发明多通道流程的流分类方法的实施例相对应,本发明还提供了用于执行上述方法实施例的装置的实施例。

参见图2,为本发明多通道流程的流分类装置的一个实施例框图:

如图2所述,该多通道流程的流分类装置20包括:

提取单元210,用于从所述数据连接承载的数据报文中,提取指定报文特征。

查询单元220,用于查询预设的全局查询表,确定与所述指定报文特征对应的目标CPU;其中,所述全局查询表包括从所述控制连接承载的控制报文中提取出的对应于所述数据连接的指定报文特征和处理所述控制连接的控制报文的CPU的映射关系。

分配单元230,用于将所述数据报文送至所述目标CPU,以由所述目标CPU处理所述数据报文。

在本例中,所述装置还包括:

所述提取单元210,进一步用于从所述控制连接承载的控制报文中提取出对应于所述数据连接的指定报文特征。

生成单元240,用于基于所述指定报文特征生成对应的关联关系表项,所述关联关系表项包括从所述控制连接承载的控制报文中提取出的对应于所述数据连接的指定报文特征和处理所述控制连接的控制报文的CPU的映射关系。

存储单元250,用于将所述关联关系表项存储到所述预设的全局查询表中;以及,将所述关联关系表项保存到与所述控制连接对应的存储空间。

在本例中,所述装置还包括:

保存单元260,用于当确定出与所述指定报文特征对应的目标CPU时,将与所述目标CPU对应的关联关系表项保存到与所述数据连接对应的存储空间,以使得再次接收到数据报文后,基于本地的所述关联关系表项将所述数据报文发送至所述目标CPU,以由所述目标CPU处理所述数据报文。

删除单元270,用于删除所述控制连接对应的存储空间中的所述关联关系表项。

在本例中,所述装置还包括:

标记单元280,用于当确定出与所述指定报文特征对应的目标CPU时,将所述全局查询表中的所述关联关系表项标记为已使用状态;其中,标记为已使用状态的作用是防止所述关联关系表项被所述数据连接的数据报文以外的其它报文使用。

在本例中,所述删除单元270,进一步用于:

当所述控制连接老化时,将与该控制连接对应的关联关系表项从所述全局查询表中删除;

当所述数据连接老化时,将与该数据连接对应的关联关系表项从与该数据连接对应的存储空间中删除。

本申请多通道流程的流分类装置的实施例可以应用在多核网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在多核网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本申请多通道流程的流分类装置所在多核网络设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的多核网络设备通常根据该多通道流程的流分类的实际功能,还可以包括其他硬件,对此不再赘述。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1