CN114900475B - 一种混合流转发方法、装置、设备及存储介质 - Google Patents
一种混合流转发方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114900475B CN114900475B CN202210466572.3A CN202210466572A CN114900475B CN 114900475 B CN114900475 B CN 114900475B CN 202210466572 A CN202210466572 A CN 202210466572A CN 114900475 B CN114900475 B CN 114900475B
- Authority
- CN
- China
- Prior art keywords
- data
- forwarding
- flow
- type
- forwarding information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000001419 dependent effect Effects 0.000 claims description 19
- 238000010801 machine learning Methods 0.000 claims description 12
- 230000009471 action Effects 0.000 abstract description 13
- 238000012545 processing Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000009916 joint effect Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及数据流处理技术领域,具体是涉及一种混合流转发方法、装置、设备及存储介质。本发明是通过标签规则和标签表共同作用实现了对第一转发信息的缓存,通过标签表单独作用实现了对第二转发信息的缓存。由于第一类型数据流所占用的容量较大,因此需要多次执行匹配第一转发信息这一操作才能对第一类型数据流进行转发,而本发明通过标签规则和标签表实现了分阶段匹配到第一转发信息,从而提高了找到第一转发信息的速度,进而提高了对第一类型数据流的转发速度。本发明将混合流划分第一类型数据流和第二类型数据流,不同的数据流采用不同的方式找到对应的转发信息,能够提高对混合流的转发速度。
Description
技术领域
本发明涉及数据流处理技术领域,具体是涉及一种混合流转发方法、装置、设备及存储介质。
背景技术
在对不同容量大小的数据流进行转发之前,首先要缓存(保存)各个数据流对应的转发规则,然后数据流找到对应的转发规则进行转发。
现有的支持缓存的寄存器有三态内容可寻址寄存器(ternary contentaddressable memory,TCAM),由于其强大的包处理性能而广泛被现代路由器、支持软件定义网络(software defined networking,SDN)的交换机所使用。然而TCAM由于耗能高,价格昂贵等原因使得容量受到限制,通常只有几兆字节大小。在实际的SDN网络,为了体现其细粒度的流管理,往往是采取的是策略转发。策略转发需要的规则集大小远远超过TCAM的实际容量。为了解决这个问题,目前最流行的方案是采用将TCAM视作缓存,即TCAM缓存当下最热门、最流行的转发规则。SDN场景下的缓存方案又与计算机系统的缓存方案有所不同,当将一条规则缓存时需要考虑该条规则的依赖规则并将其一同缓存,否则会造成语义错误。因此SDN缓存方案基本从如何解决规则依赖性的角度进行设计。现有的缓存方案大体上又可以分为两类。第一种是以CacheFlow为代表,通过分离再拼接依赖链的方式。即在TCAM中不考虑间接依赖规则,只附带地缓存直接依赖规则,而直接依赖规则的动作域修改为转发到控制面或者是辅存进行处理,这种方式只一定程度减少了缓存依赖规则的数量。第二种是以T-Cache为代表,通过切分原始规则的匹配域的方式去生成一个新的规则,这条规则与其余规则没有依赖,从而彻底解决依赖性问题。
然而,这两种方案针对的都是最热门最流行的规则进行缓存。实际上,大多数规则所对应的流量都不足1MB,甚至不足100KB。这些规则无法被缓存到TCAM,当一个数据包在TCAM中找不到匹配规则时,它会转发到控制器或者是交换机的软件流表中再由它们进行转发,这一过程称作两阶段转发。软件流表由随机存储器(Random Access Memory,RAM)进行存储,不同于存储在TCAM中的硬件流表,它虽然容量巨大,但不具有模糊内容匹配查找功能,因此转发速度慢(有论文指出软件流表的吞吐量仅为硬件流表的十分之一)。大多数规则因为不够”热”而无法被缓存进TCAM,那么这些规则对应的小流不得不在RAM中进行转发,进而导致小流的性能(主要是流完成时间)下降。
除此之外,这两种方案在寻找缓存规则时也有其内在的缺陷。CacheFlow所代表的基于规则的缓存,采取的是”统计”的方法。这种方法是控制器周期性的向数据平面内的交换机读取信息,得到各个交换机流表中每条流表项命中包的个数,我们把这个称作规则的流行度。之后根据规则的流行度以及规则的依赖规则数量得到缓存一条规则的实际价值,按规则的实际价值从大到小进行缓存,直至空间被占满。然而这种方法有两个缺点,首先是更新的频率受到交换机与控制器之间的带宽限制,往往缓存的都是已经不那么流行的规则。并且由于规则依赖性一次更新需要缓存多条规则,导致更新的速度慢。T-Cache所代表的基于大流的缓存,T-Cache并不统计一段时间内的规则的流行度,它仅缓存已检测到的大流所对应的规则。为了寻找大流该方案采用的是”阈值”的方法,即统计一条流到达的包的数目,如果超过某个阈值,则认定这是该周期内的大流。然而这种”阈值”的方法的阈值难以设置,如果太小,则有可能将小流当作大流缓存,如果太大,则会缓存到”过期”的大流(实际上,这些流剩余的流量可能只有小流的数量级)。因此周期以及阈值大小难以设置。T-Cache的实验表明依然需要秒级别的时间粒度去检测大流。
综上所述,现有转发方法(转发规则)并没有针对数据流的大小进行划分,因而降低了缓存吞吐量,从而降低了数据流后续根据转发规则进行转发的速度。
因此,现有技术还有待改进和提高。
发明内容
为解决上述技术问题,本发明提供了一种混合流转发方法、装置、设备及存储介质,解决了现有转发方法并没有针对数据流的大小进行划分,因而降低了缓存吞吐量,从而降低了数据流后续根据转发规则进行转发速度的问题。
为实现上述目的,本发明采用了以下技术方案:
第一方面,本发明提供一种混合流转发方法,其中,包括:
将所占用的容量大于设定值的数据流标记为第一类型数据流,将所占用的容量小于设定值的数据流标记为第二类型数据流,所述第一类型数据流和所述第二类型数据流构成了混合流;
生成与所述第一类型数据流所对应的标签规则;
通过所述标签规则在标签表中匹配到所述第一类型数据流的转发信息,记为第一转发信息,所述第一转发信息用于转发所述第一类型数据流;
通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流;
通过所述第一转发信息和所述第二转发信息,完成所述混合流的转发。
在一种实现方式中,所述将所占用的容量大于设定值的数据流标记为第一类型数据流,将所占用的容量小于设定值的数据流标记为第二类型数据流,所述第一类型数据流和所述第二类型数据流构成了混合流,包括:
采集所述混合流中的各条所述数据流所对应的数据首包,所述数据首包为各条所述数据流进入到交换机的第一个数据包;
依据各条所述数据流所对应的数据首包,预估各条所述数据流所占用的容量,记为预估容量;
当所述预估容量大于设定值时,通过所述交换机将所述预估容量所对应的所述数据流标记为第一类型数据流;
当所述预估容量小于设定值时,通过所述交换机将所述预估容量所对应的所述数据流标记为第二类型数据流。
在一种实现方式中,依据各条所述数据流所对应的数据首包,预估各条所述数据流所占用的容量,记为预估容量,包括:
依据各条所述数据流所对应的数据首包,得到所述数据首包所涵盖的包头信息;
对所述包头信息应用机器学习模型,预估各条所述数据流所占用的容量。
在一种实现方式中,所述生成与所述第一类型数据流所对应的标签规则,包括:
依据所述第一类型数据流所对应的数据首包,得到所述第一类型数据流所对应的匹配域,所述匹配域为所述第一类型数据流自身携带的用于与所述标签表匹配的信息;
获取保存在硬件流表上的匹配设定域;
对所述匹配域和所述匹配设定域,应用无依赖规则生成算法,得到所述第一类型数据流所对应的标签规则;
将所述第一类型数据流所对应的标签规则保存至所述硬件流表上。
在一种实现方式中,所述对所述匹配域和所述匹配设定域,应用无依赖规则生成算法,得到所述第一类型数据流所对应的标签规则,包括:
依据所述匹配设定域,得到所述匹配设定域所对应的优先级;
依据所述匹配域,得到所述匹配设定域中与所述匹配域所对应的各个目标域;
当各个所述目标域所对应的优先级相同时,
对相同所述优先级的各个所述目标域应用无依赖规则生成算法,得到所述第一类型数据流所对应的标签规则。
在一种实现方式中,所述标签规则保存在大流表中,所述大流表位于硬件流表上,所述通过所述标签规则在标签表中匹配到所述第一类型数据流的转发信息,记为第一转发信息,所述第一转发信息用于转发所述第一类型数据流,包括:
依据所述第一类型数据流,得到所述第一类型数据流所包含的位于所述数据首包之后的后续数据包;
在所述大流表上的所述标签规则中,查找与所述后续数据包所携带的所述匹配域相匹配的规则,记为目标规则;
依据所述目标规则在位于所述硬件流表上的所述标签表中匹配到所述后续数据包的转发信息。
在一种实现方式中,所述通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流,包括:
依据所述第二类型数据流,得到所述第二类型数据流所包含的位于所述数据首包之后的后续数据包;
当位于所述硬件流表上的所述标签表与所述后续数据包所携带的所述匹配域相适配时,从所述标签表得到所述后续数据包的转发信息。
在一种实现方式中,所述通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流,还包括:
当位于所述硬件流表上的所述标签表与所述后续数据包所携带的所述匹配域未适配时,将所述后续数据包发送至软件流表中;
在位于所述软件流表上的标签表中匹配到与所述后续数据包所携带的匹配域所对应的转发信息。
在一种实现方式中,所述通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流,还包括:
当位于所述硬件流表上的所述标签表与所述后续数据包所携带的所述匹配域未适配时,计算所述后续数据包所占用的容量;
当所述后续数据包所占用的容量大于阈值时,依据所述后续数据包所携带的所述匹配域,生成新规则;
将所述新规则保存在位于硬件流表上的大流表中;
所述第二类型数据流位于后续数据包之后的数据包通过所述新规则在所述标签表中匹配到转发信息。
在一种实现方式中,所述通过所述第一转发信息和所述第二转发信息,完成所述混合流的转发,包括:
依据所述第一类型数据流,得到所述第一类型数据流所包含的数据首包和位于数据首包之后的后续数据包;
通过软件流表匹配到所述第一类型数据流的数据首包对应的转发信息;
通过硬件流表匹配到所述第一类型数据流的后续数据包对应的第一转发信息;
依据所述第二类型数据流,得到所述第二类型数据流所包含的数据首包和位于数据首包之后的后续数据包;
通过软件流表匹配到所述第二类型数据流的数据首包对应的转发信息;
通过硬件流表和软件流表匹配到所述第二类型数据流的后续数据包对应的第二转发信息;
依据所述第一类型数据流的数据首包对应的转发信息、所述第一类型数据流的后续数据包对应的第一转发信息、所述第二类型数据流的数据首包对应的转发信息、所述第二类型数据流的后续数据包对应的第二转发信息,完成所述混合流的转发。
在一种实现方式中,所述混合流为软件定义网络数据流。
第二方面,本发明实施例还提供一种混合流转发装置,其中,所述装置包括如下组成部分:
流划分模块,用于将所占用的容量大于设定值的数据流标记为第一类型数据流,将所占用的容量小于设定值的数据流标记为第二类型数据流,所述第一类型数据流和所述第二类型数据流构成了混合流;
规则生成模块,用于生成与所述第一类型数据流所对应的标签规则;
第一匹配模块,用于通过所述标签规则在标签表中匹配到所述第一类型数据流的转发信息,记为第一转发信息,所述第一转发信息用于转发所述第一类型数据流;
第二匹配模块,用于通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流;
转发模块,用于通过所述第一转发信息和所述第二转发信息,完成所述混合流的转发。
第三方面,本发明实施例还提供一种终端设备,其中,所述终端设备包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的混合流转发程序,所述处理器执行所述混合流转发程序时,实现上述所述的混合流转发方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有混合流转发程序,所述混合流转发程序被处理器执行时,实现上述所述的混合流转发方法的步骤。
有益效果:本发明是通过标签规则和标签表共同作用实现了对第一转发信息的缓存,通过标签表单独作用实现了对第二转发信息的缓存。由于第一类型数据流所占用的容量较大,因此需要多次执行匹配第一转发信息这一操作才能对第一类型数据流进行转发,而本发明通过标签规则和标签表实现了分阶段匹配到第一转发信息,从而提高了找到第一转发信息的速度,进而提高了对第一类型数据流的转发速度。
由于第二类型数据流所占用的容量小,因此执行匹配第二转发信息这一操作的次数较少,所以可以直接通过标签表匹配到第二转发信息。
综上所述,本发明将混合流划分第一类型数据流和第二类型数据流,不同的数据流采用不同的方式找到对应的转发信息,能够提高对混合流的转发速度。
附图说明
图1为本发明的整体流程图;
图2为本发明的框架图;
图3为本发明的生成无依赖规则的流程图;
图4为本发明的优先级示意图;
图5为实施例中的拓扑结构;
图6为本发明实施例提供的终端设备的内部结构原理框图。
具体实施方式
以下结合实施例和说明书附图,对本发明中的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
经研究发现,在对不同容量大小的数据流进行转发之前,首先要缓存(保存)各个数据流对应的转发规则,然后数据流找到对应的转发规则进行转发。现有的支持缓存的寄存器有三态内容可寻址寄存器(ternary content addressable memory,TCAM),由于其强大的包处理性能而广泛被现代路由器、支持软件定义网络(software definednetworking,SDN)的交换机所使用。然而TCAM由于耗能高,价格昂贵等原因使得容量受到限制,通常只有几兆字节大小。在实际的SDN网络,为了体现其细粒度的流管理,往往是采取的是策略转发。策略转发需要的规则集大小远远超过TCAM的实际容量。为了解决这个问题,目前最流行的方案是采用将TCAM视作缓存,即TCAM缓存当下最热门、最流行的转发规则。SDN场景下的缓存方案又与计算机系统的缓存方案有所不同,当将一条规则缓存时需要考虑该条规则的依赖规则并将其一同缓存,否则会造成语义错误。因此SDN缓存方案基本从如何解决规则依赖性的角度进行设计。现有的缓存方案大体上又可以分为两类。第一种是以CacheFlow为代表,通过分离再拼接依赖链的方式。即在TCAM中不考虑间接依赖规则,只附带地缓存直接依赖规则,而直接依赖规则的动作域修改为转发到控制面或者是辅存进行处理,这种方式只一定程度减少了缓存依赖规则的数量。第二种是以T-Cache为代表,通过切分原始规则的匹配域的方式去生成一个新的规则,这条规则与其余规则没有依赖,从而彻底解决依赖性问题。然而,这两种方案针对的都是最热门最流行的规则进行缓存。实际上,大多数规则所对应的流量都不足1MB,甚至不足100KB。这些规则无法被缓存到TCAM,当一个数据包在TCAM中找不到匹配规则时,它会转发到控制器或者是交换机的软件流表中再由它们进行转发,这一过程称作两阶段转发。软件流表由随机存储器(Random Access Memory,RAM)进行存储,不同于存储在TCAM中的硬件流表,它虽然容量巨大,但不具有模糊内容匹配查找功能,因此转发速度慢(有论文指出软件流表的吞吐量仅为硬件流表的十分之一)。大多数规则因为不够”热”而无法被缓存进TCAM,那么这些规则对应的小流不得不在RAM中进行转发,进而导致小流的性能(主要是流完成时间)下降。除此之外,这两种方案在寻找缓存规则时也有其内在的缺陷。CacheFlow所代表的基于规则的缓存采取的是”统计”的方法。这种方法是控制器周期性的向数据平面内的交换机读取信息,得到各个交换机流表中每条流表项命中包的个数,我们把这个称作规则的流行度。之后根据规则的流行度以及规则的依赖规则数量得到缓存一条规则的实际价值,按规则的实际价值从大到小进行缓存,直至空间被占满。然而这种方法有两个缺点,首先是更新的频率受到交换机与控制器之间的带宽限制,往往缓存的都是已经不那么流行的规则。并且由于规则依赖性一次更新需要缓存多条规则,导致更新的速度慢。T-Cache所代表的基于大流的缓存。T-Cache并不统计一段时间内的规则的流行度,它仅缓存已检测到的大流所对应的规则。为了寻找大流该方案采用的是”阈值”的方法,即统计一条流到达的包的数目,如果超过某个阈值,则认定这是该周期内的大流。然而这种”阈值”的方法的阈值难以设置,如果太小,则有可能将小流当作大流缓存,如果太大,则会缓存到”过期”的大流(实际上,这些流剩余的流量可能只有小流的数量级)。因此周期以及阈值大小难以设置。T-Cache的实验表明依然需要秒级别的时间粒度去检测大流。现有转发方法(转发规则)缓存并没有针对数据流的大小进行划分,因而降低了缓存吞吐量,从而降低了数据流后续根据转发规则进行转发的速度。
为解决上述技术问题,本发明提供了一种混合流转发方法、装置、设备及存储介质,解决了现有转发方法(转发规则)缓存并没有针对数据流的大小进行划分,因而降低了缓存吞吐量,从而降低了数据流后续根据转发规则进行转发速度的问题。具体实施时,将所占用的容量大于设定值的数据流标记为第一类型数据流,将所占用的容量小于设定值的数据流标记为第二类型数据流,所述第一类型数据流和所述第二类型数据流构成了混合流;生成与所述第一类型数据流所对应的标签规则;通过所述标签规则在标签表中匹配到所述第一类型数据流的转发信息,记为第一转发信息,所述第一转发信息用于转发所述第一类型数据流;通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流;通过所述第一转发信息和所述第二转发信息,完成所述混合流的转发。本发明将混合流划分第一类型数据流和第二类型数据流,不同的数据流采用不同的方式找到对应的转发信息,能够提高对混合流的转发速度。
举例说明,数据流A、数据流B、数据流C构成了混合流,每一个数据流可以是一段视频,交换机用于对混合流进行转发,即当前交换机需要把混合流转发到下一个交换机。本实施例首先判断数据流A、数据流B、数据流C分别占用的容量(即判断数据流A、数据流B、数据流C的大小),当数据流A、数据流B的大小大于设定值时,而数据流C的大小小于设定值时,就可以认为数据流A、数据流B为第一类型数据流,数据流C为第二类型数据流。因此就生成数据流A的标签规则a、数据流B的标签规则b。交换机后续在对数据流A进行转发时,首先从标签规则a和标签规则b所在的数据库中匹配到数据流A所对应的标签规则a,然后根据标签规则a再从标签表中匹配到数据流A对应的转发信息,对应数据流B进行同样的操作。而交换机后续在对数据流C进行转发时,只要根据数据流C自身的信息去与标签表进行匹配就可以找到数据流C的转发信息。本实施例之所以划分出第一类型数据流和第二类型数据流,是因为第一类型数据流在混合流中占据主导地位,交换机需要频繁地对第一类型数据流的各个数据包进行转发,因此需要频繁获取第一类型数据流的转发信息,将获取第一类型数据流的转发信息分成两步完成,能够提高匹配速度,进而提高转发速度。
示例性方法
本实施例的一种混合流转发方法可应用于终端设备中,所述终端设备可为具有计算功能的终端产品,比如交换机等。
本实施例的混合流转发方法是依托于如图2所示的硬件框架得以实现的。硬件框架位于交换机内部,而交换机内部又包括TCAM(硬件流表)和RAM(软件流表)以及控制器。TCAM储存了大流表(用于缓存生成的标签规则)、标签表(用于保存转发信息)、组表(用于将数据包转发给RAM)。RAM储存了主机表(用于将第二类型数据流的数据包直接转发到位于当前交换机之后的下一个交换机或主机上)和标签表(用于对没有被直接转发到位于下一个交换机的数据进行转发信息的匹配)
在本实施例中,如图1中所示,所述混合流转发方法具体包括如下步骤:
S100,将所占用的容量大于设定值的数据流标记为第一类型数据流,将所占用的容量小于设定值的数据流标记为第二类型数据流,所述第一类型数据流和所述第二类型数据流构成了混合流。
本实施例是不采用“阈值”算法来识别大流(第一类型数据流)而是采用流预测方案。流预测方案在控制器中部署了机器学习模型,通过学习历史流量信息对机器学习模型进行训练,得到训练之后的机器学习模型,将进入到交换机的混合流的包头信息输入到训练之后的机器学习模型,使之能够在毫秒级别内推断出混合流所涵盖的当前数据流是否要成为大流。因此本实施例采用机器学习模型判断混合流中的各个数据流是大流还是小流,能够提高判断速度,进而提高后续的转发速度。步骤S100包括如下的步骤S101、S102、S103、S104:
S101,采集所述混合流中的各条所述数据流所对应的数据首包,所述数据首包为各条所述数据流进入到交换机的第一个数据包。
各条数据流都是由众多数据包构成的,第一个进入到当前交换机的数据包就是数据首包。
S102,依据各条所述数据流所对应的数据首包,得到所述数据首包所涵盖的包头信息。
本实施例中的包头信息如表1所示。
表1
S103,对所述包头信息应用机器学习模型,预估各条所述数据流所占用的容量。
S104,当所述预估容量大于设定值时,通过所述交换机将所述预估容量所对应的所述数据流标记为第一类型数据流。
比如数据流A的数据首包进入到交换机中的机器学习模型中,机器学习模型就可以根据数据首包的包头信息判断出数据流A的数据所占用的容量,并根据该容量与设定值之间的关系,判断数据流A是否是第一类型数据流。
或者,当所述预估容量小于设定值时,通过所述交换机将所述预估容量所对应的所述数据流标记为第二类型数据流。
本实施例的机器学习模型为GBDT(梯度提升决策树)模型,GBDT不易过拟合,准确度高的特点而被广泛使用。
GBDT模型的大小为40棵树,树的最大深度为10。对于不同数据集,这些参数可能有所不同。模型将结果分为两类,第一类:0-100KB,第二类:大于100KB。大于100KB的流视作大流进行缓存。
GBDT树的精度虽高,但仍无法全部准确预测结果,对于那些被错误判断成大流的小流,将不做任何处理,因为当空间不足时控制器会删除包数量最少所对应的规则。对于那些被错误判断成小流的大流,如图3所示,采取传统的阈值算法来解决(假设将大流错误的判断成了小流,TCAM没它的流表项条目,那么它将会被不断送往控制器。接下来就通过“阈值”算法,统计这条流这段时间内的包数目,超过某个阈值就认为是大流)。在控制器上增添流记录的哈希表。流记录哈希表记录着一个周期内每条流包的数目,如在一段时间内这条流超过了某个预设定的阈值,那么就认定成大流。每当到达下一个新周期时,清空流记录哈希表。通过两者结合的方式,既提升了识别大流的速度同时也提高了识别的准确率。
S200,生成与所述第一类型数据流所对应的标签规则。
本实施例通过步骤S100将一条数据流判断为大流(第一类型数据流)之后,当前交换机中的控制器根据大流的数据首包携带的匹配域,生成标签规则,并保存在TCAM中的大流表中。
本实施例在控制器判断出混合流中的大流之后,控制器使用与T-Cache相同的无依赖规则生成算法生成无依赖规则进行缓存。这种方法能够大大缩短了找到缓存规则的时间,提升整体缓存命中率。对于小流,仅满足其端点策略,即只保证小流能够到达目的地而不考虑所经过的路径。本实施例中为小流安排的是依据跳过的最短路径。规则预处理模块首先根据标签路径部署算法根据计算出的最短路径集(所有拓扑中任一节点到其余节点的路径集合)安装标签规则在TCAM,之后再修改原始规则的动作域,将根据安装的标签转发规则标记上相应的标签。最后控制器将这些新的规则存储在交换机的RAM中。未被识别成大流的流的数据包将在第一个交换机中被打上标签,而在路径的首节点之后的节点中就能够通过被打上的标签信息在TCAM进行转发。这种方法能够大大减少小流的流完成时间,提升小流的性能。因为本发明对大流采用通配符方式转发,对小流采用标签方式转发,因此我们称为混合缓存框架。
步骤S200包括如下的步骤S201、S202、S203、S204、S205、S206:
S201,依据所述第一类型数据流所对应的数据首包,得到所述第一类型数据流所对应的匹配域,所述匹配域为所述第一类型数据流自身携带的用于与所述标签表匹配的信息。
同一条数据流的各个数据包都携带了自己的匹配域,比如一条数据流的数据包携带的匹配域1为0110、匹配域2为11101(记为F1)。
S202,获取保存在硬件流表上的匹配设定域。
如表2所示,硬件表上的匹配设定域包括匹配域1为0***、且匹配域2为1*****(*代表0和1中的任一个值),匹配域1为****、且匹配域2为101***,匹配域1为000*、且匹配域2为11111*。
表2
S203,依据所述匹配设定域,得到所述匹配设定域所对应的优先级。
如表2所示,R1对应的优先级小于R2和R3对应的优先级,R2和R3的优先级相同。
S204,依据所述匹配域,得到所述匹配设定域中与所述匹配域所对应的各个目标域。
F1(匹配域1为0110、匹配域2为11101)首先与优先级高的R2和R3进行比较,由于F1中与R3中重叠部分较多,因此不能采用R3所对应的转发信息(转发到端口3,因为其它非第一类型数据流也会转发到端口3,从而造成第一类型数据流转发拥堵),然后将F1(匹配域1为0110、匹配域2为11101)与R2进行比较,发现11101在第二1与101**就不一样了,因此R2就是目标域。
S205,当各个所述目标域所对应的优先级相同时,对相同所述优先级的各个所述目标域应用无依赖规则生成算法,得到所述第一类型数据流所对应的标签规则。
F1(匹配域1为0110、匹配域2为11101)对应的标签规则(独立规则)R就是R={01**,11***}。
S206,将所述第一类型数据流所对应的标签规则保存至所述硬件流表上。
本实施例的S201至S206是基于如下原理得到第一类型数据流的独立标签规则的:
流F1是被识别出的大流,它所对应的规则是R1。然而R1有两条依赖规则分别是R2和R3。为了生成无依赖规则,根据流F1与R2以及R3的匹配域,找到流F1在这两条规则的失配点子集下标x代表的维度,上标y代表的是该维度最早的失配点(从左到右最早失配点),具体来说是需要进一步指定多少位才能够使流F1与依赖规则失配。在这个例子中, 为了生成独立规则,需要组合多个失配点,以失配所有依赖规则。本实施例把C的上标当作每个C的开销,为了尽可能少的分割原始规则的匹配域,需要找到开销最小,且能够失配所有依赖规则的C的集合。在该例子中,和的开销最小,根据流F1和C集,最后生成的独立规则R={01**,11***}。
本实施上述得到的独立规则是基于如下步骤:
1.找出流F1对应的规则以及其依赖规则,如无依赖规则,则直接缓存。
2.根据流F1以及依赖规则的匹配域,得到失配点集合C。
3.通过对失配点集合C的组合,找到一个代价最小的C的集合,该集合能够失配所有依赖规则。
4.根据3生成的子集以及流f的匹配域,生成F1的独立规则。
本实施例生成独立规则(标签规则)之后就保存在大流表中,同时在标签表中创建与独立规则相对应的转发信息。但是当控制器安装新的规则却发现交换机的大流表已没有足够空间大小容纳新的独立规则时,控制器会读取交换机状态并统计每条流表项的计数器。控制器会根据上一次读取的流表项计数器的值与这次的值(如没有则默认为0)得到一个差值,并依据这个差值选择一个差值最小的流表项进行删除。
本实施例之所以要创建独立规则,是因为依赖规则具有以下缺陷:
当采取的匹配模式是模糊匹配而不是精确匹配时,就会存在规则依赖性。模糊匹配意味着不同规则之间的匹配域有可能会相互重叠。在SDN场景下,用规则的优先级来决定重叠部分的匹配域的流量该由哪条规则匹配。本实施例用表3中的数据来说明规则之间的依赖性。
表3
表3给出了一个规则集。对于R1来说,它的匹配域覆盖了R2和R3,并且R1的优先级低于R2和R3。这意味着当缓存规则R1时,不得不缓存R2和R3。如不缓存,那么这两条规则与R1重叠部分的匹配域的流量将会由R1进行转发,从而导致语义错误。本实施例中如果两条规则匹配域重叠,那么优先级低的规则是优先级高的规则的父规则,反之,则是子规则。由此本实施例可以根据一个给定的规则集绘制出如图4所示的规则依赖图。
规则之间的依赖又可分为两种,直接依赖和间接依赖。直接依赖规则指的是两条规则匹配域有所重叠,例如附表3中的规则R1与R2,称R1对R2是直接依赖。间接依赖规则指的是虽然这两条规则匹配域可能并未重叠,但其中一条规则是另一条规则的直接依赖规则。例如附表3中的规则R1和R5,虽然它们之间匹配域并不重叠,但R1依赖R2,而R2又依赖R5,因此R1也依赖R5,本实施例称R1对R5是间接依赖。
S300,通过所述标签规则在标签表中匹配到所述第一类型数据流的转发信息,记为第一转发信息,所述第一转发信息用于转发所述第一类型数据流。
本实施例的标签规则保存在大流表中,而大流表又位于硬件流表(TCAM)上,步骤S300的具体过程:依据所述第一类型数据流,得到所述第一类型数据流所包含的位于所述数据首包之后的后续数据包;在所述大流表上的所述标签规则中,查找与所述后续数据包所携带的所述匹配域相匹配的规则,记为目标规则;依据所述目标规则在位于所述硬件流表上的所述标签表中匹配到所述后续数据包的转发信息。
S400,通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流。
步骤S400的具体过程:依据所述第二类型数据流,得到所述第二类型数据流所包含的位于所述数据首包之后的后续数据包;当位于所述硬件流表上的所述标签表与所述后续数据包所携带的所述匹配域相适配时,从所述标签表得到所述后续数据包的转发信息;当位于所述硬件流表上的所述标签表与所述后续数据包所携带的所述匹配域未适配时,将所述后续数据包发送至软件流表中;在位于所述软件流表上的标签表中匹配到与所述后续数据包所携带的匹配域所对应的转发信息。
本实施例不仅可以在硬件流表上的标签表与后续数据包(对应于第二类型数据流)所携带的所述匹配域未适配时直接将后续数据包发送给软件流表,还可以为了验证是否是因为前期错误将大流(第一类型数据流)错误判断成小流(第二类型数据流),因此本实施例还针对后续数据包进行如下的处理:当位于所述硬件流表上的所述标签表与所述后续数据包所携带的所述匹配域未适配时,计算所述后续数据包在单位时间内到达交换机的数量;当单位时间内到达交换机的数量大于阈值时,依据所述后续数据包所携带的所述匹配域,生成新规则;将所述新规则保存在位于硬件流表上的大流表中;所述第二类型数据流位于后续数据包之后的数据包通过所述新规则在所述标签表中匹配到转发信息。
S500,通过所述第一转发信息和所述第二转发信息,完成所述混合流的转发。
本实施例是根据第一转发信息和第二转发信息所包含的下一个交换机的信息将混合流中的第一类型数据流和第二类型数据流转发到下一个交换机。
步骤S500包括如下的步骤S501、S502、S503、S504、S505、S506、S507:
S501,依据所述第一类型数据流,得到所述第一类型数据流所包含的数据首包和位于数据首包之后的后续数据包。
S502,通过软件流表匹配到所述第一类型数据流的数据首包对应的转发信息。
S503,通过硬件流表匹配到所述第一类型数据流的后续数据包对应的第一转发信息。
S504,依据所述第二类型数据流,得到所述第二类型数据流所包含的数据首包和位于数据首包之后的后续数据包。
S505,通过软件流表匹配到所述第二类型数据流的数据首包对应的转发信息。
S506,通过硬件流表和软件流表匹配到所述第二类型数据流的后续数据包对应的第二转发信息。
S507,依据所述第一类型数据流的数据首包对应的转发信息、所述第一类型数据流的后续数据包对应的第一转发信息、所述第二类型数据流的数据首包对应的转发信息、所述第二类型数据流的后续数据包对应的第二转发信息,完成所述混合流的转发。
下面以图2的框架为说明本实施例中的混合流转发实施的整体过程:
在转发之前,首先需要通过规则预处理模块在标签表中安装独立标签规则和原始规则,原始规则就是针对所有的数据流的规则,独立标签规则就是针对识别出的大流而生成的规则,标签表中的规则会对应转发路径(转发信息),而大流表中只有规则,将大流表中的规则与标签表中的规则对应起来就可以找到转发路径。
将拓扑中所有节点视作标签的转发等价类,每个节点代表着一个标签。假设拓扑中有N个节点,那么就有N个转发等价类。接下来我们计算出拓扑中任意一点到其他点的最短路径集合P。之后,控制器为每个交换机安装N条规则。N-1条规则的匹配域是其余交换机的标签,动作域为之前计算出的路径的下一跳所在的转发端口。余下的一条规则匹配域正对应着交换机自身所代表的标签,这意味着此时包已经到达了出口交换机,因此动作域弹出标签。表4和图5在一起展示了一个简单的示例,用于说明上述过程。S2到S4的最短路径为S2->S3->S4。S2到S3的转发端口为2,因此转发到交换机S4标签规则匹配域为S4,动作为转发到端口2。这里安装的标签流表项是位于硬件流表,携带者标签的数据包能够通过标签匹配的方式通过TCAM转发。
表4
在安装了标签流表项后,本实施例还改造了原始的规则集。无需修改规则的匹配域以及优先级,只需要根据规则所对应的出口交换机,获取其相应的标签,同时将动作域修改成推送该标签即可。改造好的规则集将被控制器安装在RAM的标签表中。未被识别成大流的流在进入RAM获得标签之后,即可依据标签在路径之后的节点上通过TCAM进行转发,由此能够减少流完成时间。表5和表6展示了上述过程的一个简单示例。R1和R2对应的出口交换机分别为S6和S5,因此将动作域修改成推送标签S5和S6。
表5
规则 | 匹配域 | 动作域 | 出口交换机 | 优先级 |
R1 | 1** | 转发到端口2 | S6 | 1 |
R2 | *** | 转发到端口2 | S5 | 0 |
表6
规则 | 匹配域 | 动作域 | 目的地 | 优先级 |
R1 | 1** | 推送标签S6 | S6 | 1 |
R2 | *** | 推送标签S5 | S5 | 0 |
在安装完TCAM以及RAM中的标签流表项后,控制器还需要为交换机与之直接相连的主机,安装原始规则在主机表中。需要说明的是,标签转发仅发生在入口交换机到出口交换机这段路径,携带了标签的数据包一旦到达出口交换机,将会在TCAM的硬件流表中弹出标签,并通过RAM的主机流表转发到目的主机。因此通过标签转发的数据包总计需要进入两次RAM。
以图2为例简述本实施例中的针对混合流进行转发的大致过程:
混合流包括两条数据流,分别是数据流A和数据流B,数据流A的数据首包a1和数据流B的数据首包b1到达交换机的TCAM时,依次经过TCAM的大流表(缓存单元)、标签表(缓存单元)、组表(缓存单元),组表将数据首包a1和数据首包b1都发送到RAM中和控制器中,即RAM中和控制器中都有数据首包a1和数据首包b1,如果主机表查询到数据首包a1和数据首包b1的目的主机,就直接将数据首包a1和数据首包b1转发到目的主机上,如果主机表没有查询到,则通过标签表查询数据首包a1和数据首包b1对应的转发信息,根据查询到的转发信息对数据首包a1和数据首包b1进行转发。同时控制器根据数据首包a1和数据首包b1判断出数据流A和数据流B,当判断出数据流A是大流而数据流B是小流时,就根据数据首包a1携带的匹配域生成标签规则aa保存在TCAM的大流表中,同时在TCAM的标签表中创建与标签规则aa对应的转发信息(针对数据流A的转发路径)。当数据流A的下一个数据包a2和数据流B的下一个数据包b2到达大流表时,根据数据包a2携带的匹配域在大流表中找到标签规则aa(大流表不只有大流表标签规则aa这一个标签规则),然后根据标签规则aa在标签表中找到对应的转发信息,之后当前交换机就根据转发信息将数据包a2转发到与转发信息对应的目的交换机上。对于数据包b2如果在TCAM的标签表中找到对应的转发信息,就直接转发出去,如果没有,则通过组表发送到RAM,在RAM中查找与数据包b2对应的转发信息。
本实施例的TCAM中给出了两种类型的表。第一个是大流表,即专用于放置大流对应的流条目。交换机首先查询大流表,如果在大流表中找不到则进入下一级流表查找。第二个是标签表,根据包头携带的标签进行转发。如果包不携带标签那么将按组表转发到RAM并同时将数据包的副本包头发送到控制器,由流预测的规则缓存模块决定该流是否需要被缓存。
本实施例的RAM中也有两种类型的表。首先,交换机查询主机表,如果交换机是数据包的出口交换机,那么直接匹配转发到目的主机。否则,报文进入下一级流表,交换机将查询标签表,为报文推送标签。将主机表和标签表分开的目的主要是为了减少每次查询表的时间。
本实施例的控制器中包含了两个模块,规则预处理模块以及基于流预测的规则缓存模块。规则预处理模块根据定义好的规则集以及拓扑提前主动下发流表项到交换机中TCAM和RAM的流表。基于流预测的规则缓存模块通过识别大流,将识别出大流所对应的规则转变成无依赖规则,并安装这些规则在TCAM的大流表中,这些规则将用于大流的匹配转发。
综上,本发明是通过标签规则和标签表共同作用实现了对第一转发信息的缓存,通过标签表单独作用实现了对第二转发信息的缓存。由于第一类型数据流所占用的容量较大,因此需要多次执行匹配第一转发信息这一操作才能对第一类型数据流进行转发,而本发明通过标签规则和标签表实现了分阶段匹配到第一转发信息,从而提高了找到第一转发信息的速度,进而提高了对第一类型数据流的转发速度。由于第二类型数据流所占用的容量小,因此执行匹配第二转发信息这一操作的次数较少,所以可以直接通过标签表匹配到第二转发信息。本发明将混合流划分第一类型数据流和第二类型数据流,不同的数据流采用不同的方式找到对应的转发信息,能够提高对混合流的转发速度。
另外,本发明未被识别成大流的流将通过标签规则进行转发。在线流量场景下,规则缓存模块能够毫秒级别内对新流进行预测,将其分类成大小流。对于大流,控制器通过无依赖规则生成算法将其对应的规则转变成无依赖规则进行缓存。规则预处理模块具体实现为安装标签转发路径以及依据安装的标签转发路径安装修改后的原始规则从而将通配符转发转变成标签转发。小流通过标签进行转发能够一定程度上减少小流的流完成时间,优化了现有缓存方案小流性能不足的问题。规则缓存模块的创新在于结合了最近热门的机器学习的方法,在控制器部署预测大小流的模型,通过对每条新流的首包进行流预测,进而能够在毫秒的时间粒度上决定是否缓存该条大流对应的规则。
示例性装置
本实施例还提供一种混合流转发装置,所述装置包括如下组成部分:
流划分模块,用于将所占用的容量大于设定值的数据流标记为第一类型数据流,将所占用的容量小于设定值的数据流标记为第二类型数据流,所述第一类型数据流和所述第二类型数据流构成了混合流;
规则生成模块,用于生成与所述第一类型数据流所对应的标签规则;
第一匹配模块,用于通过所述标签规则在标签表中匹配到所述第一类型数据流的转发信息,记为第一转发信息,所述第一转发信息用于转发所述第一类型数据流;
第二匹配模块,用于通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流;
转发模块,用于通过所述第一转发信息和所述第二转发信息,完成所述混合流的转发。
基于上述实施例,本发明还提供了一种终端设备,其原理框图可以如图6所示。该终端设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该终端设备的处理器用于提供计算和控制能力。该终端设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种混合流转发方法。该终端设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该终端设备的温度传感器是预先在终端设备内部设置,用于检测内部设备的运行温度。
本领域技术人员可以理解,图6中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端设备的限定,具体的终端设备以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种终端设备,终端设备包括存储器、处理器及存储在存储器中并可在处理器上运行的混合流转发程序,处理器执行混合流转发程序时,实现如下操作指令:
将所占用的容量大于设定值的数据流标记为第一类型数据流,将所占用的容量小于设定值的数据流标记为第二类型数据流,所述第一类型数据流和所述第二类型数据流构成了混合流;
生成与所述第一类型数据流所对应的标签规则;
通过所述标签规则在标签表中匹配到所述第一类型数据流的转发信息,记为第一转发信息,所述第一转发信息用于转发所述第一类型数据流;
通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流;
通过所述第一转发信息和所述第二转发信息,完成所述混合流的转发。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种混合流转发方法,其特征在于,包括:
将所占用的容量大于设定值的数据流标记为第一类型数据流,将所占用的容量小于设定值的数据流标记为第二类型数据流,所述第一类型数据流和所述第二类型数据流构成了混合流;
生成与所述第一类型数据流所对应的标签规则;
通过所述标签规则在标签表中匹配到所述第一类型数据流的转发信息,记为第一转发信息,所述第一转发信息用于转发所述第一类型数据流;
通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流;
通过所述第一转发信息和所述第二转发信息,完成所述混合流的转发;
所述生成与所述第一类型数据流所对应的标签规则,包括:
依据所述第一类型数据流所对应的数据首包,得到所述第一类型数据流所对应的匹配域,所述匹配域为所述第一类型数据流自身携带的用于与所述标签表匹配的信息;
获取保存在硬件流表上的匹配设定域;
对所述匹配域和所述匹配设定域,应用无依赖规则生成算法,得到所述第一类型数据流所对应的标签规则;
将所述第一类型数据流所对应的标签规则保存至所述硬件流表上;
所述通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流,包括:
依据所述第二类型数据流,得到所述第二类型数据流所包含的位于所述数据首包之后的后续数据包;
当位于所述硬件流表上的所述标签表与所述后续数据包所携带的所述匹配域相适配时,从所述标签表得到所述后续数据包的转发信息。
2.如权利要求1所述的混合流转发方法,其特征在于,所述将所占用的容量大于设定值的数据流标记为第一类型数据流,将所占用的容量小于设定值的数据流标记为第二类型数据流,所述第一类型数据流和所述第二类型数据流构成了混合流,包括:
采集所述混合流中的各条所述数据流所对应的数据首包,所述数据首包为各条所述数据流进入到交换机的第一个数据包;
依据各条所述数据流所对应的数据首包,预估各条所述数据流所占用的容量,记为预估容量;
当所述预估容量大于设定值时,通过所述交换机将所述预估容量所对应的所述数据流标记为第一类型数据流;
当所述预估容量小于设定值时,通过所述交换机将所述预估容量所对应的所述数据流标记为第二类型数据流。
3.如权利要求2所述的混合流转发方法,其特征在于,所述依据各条所述数据流所对应的数据首包,预估各条所述数据流所占用的容量,记为预估容量,包括:
依据各条所述数据流所对应的数据首包,得到所述数据首包所涵盖的包头信息;
对所述包头信息应用机器学习模型,预估各条所述数据流所占用的容量。
4.如权利要求1所述的混合流转发方法,其特征在于,所述对所述匹配域和所述匹配设定域,应用无依赖规则生成算法,得到所述第一类型数据流所对应的标签规则,包括:
依据所述匹配设定域,得到所述匹配设定域所对应的优先级;
依据所述匹配域,得到所述匹配设定域中与所述匹配域所对应的各个目标域;
当各个所述目标域所对应的优先级相同时,对相同所述优先级的各个所述目标域应用无依赖规则生成算法,得到所述第一类型数据流所对应的标签规则。
5.如权利要求1所述的混合流转发方法,其特征在于,所述标签规则保存在大流表中,所述大流表位于硬件流表上,所述通过所述标签规则在标签表中匹配到所述第一类型数据流的转发信息,记为第一转发信息,所述第一转发信息用于转发所述第一类型数据流,包括:
依据所述第一类型数据流,得到所述第一类型数据流所包含的位于所述数据首包之后的后续数据包;
在所述大流表上的所述标签规则中,查找与所述后续数据包所携带的所述匹配域相匹配的规则,记为目标规则;
依据所述目标规则在位于所述硬件流表上的所述标签表中匹配到所述后续数据包的转发信息。
6.如权利要求1所述的混合流转发方法,其特征在于,所述通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流,还包括:
当位于所述硬件流表上的所述标签表与所述后续数据包所携带的所述匹配域未适配时,将所述后续数据包发送至软件流表中;
在位于所述软件流表上的标签表中匹配到与所述后续数据包所携带的匹配域所对应的转发信息。
7.如权利要求1所述的混合流转发方法,其特征在于,所述通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流,还包括:
当位于所述硬件流表上的所述标签表与所述后续数据包所携带的所述匹配域未适配时,计算所述后续数据包在单位时间内到达交换机的数量;
当单位时间内到达交换机的数量大于阈值时,依据所述后续数据包所携带的所述匹配域,生成新规则;
将所述新规则保存在位于硬件流表上的大流表中;
所述第二类型数据流位于后续数据包之后的数据包通过所述新规则在所述标签表中匹配到转发信息。
8.如权利要求1所述的混合流转发方法,其特征在于,所述通过所述第一转发信息和所述第二转发信息,完成所述混合流的转发,包括:
依据所述第一类型数据流,得到所述第一类型数据流所包含的数据首包和位于数据首包之后的后续数据包;
通过软件流表匹配到所述第一类型数据流的数据首包对应的转发信息;
通过硬件流表匹配到所述第一类型数据流的后续数据包对应的第一转发信息;
依据所述第二类型数据流,得到所述第二类型数据流所包含的数据首包和位于数据首包之后的后续数据包;
通过软件流表匹配到所述第二类型数据流的数据首包对应的转发信息;
通过硬件流表和软件流表匹配到所述第二类型数据流的后续数据包对应的第二转发信息;
依据所述第一类型数据流的数据首包对应的转发信息、所述第一类型数据流的后续数据包对应的第一转发信息、所述第二类型数据流的数据首包对应的转发信息、所述第二类型数据流的后续数据包对应的第二转发信息,完成所述混合流的转发。
9.如权利要求1所述的混合流转发方法,其特征在于,所述混合流为软件定义网络数据流。
10.一种混合流转发装置,其特征在于,所述装置包括如下组成部分:
流划分模块,用于将所占用的容量大于设定值的数据流标记为第一类型数据流,将所占用的容量小于设定值的数据流标记为第二类型数据流,所述第一类型数据流和所述第二类型数据流构成了混合流;
规则生成模块,用于生成与所述第一类型数据流所对应的标签规则;
第一匹配模块,用于通过所述标签规则在标签表中匹配到所述第一类型数据流的转发信息,记为第一转发信息,所述第一转发信息用于转发所述第一类型数据流;
第二匹配模块,用于通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流;
转发模块,用于通过所述第一转发信息和所述第二转发信息,完成所述混合流的转发;
所述生成与所述第一类型数据流所对应的标签规则,包括:
依据所述第一类型数据流所对应的数据首包,得到所述第一类型数据流所对应的匹配域,所述匹配域为所述第一类型数据流自身携带的用于与所述标签表匹配的信息;
获取保存在硬件流表上的匹配设定域;
对所述匹配域和所述匹配设定域,应用无依赖规则生成算法,得到所述第一类型数据流所对应的标签规则;
将所述第一类型数据流所对应的标签规则保存至所述硬件流表上;
所述通过所述标签表匹配到所述第二类型数据流的转发信息,记为第二转发信息,所述第二转发信息用于转发所述第二类型数据流,包括:
依据所述第二类型数据流,得到所述第二类型数据流所包含的位于所述数据首包之后的后续数据包;
当位于所述硬件流表上的所述标签表与所述后续数据包所携带的所述匹配域相适配时,从所述标签表得到所述后续数据包的转发信息。
11.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的混合流转发程序,所述处理器执行所述混合流转发程序时,实现如权利要求1-9任一项所述的混合流转发方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有混合流转发程序,所述混合流转发程序被处理器执行时,实现如权利要求1-9任一项所述的混合流转发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210466572.3A CN114900475B (zh) | 2022-04-29 | 2022-04-29 | 一种混合流转发方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210466572.3A CN114900475B (zh) | 2022-04-29 | 2022-04-29 | 一种混合流转发方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114900475A CN114900475A (zh) | 2022-08-12 |
CN114900475B true CN114900475B (zh) | 2023-07-14 |
Family
ID=82720191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210466572.3A Active CN114900475B (zh) | 2022-04-29 | 2022-04-29 | 一种混合流转发方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114900475B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108011823A (zh) * | 2016-11-01 | 2018-05-08 | 中兴通讯股份有限公司 | 多域流表的多级化方法及装置、多级流表查找方法及装置 |
CN112751781A (zh) * | 2019-10-31 | 2021-05-04 | 阿里巴巴集团控股有限公司 | 流量数据的处理方法、装置、设备及计算机存储介质 |
CN113438168A (zh) * | 2021-05-21 | 2021-09-24 | 清华大学 | 软硬件混合流表管理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8619587B2 (en) * | 2010-01-05 | 2013-12-31 | Futurewei Technologies, Inc. | System and method to support enhanced equal cost multi-path and link aggregation group |
-
2022
- 2022-04-29 CN CN202210466572.3A patent/CN114900475B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108011823A (zh) * | 2016-11-01 | 2018-05-08 | 中兴通讯股份有限公司 | 多域流表的多级化方法及装置、多级流表查找方法及装置 |
CN112751781A (zh) * | 2019-10-31 | 2021-05-04 | 阿里巴巴集团控股有限公司 | 流量数据的处理方法、装置、设备及计算机存储介质 |
CN113438168A (zh) * | 2021-05-21 | 2021-09-24 | 清华大学 | 软硬件混合流表管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114900475A (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210367887A1 (en) | Flow classification apparatus, methods, and systems | |
US8638793B1 (en) | Enhanced parsing and classification in a packet processor | |
EP2552059B1 (en) | Packet transfer system, control apparatus, transfer apparatus, method of creating processing rules, and program | |
US20150131666A1 (en) | Apparatus and method for transmitting packet | |
US10313240B2 (en) | Technologies for efficient network flow classification with vector bloom filters | |
US20170019312A1 (en) | Network analysis and management system | |
US10944675B1 (en) | TCAM with multi region lookups and a single logical lookup | |
US11362948B2 (en) | Exact match and ternary content addressable memory (TCAM) hybrid lookup for network device | |
CN105591914B (zh) | 一种openflow流表的查表方法和装置 | |
WO2017215378A1 (zh) | 软件定义网络、节点、路径计算方法、装置及存储介质 | |
WO2021104393A1 (zh) | 多规则流分类的实现方法、设备和存储介质 | |
US10084613B2 (en) | Self adapting driver for controlling datapath hardware elements | |
CN108270677A (zh) | 一种快速路由收敛方法及装置 | |
CN114900475B (zh) | 一种混合流转发方法、装置、设备及存储介质 | |
US20050262294A1 (en) | Method for policy matching using a hybrid TCAM and memory-based scheme | |
JP5961745B2 (ja) | 通信装置またはパケット転送方法 | |
Lo et al. | Flow entry conflict detection scheme for software-defined network | |
CN114884879B (zh) | 一种基于标签技术的软件定义网络混合交换方法 | |
FI124398B (en) | A method and apparatus for determining a lookup table implementation for a network element of a software configurable network | |
CN109361658A (zh) | 基于工控行业的异常流量信息存储方法、装置及电子设备 | |
US9641437B2 (en) | Packet relay device and packet relay method | |
US11436047B2 (en) | System and method for processing information hierarchy management | |
Liu et al. | Removing redundancy from packet classifiers | |
JP5144225B2 (ja) | 情報検索装置、及び情報検索装置へのエントリ情報の登録方法 | |
CN107832393B (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 |