CN107276916B - 基于协议无感知转发技术的交换机流表管理方法 - Google Patents
基于协议无感知转发技术的交换机流表管理方法 Download PDFInfo
- Publication number
- CN107276916B CN107276916B CN201710481233.1A CN201710481233A CN107276916B CN 107276916 B CN107276916 B CN 107276916B CN 201710481233 A CN201710481233 A CN 201710481233A CN 107276916 B CN107276916 B CN 107276916B
- Authority
- CN
- China
- Prior art keywords
- table entry
- entry
- matched
- data packet
- heat
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
Abstract
本发明公开了一种基于协议无感知转发技术的交换机流表管理方法,包括:当数据包到达时,首先查找HT,若查到匹配的表项,则停止查找,并根据查找到的表项对数据包执行相应的操作;其中,HT为按照热度生成的流表;若没有查到匹配的表项,则继续查找CT,若查找到匹配的表项,且相应表项的热度超出阈值,则根据数据包的包头信息和相应表项的信息生成新的表项***到HT中;其中,CT为用户下发的流表。该方法基于热度进行流表管理,不仅能大大加快交换机的处理能力,同时不影响交换机处理的正确性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于协议无感知转发技术的交换机流表管理方法。
背景技术
传统网络需要手动配置专用设备,过程繁琐,易于出错,且不能充分利用网络基础设施的容量,流量的控制和转发完全依赖于路由设备,这些弱点使得传统网络受到了巨大的挑战。软件定义网络(SDN,Software Defined Network)被视为解决当前网络架构问题最有前景的解决方案。软件定义网络的核心特点为:数据面和控制面分离;路由设备的转发功能抽象,路由协议可编程修改。
OpenFlow是当前最流行的SDN南向接口协议,然而OpenFlow从1.0版本演变到现在的1.5版本,网络的可编程性仍受限于OpenFlow协议已有字段。因此,协议无感知转发协议(POF,Protocol Oblivious Forwarding)被提出用来解决上述协议依赖问题。POF根据偏移量和偏移长度来描述传输协议的任意匹配字段和通用指令集。
传统路由器采取最长前缀匹配(LPM,longest prefix match)规则进行数据包的转发,但在软件定义网络中会有一些精确表项,如果使用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(Cold Table)为用户(通过控制器)下发的流表,其表项具有优先级,计数器,Hot-Flag等属性。其中,优先级属性是指数据包匹配时的优先级,即当数据包在交换机内匹配到多条表项时选择优先级最高的流表,计数器用来记录各表项匹配到的数据包的数量,Hot-Flag用来标记表项是否具有较高的热度。
本发明实施例中,每一表项的热度通过时间T前后计数器差值计算得到;阈值η则采用自适应的方式确定,其初值为CT中所有表项的热度的平均值;之后,如果HT未满,则用η=min(η,ε)更新阈值;如果HT已满,则用η=ε更新阈值;其中,ε为HT中最接近90%位置的表项的热度。
步骤S2、当数据包到达时,首先查找HT,若查到匹配的表项,则转入步骤S3;若没有查到匹配的表项,则转入步骤S4。
本发明实施例中,所述HT(Hot Table)为按照热度生成的精确流表;查找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(Data Plane Development Kit)接管端口,使数据包绕过内核态直接在用户态被处理,减少内核态用户态切换加速包转发流程。当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盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (4)
1.一种基于协议无感知转发技术的交换机流表管理方法,其特征在于,包括:
当数据包到达时,首先查找HT,若查到匹配的表项,则停止查找,并根据查找到的表项对数据包执行相应的操作;其中,HT为按照热度生成的流表;
若没有查到匹配的表项,则继续查找CT,若查找到匹配的表项,且相应表项的热度超出阈值,则根据数据包的包头信息和相应表项的信息生成新的表项***到HT中;其中,CT为用户下发的流表;CT中每一表项的热度通过时间T前后计数器差值计算得到;计数器记录着每一表项匹配到数据包的数量;阈值η则采用自适应的方式确定,其初值为CT中所有表项的热度的平均值;之后,如果HT未满,则用η=min(η,ε)更新阈值;如果HT已满,则用η=ε更新阈值;其中,ε为HT中最接近90%位置的表项的热度;
其中,查找HT中的表项时,使用哈希匹配方式;查找CT中的表项时,使用掩码匹配。
2.根据权利要求1所述的一种基于协议无感知转发技术的交换机流表管理方法,其特征在于,
对CT中的表项按照优先级预先进行排序;且每隔一段时间T,检测CT中各表项的热度是否超出阈值η,若是,则将相应表项的Hot-Flag属性置为True。
3.根据权利要求1所述的一种基于协议无感知转发技术的交换机流表管理方法,其特征在于,所述生成新的表项***到HT中包括:
如果HT未满,则直接***;
如果HT已满,则新的表项替换不多于HT中热度较低的10%的表项。
4.根据权利要求1所述的一种基于协议无感知转发技术的交换机流表管理方法,其特征在于,
当CT中某一表项生成新的表项***到HT中后,CT中保留相应的表项,并将相应表项的Hot-Flag属性置为False。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710481233.1A CN107276916B (zh) | 2017-06-22 | 2017-06-22 | 基于协议无感知转发技术的交换机流表管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710481233.1A CN107276916B (zh) | 2017-06-22 | 2017-06-22 | 基于协议无感知转发技术的交换机流表管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107276916A CN107276916A (zh) | 2017-10-20 |
CN107276916B true CN107276916B (zh) | 2020-05-12 |
Family
ID=60068219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710481233.1A Active CN107276916B (zh) | 2017-06-22 | 2017-06-22 | 基于协议无感知转发技术的交换机流表管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107276916B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107528743B (zh) * | 2017-10-25 | 2019-10-25 | 中国科学技术大学 | 一种sdn网络的分布式网络虚拟化*** |
CN109347745A (zh) * | 2018-09-20 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种基于OpenFlow交换机的流表匹配方法和装置 |
CN112838989A (zh) * | 2019-11-25 | 2021-05-25 | 中兴通讯股份有限公司 | 一种数据流管理方法、网络设备及存储介质 |
CN111125493B (zh) * | 2019-12-19 | 2021-11-26 | 中国科学院信息工程研究所 | 一种基于协议无感知转发的高速数据查询***及方法 |
CN111050339B (zh) * | 2019-12-19 | 2021-01-01 | 中国科学院信息工程研究所 | 一种基于协议无感知转发的高速数据更新***及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104639443A (zh) * | 2015-02-16 | 2015-05-20 | 杭州华三通信技术有限公司 | 一种报文快速转发的方法和装置 |
CN105357146A (zh) * | 2015-10-21 | 2016-02-24 | 北京交通大学 | 出口网关内缓存队列饱和攻击防御方法、装置及*** |
CN105591914A (zh) * | 2014-10-21 | 2016-05-18 | 中兴通讯股份有限公司 | 一种openflow流表的查表方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8964752B2 (en) * | 2013-02-25 | 2015-02-24 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for flow table lookup parallelization in a software defined networking (SDN) system |
CN104468381B (zh) * | 2014-12-01 | 2017-05-10 | 国家计算机网络与信息安全管理中心 | 一种多域流规则匹配的实现方法 |
-
2017
- 2017-06-22 CN CN201710481233.1A patent/CN107276916B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105591914A (zh) * | 2014-10-21 | 2016-05-18 | 中兴通讯股份有限公司 | 一种openflow流表的查表方法和装置 |
CN104639443A (zh) * | 2015-02-16 | 2015-05-20 | 杭州华三通信技术有限公司 | 一种报文快速转发的方法和装置 |
CN105357146A (zh) * | 2015-10-21 | 2016-02-24 | 北京交通大学 | 出口网关内缓存队列饱和攻击防御方法、装置及*** |
Non-Patent Citations (1)
Title |
---|
基于标签的POF网络虚拟化技术研究;李佟等;《计算机应用研究》;20170315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107276916A (zh) | 2017-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107276916B (zh) | 基于协议无感知转发技术的交换机流表管理方法 | |
US9110884B2 (en) | Message publishing and subscribing method and apparatus | |
US10394784B2 (en) | Technologies for management of lookup tables | |
CN104184664B (zh) | 路由转发表项生成方法及装置 | |
CN111966284A (zh) | 一种OpenFlow大规模流表弹性节能与高效查找架构及方法 | |
WO2017186159A1 (zh) | 报文传输 | |
CN112565090B (zh) | 一种高速转发方法及装置 | |
RU2658889C1 (ru) | Способ и устройство табличного поиска для таблиц OpenFlow, а также носитель данных | |
US10585943B2 (en) | Network-wide, location-independent object identifiers for high-performance distributed graph databases | |
US11500851B2 (en) | System and method for state object data store | |
US9135833B2 (en) | Process for selecting compressed key bits for collision resolution in hash lookup table | |
CN107948060A (zh) | 一种新型的路由表建立、以及ip路由查找方法和装置 | |
CN109120454B (zh) | 一种QoS流量限速***及方法 | |
CN103812700A (zh) | 一种基于规则信息熵的报文分类方法 | |
CN106487769B (zh) | 一种访问控制列表acl的实现方法及装置 | |
Li et al. | An improved trie-based name lookup scheme for named data networking | |
CN104219160B (zh) | 生成输入参数的方法及设备 | |
CN109754021B (zh) | 基于范围元组搜索的在线包分类方法 | |
CN107547390B (zh) | 流表创建以及查询的方法及装置 | |
CN104486240A (zh) | 一种数据包分类方法及装置 | |
CN115988574B (zh) | 基于流表的数据处理方法、***、设备和存储介质 | |
US20230138389A1 (en) | Forwarding table validation | |
CN114499889B (zh) | 一种适合网络处理芯片存储超大规格会话的方法 | |
CN116915709B (zh) | 负载均衡的方法及装置、电子设备和存储介质 | |
CN113824781B (zh) | 一种数据中心网络源路由方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |