基于协议无感知转发技术的交换机流表管理方法与流程

文档序号:11778322阅读:335来源:国知局
本发明涉及通信
技术领域
:,尤其涉及一种基于协议无感知转发技术的交换机流表管理方法。
背景技术
::传统网络需要手动配置专用设备,过程繁琐,易于出错,且不能充分利用网络基础设施的容量,流量的控制和转发完全依赖于路由设备,这些弱点使得传统网络受到了巨大的挑战。软件定义网络(sdn,softwaredefinednetwork)被视为解决当前网络架构问题最有前景的解决方案。软件定义网络的核心特点为:数据面和控制面分离;路由设备的转发功能抽象,路由协议可编程修改。openflow是当前最流行的sdn南向接口协议,然而openflow从1.0版本演变到现在的1.5版本,网络的可编程性仍受限于openflow协议已有字段。因此,协议无感知转发协议(pof,protocolobliviousforwarding)被提出用来解决上述协议依赖问题。pof根据偏移量和偏移长度来描述传输协议的任意匹配字段和通用指令集。传统路由器采取最长前缀匹配(lpm,longestprefixmatch)规则进行数据包的转发,但在软件定义网络中会有一些精确表项,如果使用lpm会造成很大的资源浪费,此外当有多个匹配域时,如果前面的字段是有掩码匹配而后面的字段是无掩码匹配,lpm不再适用。同样的,因为匹配字段可能是掩码匹配,无法使用哈希匹配。目前已有sdn软件交换机采取将控制器下发的流表转化成精确流表缓存起来,加速交换机处理速度的实现方案,但是没有考虑表项的热度对交换机流表进行动态调整,这将导致交换机的转发速率依赖于流的先后顺序。其他关于交换机流表管理的方案只是理论,并没有实现,且并不适用于pof交换机,如有提出将openflow协议pipeline中热度较高的表项从后面的表移到前面的表,然而,pipeline中的流表具有依赖关系,并不能对交换机的性能产生很大的提升,且pof交换机中不同的流表匹配域不同,不能将不同表中表项移到同一个表中。综上,传统的流表管理方案并不适用pof交换机,sdn交换机的流表管理方案没有根据表项的热度对流表进行动态调整,导致交换机转发速率依赖于流的先后顺序。技术实现要素:本发明的目的是提供一种基于协议无感知转发技术的交换机流表管理方法,其基于热度进行流表管理,不仅能大大加快交换机的处理能力,同时不影响交换机处理的正确性。本发明的目的是通过以下技术方案实现的:一种基于协议无感知转发技术的交换机流表管理方法,包括:当数据包到达时,首先查找ht,若查到匹配的表项,则停止查找,并根据查找到的表项对数据包执行相应的操作;其中,ht为按照热度生成的流表;若没有查到匹配的表项,则继续查找ct,若查找到匹配的表项,且相应表项的热度超出阈值,则根据数据包的包头信息和相应表项的信息生成新的表项插入到ht中;其中,ct为用户下发的流表。对ct中的表项按照优先级预先进行排序;且每隔一段时间t,检测ct中各表项的热度是否超出阈值η,若是,则将相应表项的hot-flag属性置为true。每一表项的热度通过时间t前后计数器差值计算得到;计数器记录着每一表项匹配到数据包的数量;所述的阈值η则采用自适应的方式确定,其初值为ct中所有表项的热度的平均值;之后,如果ht未满,则用η=min(η,ε)更新阈值;如果ht已满,则用η=ε更新阈值;其中,ε为ht中最接近90%位置的表项的热度。查找ht中的表项时,使用哈希匹配方式;查找ct中的表项时,使用掩码匹配。所述生成新的表项插入到ht中包括:如果ht未满,则直接插入;如果ht已满,则新的表项替换不多于ht中热度较低的10%的表项。当ct中某一表项生成新的表项插入到ht中后,ct中保留相应的表项,并将相应表项的hot-flag属性置为false。由上述本发明提供的技术方案可以看出其具有如下优点,1)ht中表项均为精确表项,可以采取哈希匹配,而ct中表项具有掩码只能按比特匹配,查找速度慢,将ct中热度高的表项转化成精确表项存储到ht中可加快数据包查找速度。ct中表项根据优先级进行排序,这样数据包匹配到一条表项就可以执行相应操作,而不需要遍历所有表项,从而加快交换机的处理能力。2)在给ct中表项建立精确表项插入到ht中之后,不删除ct中表项,因为ct中表项可能是有掩码的,而精确表项可能只有一条,删除ct中表项会造成错误。3)数据包到达交换机之后,先查找ht,在ht中查找到匹配表项后不再查找ct避免重复的查找,ct中的某一表项生成对应的精确表项之后,我们将该表项的hot-flag置为false,避免生成重复的精确表项。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。图1为本发明实施例提供的一种基于协议无感知转发技术的交换机流表管理方法的流程图;图2为本发明实施例提供的基于协议无感知转发技术的交换机流表管理架构图;图3为本发明实施例提供的交换机流表动态管理过程的示意图。具体实施方式下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。图1为本发明实施例提供的一种基于协议无感知转发技术的交换机流表管理方法的流程图。如图1所示,其主要包括如下步骤:步骤s1、对ct中的表项按照优先级预先进行排序;且每隔一段时间t,检测ct中各表项的热度是否超出阈值η,若是,则将相应表项的hot-flag属性置为true。本发明实施例中,ct(coldtable)为用户(通过控制器)下发的流表,其表项具有优先级,计数器,hot-flag等属性。其中,优先级属性是指数据包匹配时的优先级,即当数据包在交换机内匹配到多条表项时选择优先级最高的流表,计数器用来记录各表项匹配到的数据包的数量,hot-flag用来标记表项是否具有较高的热度。本发明实施例中,每一表项的热度通过时间t前后计数器差值计算得到;阈值η则采用自适应的方式确定,其初值为ct中所有表项的热度的平均值;之后,如果ht未满,则用η=min(η,ε)更新阈值;如果ht已满,则用η=ε更新阈值;其中,ε为ht中最接近90%位置的表项的热度。步骤s2、当数据包到达时,首先查找ht,若查到匹配的表项,则转入步骤s3;若没有查到匹配的表项,则转入步骤s4。本发明实施例中,所述ht(hottable)为按照热度生成的精确流表;查找ht中的表项时,使用哈希匹配方式。步骤s3、停止查找,并根据查找到的表项对数据包执行相应的操作,再转入步骤s8。步骤s4、继续查找ct,若查找到匹配的表项,则转入步骤s5;若否,则转入步骤s8。本发明实施例中,查找ct中的表项时,使用掩码匹配。步骤s5、若相应表项的热度超出阈值,则转入步骤s6;若否,则转入步骤s7。本步骤所述的相应表项的热度超出阈值也即相应表项的hot-flag属性为true。步骤s6、根据数据包的包头信息和相应表项的信息生成新的表项插入到ht中,再转入步骤s7。本发明实施例中,向ht插入新的表项就涉及到更新ht的操作。由于ct中表项是掩码匹配,一条表项可能匹配多条流生成多条精确表项,因此ct中热度较高的表项生成的精确表项(即新的表项)热度可能没那么高,因此需要动态调整ht中表项,分为如下两种情况:如果ht未满,则直接插入;如果ht已满,则新的表项替换不多于ht中热度较低的10%的表项,即缓慢进行更新。此外,当ct中某一表项生成新的表项插入到ht中后,ct中保留相应的表项,并将相应表项的hot-flag属性置为false,避免生成重复的精确表项。步骤s7、根据ct中查找到的表项处理数据包,再转入步骤s8。步骤s8、结束数据包处理流程。本发明实施例上述方案主要具有如下优点:1)ht中表项均为精确表项,可以采取哈希匹配,而ct中表项具有掩码只能按比特匹配,查找速度慢,将ct中热度高的表项转化成精确表项存储到ht中可加快数据包查找速度。ct中表项根据优先级进行排序,这样数据包匹配到一条表项就可以执行相应操作,而不需要遍历所有表项,从而加快交换机的处理能力。2)在给ct中表项建立精确表项插入到ht中之后,不删除ct中表项,因为ct中表项可能是有掩码的,而精确表项可能只有一条,删除ct中表项会造成错误。3)数据包到达交换机之后,先查找ht,在ht中查找到匹配表项后不再查找ct,避免重复的查找,ct中的某一表项生成对应的精确表项之后,我们将该表项的hot-flag置为false,避免生成重复的精确表项另外,实现上述方法的架构图可参见图2。图2中,pof交换机使用数据平面开发套件dpdk(dataplanedevelopmentkit)接管端口,使数据包绕过内核态直接在用户态被处理,减少内核态用户态切换加速包转发流程。当dpdk端口收到数据包之后,数据包处理模块首先查找ht,如果数据包匹配到了一个表项,交换机根据表项的指令对数据包执行相应的操作,否则数据包处理模块继续查找ct,如果在ct中也没有查找到匹配的表项,数据包处理模块会告知交换机控制模块,由交换机控制模块发送packet_in消息给控制器,如果在ct中查找到匹配的表项,并且该表项热度较高,精确表项创建模块会为该表项生成一个精确表项并插入到ht中。pof协议栈负责封装和解析pof消息,数据库存储交换机的配置信息,交换机控制模块控制交换机的各个模块。为了便于理解,下面结合一具体的示例来介绍流表管理过程,该示例基于图2所示的架构实现,可兼顾正确性和高效性;主要步骤如下:(1)对控制器下发的每条表项,在ct中对其按优先级进行排序。(2)每隔一段时间t,检测ct中的每条表项的热度是否超过阈值,如某条表项的热度超过阈值,就将其hot-flag置为true。(3)数据包到达时,数据包处理模块首先查找ht,如查到匹配的表项,则停止查找,根据查找到的表项对数据包执行相应的操作,如没有查找到匹配的表项,则继续查找ct,如图3中左图所示。(4)如果ct中也没有查找到匹配的表项,则发送packet_in消息给控制器,结束数据包处理流程。如果在ct中查找到匹配的数据包,因为ct中表项已经按优先级进行排序,因此也停止查找。(5)判断ct中匹配的表项的hot-flag是否为true,如果为true,则精确表项创建模块根据ct中表项信息和匹配的数据包的信息生成精确表项插入到ht中。(6)接下来相同的数据包能够在ht中查找到匹配的表项,ht采用哈希匹配,可以加速数据包处理流程。(7)ht满了之后,如果有新的表项要插入到ht中,由于我们根据ct中表项的热度来决定是否生成精确表项,而ct中表项是有掩码的且一条表项可能匹配多条流,因此根据ct表项生成的精确表项的热度不大于原表项热度,即我们只知道生成的精确表项的热度的上限值而不知道其具体值,因此我们只更新ht中热度较低的10%的表项,缓慢更新ht。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1