CN110535773B - 一种多重虚拟流表的实现方法及系统 - Google Patents

一种多重虚拟流表的实现方法及系统 Download PDF

Info

Publication number
CN110535773B
CN110535773B CN201910838996.6A CN201910838996A CN110535773B CN 110535773 B CN110535773 B CN 110535773B CN 201910838996 A CN201910838996 A CN 201910838996A CN 110535773 B CN110535773 B CN 110535773B
Authority
CN
China
Prior art keywords
flow table
flow
physical
entry
machine learning
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
Application number
CN201910838996.6A
Other languages
English (en)
Other versions
CN110535773A (zh
Inventor
戴锦友
余少华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN201910838996.6A priority Critical patent/CN110535773B/zh
Publication of CN110535773A publication Critical patent/CN110535773A/zh
Application granted granted Critical
Publication of CN110535773B publication Critical patent/CN110535773B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种多重虚拟流表的实现方法及系统,涉及人工智能和网络领域,方法包括如下步骤:在网络转发设备上建立物理流表和多重虚拟流表,所述物理流表为第一重流表,在控制器上建立最大重虚拟流表,且前一重流表是后一重流表的优选子集;通过独立设置的机器学习系统根据网络转发设备的资源情况、流量和时间进行机器学习,输出相邻两个流表表项的映射,控制器据此实时调整每一重流表的表项,使物理流表为最优选子集,网络转发设备通过所述物理流表进行转发数据。本发明在不增加物理流表容量的前提下,提高网络设备的流量转发性能。

Description

一种多重虚拟流表的实现方法及系统
技术领域
本发明涉及人工智能和网络领域,具体来讲涉及一种多重虚拟流表的实现方法及系统。
背景技术
互联网目前已成为世界上覆盖范围最广、规模最大、拥有信息和知识海洋的全球基础设置。同时,互联网也已成为人们无法离开的强有力的信息获取工具,在人们的工作和生活中扮演着极其重要的角色。另一方面,互联网在发展过程中也存在很多问题,面临各种挑战。其体系架构复杂度高、可扩展性差、对硬件设备依赖性强、虚拟化能力弱等等问题与应用对网络的高效、智能、开放、灵活、低成本的矛盾日渐尖锐,难以调和。
软件定义网络(Software Defined Networking,SDN)为互联网存在的上述问题带来了解决契机。它正好是针对现有包括互联网的各种网络体系架构上的不足而生,基于软件定义的网络能够满足未来应用对网络的各种需求。
SDN作为一种新的网络尚未处于成熟阶段。它不仅有很多问题尚待解决, 同时也需要采纳各种灵巧的方法和有效的措施完善自身。
控制和转发分离是SDN的基本属性。而从网络设备的角度来说,控制器和网络转发设备是SDN网络的基本组成成分,由于集中控制的特点,控制器与网络转发设备是一对多的关系,一台控制器可能控制成千上万的网络转发设备。由于网络转发设备的数量巨大,其设计成本是必须考量的重要因素。
对于网络转发设备来说,流表是基本也是核心的组件,网络数据的转发围绕着流表来实现。所谓流表,其实就相当于传统意义上的转发信息表(Forward InformationdataBase ,FIB)。当网络流量进入到网络转发设备时,网络转发设备就查找到与该流量相应的流表,然后根据流表中的信息将网络流量转发出去。
通常物理流表基于三态内容寻址存储器(Ternary Content AddressableMemory,TCAM)来实现,而TCAM是很昂贵的器件。前面已说明网络转发设备的设计成本是一个重要的指标。这就导致了一个难以调和的矛盾:一方面,流表容量扩大意味着成本的显著增长,因此,物理流表容量是难以扩大的。另一方面,随着网络规模日趋庞大、网络应用越来越细分、网络流量越来越多样化,网络对大容量流表的需求则越来越大。
综上所述,SDN网络中物理流表是网络转发设备的核心组件,而实现物理流表的成本很高,物理流表容量难以持续扩大,而网络规模大、应用划分细、流量多样化则要求网络转发设备具有更高的物理流表容量,从而满足更高的网络流量转发需求。
流表容量和网络转发设备成本之间的矛盾日趋显著,但通过增加TCAM器件来增大物理流表表项的办法实际不可行。需要借助于其它技术和方法来解决上述问题。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种多重虚拟流表的实现方法及系统,在不增加物理流表容量的前提下,提高网络设备的流量转发性能。
为达到以上目的,一方面,采取一种多重虚拟流表的实现方法,包括如下步骤:
在网络转发设备上建立物理流表和多重虚拟流表,所述物理流表为第一重流表,在控制器上建立最大重虚拟流表,且前一重流表是后一重流表的优选子集;
通过独立设置的机器学习系统根据网络转发设备的资源情况、流量和时间进行机器学习,输出相邻两个流表表项的映射,控制器据此实时调整每一重流表的表项,使物理流表为最优选子集,网络转发设备通过所述物理流表进行转发数据。
优选的,所述最大重虚拟流表存储所有历史流表表项;当历史流表表项的大小等于或小于物理流表容量,物理流表内包括所有历史流表表项。
优选的,所述机器学习的过程包括:控制器定义机器学习系统的学习规则并输入训练数据,所述训练数据包括流表表项的优选分数,优选分数越高,流表表项的优选程度越高;所述机器学习系统根据训练数据进行自我训练。
优选的,网络转发设备通过物理流表进行数据转发包括:转发设备接收数据包并判断物理流表中是否有匹配表项,如果是,按照该匹配表项规定的操作转发;
如果否,网络转发设备的CPU采用数据包从第一重虚拟流表开始由小到大依次去匹配网络设备上的虚拟流表,如果匹配上,则按照匹配到的流表表项转发该数据包;如果没有匹配上,则提交控制器,
控制器基于最大重虚拟流表匹配,如匹配上,则按照匹配的表项转发该数据包,如果最大重虚拟流表没有匹配上,则依据该数据包在最大重虚拟流表上建立新的表项,并按照该表项转发所述数据包。
优选的,如果一个网络数据包在同一个流表中有多个匹配表项时,根据机器学习系统分析确定多个匹配表项的优先级,选择优先级最高的表项转发;确定优先级包括:从左到右匹配的比特数越多的表项,优先级越高;或者,将流表中各字段赋予不同的优先级,匹配到字段的优先级越高,对应表项的优先级越高。
优选的,机器学习系统模拟进行网络转发设备的流表表项转发,通过模拟结果进行机器学习。
本发明还采取一种多重虚拟流表的实现系统,包括:
网络转发设备,其具有物理流表和多重虚拟流表,所述物理流表为第一重流表,网络转发设备用于通过物理流表进行数据转发;
控制器,其具有最大重虚拟流表,且所有流表中,前一重流表是后一重流表的优选子集;控制器用于根据机器学习系统的输出实时调整每一重流表的表项,使物理流表为最优选子集;
机器学习系统,其设置于独立的设备上,通过控制器接收网络转发设备的资源情况、流量和时间,并据此进行机器学习,输出相邻两重流表表项的映射。
优选的,所述最大重虚拟流表存储所有历史流表表项;当历史流表表项的大小等于或小于物理流表容量,物理流表内包括所有历史流表表项。
优选的,所述机器学习系统接收控制器输入的学习规则和训练数据;所述训练数据包括流表表项的资源情况、流量和时间,还包括流表表项的优选分数,优选分数越高,流表表项的优选程度越高;所述机器学习系统根据训练数据进行自我训练。
优选的,所述网络转发设备通过物理流表进行数据转发时,转发设备接收数据包并判断物理流表中是否有匹配表项,如果是,按照该匹配表项规定的操作转发;
如果否,网络转发设备的CPU采用数据包从第一重虚拟流表开始由小到大依次去匹配网络设备上的虚拟流表,如果匹配上,则按照匹配到的流表表项转发该数据包;如果没有匹配上,则提交控制器,
控制器基于最大重虚拟流表匹配,如匹配上,则按照匹配的表项转发该数据包,如果最大重虚拟流表没有匹配上,则依据该数据包在最大重虚拟流表上建立新的表项,并按照该表项转发所述数据包。
上述技术方案中的一个具有如下有益效果:
本发明建立物理流表和多重虚拟流表,物理流表为第一重流表,在控制器上建立最大重虚拟流表,形成流表序列:物理流表、第一重虚拟流表、第二重虚拟流表…最大重虚拟流表,并且前一重流表是后一重流表的优选子集,通过独立的机器学习系统实时调整每一重流表的表项,使物理流表为最优选子集,网络转发设备通过物理流表进行数据转发,由此在不增加物流表容量的前提下,利用机器学习系统,基于历史流表表项的数据管理多重虚拟流表,使得物理流表总是存储最优的流表表项,物理流表没有对应表项时查找虚拟流表,相当于扩充了物理流表的容量,使网络转发设备的流量转发性能提升。
附图说明
图1为本发明实施例多重虚拟流表的实现方法示意图;
图2为本发明实施例多重虚拟流表示意图;
图3为本发明实施例Openflow 1.3 流表部分匹配字段示意图;
图4为本发明实施例物理流表结构示意图;
图5为本发明实施例最大重虚拟流表示意图;
图6为本发明实施例独立设置的机器学习系统进行机器学习的流程图;
图7为本发明实施例规则格式示意图;
图8为本发明实施例规则中流表描述示意图;
图9为本发明实施例输入数据格式示意图;
图10为本发明实施例多重虚拟流表的实现系统示意图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
如图1所示,本实施例中提供一种多重虚拟流表的实现方法,具体包括如下步骤:
S1.在网络转发设备上建立物理流表和多重虚拟流表,物理流表为第一重流表,在控制器上建立最大重虚拟流表,形成流表序列:物理流表、第一重虚拟流表、第二重虚拟流表……最大重虚拟流表,并且,前一重流表是后一重流表的优选子集。
S2.通过独立设置的机器学习系统,根据网络转发设备的资源情况、流量和时间进行机器学习,输出相邻两个流表表项的映射,控制器据此实时调整每一重流表的表项,使物理流表为最优选子集。
S3.网络转发设备通过物理流表进行转发数据。
上述步骤S1中,网络转发设备建立的物理流表以TCAM(ternary contentaddressable memory,三态内容寻址存储器)实现。本实施例中利用其它存储器,如RAM(random access memory,随机存取存储器)、FLASH(闪存)和磁盘等,建立一重以上虚拟流表,物理流表和所有虚拟流表结合成为多重流表群。最大重虚拟流表建立在控制器上,存储所有的历史流表表项,即曾经在网络上使用过的流表表项,包括当前还在使用的流表表项,还包括当前没在使用的流表表项。例如,物理流表是第一重流表,在RAM中的虚拟流表是第二重流表(也是第一重虚拟流表),在闪存里存储的虚拟流表是第三重流表(也是第二重虚拟流表),在磁盘中的虚拟流表是第四重流表(也是第三重虚拟流表,依次类推。
虚拟流表相对于物理流表而言,比物理流表有更大的流表容量。转发设备转发数据包并不基于虚拟流表来转发,但虚拟流表中的流表表项可以映射到物理流表中。多重虚拟流表是指有多个不同的虚拟流表的实现,并且相邻的两个虚拟流表可以相互映射。如第n重流表里的信息可以映射到第n-1重流表中,第一重虚拟流表信息可以映射到物理流表中。n重虚拟流表的容量是n-1重流表的2倍或以上。
如图2所示,为多重流表示意图,其中物理流表表项均可以在第一重虚拟流表中找到映射,如物理流表表项H1,在第一重虚拟流表到最大重流表中可以找到,物理流表表项H2,也可以在第一重虚拟流表中找到。而第一重虚拟流表的表项,均可以在第二重流表到最大重虚拟流表中找到,例如流表表项V1-1,可以在最大重虚拟流表中找到。
步骤S2中,在网络转发设备开始运行时,结合独立设置的机器学习系统和历史流表信息,对物理流表进行预配置,使得网络转发设备一启动就能具有良好的转发性能,而不是逐条重新学习流表表项。初始状态下,前一重流表是后一重流表的优选子集,物理流表存储着从所有的历史流表中选取的最优选子集,最优选子集指的是:能够使网络转发设备获得最优的转发性能的流表表项,转发性能吞吐量、目的地址找不到数据包占比、平均数据包转发时延等。
如果历史流表大小大于物理流表容量,则最优选子集小于历史流表大小,物理流表满。反之,如果历史流表大小小于或等于物理流表容量,则物理流表内容与历史流表相同。这种情况存在两种可能,一种是系统开始运行初期,积累的历史信息较少,随着时间的推移,积累的历史信息会越来越多,从而会改变这种状况。另一种可能是,系统本身转发的流量类型极少,物理流表容量已够用。这种情形不需要虚拟流表,这种情形极少发生。
基于上述实施例,如图3所示,提供一种OPENFLOW 1.3 定义的流表的部分匹配字段实施例,每条流表有多个字段,比如IP地址、MAC地址等等,当一个数据包进入网络转发设备时,网络转发设备的转发引擎(如CPU、网络处理器、ASIC等),会将数据包中的头部与流表中表项的字段进行匹配,流表表项中全部活跃字段都匹配上,则流表表项就被该数据包匹配上。通常,一个流表表项不会用到全部字段,没有用到的字段通过设置掩码屏蔽不用,用到的字段成为活跃字段。
如图4所示,本实施例中物理流表结构主要包含匹配字段、操作字段、以及计数器。匹配字段包含一个或多个(如字段1、字段2……字段n),操作字段是指网络数据匹配流表表项后的转发行为,可以是一个或多个,每个操作用一个或多个比特标识。计数器则是用来统计与匹配上该流表表项的网络流量的数量,包括转发的数据包数、字节数、平均转发时延、累积转发时延等等。实际实现时,数据包数、字节数这两个计数器是必须的,其它计数器是可选支持的。这些计数器记录该流表表项从使能开始的数据包转发情况。
如图5所示,为最大重虚拟流表的结构示意图,最大重虚拟流表除了包含物理流表中所有字段,并增加了历史累计计数器和优选分数两个部分。历史累积计数器的功能是记录该流表表项从写入最大重虚拟流表开始到当前的所有累积计数的数量,是中长期信息。优选分数则是该流表表项根据各项指标的历史情况得到的评价分数,如转发数据包优选分数、转发数据字节优选分数、以及平均时延优选分数等等,可以只采用某一项参数对应的优选分数,也可以对各项参数的优选分数加权计算,得到的结果作为该流表表项的优选分数,流表表项的优选分数越大,表示优选程度越高。
如图6所示,提供一种独立设置的机器学习系统进行机器学习的实施例,具体包括步骤:
S201.控制器通过与机器学习系统之间的接口,向机器学习系统提交SDN(Software Defined Network,软件定义网络)拓扑信息。
S202.机器学习系统存储SDN拓扑。
S203.控制器通过与机器学习系统之间的接口定义机器学习的规则,机器学习系统更新内部设置的规则库。如图7所示,为上述规则的格式示意图,描述的是控制器和机器学习系统之间数据交换双方都能理解的一个规则,包括数据起始标志、数据长度、流表信息、决策起始标志、以及决策长度等。机器学习系统的输入是流表信息,如转发设备的资源状况、转发设备流量状况和时间;机器学习系统的输出是决策,决策为第n+1重流表表项向第n重流表表项的映射信息,目标是把第n+1重流表中优选的流表表项写入第n重流表中,终极目标是哪些流表表项实时写入物理流表中。每条决策包括源流表表项编号和目的流表表项编号。
如图8所示,是图7规则中流表信息的描述示意图,其包括流表容量长度和流表容量大小、每个匹配字段编号和对应匹配字段长度、流表信息还包括操作和操作长度、每个计数器编号和计数器长度,计数器长度是指16比特、32比特或64比特。
S204.控制器通过与机器学习系统之间的接口输入训练数据,训练数据含有最大优选分数的流表表项。优选分数G由流表表项针对需要考虑的性能参数得到,性能参数包括基于该流表表项转发的数据包数p、转发的字节数b、转发数据包平均时延d、转发数据包时延抖动j、丢包率l等等,由上述性能参数对应的优选分数加权计算得到。实际实现时,有可能考虑所有性能参数,也可能只考虑某一项性能参数,不考虑的性能参数对应的权重为0。计算公式如下:
G=Gp*wp+ Gb*wb+…
上式中G*和w*分别是对应某一项性能参数的优选分数和权重,所有权重之和为1。
对应类似转发数据包和转发字节的正性能参数的优选分数的计算为本值(对应某流表表项的值)/最大值(所有流表表项的最大值)*100。
对应类似时延、时延抖动、丢包率等负性能参数的优选分数的计算为100-本值(对应某流表表项的值)/最大值(所有流表表项的最大值)*100。
优选分数可以只用某一项优选分数,也可以对各项优选分数加权计算,得到的分数作为该流表表项的优选分数。例如,如果只用转发数据包优选分数,那么它的权重为100%,其它的权重为0。某流表表项的转发数据包优选分数Gp计算公式为:
Gp = 该流表表项转发的历史数据包总数/所有流表表项中转发的最大历史数据包总数*100。
S205.机器学习系统通过自我训练生成训练数据,并更新内部设置的知识库。
S206.控制器通过与机器学习系统之间的接口输入待识别的数据数据。如图9所示,输入数据格式包括待识别流表个数和待识别数据长度,还包括各源流表和目的流表。
S207.机器学习系统将待识别数据作为输入,得到对应的决策信息提交给控制器。另外,机器学习系统也可以周期性的、主动的将流表的决策信息提交给控制器。
S208.控制器根据决策信息修改对应的流表。
本发明还提供一种更为优选的独立设置的机器学习系统进行机器学习的实施例,基于上述实施例的步骤,独立设置的机器学习系统还包括一个SDN模拟器,用来根据SDN拓扑模拟网络转发设备的流表表项转发,通过不断地模拟进行自我学习,生成训练数据,得到知识并更新知识库。
基于上述实施例,提供一种网络转发设备通过物理流表进行数据转发的实施例。转发设备接收数据包后,判断物理流表中是否有该数据包的匹配表项,并根据判断结果进行转发,具体包括以下几种情况:
1、物理流表中有该数据包的匹配表项,则按照这个匹配表项中福鼎的操作进行转发。当数据包可以匹配物理流表上的多个表项时,机器学习系统会判断这些流表表项的优先级,选取最高优先级的表项规定的操作转发。其中,确定优先级的方法包括两种长匹配优先和匹配优先级高字段的优先。
具体的,长匹配优先就是说,从左到右,匹配的比特数越多的表项,优先级越高。例如,目的IP 为 10.19.10.12的数据流,在流表表项中有两个表项分别是目的IP为10.19.10.12/32(匹配32位)和10.19.10.0/24(匹配24位),则该数据流能同时匹配上这两个表项,那么前者优先级更高。
匹配优先级高字段的优先,是将流表中各字段赋予一个不同的优先级(由网络设备系统确定),匹配越高优先级字段的表项优先级越高。例如,目的IP地址优选分数为255,源IP地址优选分数为250,一个数据包同时匹配上两个流表表项,前者匹配的是目的IP地址,后者匹配的是源IP地址,则前者具有更高的优先级。
2、物理流表中没有该数据包的匹配表项时,该数据包发送给网络转发设备上的CPU,CPU依次用该数据包去匹配转发设备上的第一重虚拟流表、第二重虚拟流表……。只要某一重虚拟流表匹配上,就不再匹配下一重虚拟流表。匹配上某虚拟流表上某表项,CPU按照该表项规定的操作转发该数据包。
3、物理流表中没有该数据包的匹配表项,网络转发设备上的CPU也没有匹配到任何一个虚拟流表表项,将该数据包发送给控制器,控制器通过该数据包去匹配最大重虚拟流表,如匹配上,则控制器通过转发设备上的CPU按照该表项规定的操作转发该数据包。如匹配不上,控制器将为该数据包在最大重流表上建立一个表项,并按照该表项通过转发设备上的CPU转发该数据包。
本发明还提供一种多重虚拟流表的实现系统,可以用来实现上述各实施例,多重虚拟流表的实现系统包括网络转发设备、控制器和机器学习系统,控制器和网络转发设备设置于SDN系统中。
网络转发设备可以有多台,具有物理流表和多重虚拟流表,物理流表为第一重流表,网络转发设备用于通过物理流表进行数据转发。网络转发设备上也可以只有一种虚拟流表。
控制器具有最大重虚拟流表,在所有流表中,前一重流表是后一重流表的优选子集。控制器对应一台或多台网络转发设备,控制器用于根据机器学习系统的输出实时调整每一重流表的表项,使物理流表为最优选子集。
机器学习系统设置于独立的设备上,和控制器直接通信,是一对一的关系,机器学习系统可以接受网络转发设备或控制器设定的机器学习规则和训练数据,从而形成自己的知识库。该机器学习系统基于自己的知识库,能够对所有流表表项进行评估、判定。机器学习系统通过控制器接收网络转发设备的资源情况、流量和时间,并据此进行机器学习,输出相邻两重流表表项的映射。其中,机器学习系统接收控制器输入的学习规则和训练数据,训练数据包括流表表项的资源情况、流量和时间,还包括流表表项的优选分数,优选分数越高,流表表项的优选程度越高;所述机器学习系统根据训练数据进行自我训练。
优选的,机器学习系统还可以包括一个SDN模拟器,用于模拟网络转发设备的流表表项转发,通过不断地模拟进行自我学习,生成训练数据,得到知识并更新知识库。在没有SDN模拟器的情况下,所有样本数据都来自于控制器,样本数据相对较小。
具体的,最大重虚拟流表存储所有历史流表表项,当历史流表表项的大小等于或小于物理流表容量,物理流表内包括所有历史流表表项。网络转发设备通过物理流表进行数据转发时,转发设备接收数据包并判断物理流表中是否有匹配表项,如果是,按照该匹配表项规定的操作转发。如果否,网络转发设备的CPU采用数据包由小到大依次去匹配虚拟流表,并按照匹配到的流表表项转发该数据包;如果虚拟流表没有匹配表项,则依据该数据包在最大重虚拟流表上建立新的表项,并按照该表项转发所述数据包。
本发明通过建立多重虚拟流表,利用独立设置的机器学习系统,基于历史流表表项的数据管理多重虚拟流表,使得物理流表总是存储最优选的流表表项,对提高现有网络转发设备的转发性能无疑有很大的帮助。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (8)

1.一种多重虚拟流表的实现方法,其特征在于,包括如下步骤:
在网络转发设备上建立物理流表和多重虚拟流表,所述物理流表为第一重流表,在控制器上建立最大重虚拟流表,且前一重流表是后一重流表的优选子集;所述最大重虚拟流表存储所有历史流表表项;
通过独立设置的机器学习系统根据网络转发设备的资源情况、流量和时间进行机器学习,输出相邻两个流表表项的映射,控制器据此实时调整每一重流表的表项,使物理流表为最优选子集,网络转发设备通过所述物理流表进行转发数据;
控制器定义机器学习系统的学习规则并输入训练数据,所述训练数据包括流表表项的优选分数,优选分数则是该流表表项根据各项指标的历史情况得到的评价分数,优选分数越高,流表表项的优选程度越高;所述机器学习系统根据训练数据进行自我训练。
2.如权利要求1所述的多重虚拟流表的实现方法,其特征在于:当历史流表表项的大小等于或小于物理流表容量,物理流表内包括所有历史流表表项。
3.如权利要求1所述的多重虚拟流表的实现方法,其特征在于,网络转发设备通过物理流表进行数据转发包括:转发设备接收数据包并判断物理流表中是否有匹配表项,
如果是,按照该匹配表项规定的操作转发;
如果否,网络转发设备的CPU采用数据包从第一重虚拟流表开始由小到大依次去匹配网络设备上的虚拟流表,如果匹配上,则按照匹配到的流表表项转发该数据包;如果没有匹配上,则提交控制器,
控制器基于最大重虚拟流表匹配,如匹配上,则按照匹配的表项转发该数据包,如果最大重虚拟流表没有匹配上,则依据该数据包在最大重虚拟流表上建立新的表项,并按照该表项转发所述数据包。
4.如权利要求3所述的多重虚拟流表的实现方法,其特征在于,如果一个网络数据包在同一个流表中有多个匹配表项时,根据机器学习系统分析确定多个匹配表项的优先级,选择优先级最高的表项转发;
确定优先级包括:从左到右匹配的比特数越多的表项,优先级越高;或者,将流表中各字段赋予不同的优先级,匹配到字段的优先级越高,对应表项的优先级越高。
5.如权利要求3所述的多重虚拟流表的实现方法,其特征在于:机器学习系统模拟进行网络转发设备的流表表项转发,通过模拟结果进行机器学习。
6.一种多重虚拟流表的实现系统,其特征在于,包括:
网络转发设备,其具有物理流表和多重虚拟流表,所述物理流表为第一重流表,网络转发设备用于通过物理流表进行数据转发;
控制器,其具有最大重虚拟流表,且所有流表中,前一重流表是后一重流表的优选子集;控制器用于根据机器学习系统的输出实时调整每一重流表的表项,使物理流表为最优选子集;所述最大重虚拟流表存储所有历史流表表项;
机器学习系统,其设置于独立的设备上,通过控制器接收网络转发设备的资源情况、流量和时间,并据此进行机器学习,输出相邻两重流表表项的映射;
所述机器学习系统接收控制器输入的学习规则和训练数据;
所述训练数据包括流表表项的资源情况、流量和时间,还包括流表表项的优选分数,优选分数则是该流表表项根据各项指标的历史情况得到的评价分数,优选分数越高,流表表项的优选程度越高;所述机器学习系统根据训练数据进行自我训练。
7.如权利要求6所述的多重虚拟流表的实现系统,其特征在于:当历史流表表项的大小等于或小于物理流表容量,物理流表内包括所有历史流表表项。
8.如权利要求6所述的多重虚拟流表的实现系统,其特征在于,所述网络转发设备通过物理流表进行数据转发时,转发设备接收数据包并判断物理流表中是否有匹配表项,
如果是,按照该匹配表项规定的操作转发;
如果否,网络转发设备的CPU采用数据包从第一重虚拟流表开始由小到大依次去匹配网络设备上的虚拟流表,如果匹配上,则按照匹配到的流表表项转发该数据包;如果没有匹配上,则提交控制器,
控制器基于最大重虚拟流表匹配,如匹配上,则按照匹配的表项转发该数据包,如果最大重虚拟流表没有匹配上,则依据该数据包在最大重虚拟流表上建立新的表项,并按照该表项转发所述数据包。
CN201910838996.6A 2019-09-05 2019-09-05 一种多重虚拟流表的实现方法及系统 Active CN110535773B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910838996.6A CN110535773B (zh) 2019-09-05 2019-09-05 一种多重虚拟流表的实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910838996.6A CN110535773B (zh) 2019-09-05 2019-09-05 一种多重虚拟流表的实现方法及系统

Publications (2)

Publication Number Publication Date
CN110535773A CN110535773A (zh) 2019-12-03
CN110535773B true CN110535773B (zh) 2022-02-01

Family

ID=68667148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910838996.6A Active CN110535773B (zh) 2019-09-05 2019-09-05 一种多重虚拟流表的实现方法及系统

Country Status (1)

Country Link
CN (1) CN110535773B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114374648B (zh) * 2020-10-14 2024-03-19 芯启源(南京)半导体科技有限公司 一种np芯片结合tcam实现智能网卡的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103281246A (zh) * 2013-05-20 2013-09-04 华为技术有限公司 报文处理方法及网络设备
CN104811384A (zh) * 2015-05-04 2015-07-29 山东超越数控电子有限公司 一种多级流表优先级调整方法
CN109447276A (zh) * 2018-09-17 2019-03-08 烽火通信科技股份有限公司 一种机器学习方法、系统、设备及应用方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10469320B2 (en) * 2016-04-29 2019-11-05 Deutsche Telekom Ag Versioning system for network states in a software-defined network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103281246A (zh) * 2013-05-20 2013-09-04 华为技术有限公司 报文处理方法及网络设备
CN104811384A (zh) * 2015-05-04 2015-07-29 山东超越数控电子有限公司 一种多级流表优先级调整方法
CN109447276A (zh) * 2018-09-17 2019-03-08 烽火通信科技股份有限公司 一种机器学习方法、系统、设备及应用方法

Also Published As

Publication number Publication date
CN110535773A (zh) 2019-12-03

Similar Documents

Publication Publication Date Title
US9065677B2 (en) Forwarding tables for hybrid communication networks
US10230639B1 (en) Enhanced prefix matching
US11483232B1 (en) Auto load balancing
EP1002402A1 (en) Trunking support in a high performance network device
CN104917678A (zh) 基于sdn的链路聚合方法
CN110891019A (zh) 一种基于负载均衡的数据中心流量调度方法
US11652744B1 (en) Multi-stage prefix matching enhancements
CN112350949A (zh) 软件定义网络中基于流调度的重路由拥塞控制方法及系统
CN110535773B (zh) 一种多重虚拟流表的实现方法及系统
Cheng et al. An in-switch rule caching and replacement algorithm in software defined networks
CN110191382B (zh) 一种基于路径排序的虚链路优先映射方法
CN110120892B (zh) 基于改进的萤火虫算法的sdn多控制器部署方法及系统
CN113986560B (zh) 一种在智能网卡/DPU内实现P4与OvS逻辑复用的方法
CN107977160B (zh) 交换机存取资料的方法
Abdel-Kader An improved discrete PSO with GA operators for efficient QoS-multicast routing
US9258254B2 (en) Virtual router and switch
CN107888494B (zh) 一种基于社区发现的包分类方法及系统
CN110380906B (zh) 一种大规模多维融合的虚拟网络映射方法
CN105207951B (zh) 一种广域网流量优化控制方法及装置
CN108075977B (zh) 网络系统控制方法及网络系统
CN110493068B (zh) 一种网络路由生成方法及系统
CN113259263B (zh) 一种深度报文检测集群中的数据包调度方法
CN110768906B (zh) 一种面向sdn网络基于q学习的节能路由方法
CN110868332B (zh) 一种基于sdn的网络级流量测量方法
CN107948091B (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