一种网络报文处理实时更新流表关联的实现方法技术

技术编号:38362267 阅读:12 留言:0更新日期:2023-08-05 17:30
本发明专利技术涉及一种网络报文处理实时更新流表关联的实现方法,属于网络通信领域。为解决流表老化时耗时、消耗系统资源、流量延迟增大等方面的问题,本发明专利技术通过对规则表数据结构的改造,增加规则表头信息以及规则表版本信息;通过对流表项数据结构的改造,在流表项中增加当前数据包所匹配的规则表版本信息,与规则表头版本信息比较,实现快速流表项老化更新。本发明专利技术可以实现流表项的实时更新,通过加入规则表版本信息校验,未老化的流量可以快速更新动作,可作为流表项老化辅助功能提升老化效率,可作为流表项实时更新的特种场景下的优选方案。案。案。

【技术实现步骤摘要】
一种网络报文处理实时更新流表关联的实现方法


[0001]本专利技术属于网络通信领域,具体涉及一种网络报文处理实时更新流表关联的实现方法。

技术介绍

[0002]为了在数据交换设备中将数据转发和操作系统分离以提高系统效率,当前在许多数据交换设备中使用快速转发引擎。快速转发引擎将系统分成控制面和转发面两部分。控制面负责报文流的交换规则管理,创建规则表项;转发面通过待转发的报文中提取5元组信息(源IP、目的IP、源端口、目的端口、协议号),并在规则表匹配出相应的具有数据交换信息的表项,同时建立流表项以及与规则表项关联,从而根据所述数据交换信息直接重组、转发报文。
[0003]通常,以Hash表的形式维护流表。以每个流表项的五元组信息作为Hash Key进行Hash计算得到Hash值。当插入流表项时,根据计算得到的Hash值将流表项放入相应的Hash桶;当匹配流表项时,根据计算得到的Hash值匹配到相应的Hash桶,然后根据五元组信息找到匹配的流表项。
[0004]由于Hash表中可发生多个表项Hash到同一个Hash桶的情况,因此,在最坏的情况下(全部流表项被置入同一个Hash桶),以五元组信息在Hash流表项匹配的时间可达到遍历全部流表项个数的时间。但是,通常Hash桶的桶深(即表项的个数)进行限制,并动态的设置流表项,保证Hash匹配的高效性,同时需要对过期的流表及时进行清理。
[0005]目前流表老化方法通常是使用硬件定时器,定时触发老化处理信号来执行流表老化操作。或者在简单处理转发规则时,删除所有流表项。
[0006]定时触发流表老化操作中,需要遍历所有的流表项,在流表项数据量超大时较为耗时。此外,如果流表老化周期设置的短,则会频繁的触发定时器中断,消耗系统资源。
[0007]而使用更新转发规则时删除所有流表项的做法,势必会中断流转发重新建立流表,造成流量延迟增大。

技术实现思路

[0008](一)要解决的技术问题本专利技术要解决的技术问题是如何提供一种网络报文处理实时更新流表关联的实现方法,以解决流表老化时耗时、消耗系统资源、流量延迟增大等方面的问题。
[0009](二)技术方案为了解决上述技术问题,本专利技术提出一种网络报文处理实时更新流表关联的实现方法,该方法包括如下步骤:S1、当数据包抵达时,根据五元组匹配Hash桶流表中的流表项;S2、若匹配成功,执行步骤S3;匹配失败跳转S5;S3、比较匹配流表项记录的引用规则表版本与规则表表头中的规则表版本号是否
一致,当版本号一致时,执行流表项中规则表项引用的指令;当版本号不一致时,需要重新查找规则表创建新的流表项,同时删除老的流表项;S4、若指令中还存在流表跳转动作,则到下一级Hash桶流表中继续执行S1

S4处理;否则,表示流水线处理完成;S5、若匹配失败,则判断是否存在默认动作,存在则交给控制器处理,否则丢弃数据包。
[0010]进一步地,规则表是网络报文处理操作指令的集合,由表头和规则表项组成,表头包括规则表版本号,规则表项由计数器、操作指令组成。
[0011]进一步地,操作指令包括:转发和丢弃。
[0012]进一步地,规则表由控制面实现,控制面通过链表数据结构实现规则表。
[0013]进一步地,当通过控制面创建、修改或者删除规则表项时,以加读锁方式更新规则表头的规则表版本号。
[0014]进一步地,Hash桶流表是由多个流表项组成的集合,每个流表项记录关联了数据包的转发规则。
[0015]进一步地,流表项包括:匹配域、标记和规则表项索引;匹配域根据网络报文的五元组信息来有效标识数据流;标记信息包括计数器、表项更新时间信息;规则表项索引包括引用规则表版本和规则表项引用。
[0016]进一步地,五元组包括:源IP、目的IP、源端口、目的端口和协议号。
[0017]进一步地,当为首次进行转发处理的数据流创建流表项时,或者当在报文转发处理中使用待转发的报文中的信息查询匹配流表项时,根据作为Hash Key的五元组信息进行Hash计算,以Hash匹配到相应的流表项。
[0018]进一步地,该方法用于网络报文快速转发引擎。
[0019](三)有益效果本专利技术提出一种网络报文处理实时更新流表关联的实现方法,本专利技术通过对规则表数据结构的改造,增加规则表头信息以及规则表版本信息;通过对流表项数据结构的改造,在流表项中增加当前数据包所匹配的规则表版本信息,与规则表头版本信息比较,实现快速流表项老化更新。本专利技术可以实现流表项的实时更新,通过加入规则表版本信息校验,未老化的流量可以快速更新动作,可作为流表项老化辅助功能提升老化效率,可作为流表项实时更新的特种场景下的优选方案。
[0020]本专利技术能够提高流表数据的有效性,提高规则表匹配速度,提高网络报文的转发速率。
附图说明
[0021]图1为本专利技术的规则表结构示意图;图2为本专利技术的流表项结构示意图;图3为本专利技术的Hash桶流表示意图;图4为本专利技术的流表项关联关系示意图;图5为本专利技术的实时流表项关联示意图。
具体实施方式
[0022]为使本专利技术的目的、内容和优点更加清楚,下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。
[0023]本专利技术的目的是提出一种网络报文处理实时更新流表关联的实现方法,通过在控制面和转发面增加控制信息及处理流程,满足流表关联实时更新的需求。
[0024]本专利技术实现了一种网络报文处理实时更新流表关联的实现方法,用于实现网络报文快速转发引擎。通过在对Hash表形式的流表进行查询、插入等操作时,根据预定算法实时更新流表项与规则表关联关系,从而提高流表数据的有效性,提高规则表匹配速度,提高网络报文的转发速率。
[0025]规则表是网络报文处理操作指令的集合,由表头和规则表项组成,表头包括规则表版本号,规则表项由计数器、操作指令组成,如图1所示。其中操作指令包括:转发和丢弃。
[0026]规则表由控制面实现,控制面在实现规则表时,通过但不限于链表数据结构实现规则表。当通过控制面创建、修改或者删除规则表项时,必须以加读锁方式更新规则表头的规则表版本号,本专利技术所建规则表如图1所示。
[0027]如图3所示,Hash桶流表是控制网络报文转发的基本单元,Hash桶流表是对数据面中对数据处理的一种抽象表达,Hash桶流表是由多个流表项组成的集合,每个流表项记录关联了数据包的转发规则。本专利技术所述流表项主要由匹配域、标记和规则表项索引组成。匹配域一般根据网络报文的五元组信息来有效标识数据流;标记信息包括计数器、表项更新时间等信息;规则表项索引包括:引用规则表版本和规则表项引用。结构如图2所示。
[0028]本专利技术创建的流表项关联关系如图4所示,当为首次进行转发处理的数据流创建流表项时,或者当在报文转发处理中使用待转发的报文中的信息查询匹配流表项时,需要根据作为Hash Key的五元组信息进行Hash计算,以本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络报文处理实时更新流表关联的实现方法,其特征在于,该方法包括如下步骤:S1、当数据包抵达时,根据五元组匹配Hash桶流表中的流表项;S2、若匹配成功,执行步骤S3;匹配失败跳转S5;S3、比较匹配流表项记录的引用规则表版本与规则表表头中的规则表版本号是否一致,当版本号一致时,执行流表项中规则表项引用的指令;当版本号不一致时,需要重新查找规则表创建新的流表项,同时删除老的流表项;S4、若指令中还存在流表跳转动作,则到下一级Hash桶流表中继续执行S1

S4处理;否则,表示流水线处理完成;S5、若匹配失败,则判断是否存在默认动作,存在则交给控制器处理,否则丢弃数据包。2.如权利要求1所述的网络报文处理实时更新流表关联的实现方法,其特征在于,规则表是网络报文处理操作指令的集合,由表头和规则表项组成,表头包括规则表版本号,规则表项由计数器、操作指令组成。3.如权利要求2所述的网络报文处理实时更新流表关联的实现方法,其特征在于,操作指令包括:转发和丢弃。4.如权利要求2所述的网络报文处理实时更新流表关联的实现方法,其特征在于,规则表由控制面实现,控制面通过链表数据结构实现规则表。5.如权利要求4所述的网络报文处理实时更新...

【专利技术属性】
技术研发人员:魏志峰杜若蒙
申请(专利权)人:北京左江科技股份有限公司
类型:发明
国别省市:

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

1