控制多个网关设备的方法、控制器、数据传输系统与流程

未命名 08-27 阅读:128 评论:0


1.本公开涉及通信技术领域,特别涉及网关设备及其控制器等。


背景技术:

2.目前许多服务全球用户的应用通常需要根据用户分布在不同区域部署对应的处理集群,以达到就近服务,提高用户体验。这就带来了不同集群跨区域互联的需求。以音视频应用为例,处于不同地区的用户参加同一场会议,在就近接入之后,需要不同地区的集群之间互相同步音视频流数据,以支持完整会议功能和体验。为此,有些音视频应用通过在全球自建数据中心来组织音视频的跨区域传输网络,然而这种解决方案成本高,很难弹性扩缩容,并且通常为专门针对音视频传输设计的集成化方案,而不提供通用的传输优化能力。另外,有些音视频应用采用sd-wan(软件定义广域网)技术来提供自定义的覆盖(overlay)网络路由规划,但是这种解决方案只会根据网络类型提供对应的传输服务,而无法根据实际网络质量综合利用不同类型的网络资源来实时调整数据传输方案。


技术实现要素:

3.本公开要解决的一个技术问题是提供一种改进的数据传输网络方案。
4.根据本公开的第一个方面,提供了一种控制多个网关设备的方法,包括:获取多个网关设备之间的网络链路的传输质量和成本;根据多个网关设备之间的网络链路的传输质量和成本,确定以所述多个网关设备中的两个分别为源网关设备和目的网关设备的数据流的转发表。
5.可选地,所述转发表是以优化从所述源网关设备到所述目的网关设备的传输路径的总传输性能为目标确定的,其中,所述总传输性能是对所述传输路径使用的网络链路的传输质量和成本进行加权求和而获得的。
6.可选地,所述转发表受所述传输路径经过的网关设备的流量容量、所述传输路径的总丢包率和/或所述传输路径的总延迟时间的约束。
7.可选地,在所述多个网关设备中的至少两个网关设备之间能用至少两种网络链路传输所述数据流的情况下,确定所述转发表的步骤包括:根据所述多个网关设备之间的各种能用的网络链路的传输质量和成本,确定所述转发表。
8.可选地,确定所述转发表的步骤包括:获得所述多个网关设备的当前连接拓扑,其中所述当前连接拓扑为加权图,所述加权图中各边及其权重分别为作为该边的端点的网关设备之间的成本最低的网络链路及其当前延迟;以及确定在所述当前连接拓扑中从所述源网关设备到所述目的网关设备的最短路径,从而根据所述最短路径确定所述数据流的转发表。
9.可选地,所述当前连接拓扑为加权有向图,所述加权有向图中各边的权重分别为从作为该边起点的网关设备到作为该边终点的网关设备的成本最低的网络链路的当前延迟。
10.可选地,根据所述最短路径确定所述数据流的转发表的步骤包括:在受所述最短路径经过的网关设备的流量容量的约束条件下根据所述最短路径确定所述数据流的转发表。
11.可选地,在所述多个网关设备能动态扩缩容的情况下,所述方法还包括:根据在将所述最短路径作为从所述源网关设备到所述目的网关设备的传输路径的情况下确定的所述多个网关设备的最大流量需求,调整所述多个网关设备的流量容量。
12.可选地,该方法还包括:确定从所述源网关设备到所述目的网关设备的快速恢复路径,其中,所述快速恢复路径所用的网络链路的类型不同于所述转发表所用的网络链路的类型。
13.可选地,确定所述快速恢复路径的步骤包括:获取所述转发表中的作为中继节点的网关设备的集合;以及根据除所述转发表所用的网络链路的类型之外的其它类型的网络链路的当前延迟,确定所述中继节点的集合之中的使得传输路径延迟最少的中继节点子集,从而根据所述中继节点子集确定所述快速恢复路径。
14.可选地,在所述多个网关设备能动态扩缩容的情况下,所述方法还包括:根据所述多个网关设备的流量需求的历史数据,预测未来一个或更多个时段的流量需求;以及根据所预测的流量需求,调整所述多个网关设备的流量容量。
15.可选地,调整所述多个网关设备的流量容量的步骤还包括:根据所述多个网关设备的前一时段实际使用的流量,调整所述多个网关设备的流量容量,以确保调整后的流量容量不小于前一时段实际使用的流量。
16.可选地,该方法还包括:根据从所述多个网关设备接收到的实时监测的网络链路状态来更新所述多个网关设备之间的网络链路的所述传输质量。
17.可选地,所述网络链路包括公网链路和/或专线链路;并且/或者所述网络链路的传输质量包括所述网络链路的延迟和/或丢包率;并且/或者所述网络链路的成本包括所述网络链路的流量使用费用;并且/或者确定所述转发表的步骤还包括:还根据所述多个网关设备的使用成本,确定所述数据流的转发表;并且/或者确定所述转发表的步骤包括:在为多个数据流确定各自的转发表的情况下,将所述多个数据流按照从其源网关设备到其目的网关设备的估计延迟值的降序排列,并依次为所述多个数据流确定各自的转发表。
18.根据本公开的第二个方面,提供了一种数据传输系统,包括:多个网关设备,被配置为在所述多个网关设备之间传输数据流;以及控制器,使用如上述第一方面所述的方法来控制所述多个网关设备。
19.可选地,所述多个网关设备中的至少两个网关设备分别为部署在位于彼此不同的区域的云上的网关集群。
20.可选地,所述多个网关设备中的至少一个网关设备包括:网络链路状态监测模块,被配置为监测与其它网关设备之间的网络链路的传输质量。
21.可选地,所述至少一个网关设备被配置为:从所述控制器接收所述转发表、以及所述数据流从所述源网关设备到所述目的网关设备的快速恢复路径,其中,所述快速恢复路径所用的网络链路的类型不同于所述转发表所用的网络链路的类型;以及在所述网络链路状态监测模块监测到所述转发表所用的网络链路的传输质量低于阈值的情况下,将所述数据流改为通过所述快速恢复路径所用的网络链路来传输。
22.根据本公开的第三个方面,提供了一种用于多个网关设备的控制器,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上述第一方面所述的方法。
23.根据本公开的第四个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上述第一方面所述的方法。
24.由此,利用根据本公开的控制网关设备的方法及相应的控制器,能够综合考虑网络链路情况来提供网络传输服务。特别是在长距离跨区域传输的场景下,既能保证数据传输的质量也能节约成本。
附图说明
25.通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
26.图1示例性地示出了根据本公开一个实施例的数据传输系统的示意性框图。
27.图2示出了根据本公开一个实施例的数据传输方法的示意性流程图。
28.图3示出了根据本公开一个实施例的可用于实现控制方法以用作用于多个网关设备的控制器的计算设备的结构示意图。
具体实施方式
29.下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
30.如前所述,本公开提出了一种改进的控制网关设备的方法及相应的控制器,其能够综合考虑网络链路情况来控制网关设备提供网络传输服务。
31.以音视频应用为例,如前所述,有时需要跨区域传输数据。然而,通过公网跨区域长距离传输的性能有时难以保障,可能会出现大量延迟抖动和丢包。而通过专线传输通常性能稳定但是价格昂贵。对此,本公开提出了一种跨区域覆盖(overlay)传输网络方案,其通过综合考虑各区域之间不同网络链路的传输质量和成本,利用控制器统一计算转发表,主动管理不同区域网关之间的转发路由,并且可选地响应随时出现的网络质量下降问题,实时动态调整网络传输路径,因此能够同时满足音视频服务所需要的高性能和低成本的网络传输要求。当然本公开的技术方案不限于音视频应用,而是可以支持任何通用的有跨区域流量传输需求的应用。另外,在一些实施方式中,本公开的数据传输方案可以是云原生方案,因此可以无缝支持多云部署,在多云之间管理不同网络资源,综合提供较优的覆盖(overlay)网络传输。
32.下面就结合图1和图2以部署在多区域的云之上的数据传输系统的跨区域数据传输为例来详细描述本公开的数据传输方案。但是,本领域技术人员应当理解,本发明并不限于此,而是可以采用其它不在云上的通信设施来部署本公开的方案,或者也可以适用于同
一区域内的数据传输。
33.图1示例性地示出了根据本公开一个实施例的数据传输系统的示意性框图。
34.如图1所示,在一些实施例中,根据本公开的数据传输系统包括数据平面和控制平面两部分,其中数据平面包括部署在位于彼此不同的区域的云上的多个网关设备(例如图中的位于区域a的网关集群1、位于区域b的网关集群2等),控制平面包括用于控制多个网关设备的控制器110以及数据库120。请注意,图1中为了清楚起见仅示出了网关集群1中的一个网关的结构框图,并且仅示出了控制器110与网关集群1之间的交互,但是本领域技术人员均理解,网关集群1及其它网关集群中的网关也可以根据需要被设计为具有相同或不同的结构,或者与控制器110有相同或不同的交互。
35.如图1所示,在一些实施例中,数据平面中的多个网关设备为在不同区域的云上部署的多个网关集群,其中每个网关集群可以包括任意多个由容器(container)实现的网关,由此可以容易地通过调整所使用的容器的数量来调整网关的数量,从而控制整个网关设备的流量容量;也就是说,可以容易地根据实时流量需求对各个网关设备进行动态扩缩容。图1中示出的网关集群1中的网关个数m1和网关集群2中的网关个数m2分别可以实时变化,增大或减小。部署的具体区域可以根据服务实际需求和/或云服务可提供的部署区域综合挑选。另外,如图1所示,在一些实施例中,两个网关设备(网关集群1和网关集群2)之间可以存在多种网络链路,即图中所示的网络链路1、网络链路2等,其可以是公网链路、专线链路等各种类型的网络链路,其可能根据网络链路的类型不同而具有不同的传输质量和成本。
36.在一种实施方式中,网关可以被配置为:(1)承接数据流的输入/输出;(2)探测不同区域部署的网关设备之间的网络链路的实时传输质量,并上报控制平面;(3)根据控制器确定的转发表执行具体的数据流转发;(4)在转发表所用的网络链路出现突发性能下降时,根据控制器确定的快速恢复路径进行快速异常规避。在两个网关设备之间存在多种不同类型的网络链路(例如公网链路、专线链路等)的情况下,网关可以被配置为探测各种能用的网络链路的实时传输质量,并且基于探测到的实时传输质量选择根据转发表还是快速恢复路径中的网络链路来传输数据流。例如,图1中的网关131可以包括网络链路状态监测模块135和转发模块136,其中网络链路状态监测模块135可以被配置为监测与其它网关设备之间的网络链路的传输质量,转发模块136可以被配置为根据从控制器110接收的转发表来执行数据流转发,并且可选地在网络链路状态监测模块135监测到转发表所用的网络链路的传输质量低于阈值(即突发性能下降以致于不能满足传输质量要求)的情况下,将数据流改为通过从控制器110接收的快速恢复路径所用的网络链路来传输。稍后将更详细描述网关设备的各种操作示例。
37.如图1所示,在一些实施例中,控制平面包括控制器110,其被配置为集中控制数据平面中的多个网关设备。在一些实施例中,控制器110可以被配置为获取多个网关设备(例如部署在不同区域的网关集群)之间的网络链路的传输质量和成本,并且根据网络链路的传输质量和成本确定用于各个网关设备的转发表。控制器110可以通过各种方式(包括如后将详述的一些方式)来获取网络链路的传输质量和成本。
38.可选地,在一些实施例中,控制器110还可以被配置为预测各个网关设备的流量需求,调整各个网关设备的流量容量,并且/或者确定用于各个网关设备的快速恢复路径。
39.例如,在一些实施例中,图1所示的控制器110可以包括流量需求预测模块111、转
发控制模块112和快速恢复路径确定模块113。
40.其中,流量需求预测模块111可以被配置为根据多个网关设备的流量需求的历史数据(例如流量需求信息142),预测未来一个或更多个时段的流量需求。稍后将详细描述流量需求预测模块111的操作示例。
41.转发控制模块112可以被配置为根据多个网关设备之间的网络链路的传输质量(例如可以包括实时监测到的网络链路状态信息141)和成本,确定要在其间传输的数据流的转发表(例如转发表143),并且可选地根据所预测的流量需求和/或如后续将详述的计算出的最大流量需求,调整多个网关设备的流量容量(例如向各个网关设备发送流量容量调整信息145以控制各个网关设备所用的网关的数量)。稍后将详细描述转发控制模块112的各种具体操作的示例。
42.快速恢复路径确定模块113可以被配置为确定与转发表中的传输路径不同的快速恢复路径,以便在转发表所用的网络链路存在问题(如不可用或传输质量突发下降以致不能满足要求)的情况下可以采用与之不同的网络链路来快速恢复数据传输。
43.在网关设备之间存在多种网络链路的情况下,快速恢复路径所用的网络链路的类型可以不同于转发表所用的网络链路的类型。例如,在公网性能突发下降的情况下,可以临时改用专线链路来快速恢复。在一种实施方式中,快速恢复路径确定模块113可以被配置为根据之前转发控制模块112确定的转发表进一步确定快速恢复路径144。如稍后将详述的,在一种实施方式中,快速恢复路径确定模块113可以被配置为通过如下处理来确定快速恢复路径:获取转发表中的作为中继节点的网关设备的集合;以及根据除转发表所用的网络链路的类型之外的其它类型的网络链路的当前延迟,确定中继节点的集合之中的使得传输路径延迟最少的中继节点子集,从而根据该中继节点子集确定快速恢复路径。稍后将更详细描述快速恢复路径确定模块113的操作示例。
44.本领域技术人员均能理解,虽然如上所述图1中示出了控制器110中的3个模块及其功能,但是本发明不限于此,而是可以根据需要在控制器110中增加或减少或改变功能模块,只要保证控制器的根据多个网关设备之间的网络链路的传输质量和成本确定转发表的关键功能存在即可。
45.另外,如图1所示,控制平面还可以包括数据库120,其被配置为存储并且传递在控制器110与多个网关设备或其他设备之间交互的信息。在一些实施方式中,数据库120可以采用云上的任何数据库来实现。本领域技术人员均能理解,虽然图1中示出数据库120在控制器110外部,但是也可以根据需要在控制器110内部设置一个数据库或存储器等模块来实现相同或类似的功能。另外,虽然图1中仅示出一个数据库120,但是也可以根据需要使用两个或更多个数据库来分别存储不同的信息,例如可以使用两个数据库来分别存储流量需求信息和网络相关信息。
46.下面以图2例示的一个数据传输的整个流程为例结合图1例示的数据传输系统的架构来详细讲解根据本公开的数据传输架构的各种改进点及其带来的有益效果。
47.如前所述,本公开的核心改进点为控制器的根据多个网关设备之间的网络链路的传输质量和成本确定转发表的操作,例如图2中的步骤s230所示。请注意,步骤s230中的调整网关设备的流量容量的操作为可选的,特别是在图1所示的云上部署的可动态扩缩容的网关设备的情况下。在一些实施例中,为了更好地兼顾考虑传输速度和成本,可以如步骤
s230中那样在执行转发之前和/或之后动态调整网关设备的流量容量。
48.如图2所示,在控制器110确定转发表以及调整网关设备的流量容量的步骤s230之前,可选地,可以并行或非并行地分别由网关设备执行步骤s210以及由控制器110执行步骤s220。
49.在一种实施方式中,可以在每个网关中都配备一个如图1所示的网络链路状态监测模块135,用于执行步骤s210,即监测与其它网关设备之间的网络链路的传输质量。传输质量可以包括延迟和/或丢包率等指标。该网络链路状态监测模块135可以单独使用各种已有的主动探测方式或被动跟踪方式,或者采用主动探测和被动跟踪相组合的方式来进行监测。如图1所示,其监测结果,即网络链路状态信息141可以被上传到控制平面中的数据库120中,从而更新多个网关设备之间的网络链路的传输质量,以便控制器110后续根据该实时监测的传输质量来确定转发表。
50.在一种实施方式中,如上所述的主动探测方案可以为:当需要实时监测链路状态时,网络链路状态监测模块135生成探测报文进行主动探测。例如可以按照每400毫秒发送15个1.5kb的探测报文的方式进行实时主动探测。
51.在一种实施方式中,如上所述的被动跟踪方案可以为:在有数据流传输时,网关还会同时监测所有数据流的传输情况。这样可以感知数据流的实际传输情况。
52.另外,在一种实施方式中,可以不必由每个网关都执行步骤s210。这是因为本技术发明人发现,在一些情况下,如果每个网关都对其它所有网关进行网络链路状态监测,开销太大。假设在n个区域上部署有n个网关集群,其中每个网关集群都有m个网关,则可能需要探测n(n-1)m^2个链接,并且开销随着服务容量(即网关数量m)成倍增长,这影响了系统的可伸缩性。
53.本技术发明人发现同一《区域-区域》对中的不同链路具有相似的网络条件。由此,在一种实施方式中,可以将一个区域上部署的网关集群作为一个探测组,然后从每个探测组中挑选一个或多个网关作为代表,从而为每个《区域-区域》选择r个代表来执行全链路状态监测。然后以组粒度将监测结果聚合到控制器,以供后续决策用。因此,总体监测成本从o(n(n-1)m^2)下降到o(n(n-1)r)。由于这种基于分组的设计,使得总的监测成本可以忽略不计。
54.另外,在一种实施方式中,本公开的方案可以采用非对称转发的方式,由此,前述的各种网络链路状态监测方案要分别监测并向控制器报告各个网络链路在两个方向上的传输质量,而后续控制器110在确定转发表时采用非对称转发决策,即数据流的两个方向可能使用不同的转发路径和/或不同类型的链路。这是因为本技术发明人通过实际观测发现在一些情况下跨区域的网络传输质量在不同方向上通常是不同的。因此在这种情况下,相比于假设链路质量是对称的方案而言,采用非对称转发的方案更准确。例如,假设数据传输系统有分别部署在三个区域(a、b、c)中的网关设备,如果a

c的网络链路的丢包率过高,则数据流可以通过路径a
→b→
c正向发送,并将相应答复信息(如ack)通过路径c

a发送回来。
55.在一些实施例中,对于上述的图2中的步骤s220,可以由图1所示的控制器110中的流量需求预测模块111来执行。
56.如前所述,在一种实施方式中,网关设备可以由云上的容器来实现,从而通过调整
所用容器的数量可以方便地对网关设备进行扩缩容。但是由于网关的扩缩容无法瞬间完成,因此为了留下提前扩容的空间而尽量少影响转发时间,提出了对未来一个或更多个时段(例如5分钟)的流量需求进行预测,从而根据预测结果提前对网关设备进行扩缩容。例如,流量需求预测模块111可以根据数据库120中保存的多个网关设备的流量需求的历史数据(例如可以包含于图1中的流量需求信息142中),预测未来一个或更多个时段的流量需求。本发明并不限制流量需求预测方式,其例如可以为根据傅立叶变换、神经网络模型(例如rnn)和/或其他方式实现的时序预测方案。例如,在一种实施方式中,可以采用离散时间傅里叶变换(dtft)方法进行预测。具体而言,dtft首先将历史流量需求的时间序列从时域映射至频域;然后选择例如30个最突出的谐波来过滤掉随机抖动;然后再从频域转换回时域。这样未来时间戳对应的结果即为预测结果。
57.在一种实施方式中,本技术发明人还对预测结果增加了一条约束:即最终预测的流量需求必须不小于上一回合的实际流量需求。这样可以进一步提高精度,大幅降低过度缩容的风险。
58.因此,在一些实施例中,在步骤s230中的调整多个网关设备的流量容量的操作中,无论根据预测的流量需求还是后述的计算出的最大流量需求或是二者的结合来调整网关设备容量,都可以增加类似的约束以确保调整后的流量容量不小于前一时段实际使用的流量,以减少过度缩容的风险。
59.然后,如图2所示,在一些实施例中,可以由图1所示的控制器110中的转发控制模块112来执行图2中的步骤s230,即确定转发表以及调整流量容量。
60.如前所述,在一种实施方式中,可以根据步骤s220中预测的流量需求和/或后述的计算出的最大流量需求来调整流量容量。例如,图1所示的控制器110中的转发控制模块112可以向各个网关设备输出流量容量调整信息145(可包括例如所使用的网关数量等),并控制各个网关设备根据流量容量调整信息145来增加或减少所用的网关(容器)数量。该调整流量容量的操作与确定转发表的操作可以并行或不并行执行,本发明并不限制二者的执行顺序。
61.对于本发明的关键操作,即根据多个网关设备之间的网络链路的传输质量和成本确定转发表的操作,在一种实施方式中,可以以优化从源网关设备到目的网关设备的传输路径的总传输性能为目标确定转发表,其中,总传输性能是对传输路径使用的网络链路的传输质量和成本进行加权求和而获得的。例如,网络链路的传输质量可以由丢包率和/或延迟等指标来表示,网络链路的成本可以包括网络链路的流量使用费用等,如部署在云上的网关设备租用的网络链路的流量费用。另外,在一些情况下总传输性能还可以考虑多个网关设备的使用成本,例如,部署在云上的网关设备可能按照租用的容器的数量和时间来计算成本。另外,在确定转发表时,还可以设置一些转发表要满足的约束条件,例如,不能超过传输路径经过的网关设备的流量容量、传输路径的总丢包率上限和/或传输路径的总延迟时间上限等。在各个网关设备之间能用至少两种网络链路传输数据流的情况下,还可以根据多个网关设备之间的各种能用的网络链路的传输质量和成本,确定转发表。
62.在一种实施方式中,可以通过对上述问题进行建模并求解来确定转发表。
63.下面以各网关设备之间均存在公网链路和专线链路两种链路类型的情况为例来对流量调度问题进行建模并给出了一些示例性的求解方案,其中要对多个具有不同或相同
源和目的网关的数据流同时进行调度。
64.表1中给出了流量调度模型中的各符号的含义解释:
[0065][0066]
表1
[0067]
在一种实施方式中,可以如下面公式那样设置流量调度的目标函数(即,确定转发表的目标函数):
[0068][0069][0070]
minimize w
lat
·
util
lat
+w
cost
·
util
cost
[0071]
在上式中,m和n分别表示要传输的各个数据流的源网关设备(及所在区域)和目的网关设备(及所在区域),i和i分别表示从区域m到区域n的转发路径中的各个中继节点(区域),util
lat
为所有数据流的延迟指标之和,util
lat
为传输所有数据流要使用的容器(网关)的成本与所有数据流要使用的网络链路的流量成本之和(式中thpti和thpt
p
分别表示从区域i出去的公网链路上的流量总量和从区域i到区域j的专线链路上的流量总量)。
[0072]
由此,最终目标函数是使得根据自定义的权重w
lat
和w
cost
得到的传输质量和成本的加权和最小化,从而得出优化传输质量和成本的传输路径结果。这两个权重可以根据用户等的需求来自行设置,或者也可以根据经验等来设置。
[0073]
本领域技术人员均理解,本发明不限于此,目标函数还可以使用除了延迟之外的
其它传输质量指标和/或除了流量使用费用和容器租用费用之外的其它成本指标。
[0074]
另外,如上所述,在一种实施方式中,在根据上述目标函数计算转发表时,还可以设置一些约束条件,如下所例示的。
[0075]
1、性能约束条件,即计算出来的传输路径必须满足传输质量要求,包括延迟和丢包率要求:
[0076][0077][0078]
其中,第一个式子表示从源区域m到目标区域n的传输路径上的各中间路径p
i,j
的链路类型t的延迟之和不超过从源区域m到目标区域n的传输路径的延迟上限;
[0079]
第二个式子表示经过从源区域m到目标区域n的传输路径上的各中间路径p
i,j
的链路类型t的最终丢包率不超过从源区域m到目标区域n的传输路径的丢包率上限。
[0080]
2、容量约束条件,即计算出来的传输路径必须满足当前各网关设备的容量限制:
[0081][0082][0083][0084][0085]
其中,第一个式子表示各数据流经过区域i的总流量需求不超过区域i的总流量处理容量;
[0086]
第二个式子表示各数据流使用从区域i出去的公网链路的总流量需求不超过区域i的公网链路带宽;
[0087]
第三个式子表示各数据流使用从区域i到区域j的专线链路的总流量需求不超过从区域i到区域j的专线链路带宽;
[0088]
第四个式子表示各区域i所用的容器的数量不超过其上限。
[0089]
当然本领域技术人员均理解本发明不限于此,还可以包含更多性能约束条件、容量约束条件和/或其他方面的约束条件。
[0090]
下面给出了一些示例性的对上述问题的求解方案。
[0091]
在一种实施方式中,可以采用如下的算法1来进行求解。当然本领域技术人员均理解本发明不限于此,而是可以根据实际需要对上述问题(包括目标函数、约束等)进行各种
变化/简化和/或对求解过程进行各种方向上的优化;求解方案上也不限于分阶段求解、启发式方案等的各种变种方案。
[0092]
算法1:
[0093][0094]
本发明并不限制实现上面算法1的软件、硬件和/或固件的类型,因此用伪代码方式来描述算法1。下面将详细描述算法1的操作。
[0095]
首先,如第1行所示,获得多个网关设备的当前连接拓扑g以及当前流量需求s(即待传输的多个数据流的集合,这多个数据流可各自具有相同或不同的源和目的区域,要为这多个数据流分别确定转发表)。
[0096]
在一种实施方式中,当前连接拓扑g为加权图,该加权图中各边及其权重分别为作为该边的端点的网关设备(区域)之间的成本最低的网络链路(在此示例中均为公网链路)及其当前延迟(例如由前述的网关设备中的监测模块所实时监测得到的)。在如前所述的采用非对称转发的情况下,当前连接拓扑g为加权有向图,其在两个网关设备(区域)之间有两个不同方向的边,各边的权重分别为对应方向上的成本最低的网络链路(在此示例中均为公网链路)的当前延迟。
[0097]
后续各个数据流的转发表均是根据当前连接拓扑g确定的,也就是说,均仅采用成本最低的网络链路。这里是根据用户需求和经验对问题进行的一个简化处理示例,即传输成本最敏感,而通常情况下成本最低的网络链路的传输质量已能满足用户需求。如前所述,
本发明不限于此,而是可以根据需要采用其它简化处理和/或其它求解方式。
[0098]
如第2行所示,除了转发表f之外,算法1的输出结果还包括已使用的网关集l(这是可选的,为了后续的容量管理)。
[0099]
第4-5行是进行初始化操作。
[0100]
从第6行开始,针对多个数据流集合s中的每个数据流s,依次根据当前连接拓扑g在考虑性能约束以及网关设备的当前容量约束(而不考虑如何在每个区域中增加或删除网关)的情况下确定转发表。
[0101]
具体而言,由于本技术发明人观察到具有长的端到端延迟的数据流更容易打破性能约束,因此算法1的关键思想是将延迟长的数据流优先分配到好的路径。例如,首先根据估计延迟值(由于数据流的源-目的地址是确定的,因此可以先估计一个源到目的网关的延迟值),将多个数据流s按降序排序(第8行),然后依次遍历所有流,并尝试为每个流从当前连接拓扑g中找出最短路径p(第7行、第9-10行)(此处也简化了问题,默认最短路径能满足性能约束(包括延迟和丢包率约束))。在找到最短路径后还要考虑该最短路径上的各节点的容量约束(即p.capacity,其表示路径上的容量):在满足容量约束的情况下(即第12行中s.throughput(表示数据流的流量)比p.capacity小的情况下)按照该最短路径作为转发路径来确定整个数据流s的转发表;在仅部分满足容量约束的情况下(即第12行中s.throughput比p.capacity大的情况下)按照该最短路径p作为这部分(即c,其取p.capacity的值)的转发路径来确定转发表,而为剩余部分(s中去除c的部分)从拓扑中继续寻找容量未满的最短路径,再重复上述操作,直到所有数据流都分配好转发路径,即确定了转发表(第11-20行)。算法1输出的已使用的网关集l可以包括每个网关设备(区域)所用的网关的数量rc。
[0102]
本领域技术人员均理解,本发明不限于上述内容,例如,转发表可以只写明下一跳,也可以是完整的端到端路径,或者还可以采用其他形式。另外,例如,可以根据需要提前将一个数据流分成多路传输,并相应地计算各路的转发表;例如,可以将校验数据与实际数据分开由不同路径传输,或者可以将一个数据流分割成多份分别由不同路径传输等。
[0103]
另外,如前所述,在步骤s230中,可以与确定转发表的操作并行或不并行地执行调整流量容量的操作。可以根据步骤s220中预测的流量需求和/或根据当前要传输的数据流等信息计算出的各区域中的最大流量需求来调整各区域的流量容量(例如所使用的网关数量等)。
[0104]
计算各区域中的最大流量需求的算法与上述的算法1类似,不同之处在于不考虑容量限制(例如去掉算法1中第18-21行的操作,由此在第12行时p.capacity总是大于s.throughput,每个数据流s都可以全部按照最初确定的最短路径p来转发)。由此输出的已使用的网关集l可以包括在没有限制的情况下每个网关设备(区域)所用的网关的数量rn,即传输所需的最大流量。在一种实施方式中,对于每个区域,如果使用的网关数量rn超过当前可用的网关数量,则差值为下一个阶段要添加的新网关数量。另一方面,如果rc和rn比当前可用的网关数量要小,那么前两者的最大值与实际部署的网关数量的差就是下一个阶段要关闭的网关数量。当然,还可以综合考虑前述的对下一个阶段的流量预测结果来确定下一个阶段的网关数量。在其他实施方式中,也可以根据所计算出的最大流量需求和流量预测结果分别对网关数量进行调整,即进行两次调整,调整的顺序不受限制。
[0105]
然后,如图2所示,可以由图1所示的控制器110中的快速恢复路径确定模块113执行步骤s240,即确定快速恢复路径。虽然图2示出步骤s240在步骤s210-s230之后执行,但是本发明不限于此,在很多情况下步骤s240与步骤s210-s230的执行顺序不受限制。
[0106]
在一种实施方式中,为了处理短时间内出现的链路性能下降,控制器110除了计算转发表外,还会计算快速恢复路径。在如前所述的各区域之间存在公网和专线两种网络链路的情况下,通常采用公网链路即可实现数据传输,因此转发表均采用公网链路,而快速恢复路径是优化的专线链路组合(例如在容量限制下找到的)。例如,当公网链路a

b发生临时降级时,网关设备可查快速恢复路径而通过专线链路a
→c→
b转发流量。由于控制器不参与转发循环,短时间的链路降级可以在几秒钟内快速恢复。同时由于整体收费是根据传输量而定,因此这种机制不会造成大幅的专线使用成本上升。
[0107]
下面给出了算法2作为计算快速恢复路径的示例性的操作。
[0108]
算法2:
[0109][0110]
本发明并不限制实现上面算法2的软件、硬件和/或固件的类型,因此用伪代码方式来描述算法2。下面将详细描述算法2的操作。
[0111]
首先,如第1行所示,获取前面例如通过算法1计算得到的转发表f,从而获得对于每个数据流s的转发路径p。第2行显示了算法2输出对于每个数据流s的快速恢复路径。第4行是初始化操作。
[0112]
从第5行开始,根据每个数据流s的转发路径p,获得转发路径p中作为中继节点的网关设备(如其部署的区域r
1-rd)的集合(第7行),根据专线链路的当前延迟,确定该中继节点的集合之中的使得传输路径延迟最少的中继节点子集,从而把该延迟最少的中继节点子集确定为快速恢复路径。具体而言,首先根据算法1计算的转发表f遍历所有路径p(第5-8行)。对于路径p中的每个区域(r
1-rd),使用直连的专线链路作为默认快速恢复路径(第9-10行),并搜索使用专线路径的当前中继节点子集是否可以提供更好的性能(第11-13行)。如
果是,则更新相应的快速恢复路径(第13行),从而最终得到延迟最少的中继节点子集作为快速恢复路径。
[0113]
本领域技术人员均理解,根据本发明的快速恢复方案不限于上述内容,例如,快速恢复方案可以包括其它各种确定更优路径的方案,或者采用多路径来实现传输优化的方案等。
[0114]
然后,如图2所示,可以由部署在各个区域中的各个网关集群执行步骤s250,即,基于上面控制器发送的转发表和快速恢复路径、以及自身实时监测的当前网络链路状态,转发数据流。例如,在当前网络链路状态正常的情况下,各网关集群按照转发表(例如采用公网链路)执行转发处理;在当前网络链路状态突发性能下降以致可能无法满足要求的情况下,各网关集群转为按照快速恢复路径(例如采用专线链路)执行转发处理,而在公网恢复正常后再按照转发表执行公网转发处理。
[0115]
综上所述,根据本发明的控制多个网关设备的方法及其相应的数据传输方法综合考虑了网络链路的传输质量和成本。特别是在同时存在不同类型的网络链路可用的情况下,可以兼顾性能和成本地混合利用各种不同的网络资源。另外,在一些实施方式中,还可以通过快速恢复路径作为备份,避免了低成本路径带来的性能不确定性,并大幅降低了整体成本。
[0116]
另外,在一些实施方式中,可以采用云原生方案来实现本发明,因此可以容易地动态扩缩容,进一步兼顾性能和成本。在一些实施方式中,还可以通过流量预测和/或容量规划减少动态扩缩容可能造成的问题。
[0117]
另外,在一些实施方式中,还可以在数据平面实时监测网络链路的传输质量(例如采用前述的主动探测与被动探测相结合的网络质量监测方案),进一步提高整体传输性能。
[0118]
图3示出了根据本发明一实施例可用于实现上述控制方法以用作用于多个网关设备的控制器的计算设备的结构示意图。
[0119]
参见图3,计算设备300包括存储器310和处理器320。
[0120]
处理器320可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器320可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器320可以使用定制的电路实现,例如特定用途集成电路(asic,application specific integrated circuit)或者现场可编程逻辑门阵列(fpga,field programmable gate arrays)。
[0121]
存储器310可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器320或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器310可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器310可以包括可读和/或写的可移除的存储设
备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、min sd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
[0122]
存储器310上存储有可执行代码,当可执行代码被处理器320处理时,可以使处理器320执行上文述及的控制方法。
[0123]
上文中已经参考附图详细描述了根据本发明的控制多个网关设备的方法以及数据传输方法。
[0124]
需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
[0125]
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
[0126]
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
[0127]
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
[0128]
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0129]
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

技术特征:
1.一种控制多个网关设备的方法,包括:获取多个网关设备之间的网络链路的传输质量和成本;根据多个网关设备之间的网络链路的传输质量和成本,确定以所述多个网关设备中的两个分别为源网关设备和目的网关设备的数据流的转发表。2.根据权利要求1所述的方法,其中,所述转发表是以优化从所述源网关设备到所述目的网关设备的传输路径的总传输性能为目标确定的,其中,所述总传输性能是对所述传输路径使用的网络链路的传输质量和成本进行加权求和而获得的;并且/或者对所述转发表的确定受所述传输路径经过的网关设备的流量容量、所述传输路径的总丢包率和/或所述传输路径的总延迟时间的约束;并且/或者在所述多个网关设备中的至少两个网关设备之间能用至少两种网络链路传输所述数据流的情况下,确定所述转发表的步骤包括:根据所述多个网关设备之间的各种能用的网络链路的传输质量和成本,确定所述转发表。3.根据权利要求2所述的方法,其中,确定所述转发表的步骤包括:获得所述多个网关设备的当前连接拓扑,其中所述当前连接拓扑为加权图,所述加权图中各边及其权重分别为作为该边的端点的网关设备之间的成本最低的网络链路及其当前延迟;以及确定在所述当前连接拓扑中从所述源网关设备到所述目的网关设备的最短路径,从而根据所述最短路径确定所述数据流的转发表。4.根据权利要求3所述的方法,其中,所述当前连接拓扑为加权有向图,所述加权有向图中各边的权重分别为从作为该边起点的网关设备到作为该边终点的网关设备的成本最低的网络链路的当前延迟;并且/或者根据所述最短路径确定所述数据流的转发表的步骤包括:在受所述最短路径经过的网关设备的流量容量的约束条件下根据所述最短路径确定所述数据流的转发表。5.根据权利要求4所述的方法,其中,在所述多个网关设备能动态扩缩容的情况下,所述方法还包括:根据在将所述最短路径作为从所述源网关设备到所述目的网关设备的传输路径的情况下确定的所述多个网关设备的最大流量需求,调整所述多个网关设备的流量容量。6.根据权利要求1所述的方法,还包括:确定从所述源网关设备到所述目的网关设备的快速恢复路径,其中,所述快速恢复路径所用的网络链路的类型不同于所述转发表所用的网络链路的类型。7.根据权利要求6所述的方法,其中,确定所述快速恢复路径的步骤包括:获取所述转发表中的作为中继节点的网关设备的集合;以及根据除所述转发表所用的网络链路的类型之外的其它类型的网络链路的当前延迟,确定所述中继节点的集合之中的使得传输路径延迟最少的中继节点子集,从而根据所述中继节点子集确定所述快速恢复路径。8.根据权利要求1所述的方法,其中,在所述多个网关设备能动态扩缩容的情况下,所述方法还包括:根据所述多个网关设备的流量需求的历史数据,预测未来一个或更多个时段的流量需
求;以及根据所预测的流量需求,调整所述多个网关设备的流量容量。9.根据权利要求8所述的方法,其中,调整所述多个网关设备的流量容量的步骤还包括:根据所述多个网关设备的前一时段实际使用的流量,调整所述多个网关设备的流量容量,以确保调整后的流量容量不小于前一时段实际使用的流量。10.根据权利要求1所述的方法,其中,所述方法还包括:根据从所述多个网关设备接收到的实时监测的网络链路状态来更新所述多个网关设备之间的网络链路的所述传输质量;并且/或者所述网络链路包括公网链路和/或专线链路;并且/或者所述网络链路的传输质量包括所述网络链路的延迟和/或丢包率;并且/或者所述网络链路的成本包括所述网络链路的流量使用费用;并且/或者确定所述转发表的步骤还包括:还根据所述多个网关设备的使用成本,确定所述数据流的转发表;并且/或者确定所述转发表的步骤包括:在为多个数据流确定各自的转发表的情况下,将所述多个数据流按照从其源网关设备到其目的网关设备的估计延迟值的降序排列,并依次为所述多个数据流确定各自的转发表。11.一种数据传输系统,包括:多个网关设备,被配置为在所述多个网关设备之间传输数据流;以及控制器,使用根据权利要求1-10中任一项所述的方法来控制所述多个网关设备。12.根据权利要求11所述的数据传输系统,其中,所述多个网关设备中的至少两个网关设备分别为部署在位于彼此不同的区域的云上的网关集群;并且/或者所述多个网关设备中的至少一个网关设备包括:网络链路状态监测模块,被配置为监测与其它网关设备之间的网络链路的传输质量;并且/或者所述至少一个网关设备被配置为:从所述控制器接收所述转发表、以及所述数据流从所述源网关设备到所述目的网关设备的快速恢复路径,其中,所述快速恢复路径所用的网络链路的类型不同于所述转发表所用的网络链路的类型;在监测到所述转发表所用的网络链路的传输质量低于阈值的情况下,将所述数据流改为通过所述快速恢复路径所用的网络链路来传输。13.一种用于多个网关设备的控制器,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行根据权利要求1-10中任一项所述的方法。14.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行根据权利要求1-10中任一项所述的方法。

技术总结
本公开涉及控制多个网关设备的方法、控制器、数据传输系统等。根据多个网关设备之间的网络链路的传输质量和成本,确定以所述多个网关设备中的两个分别为源网关设备和目的网关设备的数据流的转发表。由此,根据本发明,能够综合考虑网络链路情况来提供网络传输服务。综合考虑网络链路情况来提供网络传输服务。综合考虑网络链路情况来提供网络传输服务。


技术研发人员:钱坤 李波 翟恩南 马云飞
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2023.04.26
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐