《一种流表查找方法和装置.pdf》由会员分享,可在线阅读,更多相关《一种流表查找方法和装置.pdf(9页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102025643A43申请公布日20110420CN102025643ACN102025643A21申请号201010615226422申请日20101230H04L12/56200601H04L29/1220060171申请人华为技术有限公司地址518129广东省深圳市龙岗区坂田华为基地总部办公楼72发明人戴崇经74专利代理机构北京三友知识产权代理有限公司11127代理人任默闻54发明名称一种流表查找方法和装置57摘要本发明实施例提供一种流表查找方法和装置,所述方法包括获取接收的报文的五元组,所述五元组包括源IP地址,目的IP地址,IP协议类型,源端口号,目的端口号;根据。
2、所述源IP地址和目的IP地址的大小对所述报文的五元组进行顺序排列后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;如果所述流表中的某一表项命中,根据所述报文的源IP地址和目的IP地址的大小确定的报文的传输方向,进行会话表内容的查找。本发明实施例使正反向流表使用同一个关键字进行查表,而使正反向流表用一个流表表项保存,可以节省内容空间,提高查找内存的使用率,可以使用在NP,CPU,FPGA,ASIC中。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书5页附图1页CN102025657A1/2页21一种流表查找方法,其特征在于。
3、,所述方法包括获取接收的报文的五元组,所述五元组包括源IP地址,目的IP地址,IP协议类型,源端口号,目的端口号;根据所述源IP地址和目的IP地址的大小对所述报文的五元组进行顺序排列后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;如果所述流表中的某一表项命中,根据所述报文的源IP地址和目的IP地址的大小确定的报文的传输方向,进行会话表内容的查找。2如权利要求1所述方法,其特征在于,所述根据所述源IP地址和目的IP地址的大小对所述报文的五元组进行顺序排列后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中,包括如果所述。
4、源IP地址大于目的IP地址,确定所述报文的传输方向为正方向,则将所述报文的五元组按照源IP地址,目的IP地址,源端口号,目的端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;或者如果所述源IP地址小于目的IP地址,确定所述报文的传输方向为反方向,则将所述报文的五元组按照目的IP地址,源IP地址,目的端口号,源端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中。3如权利要求1所述方法,其特征在于,所述根据所述源IP地址和目的IP地址的大小对所述报文的五元组。
5、进行顺序排列后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中,包括如果所述源IP地址小于目的IP地址,确定所述报文的传输方向为正方向,则将所述报文的五元组按照源IP地址,目的IP地址,源端口号,目的端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;或者如果所述源IP地址大于目的IP地址,确定所述报文的传输方向为反方向,则将所述报文的五元组按照目的IP地址,源IP地址,目的端口号,源端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的。
6、某一表项是否命中。4如权利要求1所述方法,其特征在于,所述如果所述流表中的某一表项命中,根据所述报文的源IP地址和目的IP地址的大小确定的报文的传输方向,进行会话表内容的查找,包括如果所述流表中的某一表项命中,则利用命中的所述表项的索引,根据所述报文的源IP地址和目的IP地址的大小确定的报文的传输方向,进行会话表内容的查找。5如权利要求1所述方法,其特征在于,所述获取接收的报文的五元组,包括通过网络报文转发装置获取接收的报文的五元组。6如权利要求5所述方法,其特征在于,所述网络报文转发装置为路由器、交换机、网关设备、防火墙中的一种。权利要求书CN102025643ACN102025657A2/。
7、2页37一种流表查找装置,其特征在于,所述装置包括获取单元,用于获取接收的报文的五元组,所述五元组包括源IP地址,目的IP地址,IP协议类型,源端口号,目的端口号;第一查找单元,用于根据所述源IP地址和目的IP地址的大小对所述报文的五元组进行顺序排列后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;第二查找单元,用于如果所述流表中的某一表项命中,根据所述报文的源IP地址和目的IP地址的大小确定的报文的传输方向,进行会话表内容的查找。8如权利要求7所述装置,其特征在于,所述第一查找单元,进一步用于如果所述源IP地址大于目的IP地址,确定所述报文的传输方向为。
8、正方向,则将所述报文的五元组按照源IP地址,目的IP地址,源端口号,目的端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;或者进一步用于如果所述源IP地址小于目的IP地址,确定所述报文的传输方向为反方向,则将所述报文的五元组按照目的IP地址,源IP地址,目的端口号,源端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中。9如权利要求7所述装置,其特征在于,所述第一查找单元,进一步用于如果所述源IP地址小于目的IP地址,确定所述报文的传输方向为正方向,则将所。
9、述报文的五元组按照源IP地址,目的IP地址,源端口号,目的端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;或者进一步用于如果所述源IP地址大于目的IP地址,确定所述报文的传输方向为反方向,则将所述报文的五元组按照目的IP地址,源IP地址,目的端口号,源端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中。10如权利要求7所述装置,其特征在于,所述第二查找单元,进一步用于如果所述流表中的某一表项命中,则利用命中的所述表项的索引,根据所述报文的源IP地址和目。
10、的IP地址的大小确定的报文的传输方向,进行会话表内容的查找。11如权利要求7所述装置,其特征在于,所述获取单元,进一步用于通过网络报文转发装置获取接收的报文的五元组。12如权利要求11所述装置,其特征在于,所述网络报文转发装置为路由器、交换机、网关设备、防火墙中的一种。权利要求书CN102025643ACN102025657A1/5页4一种流表查找方法和装置技术领域0001本发明涉及网络技术领域,尤其涉及一种流表查找方法和装置。背景技术0002随着网络的发展,网络带宽日益增大,使用通用中央处理器CPUCENTRALPROCESSINGUNIT无法满足网络带宽的需求,因此需要专门的处理报文器件的。
11、协助处理转发,其中包括网络处理器NP,NETWORKPROCESSER、专用集成电路ASIC,APPLICATIONSPECIFICINTEGRATEDCIRCUIT、现场可编程门阵列FPGA,FIELDPROGRAMMABLEGATEARRAY等,在数据转发中通用并且需求稳定的部分给专用处理器件处理,复杂和需求易变部分交给通用CPU来处理。0003现在的网络设备业务转发模型大致可以分为两种,一种是基于报文进行转发,一种是基于流进行转发。0004基于报文转发主要使用在路由器和交换机上,需要对每一个报文独立进行查表路由主要包括路由表,ARPADDRESSRESOLUTIONPROTOCOL,地址。
12、解析协议表以及其他一些端口控制和QOSQUALITYOFSERVICE,服务质量表项,交换主要包括VLANVIRTUALLOCALAREANETWORK,虚拟局域网表,MACMEDIAACCESSCONTROL,媒体访问控制表和其他一些端口控制和QOS表项,这里不详细描述,然后根据查表结果独立进行转发。这种处理方式每个报文需要查找多次表项,所以对设备的查表性能要求很高。0005基于流转发主要使用在网关设备和防火墙上,现在也有部分路由器和交换机使用基于流处理,路由器和交换机是按照上面的表项查找,基于流转发是在流的第一个报文来的时候建立流表,然后把表项的结果放入到流表的结果中,后续报文只需要查找流。
13、表即可以转发,可以减少查表次数,对设备的查表性能要求减低,网关设备和防火墙需要按照规则建立流的动作,由于大部分网关和防火墙的规则在流前几个报文中,如果一个报文不能判断动作的话,需要更多的报文进行动作判断,后面该流的报文查流表基于流转发,一般来说,流动作判断在通用CPU中完成,流转发在专用转发器件中完成,但也不排除都在其中一个内完成。0006按照五元组源IP地址,目的IP地址,IP协议类型,源端口号,目的端口号加上可能存在的二层转发时的VLANID或三层转发时VPNVIRTUALPRIVATENETWORK,虚拟专用网络ID作为关键字来确定一个流,客户端访问一个服务器的一个应用时候,客户端给服务。
14、器的请求是一个方向的流,服务器放回客户端的响应是另一个方向的流,这两个流组成一个会话。0007现有技术按照设备的容量和位置,需要支持的流表数量不同,一个用户需要有十几到几十个流,一个10G的设备就需要10M以上的流,流表需要占用很大的内存空间。0008流老化分为两种情况,主动老化和超时老化,主动老化是接受到应用层结束的报文或是TCPTRANSMISSIONCONTROLPROTOCOL,传输控制协议的FINFIN为TCP报头说明书CN102025643ACN102025657A2/5页5的码位字段,该位置为1的含义为发送方字节流结束,用于关闭连接/RSTRESETTHECONNECTION,连。
15、接复位报文时候老化流,超时老化是一个流超过一定时间没有流量的时候老化流。当前很多处理是双向流表不关联,在单向流量的时候,会老化一个方向的流表,这样导致这个方向的流不通。现有技术一无会话表,双向流表不关联,基于单个报文查找,如果没有流表,则建立流表,流表之间不关联,流表老化基于单向流,路由器和交换机大部分基于这种机制。流表一般使用HASH散列,也音译为“哈希”表完成查表,根据进来的报文,提取五元组进行HASH,得到的索引取出对应索引的关键字的内容,对照是否有效且一致,如果有效且一致,则查流表命中,可以得到索引读出表项内容。流表无关联,删除一个方向的流表另一个方向的流表不感知,只能删除单向流表。现。
16、有技术二存在会话表,在建立正向流表的时候同时建立反向流表,同时建立会话表,双向流表需要有会话表的索引,会话表中保存双向流表的索引,会话表需要两个流表,关联困难,老化只会删除一个方向的流表,如果需要删除两个方向的流表处理复杂,需要从流表在流表中取出会话表索引然后取出另一个方向的流表索引,才能删除另一个方向的流表。0009在实现本发明过程中,发明人发现现有技术中至少存在如下问题需要建立正反向两个流表,而用一个会话表把两个表项关联起来,会话表中需要保留两个流表的信息,用于删除正反向流表,由于流表数量都非常巨大,正反向流表保留了很多冗余信息,消耗了大量内存空间。发明内容0010本发明实施例提供一种流表。
17、查找方法和装置,以节省内容空间,提高查找内存的使用率。0011一方面,本发明实施例提供了一种流表查找方法,所述方法包括获取接收的报文的五元组,所述五元组包括源IP地址,目的IP地址,IP协议类型,源端口号,目的端口号;根据所述源IP地址和目的IP地址的大小对所述报文的五元组进行顺序排列后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;如果所述流表中的某一表项命中,根据所述报文的源IP地址和目的IP地址的大小确定的报文的传输方向,进行会话表内容的查找。0012另一方面,本发明实施例提供了一种流表查找装置,所述装置包括获取单元,用于获取接收的报文的五元组,所。
18、述五元组包括源IP地址,目的IP地址,IP协议类型,源端口号,目的端口号;第一查找单元,用于根据所述源IP地址和目的IP地址的大小对所述报文的五元组进行顺序排列后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;第二查找单元,用于如果所述流表中的某一表项命中,根据所述报文的源IP地址和目的IP地址的大小确定的报文的传输方向,进行会话表内容的查找。0013上述技术方案具有如下有益效果因为采用获取接收的报文的五元组,所述五元组包括源IP地址,目的IP地址,IP协议类型,源端口号,目的端口号;根据所述源IP地址和目的IP地址的大小对所述报文的五元组进行顺序排列后。
19、,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;如果说明书CN102025643ACN102025657A3/5页6所述流表中的某一表项命中,根据所述报文的源IP地址和目的IP地址的大小确定的报文的传输方向,进行会话表内容的查找的技术手段,所以使正反向流表使用同一个关键字进行查表,而使正反向流表用一个流表表项保存,达到了节省内容空间,提高查找内存的使用率的技术效果。附图说明0014为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域。
20、普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。0015图1为本发明实施例一种流表查找方法流程图;0016图2为本发明实施例流表示意图;0017图3为本发明实施例一种流表查找装置结构示意图。具体实施方式0018下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0019如图1所示,为本发明实施例一种流表查找方法流程图,所述方法包括0020101、获取接收的。
21、报文的五元组,所述五元组包括源IP地址,目的IP地址,IP协议类型,源端口号,目的端口号。0021可选的,可以通过网络报文转发装置获取接收的报文的五元组。所述网络报文转发装置可以为路由器、交换机、网关设备、防火墙中的一种。也可以获取上述接收的报文的多元组,其中至少包含上述五元组的多元组,例如实现中可以使用六元组,即上述五元组再加上VPNID或VLANID。也包含把该五元组或多元组分为多个部分元组来实现,例如把五元组查表首先判断IP协议类型后查找按协议类型的多个四元组源IP地址,目的IP地址,源端口号,目的端口号表,本发明实施例并不以此为限。0022如图2所示,为本发明实施例流表示意图。正反向流。
22、都位于同一条表项。0023102、根据所述源IP地址和目的IP地址的大小对所述报文的五元组进行顺序排列后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中。0024可选的,所述102可以包括如果所述源IP地址大于目的IP地址,确定所述报文的传输方向为正方向,则将所述报文的五元组按照源IP地址,目的IP地址,源端口号,目的端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;或者如果所述源IP地址小于目的IP地址,确定所述报文的传输方向为反方向,则将所述报文的五元组按照目的IP地址,源IP地址。
23、,目的端口号,源端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中。说明书CN102025643ACN102025657A4/5页70025或者,相反的,可选的,所述102可以包括如果所述源IP地址小于目的IP地址,确定所述报文的传输方向为正方向,则将所述报文的五元组按照源IP地址,目的IP地址,源端口号,目的端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;或者如果所述源IP地址大于目的IP地址,确定所述报文的传输方向为反方向,则将所述报文的五元组按照。
24、目的IP地址,源IP地址,目的端口号,源端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中。0026103、如果所述流表中的某一表项命中,根据所述报文的源IP地址和目的IP地址的大小确定的报文的传输方向,进行会话表内容的查找。0027可选的,所述103可以包括如果所述流表中的某一表项命中,则利用命中的所述表项的索引,根据所述报文的源IP地址和目的IP地址的大小确定的报文的传输方向,进行会话表内容的查找。0028如果所述流表没有命中,则用查表的五元组顺序按照图2所示建立流表表项,同时建立会话表和流表结果表项。这里只描述流表查找。
25、部分,流表老化部分按这个方法处理的话,没有比原先的方案任何额外的处理。0029本发明实施例提供一种流表查找方法,使正反向流表使用同一个关键字进行查表,而使正反向流表用一个流表表项保存,可以节省一半的流表资源,提高查找内存的使用率,支持更大的流表规格,且由于正反向流都命中一条表项,老化处理也不需要额外的管理,只需要对这个流表进行老化处理即可。由于按照源IP地址和目的IP地址的大小,使正反向流表使用同一个关键字进行查表,而使正反向流表用一个流表表项保存,可以应用在NP,CPU,FPGA,ASIC等网络报文转发装置或设备中。0030对应于上述方法实施例,如图3所示,为本发明实施例一种流表查找装置结构。
26、示意图,所述装置包括0031获取单元31,用于用于获取接收的报文的五元组,所述五元组包括源IP地址,目的IP地址,IP协议类型,源端口号,目的端口号;0032第一查找单元32,用于根据所述源IP地址和目的IP地址的大小对所述报文的五元组进行顺序排列后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;0033第二查找单元33,用于如果所述流表中的某一表项命中,根据所述报文的源IP地址和目的IP地址的大小确定的报文的传输方向,进行会话表内容的查找。0034可选的,获取单元31可以通过网络报文转发装置获取接收的报文的五元组。所述网络报文转发装置可以为路由器、交换。
27、机、网关设备、防火墙中的一种。也可以为获取上述接收的报文的多元组,其中至少包含上述五元组的多元组,例如实现中可以使用六元组,即上述五元组再加上VPNID或VLANID。也包含把该五元组或多元组分为多个部分元组来实现,例如把五元组查表首先判断IP协议类型后查找按协议类型的多个四元组源IP地址,目的IP地址,源端口号,目的端口号表,本发明实施例并不以此为限。0035可选的,所述第一查找单元32,进一步用于如果所述源IP地址大于目的IP地说明书CN102025643ACN102025657A5/5页8址,确定所述报文的传输方向为正方向,则将所述报文的五元组按照源IP地址,目的IP地址,源端口号,目的。
28、端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;或者进一步用于如果所述源IP地址小于目的IP地址,确定所述报文的传输方向为反方向,则将所述报文的五元组按照目的IP地址,源IP地址,目的端口号,源端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中。0036或者,相反的,可选的,所述第一查找单元32,进一步用于如果所述源IP地址小于目的IP地址,确定所述报文的传输方向为正方向,则将所述报文的五元组按照源IP地址,目的IP地址,源端口号,目的端口号,IP协议。
29、类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中;或者进一步用于如果所述源IP地址大于目的IP地址,确定所述报文的传输方向为反方向,则将所述报文的五元组按照目的IP地址,源IP地址,目的端口号,源端口号,IP协议类型进行顺序排序后,将重新排列的所述报文的五元组序列作为关键字查找流表,判断所述流表中的某一表项是否命中。0037可选的,所述第二查找单元33,进一步用于如果所述流表中的某一表项命中,则利用命中的所述表项的索引,根据所述报文的源IP地址和目的IP地址的大小确定的报文的传输方向,进行会话表内容的查找。0038如果所述流表没有命中,则。
30、用查表的五元组顺序按照图2所示建立流表表项,同时建立会话表和流表结果表项。这里只描述流表查找部分,流表老化部分按这个方法处理的话,没有比原先的方案任何额外的处理。0039本发明实施例提供一种流表查找装置,使正反向流表使用同一个关键字进行查表,而使正反向流表用一个流表表项保存,可以节省一半的流表资源,提高查找内存的使用率,支持更大的流表规格,且由于正反向流都命中一条表项,老化处理也不需要额外的管理,只需要对这个流表进行老化处理即可。由于按照源IP地址和目的IP地址的大小,使正反向流表使用同一个关键字进行查表,而使正反向流表用一个流表表项保存,可以应用在NP,CPU,FPGA,ASIC等网络报文转。
31、发装置或设备中。0040本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述全部或部分步骤,所述的存储介质,如ROM/RAM、磁盘、光盘等。0041以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说明书CN102025643ACN102025657A1/1页9图1图2图3说明书附图CN102025643A。