CN106165354B - 使用带宽预测的网络路径选择 - Google Patents
使用带宽预测的网络路径选择 Download PDFInfo
- Publication number
- CN106165354B CN106165354B CN201580019053.0A CN201580019053A CN106165354B CN 106165354 B CN106165354 B CN 106165354B CN 201580019053 A CN201580019053 A CN 201580019053A CN 106165354 B CN106165354 B CN 106165354B
- Authority
- CN
- China
- Prior art keywords
- path
- data stream
- determined
- new data
- determining
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/025—Updating only a limited number of routers, e.g. fish-eye update
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/645—Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/142—Network analysis or design using statistical or mathematical methods
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
在一个实施例中,系统通过用链路互连的多个转发设备从源向目的地路由新数据流。所述系统包括控制设备,所述控制设备接收针对新数据流而创建通过所述多个互连的转发设备的路径的请求,并确定新数据流的类型。数据流数据库存储具有已确定类型的数据流的历史使用情况特性。路径计算模块基于已确定类型的数据流的历史使用情况特性,确定从所述源通过多个互连的转发设备到目的地的请求路径。
Description
技术领域
本领域总体上涉及网络路由。
背景技术
通信网络可以例如提供允许在两个地形上遥远的位置之间转移数据的网络连接。网络连接可以跨越将通信设备(诸如,路由器)相连的多个链路。网络可以根据链路如何经由通信设备相互连接而具有不同拓扑。假设特定的网络拓扑,在源和目的地之间可以存在多个路由。根据当前容量和使用,一些路由可能比其他路由更受欢迎。
传统路由算法依赖于本地信息,每个路由器具有自己的相邻链路和设备以便路由数据。路由器在路由表中维持这种信息。此外,基于输入数据包的目的地地址,路由器使用它的路由表来将所述数据包转发到特定相邻设备。为了扩展路由表,每个路由器使用类似开放最短路径优先(OSPF)的协议来与本地相邻路由器交换路由的可达性信息。这样,每个路由器均转发数据包并执行控制功能,以便更新它自己的路由表。
尽管在一些环境下可能希望使用本地信息,然而这未必总能够有效地路由数据。为了更有效地路由数据,其他技术(称作软件定义网络(SDN))将控制和转发功能分隔给单独的设备。控制设备使用对网络拓扑的全局知识来针对单独的数据流确定通过转发设备的网络的路径。这样,控制设备可以例如通过所述网络确立使延迟最小化或使带宽最大化的路径。
发明内容
在一个实施例中,系统通过用链路互连的多个转发设备从源向目的地路由新数据流。所述系统包括控制设备,所述控制设备接收针对新数据流而创建通过所述多个互连的转发设备的路径的请求,并确定新数据流的类型。数据流数据库存储已确定类型的数据流的历史使用情况特性。路径计算模块基于已确定类型的数据流的历史使用情况特性,确定从所述源通过多个互连的转发设备到目的地的请求路径。此外,针对沿着所述路径的各转发设备,路由表模块(i)确定对使用所述转发设备的哪个端口来沿着所确定的路径对来自新数据流的数据进行路由加以指示的路由表;以及(ii)发送所确定的路由表以便将所述转发设备配置为沿着所述路径路由数据。
还公开了一种方法和计算机程序产品的实施例。
下面将参考附图详细描述本发明的其他实施例、特征和优点以及各种实施例的结构和操作。
附图说明
并入本文中并且形成说明书的一部分的附图示出了本公开,与描述一起进一步用于解释本公开的原理并使本领域技术人员能够利用和使用本文公开。
图1是示出了根据实施例的基于历史特性确定针对数据流的路径的通信网络的图。
图2是示出了根据实施例的如何沿着所确定的路径引导数据流的图。
图3是示出了收集与网络特性有关的数据的统计服务器的图。
图4A-B是示出了经由所述路径对数据进行路由的网络结构的图。
图5是更详细地示出了对快速路径的计算的图。
图6是示出了用于针对数据流根据历史特性确定路径并配置通过所述网络的路径的方法的流程图。
第一次出现要素的附图一般由对应附图标记中的最左侧数字来表示。在附图中,相似的附图标记表示相同或功能相似的要素。
具体实施方式
如上所述,软件定义网络(SDN)可以在进行路由决定时有利地考虑全局网络拓扑。如此,SDN能够观察对所述网络上的各种互相连接的链路的历史使用情况,以便针对特定数据流确定选择哪个路径。
本文所公开的实施例不仅考虑网络链路的历史使用情况,而且考虑相似数据流的历史特性。例如,实施例可以确定特定类型的数据流(诸如,例如HTTP(超文本转发协议)会话-salesforce.com)具有平均带宽和时长。实施例可以评估相对所收集的数据的平均带宽和可用性,其中所收集的数据描述沿着所述路径的链路类似流的过去带宽和可用性。
为了减少当将数据路由通过所述网络时所需的计算资源,实施例可以预先计算针对各种数据类型的网络路径。此外,实施例可以针对一天中的不同时间预先计算网络路径。当完成预先计算时,可以将数据路径存储在数据库中。接着,当接收到具有该数据类型的数据流时,实施例可以从数据库检索适合的网络路径。
图1是示出了根据实施例的基于历史特性来确定针对数据流的路径的通信网络100的图。通信网络100可以是局域网(LAN)、城域网(MAN)或广域网(WAN)。它可以使用任何点对点或多点对多点的网络协议。所使用的网络访问协议可以包括例如多协议标签交换(MPLS)、以太网、异步传输模式(ATM)、高级数据链路控制(HDLC)或数据包中继。
通信网络100包括多个转发设备,诸如,经由链路相互连接的转发设备102、104、106、108、110、112和114。例如,转发设备104和106经由链路130相连。转发设备是转发数据包的设备,包括数据链路层(开放系统互连层2)和网络层(开放系统互连层3)的设备。
链路130可以具有图表132所示的使用情况图案。使用情况图案可以经过特定周期(诸如,一星期)重复,从而反映出循环图案。可以将周期分为多个时间片,诸如,5分钟间隔。对于每个5分钟间隔,链路130可以具有平均使用率,换言之,所使用的平均带宽量。此外,作为必然结果,链路130还可以具有平均可用性,换言之,在所述线路上的平均可用带宽量。如图表132所示,在链路130两端使用的带宽在时间片134期间出现尖峰。
图1不仅示出了链路130两端使用的带宽在时间片134期间出现尖峰,图1还示出了由数据流120使用的带宽同样在时间片134期间出现尖峰。具体地,图1示出了正从转发设备102向转发设备108转移数据流120。数据可以是从特定的源计算设备或网络到特定的目的地计算设备或网络的数据流的形式。数据流120具有图表122所示的使用情况图案,图表122示出了数据流在时间片134期间出现尖峰。
基于针对链路130和数据流120的这种历史数据,通信网络100确定在网络不变得饱和及过载的前提下,链路130是否在时间片134期间没有足够的容量来转发数据流120。因此,通信网络100可以将数据流120重新引导到不同的路径,如图2所示。
图2是示出了根据实施例的在通信网络100中如何沿着所确定的路径重新引导数据流120的图。在这种示例中,通信网络100根据互相连接的链路的历史使用情况数据,确定针对数据流120的替换路径。替换路径避开了连接转发设备104和106的链接130。相反,从转发设备104围绕转发设备110和112向转发设备106传输数据流120。这样,实施例使用历史数据来预测数据流120可以如何影响在各个链路中的网络使用,并路由所述路径以便避免潜在的瓶颈。
将具体描述的其余内容分为四个部分。第一部分结合图3描述收集历史网络数据。第二部分结合图4A-B描述使用控制设备来确立通过所述网络的路径。第四部分结合图5详细描述计算路径。第五和最后部分结合图6描述用于根据针对数据流的历史特性来确定路径以及配置通过所述网络的路径的方法。
收集历史数据
图3示出了用于沿着路径收集统计值的系统300的图。系统300包括图1和2所示的通信网络100的转发设备。系统300还包括收集与网络特性有关的数据的统计服务器310。统计服务器310与历史使用率数据库302、路径数据库304和数据流数据库306相耦接,并包括历史使用率模块316、流统计模块314和路径计算模块312。依次地描述每个模块。
历史使用率模块316收集该网络的历史使用情况数据。具体地,历史使用率模块316可以收集网络的每个链路上使用的带宽量。更具体地,历史使用率模块316可以收集在时间周期的每个时间片期间该网络的每个链路上使用的带宽量。为了收集带宽数据,历史使用率模块316可以与各个网络转发设备进行通信,其中所述各网络转发设备监测链路使用率。
当收集使用率信息时,历史使用率模块316将所述信息存储在历史使用率数据库302中。随着经过多个时间周期,历史使用率模块316可以聚合针对每个切片的数据。例如,历史使用率模块316可以确定在该时间片期间每个链路两端的使用率的平均值或移动平均值。历史使用率模块316还可以确定在该时间片期间每个链路两端的使用率的方差。所述方差可以指示在平均使用率中的置信等级(例如,已知的统计方法,诸如第95个百分位),且通过使用已知的统计方法,在预测所述链路是否在将来具有可用性时可以使用所述方差。
除了收集链路使用情况的数据之外,统计服务器310还通过使用流统计模块314来收集数据流上的数据。与历史使用率模块316相似,流统计模块314可以与各个转发设备进行通信以便收集数据流上的数据。数据流可以被标识为具有特定类型的数据,所述类型可以被定义为具有特定的源互联网协议(IP)地址、源传输控制协议(TCP)或用户数据报协议(UDP)端口、目的地IP地址、目的地TCP端口或其任意组合的数据。例如,一个数据类型可以是被寻址到salesforce.com(具有特定目的地IP地址)的HTTP数据(具有目的地TCP端口80)。
流统计模块314收集用于描述属性与数据流的类型一致的数据。例如,流统计模块314可以收集与由特定数据流消耗的带宽量和特定数据流的长度有关的数据。例如,可以在所传输的数据的时长或总量上测量长度。一旦收集完成,流统计模块314就可以将所述属性存储在数据流数据库306中。与历史使用率模块316相似,当流统计模块314收集到所述数据时,它可以将其聚合。流统计模块314可以通过例如采用平均值或移动平均值,来聚合所述数据。具体地,流统计模块314可以确定针对每个类型的数据流的平均带宽量和平均长度。差别在于,除了平均值之外,流统计模块314还可以确定各种属性的方差。与历史使用率模块316相似,可以通过使用已知的统计技术,来在预测链路是否可以处理数据流时将所述方差用于确立置信度。可能并非需要收集全部的流:可以将流的统计采样用来聚合用于描述特定流的信息。
基于已确定类型的数据流的历史使用情况特性,路径计算模块312针对每个数据类型确定从所述源通过多个互连转发设备到目的地的路径。所述路径可以包括网络链路和转发设备。在一个实施例中,所述路径不包括控制设备。对于每个数据类型,路径计算模块312可以确定限定了如何在每个时间片期间将数据流发送通过所述网络的路径。此外,如上所述,数据类型可以被标识为具有特定的源和目的地的数据流,或可以被标识为仅具有特定源或特定目的地。在这种情况下,路径计算模块312不仅针对每个时间片计算路径,路径计算模块312还可以针对各个可能的源或目的地,计算可以发送或接收具有该类型的流的路径。下文结合图5提供关于路径计算模块312如何计算路径的更多详情。
除了历史使用情况之外,路径计算模块312还可以考虑在各路径上的延迟、抖动、数据包丢失或任何其他性能量度;用户的服务等级协定;或正转发的数据的类型。例如,广播视频数据可以需要大量带宽,而延迟可以相对不重要。另一方面,IP上的语音(VOIP)数据可能不需要这么多的带宽,但是延迟可能更为重要。对于广播视频数据,控制设备可以选择较高带宽、较高延迟性路径,且对于VOIP数据,控制设备可以选择较低带宽、较低延迟性路径。
此外,路径计算模块312可以将数据通过特定服务器进行路由。例如,具有特定类型或被引导到特定目的地的数据可能需要在路由中由特定擦洗(scrubbing)服务器擦洗。擦洗服务器可以用于扫描数据的有害内容、监测输入的数据或对该数据执行其他分析。在该实施例中,控制设备可以确定路径,使得路径经过特定的擦洗服务器或服务器组。
当路径计算模块312计算路径时,路径计算模块312将它们存储在路径数据库304中,其中将路径数据库304用于将数据路径经过图4A-B所示的网络。
针对新数据流确立快速路径
图4A-B是示出了使用控制设备440来在路径上路由数据的网络的配置的图。
图4A示出了从网络用户444发送至目的地服务器446的数据流的图400。数据流包括数据包402、404、406、408、410和412。当数据流-的第一数据包(数据包402)到达转发设备102时,该数据包被路由到控制设备440。控制设备440确定这种数据包属于新数据流并开始针对所述流确立快速路径的过程。
为了确定路径,控制设备440可以使用图3中的路径计算模块312来实时地计算路径。如以上针对图3所述并如下文针对图5所详述,计算可以考虑数据流类型历史上已经消耗的带宽量。备选地,控制设备440可以检索预先计算的路径。为了检索预先计算的路径,路径控制设备440包括路径选择模块442,其中当在控制设备440接收到新数据流时,路径选择模块442从路径数据库304检索所请求的路径。
如上所述,路径数据库304包括与各种类型相关联的路径。在实施例中,类型可以通过源和目的地IP地址或源和目的地端口来定义。例如,路径数据库304可以具有与从源端口444的IP地址到目的地446的IP地址的数据相关联的路径,其中目的地446具有TCP目的地端口80,指定HTTP流量。路径数据库304可以具有针对该类型的条目,从而指示路径。路径数据库304还可以具有针对该类型的多个条目,其中每个条目具有针对不同时间片的路径。在该实施例中,路径数据库304可以在与当前时间相对应的时间片处,针对数据流的类型来检索路径。
在确定快速路径之后,控制设备沿着所述路径更新针对每个转发设备的路由表,如图4B所示。
图4B示出了说明控制设备440如何配置网络转发设备以便在用户444和服务器446之间确立路径的图450。控制设备440包括设置由路径选择模块442选择的路径的路由模块452。
根据所选路径,路由表模块452确定针对沿着所述路径的各转发设备的路由表。具体地,针对各转发设备中的每一个,路由表模块452可以确定指示哪个端口路由来自数据流的数据的路由表。路由表对如何转发数据使得来自数据流的数据将沿着所述路径进行路由加以表示。在一个实施例中,更新后的路由表可以命令转发设备如何转发具有源/目的地地址以及源/目的地端口的特定组合的数据包。在备选实施例中,可以用标签来标识数据流,且更新后的路由表可以在还是如何转发具有该标签的数据包。
路由表模块453发送对应路由表,以便配置沿着所述路径的对应转发设备。在图4B中,控制设备102确定用户444和服务器446之间的数据流遵循包括转发设备106、108、112和110的路径。为了配置所述转发设备,控制设备102通过使用配置命令422、424、426和428来发送更新后的路由表。这些配置命令配置在连接用户444和目的地446的快速路径上的全部转发设备。具体地,命令422命令转发设备102将数据流中的数据包转发给转发设备104;命令424命令转发设备104将该数据包转发给转发设备110;命令426命令转发设备110将该数据包转发给转发设备112;命令428命令转发设备112将该数据包转发给转发设备106;命令430命令转发设备106将该数据包转发给转发设备108;以及命令428命令转发设备108将该数据包转发给目的地446。控制设备可以通过使用开放流(OpenFlow)、路径计算要素协议、或一些其他方法来对转发设备进行编程。
当接收到这些数据包时,控制设备102通过使用默认路径将它们路由到它们的目的地。这样,当正在确立通过所述网络的路径时,数据包可以继续被路由到它们的目的地,避免在边缘转发设备中缓冲初始数据包的需要。
当设置所述路径时(例如,转发设备配置有它们的新路由表),数据沿着由控制设备设置的快速路径流动。此时,由于数据无需经过控制设备,数据可以以较快速度流过转发设备和下端以便结束延迟。
计算路径
图5是详细示出计算快速路径的图500。图500示出了将客户网络502与目的地网络504相连的网络。客户网络502耦接到转发设备510,并且目的地504耦接到转发设备516。转发设备516和510通过转发网络512和514彼此相连。转发设备中的每一个具有由控制设备506确定的路由表。
各个转发设备通过链路相互连接。具体地,转发设备510与转发设备512和514分别通过链路520和524相连,且转发设备512和514分别通过链路522和526与转发设备516相连。
如上所述,针对所述链路中的每一个,收集历史使用情况数据。历史使用情况数据可以提供与在周期性时间周期(诸如,一星期)上对该链路的使用情况有关的信息。在图500中,图表530示出了链路500的历史使用情况信息;图表534示出了链路524的使用情况信息;图表532示出了链路522的使用情况信息;以及图表536示出了链路526的使用情况信息范围。
除了收集关于链路的使用情况信息,还收集描述数据流的信息。在图500中,客户网络502向目的地网络504转发数据流562。数据流562具有通过它的源IP地址、目的地IP地址、源端口、目的地端口或其任意组合限定的特定类型。收集描述数据流562的行为的收集,例如,它的时长和它所消耗的带宽。
基于所述时长,确定时段550并将时段550用于计算路径。时段550是特定时间周期的一部分,例如,包括多个时间片(例如,在一周的周期内的5分钟间隔)。在当输入数据时实时计算路径的实施例中,时段550可以从当前时间一直到结束该数据流的典型时长为止。例如,如果在星期一的5:25PM接收到数据流且该类型的数据流通常运行20分钟,则时段550可以从星期一的5:25PM开始一直到5:45PM为止。接着,可以将在该时间周期期间收集的历史使用情况数据用于计算路径。
在预先计算路径并只有当输入新的数据流时选择路径的实施例中,可以针对每个时间片确定不同的时段,且可以针对每个时段确定路径。例如,如果数据流通常运行20分钟,则可以将第一时段确定为星期天的12:00-12:20AM,且可以将第二时段确定为星期天的12:05-12:25AM等等。接着,针对时段中的每一个,计算路径。当输入新的数据流时,选择与接收到数据流的时间相对应的路径。在上述示例中,如果在星期天的12:00AM接收到数据流,则应选择第一时段的路径;如果在星期天的12:05AM接收到数据流,则应选择第二时段的路径;以及等等。
为了确定针对特定时段的路径,首先确定各候选路径,并评估和比较沿着这些备选路径的历史使用情况。在客户网络502和目的地网络504之间,存在两个候选路径。第一候选路径沿着链路520和522,且第二候选路径沿着链路524和526。
为了评估第一候选路径,针对链路520和522,确定在时段550期间的历史使用情况。如图表530和532所示,在时段550期间,链路520和522分别具有可用带宽量540和542。可用带宽可以是该链路在变得饱和之前可以处理的附加容量的量。它还可以考虑失效备援情境,在失效备援情境下,网络中的一个或更多个链路下行(诸如,网络中的其他链路响铃(ring)),链路520或522不得不承载它的正常流量和失效备援流量,否则失效备援流量将在下行链路上转发。将链路520和522的可用带宽与由数据流560一般消耗的带宽量进行比较。如果链路520和522二者针对数据流560具有足够的带宽,则可以选择第一候选路径。
还可以针对包括链路524和526的第二候选路径进行针对第一候选路径的相同评估。针对链路524和526,确定在时段550期间的历史使用情况。如图表534和536所示,在时段550期间,链路524和526分别具有可用带宽量544和546。将链路524和526的可用带宽与由数据流560一般消耗的带宽量进行比较。如果链路524和526二者针对数据流560具有足够的带宽,则可以选择第一候选路径。
在一个示例中,链路522的可用带宽542可能对于数据流560是不足的。在该示例中,可以选择第二候选路径。
如果两个路径均具有可用性,则可以使用其他因素来选择使用哪个路径。例如,可以使用具有最多可用性的路径。在另一示例中,可以对延迟进行近似,且可以选择具有最小延迟的路径。
方法
图6是示出了用于针对数据流根据历史特性确定路径以及配置通过所述网络的路径的方法600的流程图。在步骤602,控制设备接收到用于针对新数据流创建通过多个互连转发设备的路径的请求。该请求可以是数据流中的第一数据包的形式,或其他类型的请求。
在步骤604,可以确定新数据流类型。例如,可以基于源IP地址、目的地IP地址、源TCP端口或目的地TCP端口识别类型。
在步骤606,基于所述类型,确定数据流的历史使用情况特性。历史使用情况特性可以包括由先前转发的该类型的数据流使用的带宽量以及先前转发的该类型的数据流的长度。
在步骤608,基于数据流的历史使用情况特性,确定通过多个互连转发设备的路径。所述路径从所述源跨越到目的地。如上所述,可以当在步骤602接收到请求时计算路径,或可以预先计算路径且只有当在步骤602接收到请求时选择路径。
除了数据流的历史特性之外,还可以使用网络链路的历史使用情况信息。历史使用情况数据可以包括所述链路在在多个先前时间周期内的多个时间片处的使用率。具体地,时间周期可以表示周期性的时间间隔,所述周期性的时间间隔具有重复的使用率的模式。此外,时间片可以表示在周期性时间间隔中的子间隔。
为了通过使用时间片数据计算路径,必须确定新数据流将占据那些时间片。可以基于数据流的典型程度,来确定时间片。然后,可以评估将所述源和目的地相连的多个候选路径。对于候选路径中的每一个,针对新数据流将占据的时间片,确定沿着候选路径的链路的使用率。此外,基于所确定的沿着候选路径的链路的使用率,确定在所述时间片期间在所述路径上的可用带宽量。最后,将所确定的针对多个候选路径的可用带宽量与数据流所需的带宽进行比较。在步骤608,基于所述比较,针对新数据流来选择候选路径。
当确定路径时,在步骤610,确定路由表以便执行路径。对于沿着该路径的各转发设备,确定路由表。路由表指示转发设备的哪个端口用来沿着在步骤608确定的路径路由来自新数据流的数据。
最终,在步骤612,转发路由表以便将各转发设备配置为沿着所确定的路径转发数据。
结论
本文所使用的术语“用户”可以包括网络连接服务的客户,诸如,使用网络连接服务的公司的雇员,以及服务供应商自身的网络管理员。用户还可以位于不同公司或组织。
历史使用情况数据库302、路径数据库304和数据流数据库306可以是任何存储类型的结构化存储器,包括持久性存储器。在示例中,每个数据库可以实现为关系数据库、文件系统、文档商店或大数据商店。
图6中的设备和模块中的每一个可以实现为硬件、软件、固件或其任意组合。
图6中的设备和模块中的每一个可以实现在相同或不同的计算设备上。这种计算设备可以包括但不限于个人计算机、诸如移动电话的移动设备、工作站、嵌入式系统、游戏机、电视、机顶盒或任何其他计算设备。此外,计算设备可以包括但不限于用于执行并存储指令的具有处理器和存储器(包括非暂时性存储器)的设备。所述存储器可以有形地体现数据和程序指令。软件可以包括一个或更多个应用和操作系统。硬件可以包括但不限于处理器、存储器和图形用户界面显示器。计算设备还可以具有多个处理器和多个共享的或单独的存储组件。例如,计算设备可以是集群式或分布式计算环境或服务器群的一部分或整体。
诸如“(a)”、“(b)”、“(i)”和“(ii)”等的标识符有时被用于不同元件或步骤。为了清楚性使用这些标识符,且这些标识符并非指定所述元件或步骤的顺序。
以上在示出了具体功能及其关系的实现方案的功能构造框架的帮助下描述了本发明。为了描述方便,本文任意定义这些功能构造框架的边界。只要正确执行所详述的功能及其关系,还可以定义备选边界。
以上对具体实施例的描述将全面地揭示本发明的总体特性,本领域技术人员通过应用本领域的知识可以在不脱离本发明的总体构思的前提下,针对各种应用任意地修改和/或调整这种具体实施例而无需过度实验。因此,基于本文所呈现的构思和指导,这种调整和修改旨在所公开的实施例的等同物的含义和范围内。应理解,本文使用的措辞或属于是为了进行描述,而不是为了限制,因此本领域技术人员应根据所述教义和指导来理解本文使用的术语或措辞。
本发明的阔度和范围不限于上述任何示例实施例,而是应由以下权利要求及其等同物来定义。
Claims (11)
1.一种用于将新数据流从源通过包括多个转发设备的网络路由至目的地的计算机实现方法,其中所述多个转发设备通过链路互连,所述计算机实现方法包括:
(a)在控制设备接收用于针对新数据流创建通过多个互连转发设备的路径的请求;
(b)确定新数据流的类型,其中所述类型由所述新数据流的源和目的地的至少一个限定;
(c)基于所确定的类型,确定具有所确定类型的数据流的历史使用情况特性,所述特性包括先前发送的类型的数据流的持续时间以及先前发送的类型的数据流所使用的带宽量;
(d)基于先前发送的类型的数据流的持续时间、多个先前时间周期期间的先前时间片,来确定新数据流将占据哪些时间片,所述时间周期表示具有重复使用率的模式的周期性时间间隔,所述时间片表示所述周期性时间间隔中的子间隔;
(e)针对将所述源和目的地相连的多个候选路径,确定在(d)中所确定的时间片沿所述候选路径的链路的历史使用率;
(f)同样对于多个候选路径的每一个,基于所确定的沿着所述候选路径的链路的历史使用率,确定在(d)中确定的时间片期间在所述候选路径上的可用带宽量;
(g)将所确定的针对多个候选路径的可用带宽量与所确定的由先前发送的类型的数据流所用的带宽量进行比较,以便选择新数据流所需的路径,所需的路径是从所述源通过多个互连的转发设备至目的地;
(h)对于沿着所述路径的各个转发设备,确定路由表,所述路由表指示对转发设备的哪个端口用来沿着在(g)中确定的路径路由来自新数据流的数据;以及
(i)针对各个转发设备中的每一个,发送在(h)中确定的路由表以便配置所述转发设备。
2.根据权利要求1所述的方法,其中所述确定历史使用率(e)考虑下行的至少一个链路。
3.根据权利要求1或2所述的方法,其中确定(d)-(g)发生在(a)中的接收请求之前,并且还包括:
(j)将所确定的路径存储在预先计算的路径数据库中;以及
(k)当在(a)中接收到新数据流时,从预先计算的路径数据库中检索所请求的路径。
4.根据权利要求1所述的方法,其中所述确定(b)包括确定新数据流是否具有特定的目的地IP地址和TCP端口。
5.根据权利要求1所述的方法,其中所述确定(b)包括确定所述新数据流是否具有特定的源IP地址和TCP端口。
6.一种用于实际上将新数据流从源通过包括多个转发设备的网络路由至目的地的系统,其中所述多个转发设备通过链路互连,所述系统包括:
历史使用率模块,配置为收集所述网络的历史使用情况数据,所述历史使用情况数据包括所述链路多个先前时间周期期间的多个时间片的使用率,所述时间周期表示具有重复使用率的模式的周期性时间间隔,所述时间片表示所述周期性时间间隔中的子间隔;
控制设备,所述控制设备接收针对新数据流创建通过所述多个互连的转发设备的路径的请求,并且确定新数据流的类型,其中所述类型由所述新数据流的源和目的地的至少一个限定;
数据流数据库,所述数据流数据库存储具有所确定类型的数据流的历史使用情况特性,所述特性包括先前发送的类型的数据流的持续时间以及先前发送的类型的数据流所使用的带宽量;
路径计算模块,所述路径计算模块基于具有所确定类型的数据流的历史使用情况特性,确定从所述源通过多个互连转发设备至目的地的路径,其中所述路径计算模块配置为:
(i)针对将所述源和目的地相连的多个候选路径,基于先前发送的类型的数据流的持续时间,来确定新数据流将占据哪些时间片;
(ii)确定在(i)中所确定的时间片沿所述候选路径的链路的历史使用率;
(iii)基于所确定的沿着所述候选路径的链路的历史使用率,确定在(i)中确定的时间片期间在所述候选路径上的可用带宽量;
(iv)将所确定的针对多个候选路径的可用带宽量与所确定的由先前发送的类型的数据流所用的带宽量进行比较,以便选择新数据流所需的路径;
路由表模块,所述路由表模块针对沿着所述路径的各个转发设备:(i)确定路由表,其中所述路由表对所述转发设备的哪个端口用于沿着所确定的路径对来自新数据流的数据进行路由加以表示;以及(ii)发送所确定的路由表以便将转发设备配置为沿着所述路径路由数据。
7.根据权利要求6所述的系统,其中所述路径计算模块确定历史使用率(ii)以便考虑下行的至少一个链路。
8.根据权利要求6或7所述的系统,其中所述路径计算模块在控制设备接收到所述请求之前计算所述路径,并且还包括:
路径数据库,所述路径数据库将所确定的路径存储在预先计算的路径数据库中;以及
路径选择模块,当所述控制设备接收到新数据流时,所述路径选择模块从预先计算的路径数据库中检索所请求的路径。
9.根据权利要求8所述的系统,其中所述路径选择模块确定新数据流是否具有特定的目的地IP地址和TCP或UDP端口。
10.根据权利要求8所述的系统,其中所述路径选择模块确定新数据流是否具有特定的源IP地址和TCP或UDP端口。
11.一种计算机可读存储介质,所述计算机可读存储介质有形地体现可由至少一个机器执行的指令的程序以便执行用于实际上将新数据流从源通过多个转发设备路由至目的地的方法,其中所述多个转发设备通过链路互连,所述方法包括:
(a)在控制设备接收用于针对新数据流创建通过多个互连转发设备的路径的请求;
(b)确定所述新数据流的类型,其中所述类型由所述新数据流的源和目的地的至少一个限定;
(c)基于所确定的类型,确定具有所确定类型的数据流的历史使用情况特性,所述特性包括先前发送的类型的数据流的持续时间以及先前发送的类型的数据流所使用的带宽量;
(d)基于先前发送的类型的数据流的持续时间、多个先前时间周期期间的先前时间片,来确定新数据流将占据哪些时间片,所述时间周期表示具有重复使用率的模式的周期性时间间隔,所述时间片表示所述周期性时间间隔中的子间隔;
(e)针对将所述源和目的地相连的多个候选路径,确定在(d)中所确定的时间片沿所述候选路径的链路的历史使用率;
(f)同样对于多个候选路径的每一个,基于所确定的沿着所述候选路径的链路的历史使用率,确定在(d)中确定的时间片期间在所述候选路径上的可用带宽量;
(g)将所确定的针对多个候选路径的可用带宽量与所确定的由先前发送的类型的数据流所用的带宽量进行比较,以便选择新数据流所需的路径,所需的路径是从所述源通过多个互连的转发设备至目的地;
(h)对于沿着所述路径的各个转发设备,确定路由表,所述路由表指示对转发设备的哪个端口用来沿着在(g)中确定的路径路由来自新数据流的数据;以及
(i)针对各个转发设备中的每一个,发送在(h)中确定的路由表以便配置所述转发设备。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/250,132 | 2014-04-10 | ||
US14/250,132 US8811172B1 (en) | 2014-04-10 | 2014-04-10 | Network path selection using bandwidth prediction |
US14/332,843 US9210077B2 (en) | 2014-04-10 | 2014-07-16 | Network path selection using bandwidth prediction |
US14/332,843 | 2014-07-16 | ||
PCT/US2015/024152 WO2015157094A1 (en) | 2014-04-10 | 2015-04-02 | Network path selection using bandwidth prediction |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106165354A CN106165354A (zh) | 2016-11-23 |
CN106165354B true CN106165354B (zh) | 2019-12-10 |
Family
ID=51301732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580019053.0A Active CN106165354B (zh) | 2014-04-10 | 2015-04-02 | 使用带宽预测的网络路径选择 |
Country Status (7)
Country | Link |
---|---|
US (4) | US8811172B1 (zh) |
EP (1) | EP2930891B1 (zh) |
JP (1) | JP6562563B2 (zh) |
CN (1) | CN106165354B (zh) |
CA (1) | CA2887738C (zh) |
HK (1) | HK1215832A1 (zh) |
WO (1) | WO2015157094A1 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753857B (zh) * | 2013-12-26 | 2018-03-09 | 华为技术有限公司 | 网络流量控制设备及其安全策略配置方法及装置 |
US8811172B1 (en) | 2014-04-10 | 2014-08-19 | tw telecom holdings inc. | Network path selection using bandwidth prediction |
US9634867B2 (en) | 2014-05-02 | 2017-04-25 | Futurewei Technologies, Inc. | Computing service chain-aware paths |
GB2537338A (en) | 2014-11-28 | 2016-10-19 | Aria Networks Ltd | Modeling a border gateway protocol network |
GB2543017A (en) | 2014-11-28 | 2017-04-12 | Aria Networks Ltd | Telecommunications network planning |
GB2536860A (en) * | 2014-11-28 | 2016-10-05 | Aria Networks Ltd | Scheduling traffic in a telecommunications network |
US10015625B2 (en) * | 2015-02-11 | 2018-07-03 | Flipboard, Inc. | Providing digital content for offline consumption |
EP3272070A1 (en) * | 2015-03-19 | 2018-01-24 | Belgacom International Carrier Services | Method and system for managing network utilisation |
US10263864B2 (en) * | 2015-08-13 | 2019-04-16 | Electronics And Telecommunications Research Institute | Apparatus and method for collecting adaptive flow statistics data in carrier network |
IN2015CH04763A (zh) * | 2015-09-08 | 2015-09-25 | Wipro Ltd | |
US10044604B1 (en) | 2015-09-22 | 2018-08-07 | Amazon Technologies, Inc. | Multi-path routing |
US9860159B1 (en) * | 2015-09-22 | 2018-01-02 | Amazon Technologies, Inc. | Multi-path routing |
US9825846B1 (en) * | 2015-09-22 | 2017-11-21 | Amazon Technologies, Inc. | Multi-path routing |
US9699673B1 (en) | 2016-02-23 | 2017-07-04 | At&T Intellectual Property I, L.P. | Maintaining active sessions during subscriber management system maintenance activities |
CN105791168A (zh) * | 2016-02-24 | 2016-07-20 | 中国联合网络通信集团有限公司 | 网络资源获取方法及装置 |
US10360514B2 (en) | 2016-03-03 | 2019-07-23 | At&T Intellectual Property I, L.P. | Method and system to dynamically enable SDN network learning capability in a user-defined cloud network |
AU2017304280A1 (en) * | 2016-07-27 | 2018-09-20 | Megaport (Services) Pty Ltd | Provisioning private network connections |
US11025480B2 (en) * | 2016-10-13 | 2021-06-01 | Prodatakey, Inc. | Automated troubleshooting of a wireless network using a wireless network control system |
CN110024340B (zh) * | 2016-10-25 | 2021-10-15 | 极进网络公司 | 经由使用预测在可见性网络中进行近似均匀负载平衡 |
CN110574337A (zh) * | 2017-05-04 | 2019-12-13 | 华为技术有限公司 | 基于滑动中值算法进行时间序列预测的网络计算设备、方法及系统 |
US10462042B2 (en) * | 2017-06-20 | 2019-10-29 | Cisco Technology, Inc. | Network path selection |
CN113364686B (zh) | 2017-06-30 | 2022-10-04 | 华为技术有限公司 | 一种生成转发表项的方法、控制器和网络设备 |
US11297563B2 (en) | 2017-12-18 | 2022-04-05 | Nec Corporation | Communication apparatus, communication system, communication control method, and program |
US10862964B2 (en) * | 2018-09-18 | 2020-12-08 | At&T Intellectual Property I, L.P. | Peer packet transport |
CN110290027B (zh) * | 2019-07-15 | 2021-01-15 | 华北电力大学 | 一种面向配电通信业务的带宽预测方法及系统 |
CN113300958A (zh) * | 2021-05-24 | 2021-08-24 | 北京字跳网络技术有限公司 | 一种报文传输方法、装置、电子设备和存储介质 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1293063A2 (en) | 2000-06-14 | 2003-03-19 | Coreexpress, Inc. | Route selection within a network with peering connections |
US6775701B1 (en) | 2000-08-15 | 2004-08-10 | Nortel Networks Limited | Oversubscribing network resources |
CN1200538C (zh) * | 2003-07-11 | 2005-05-04 | 清华大学 | 一种通过统计和控制节点状态选择路由的方法 |
WO2006081454A2 (en) | 2005-01-26 | 2006-08-03 | Internet Broadcasting Corporation | Layered multicast and fair bandwidth allocation and packet prioritization |
CN101047660A (zh) * | 2006-03-28 | 2007-10-03 | 朗迅科技公司 | 发送数据的方法 |
US8289965B2 (en) * | 2006-10-19 | 2012-10-16 | Embarq Holdings Company, Llc | System and method for establishing a communications session with an end-user based on the state of a network connection |
US8619600B2 (en) * | 2006-08-22 | 2013-12-31 | Centurylink Intellectual Property Llc | System and method for establishing calls over a call path having best path metrics |
US7808918B2 (en) * | 2006-08-22 | 2010-10-05 | Embarq Holdings Company, Llc | System and method for dynamically shaping network traffic |
US7843831B2 (en) | 2006-08-22 | 2010-11-30 | Embarq Holdings Company Llc | System and method for routing data on a packet network |
US8130793B2 (en) * | 2006-08-22 | 2012-03-06 | Embarq Holdings Company, Llc | System and method for enabling reciprocal billing for different types of communications over a packet network |
JP4806466B2 (ja) * | 2007-08-22 | 2011-11-02 | 日本電信電話株式会社 | パス管理制御方法、パス管理制御プログラム、パス管理制御装置およびパス管理制御システム |
CN101562534B (zh) * | 2009-05-26 | 2011-12-14 | 中山大学 | 一种网络行为分析系统 |
US8526985B2 (en) * | 2009-11-30 | 2013-09-03 | Alcatel Lucent | System and method of geo-concentrated video detection |
JP5493965B2 (ja) * | 2010-02-15 | 2014-05-14 | 日本電気株式会社 | 帯域制御システム、帯域制御装置、帯域制御方法および帯域制御プログラム |
JP5418289B2 (ja) | 2010-02-23 | 2014-02-19 | 富士通株式会社 | 経路決定装置,経路決定方法及び経路決定プログラム |
EP2609507B1 (en) * | 2010-08-25 | 2019-05-15 | Ab Initio Technology LLC | Evaluating dataflow graph characteristics |
JP2012074825A (ja) * | 2010-09-28 | 2012-04-12 | Hitachi Solutions Ltd | QoS保障型ネットワークシステム、集中制御装置、及び集中制御装置の制御方法 |
WO2012073409A1 (en) * | 2010-12-01 | 2012-06-07 | Nec Corporation | Communication system, control device, communication method, and program |
US8682812B1 (en) * | 2010-12-23 | 2014-03-25 | Narus, Inc. | Machine learning based botnet detection using real-time extracted traffic features |
JP5987841B2 (ja) | 2011-06-02 | 2016-09-07 | 日本電気株式会社 | 通信システム、制御装置、転送ノード、通信システムの制御方法およびプログラム |
US8654629B1 (en) | 2011-06-29 | 2014-02-18 | Amazon Technologies, Inc. | Network capacity planning |
US8611355B1 (en) | 2013-09-03 | 2013-12-17 | tw telecom holdings inc. | Buffer-less virtual routing |
US8811172B1 (en) | 2014-04-10 | 2014-08-19 | tw telecom holdings inc. | Network path selection using bandwidth prediction |
-
2014
- 2014-04-10 US US14/250,132 patent/US8811172B1/en active Active
- 2014-07-16 US US14/332,843 patent/US9210077B2/en active Active
-
2015
- 2015-04-02 CN CN201580019053.0A patent/CN106165354B/zh active Active
- 2015-04-02 EP EP15162363.4A patent/EP2930891B1/en active Active
- 2015-04-02 WO PCT/US2015/024152 patent/WO2015157094A1/en active Application Filing
- 2015-04-02 JP JP2016560530A patent/JP6562563B2/ja active Active
- 2015-04-09 CA CA2887738A patent/CA2887738C/en active Active
- 2015-12-07 US US14/961,551 patent/US9667542B2/en active Active
-
2016
- 2016-04-01 HK HK16103775.7A patent/HK1215832A1/zh unknown
-
2017
- 2017-05-25 US US15/605,468 patent/US10091107B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP6562563B2 (ja) | 2019-08-21 |
US10091107B2 (en) | 2018-10-02 |
US20160156556A1 (en) | 2016-06-02 |
HK1215832A1 (zh) | 2016-09-15 |
EP2930891B1 (en) | 2016-11-23 |
US20150295822A1 (en) | 2015-10-15 |
US8811172B1 (en) | 2014-08-19 |
US20170339057A1 (en) | 2017-11-23 |
JP2017511068A (ja) | 2017-04-13 |
WO2015157094A1 (en) | 2015-10-15 |
US9210077B2 (en) | 2015-12-08 |
CA2887738A1 (en) | 2015-06-15 |
CN106165354A (zh) | 2016-11-23 |
EP2930891A1 (en) | 2015-10-14 |
US9667542B2 (en) | 2017-05-30 |
CA2887738C (en) | 2016-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106165354B (zh) | 使用带宽预测的网络路径选择 | |
US10673741B2 (en) | Control device discovery in networks having separate control and forwarding devices | |
US9647944B2 (en) | Segment routing based wide area network orchestration in a network environment | |
US8730806B2 (en) | Congestion control and resource allocation in split architecture networks | |
CA2922541C (en) | Buffer-less virtual routing | |
EP2656549B1 (en) | Communications network management | |
EP3039817B1 (en) | Determination and use of link performance measures | |
CN106716927B (zh) | 自适应网络功能链 | |
Ghalwash et al. | A QoS framework for SDN-based networks | |
Soni et al. | Scalable guaranteed-bandwidth multicast service in software defined ISP networks | |
Dharam et al. | Advance bandwidth scheduling in software-defined networks | |
Ren et al. | A reactive traffic flow estimation in software defined networks | |
Anh et al. | A new localized multiconstraint QoS routing algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |