增强网络业务的通信的制作方法

文档序号:15742640发布日期:2018-10-23 22:33阅读:137来源:国知局
增强网络业务的通信的制作方法

本公开整体涉及计算机网络,包括增强网络如何以不同的通信需求传达业务。



背景技术:

计算机网络可具有有限的资源,并且需要以与带宽、延迟、抖动和/或数据丢失相关的不同需求来传达网络业务。例如,到用户的音频流可具有低延迟需求,但准许少量数据丢失—例如,如果存在显著延迟,则两个人之间的呼叫可为困难的,但是尽管有一些包丢失,但是该呼叫仍然可为可理解的。另一方面,跨网络的大文件通信可具有高带宽和完整性需求,但可不用太多关注延迟。现代计算机网络可尝试以考虑这些需求的方式调度业务,以便确保特定业务流被给予某些级别的服务质量(QoS)。



技术实现要素:

本公开描述了其中网络规划器用于增强如何在网络中的节点之间传达网络业务的实施方案。在各种实施方案中,网络规划器可分析关于网络的信息和关于经网络传达的网络业务流的信息(例如,关于延迟、带宽、通信频率、冗余等的需求)。然后,网络规划器可生成网络调度表,该网络调度表描述应该如何传达业务,以便适应各种业务需求。可将网络调度表分发给各种网络资源,诸如交换机和终端节点,使得根据网络调度表传达网络业务。

附图说明

图1是例示用于增强网络业务通信的系统的示例的框图。

图2是例示网络规划器的示例的框图。

图3是指示如由网络规划器所确定的何时应当传达各种流的时间线的示例。

图4A-图4C是例示网络调度表可如何说明用于传达流的不同需求的示例。

图5是例示用于确定网络调度表的示例性算法的流程图。

图6是例示用于增强网络通信的示例性方法的流程图。

图7是例示示例性计算机系统的框图。

本公开包括对“一个实施方案”或“实施方案”的提及。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指相同的实施方案。特定特征、结构或特性可与本公开一致的任何合适的方式被组合。

如本文所用,术语“第一”、“第二”等用作其之后的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等),除非有具体陈述。例如,当网络节点输送第一流和第二流时,术语“第一”和“第二”并不暗指在发送第二流之前发送第一流。换句话说,“第一”和“第二”流可以任何合适的次序发送或甚至并行发送。

如本文所用,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除附加因素可影响确定的可能性。也就是说,确定可仅基于所指定的因素或基于所指定的因素及其他未指定的因素。考虑短语“基于B确定A”。该短语指定B是用于确定A的因素或者B影响A的确定。该短语并不排除A的确定也可基于某个其他因素诸如C。该短语也旨在涵盖A仅基于B来确定的实施方案。如本文所用,短语“基于”因此与短语“至少部分地基于”是同义的。

具体实施方式

现在转向图1,图1描绘了用于增强网络业务通信的系统10的框图。在例示的实施方案中,系统10包括局域网(LAN)100,该局域网(LAN)包括经由一个或多个链路130A-K耦接到交换机120的多个节点110。在例示的实施方案中,系统10也包括网络规划器140,该网络规划器确定用于LAN 100的网络调度表142,如下面讨论的。

在一个实施方案中,局域网(LAN)100被配置为在节点110A-E之间传达各种网络业务流。在各种实施方案中,LAN 100被配置为使得其在一些实例中包括给定的一对节点之间的多个路径,并且在其他实例中包括节点之间的单个路径。例如,如图所示,节点110B可经具有链路130C和链路130D的路径或具有链路130B、链路130J和链路130E的路径与节点110D通信。然而,在该示例中,节点110A经由单个链路130A耦接到交换机120A—因此,节点110A和交换机120A之间的任何通信仅具有一个潜在路径。另外,在各种实施方案中,节点110可包括多个接口端口,以便支持多个链路130。例如,如图所示,节点110B可包括支持链路130B的第一网络端口和支持链路130C的第二单独端口。在许多实例中,包括冗余路径可提高网络100的可靠性,并增加节点110之间的业务吞吐量。在一些实施方案中,各种链路130也可具有不同的带宽和延迟。例如,链路130J可具有比链路130A的带宽和延迟高的带宽和低的延迟。交换机120也可具有不同的性能能力。结果,基于网络100的配置和正在使用的资源,LAN 100可具有各种限制。

在一个实施方案中,节点110A-E是被配置为发送和/或接收网络业务流的计算设备。在一些实施方案中,业务可整体被分类为1)时间触发的(TT),2)速率约束的(RC),3)尽力服务(BE),以及4)时间同步(TS)。时间触发的业务是可在静态间隔内按固定调度表发送的业务。分组可具有一致的、可预测的有效载荷大小,该大小在设计时可为已知的。然而,这种类型的业务可能不能容忍基于拥塞的丢失。速率约束的业务是可需要以一致的平均比特率发送的业务,该一致的平均比特率在设计时可为已知的。然而,分组可具有可变的有效载荷大小,并且可能不能按固定的调度表发送。这种类型的业务也可能不能容忍基于拥塞的丢失,并且具有时间敏感的递送的需求。尽力服务的业务是可能不能保证及时递送的业务。这种类型的业务可能不能按固定调度表发送,并且其带宽使用在设计时可为未知的。时间同步业务是用于使跨节点110的网络时间同步的业务。这种类型的业务可基于本地时钟以固定间隔发送,并且可容忍抖动。在一个实施方案中,该业务符合IEEE 802.1AS。在其他实施方案中,业务可不同地分类。在一些实施方案中,可需要冗余地传达特定流—例如,输送特别重要的数据的流。在此类实施方案中,经单独的路径输送相同流的两个实例可优选使用确认重传方案(诸如由传输控制协议(TCP)采用的),因为实施冗余流可需要较少的处理开销。在一些实施方案中,给定节点110也可将流组播到多个其他节点110。如本文所使用的,术语“组播”将根据其在本领域中的理解的含义来解释,并且包括将流并行地发送到多个节点。在一些实施方案中,给定节点110可组播冗余地递送到仅接收流的节点的子集的流。也就是说,节点110可将组播的流的单个实例发送到一个节点110,同时也经单独的路径将该流的两个或更多个实例发送到另一个节点110。

节点110可对应于经网络通信的任何合适的设备。在一些实施方案中,节点110可为家庭网络内的设备,诸如台式计算机和膝上型计算机、移动设备、智能电视、智能电器等。在一些实施方案中,节点110是加工厂内的机器,该机器被配置为执行各种操作。在一些实施方案中,节点110是连接到总线的微控制器。在一些实施方案中,节点110是车辆中的电子控制单元(ECU)诸如飞行器、船、汽车、休闲车等。如本文所使用的,术语“电子控制单元(ECU)”将根据其在本领域中的理解含义解释,并且包括控制车辆的一个或多个操作的嵌入式系统。如本文所使用的,术语“车辆网络”是指车辆内的互连部件(例如,ECU)的内部通信网络。在此类实施方案中,时间触发的业务的示例可包括为转向ECU生成的方向盘角度消息、为马达ECU生成的转矩控制消息和车轮速度消息、为制动系统ECU生成的制动控制消息等。速率约束的业务的示例可包括来自备用相机ECU的音频和视频流、与冲突避免ECU相关联的激光雷达(LIDAR)和雷达(RADAR)流等。尽力服务业务的示例可包括由信息娱乐ECU生成的信息娱乐消息、由各种ECU生成的诊断消息、软件更新等。

在一个实施方案中,交换机120被配置为在节点110之间路由流。因此,交换机120可从节点110接收各种流的分组,确定经哪些链路130发送分组,并且使分组排队直到它们可被调度用于传输。在一些实施方案中,交换机120支持以太网;然而,在其他实施方案中,可支持其他联网协议。在一些实施方案中,交换机120也可通过复制接收的流且经由单独的交换机端口经链路130将流的多个实例发送出去来促进组播。虽然独立于节点110示出交换机120,但是交换机120也可被视为LAN 100中的节点。

在一个实施方案中,网络规划器140是存储在非暂态计算机可读介质上且能够由计算机系统执行,以确定用于LAN 100的网络调度表142的软件(诸如下面参考图7所讨论的)。在各种实施方案中,该调度表可指定特定流何时将由节点110和交换机120传达的时隙。该调度表也可指示在这些时隙期间将使用的路径(或更具体地,构成路径的特定链路130)。如下面参考图2所讨论的,在各种实施方案中,网络规划器140通过分析关于LAN 100的拓扑的接收的信息和描述经LAN 100传达的流的信息来确定网络调度表142。该拓扑信息可识别各种网络资源(例如,节点110、交换机120和链路130),指示那些资源如何连接,并且指定那些资源的能力。流信息可识别特定流的发布者(即,源)和订阅者(即,目的地),以及指示传达流的各种需求,诸如期望的传输间隔、已知的有效载荷大小、延迟约束、传输频率、冗余通信等。在各种实施方案中,网络规划器140可执行以确定以适应这些需求的方式增强通信的调度表142。

在一些实施方案中,网络规划器140可执行以创建调度表142,该调度表有效地平衡跨LAN 100中的资源的负载。例如,规划器140可分析链路130的带宽和交换机120的吞吐量,以便适当地调度流。然后,规划器140可经较高带宽链路调度较高带宽流,同时经较低带宽链路调度较低带宽流。换句话说,不是在存在多个路径时经单个路径调度两个节点110之间的所有业务,而是规划器140可创建经多个路径分发业务的调度表142。

在一些实施方案中,网络规划器140也能够考虑节点110,该节点在其负载平衡分析中具有多个网络端口。例如,如图所示,节点110D可包括用于经链路130D通信的第一端口和用于经链路130E通信的第二端口。另外,这些端口可耦接到具有不同延迟和/或带宽的链路。响应于接收指定这些字符的网络拓扑信息,网络规划器140可创建调度表142,该调度表142将来自节点110D的第一流路由出耦接到链路130D的端口,并且将来自节点110D的第二流路由出耦接到链路130E的端口。在一些实例中,这两个流也可预定到相同节点。

基于网络规划器140的分析,在一些实施方案中,调度表142也可将时隙指派给与不同路径相关联的特定流。例如,调度表142可指定流将经由一个路径在第一间隔内传达且经由第二路径在第二间隔内传达。在一些实施方案中,调度表142可指定跨多个路径拆分特定流。因此,例如,可跨两个500Mb/s链路130分发1Gb/s流。下面参考图4A讨论跨多个路径的负载平衡的示例。

在各种实施方案中,网络规划器140可执行以创建调度表142,该调度表适应流的冗余传输,同时也准许流的非冗余传输。于是,规划器140可接收流信息,该流信息指示特定流要求冗余传输但一些其他流不要求冗余传输。然后,规划器140可尝试识别用于传达流的冗余实例(即,副本)的单独路径,并尝试识别用于传达另一个流的单个路径。如果规划器140不能识别这些路径,则规划器140可指示其不能满足该请求并指示LAN 100中阻止它这样做的(多个)特定缺陷。如果规划器140能够识别单独的路径,则规划器140然后可在调度表142中指示用于经路径传达流的时隙。尤其,在各种实施方案中,网络规划器140能够创建用于在网络(即,LAN 100)中路由冗余传输的调度表142,该网络(即,LAN 100)不一定具有网络中的所有节点之间的冗余链路(或者,换个说法就是,规划器140不需要网络的两个或更多个副本,以便准许调度流的冗余传输)。

在一些实施方案中,网络规划器140也能够创建调度表142,该调度表适应被组播到节点110集的特定流,使得仅节点110的子集接收流的冗余实例。例如,节点110B可将流传达到节点110A和节点110E,但是仅将流的两个冗余实例传达到节点110E。于是,规划器140可创建指定重叠时隙的调度表142,使得流可被组播到集中的每个节点,并且指定单独路径上的时隙,使得流可被冗余地传输到节点110的子集。下面参考图4B和图4C讨论在组播流期间的冗余传输的示例。

在各种实施方案中,调度表142被分发到节点110和交换机120,以确保它们知道调度表142,并根据调度表142进行通信。在一些实施方案中,调度表142可在装配LAN 100时散布到节点110和交换机120。在一些实施方案中,也可结合软件更新散布调度表142。例如,在LAN 100是车辆网络的实施方案中,调度表142可包括在车辆的软件更新中,该软件更新可经由空中下载更新(即,通过广域网(诸如互联网)无线接收的更新)来接收。在一些实施方案中,给定节点110或交换机120可不接收整个调度表142,而是接收适用于该节点110或交换机120的调度表142的一部分,如下面参考图2所讨论的。这可减少由给定节点存储的调度表信息的量。在一个实施方案中,规划器140可促进调度表142的分发;在其他实施方案中,分发可由单独的实体处置。

现在转向图2,图2呈现了例示网络规划器140的操作的框图。在例示的实施方案中,网络规划器140接收网络拓扑210和流信息220,并且生成网络调度表142,该网络调度表包括节点调度表230和交换机调度表240。在其他实施方案中,可与所示不同地实施网络规划器140。在一些实施方案中,元素210-元素240可包括比所示更多(或更少)的信息。

在一个实施方案中,网络拓扑210是描述LAN 100的拓扑(即,布局)的信息。如图所示,拓扑210可识别构成LAN 100的节点110、交换机120和链路130。拓扑210也可说明这些资源如何连接。于是,如图所示,拓扑210可指定由共享链路130的节点使用的端口。例如,拓扑210可指示具体网络端口,该具体网络端口由节点110D和交换机120B用于经链路130E通信。在一些实施方案中,拓扑210也可指示每个链路的特定速度—例如,它们相应的延迟和支持的带宽。

在一个实施方案中,流信息220识别将经LAN 100传达的流,并指定关于流的各种特性。如图所示,信息220可指示特定流(例如,“流A”)的源及其目的地。信息220可指示业务分类—例如,流是TT、RC、BE还是TS,如上面参考图1所讨论的。信息220也可指示需求诸如传输间隔(需要多么频繁地传输流)、有效载荷大小(期望的带宽的指示符)、延迟约束(需要多快地将流递送到目的地)等。

在一些实施方案中,流信息220也经由图2中的冗余约束222指示特定流是否授权冗余通信和/或请求的冗余的程度。例如,信息222不仅可指示将冗余地传达流,而且也指示例如应该传达流的三个实例。在一些实施方案中,也可基于每个订阅者(即,基于每个目的地)来指定冗余约束222。例如,如将关于图4B所讨论的,流信息220可指定节点110E应该接收流的冗余实例,并且节点110A应该接收该流的单个副本。于是,规划器140然后可产生说明这些冗余标准的网络规划142。值得注意的是,通过允许以此类精细粒度指定冗余,网络规划器140能够创建调度表142,该调度表容纳组播流,该组播流冗余地发送到一些但不是所有节点110。

在一些实施方案中,流信息220也指示用于给定流的一个或多个优选路径224。例如,如果节点110B正在将流的两个冗余实例传达到节点110D,则信息220可指定用于使用链路130C和链路130J来输送该通信的偏好。在此类实施方案中,网络规划器140可在确定如何将流路由到节点110B和节点110D之间时更有利地对链路130C和链路130J进行加权。然而,在一些实例中,网络规划器140可基于各种其他因素(例如,可用带宽、链路130C和链路130J的延迟、对经链路130C和链路130J路由更高优先级的流的期望等)的考虑来确定不经链路130C和/或链路130J路由流的实例。在一些实施方案中,优选路径224也可指示不使用特定路径的偏好。例如,信息220可指示不经链路130C路由特定流的偏好。

在一个实施方案中,节点调度表230是适用于节点110中的相应一个节点的调度表142的部分。(如上面提到的,在一些实施方案中,给定节点110可不接收整个调度表142,而是仅接收适用于该节点110的整个调度表142的部分。)如图所示,节点调度表230可指示由给定节点110传输和/或接收的特定流。在一些实施方案中,节点调度表230也可指示用于传达流的(多个)特定源端口和(多个)目的地端口。也就是说,不是指示给定链路的标识符,而是可依据链路130耦接到的节点端口和/或交换机端口,链路可被识别到节点110。例如,节点110D的调度表230可指示节点110D将流从其源端口#2传输到交换机120B的目的地端口#4(在该示例中,源端口#2和目的地端口#4是链路130E耦接到的物理端口)。在各种实施方案中,节点调度表230也指示节点230何时传达流的一个或多个时隙。

在例示的实施方案中,给定时隙被表达为相位偏移和传输间隔。在一些实施方案中,网络调度表142适用于重复通信窗口(即,通信循环)。例如,调度表142可指定如何在两分钟窗口内传达业务。在这两分钟循环结束时,循环可再次开始。相位偏移指示在该循环内何时开始传输。例如,相位偏移可指定传输在20ms开始进入循环。传输间隔指示多么频繁地重复传输。例如,传输间隔可指定每100ms发生传输。于是,使用20ms的相位偏移和100ms的间隔可导致20ms、120ms、220ms等处的传输。因此,可依据相位偏移和传输间隔表达用于传达给定流的时隙。在其他实施方案中,可不同地表达时隙。

在一个实施方案中,交换机调度表240是适用于交换机120中的相应一个交换机120的调度表142的部分。与节点调度表230一样,在一些实施方案中,给定交换机调度表240可识别将由给定交换机120传达的流。调度表240可依据源端口和目的地端口指示将被用于给定流的链路130。(尤其,在一些实例中,调度表240可指定用于给定流的单个接收端口和用于流的多个传输端口。这样做时,调度表240可使交换机120创建经单独的传输端口传输的流的两个复制实例。调度表240也可依据相位偏移和传输间隔指示将用于给定流的时隙。

下面参考图5讨论用于从网络拓扑210和流信息220生成网络调度表142的算法。

现在转向图3,图3描绘了用于根据网络调度表142传达业务的时间线300的示例。更具体地,在该示例中,时间线300与在开始302和结束304之间的给定通信循环期间经链路130D和链路130E在交换机120B和节点110D之间的业务的通信有关。于是,在一些实施方案中,交换机120B和节点110D可响应于分别接收交换机调度表240和节点调度表230,以所描绘的方式交换业务。

如图所示,时间线300可从经链路130D和链路130E两个时间触发(TT)流A和时间触发(TT)流B的传输开始。如上面所提到的,调度表142可指定经单独的链路流A和流B的传输,以便更好地平衡跨链路130D和链路130E的负载。在该示例中,时间线300然后可包括经链路130D和链路130E的速率约束的(RC)流C和TT流D的冗余传输。接下来,跨链路传达尽力服务(BE)流E、尽力服务(BE)流F和尽力服务(BE)流G。(在一些实施方案中,不是指定流E、流F和流G的时隙,而是调度表142可仅指示这些时隙尚未被分配且因此可用于BE业务。)最后,传达TT流H、RC流I和时间同步(TS)流J。如上面提到的,在一些实施方案中,TS流可用于使跨节点110和交换机120的时间同步—并且因此确保跨所有节点110和交换机120协调开始时段302和结束时段304。

现在转向图4A,图4A描绘了负载平衡的示例400。如上面提到的,在一些实施方案中,网络规划器140可创建网络调度表142,该网络调度表跨连接节点110的多个路径平衡两个节点110之间的业务。因此,如图所示,节点110E可经由包括链路1、链路2和链路4(图1中的链路130G、链路130I和链路130K)的第一路径和包括链路1和链路3(链路130G和链路130L)的第二路径连接到节点110C。也如图所示,链路1、链路2、链路3和链路4可分别支持1.5Gb/s、1Gb/s、100Mb/s和1Gb/s的带宽。在示例400中,节点110E旨在将500Mb/s流A和50Mb/s流B传达到节点110C。如上面讨论的,在各种实施方案中,网络规划器140可执行以考虑这些特性且生成适当的网络调度表142。例如,如图所示,规划器140生成经链路1、链路2和链路4的路径路由流A且经链路1和链路3的路径路由流B的调度表142。在该示例中,也值得注意的是,规划器140能够考虑节点110C的两个网络端口—即,将节点110C耦接到链路4的节点110C的网络端口,以及将节点110C耦接到链路3的节点110C的网络端口。这样做时,规划器140跨路径创建更平衡的负载分布,并且因此为经链路1、链路2和链路4的更多速率约束的流释放带宽。

现在转向图4B,图4B描绘了在组播的上下文内冗余地传达流的示例410A。如上面提到的,在一些实施方案中,给定节点可将流组播到多个节点110,使得流被冗余地传达到参与组播的节点110中的一个或多个节点。因此,如图所示,节点110B可旨在将流A组播到节点110A和节点110E,并将流B发送到节点110A。在该示例中,也可存在用于将流A的至少两个实例提供到节点110E的需求。结果,规划器140可创建调度表142,该调度表经包括链路1和链路3的路径将流A的第一实例从节点110B路由到节点110E,并且经包括链路2和链路4的路径路由流A的第二实例。调度表142也可经链路1和链路5的路径将流A和流B的单个实例路由到节点110A。虽然未示出,但是在一些实施方案中,调度表142可指定交换机120A将复制流A,并且将流A传达出与链路5和链路3两者相关联的其网络端口。值得注意的是,在该示例中,网络规划器140不将流A的冗余副本输送到节点110A以及到节点110E,因为在该示例中节点110E是旨在接收冗余实例的唯一节点。还有,应当注意,在例示的实施方案中,网络规划器140能够生成网络调度表142,该网络调度表指定在网络(即,LAN 100)中的冗余流的传输,其中冗余路径不存在于网络中的每个节点之间(即,对于节点110A仅存在一个路径)。

现在转向图4C,图4C描绘了冗余地传达流的另一个示例410B。在各种实施方案中,网络规划器140不仅能够支持冗余通信,而且能够创建调度表142以经非对称路径路由流的两个或更多个实例。因此,如图所示,网络规划器140可创建网络调度表142,该网络调度表经通过三个链路1、链路3和链路6的路径路由流A的一个实例,并且经通过两个链路2和链路4的路径路由流A的另一个实例。这些路径与流A经两个对称路径路由的示例410A形成对比,因为那些路径中的两个仅包括两个链路,如上面讨论的。当例如在两个节点110之间不存在对称路径时,能够经非对称路径路由流的冗余实例可为有益的。也为了更大的带宽利用和/或为了较小的延迟,以该方式路由流时,它也可为有益的。

现在转向图5,图5描绘了用于确定网络调度表的算法500的流程图。算法500是可由网络规划器140实施以生成网络调度表142的算法的一个实施方案。在一些实施方案中,可与所示不同地实施算法500。

在步骤510中,初始设置被执行用于在步骤520和步骤530中进行的分析。在一个实施方案中,该设置包括处理网络拓扑210以在子步骤512处构建代表LAN 100的双向图形,使得节点110和交换机120由图形中的节点表示,并且链路130由节点之间唯一识别的边缘表示。还通过检查每个时间触发的流的传输间隔(如流信息220中所识别的)且找到所有周期的最小公倍数在子步骤514处确定通信循环的长度。在子步骤516处构建时间触发的流的列表,并且通过从最短到最长的传输间隔来存储时间触发的流的列表。

在步骤520中,分析网络图形以将时间触发的流放置在调度表142中。在一个实施方案中,该分析包括在子步骤522处基于传输间隔将时间触发的流排序并尝试首先用最短间隔调度流。对于每个目的地节点,在子步骤524处确定从源节点到该目的地节点的最短加权路径,其中偏好被赋予给为其他节点确定的路径,以便重新使用路径。在一些实施方案中,可使用迪杰斯特拉(Dijkstra)的最短路径算法的应用程序来识别最短路径。然后在子步骤526处将这些确定的路径添加到用于传达流的路径的列表。如果目的地节点将接收流的冗余传输,则创建网络图形的副本,但是已经选择用于传输流的第一实例的路径被移除,以便选择用于传输流的第二实例的第二不同路径。然后将该第二路径添加到用于传达流的路径列表中。如果特定流要求附加冗余路径,则可以类似的方式选择其他路径。如果可能找不到足够的路径,则可生成错误。一旦路径列表完成,就在子步骤528处选择与路径相关联的空闲时隙,并将空闲时隙标记为不可用。在一些实施方案中,当选择时隙时,可将附加保护带添加到这些时隙以说明由较低优先级干扰业务致使的潜在抖动。如果找不到足够的空闲时隙,则可生成错误。当选择路径时,然后通过由流使用的时间量更新每个边缘的权重。

在步骤530中,分析网络图形以将速率约束的流放置在调度表142中。在一个实施方案中,该分析包括在子步骤532处针对每个速率约束的流以及对于该流的每个目的地节点,确定从源节点到该目的地节点的最短加权路径,其中偏好被赋予给为其他节点确定的路径,以便重新使用路径。然后在子步骤534处将确定的路径添加到用于传达该流的路径列表。如果目的地节点将接收流的冗余传输,则创建网络图形的副本,但是为第一传输已经选择的路径被移除,以便为第二传输选择第二不同的路径。如果找到,则将该第二路径添加到路径列表。可以类似的方式选择附加的冗余路径。如果可能找不到足够的路径,则可生成错误。当在子步骤536处在网络路径上分配带宽时,通过由流使用的时间量更新路径的每个边缘的权重,以便确保所有流的聚合带宽适合路径。

现在转向图6,图6描绘了用于增强跨网络的业务通信的方法600的流程图。方法600是可由计算机系统诸如一个执行网络规划器140执行的方法的一个实施方案。在一些实例中,方法600的执行可允许更好地利用网络的有限资源。

在步骤610中,计算机系统接收关于网络的信息(例如,网络拓扑210)。在一个实施方案中,该信息指示网络的第一节点包括具有第一端口和第二端口的网络接口。

在步骤620中,计算机系统接收识别将在网络的节点之间传达的多个流的业务信息(例如,流信息220)。在一些实施方案中,这些节点包括网络交换机。

在步骤630中,计算机系统确定用于传达流的调度表。在一个实施方案中,该调度表指示第一节点将经由第一端口传达流中的第一流,并且经由第二端口传达流中的第二流。在一些实施方案中,确定包括为第一流选择第一端口和为第二流选择第二端口以平衡跨第一端口和第二端口的负载。在一些实施方案中,调度表指示网络的节点将分发正被组播到第二节点和第三节点的流,并且调度表指示该节点要将流的冗余实例传达到第二节点,并且要将流的单个实例传达到第三节点。在一些实施方案中,所指示的节点是网络交换机。

示例性计算机系统

现在转向图7,图7描绘了示例性计算机系统700的框图。计算机系统700是可用于实施节点110中的一个或多个节点的计算机系统和/或执行网络规划器140的计算机系统的一个实施方案。在例示的实施方案中,计算机系统700包括处理器子系统720,该处理器子系统经由互连器780(例如,系统总线)耦接到系统存储器740和(多个)I/O接口760。(多个)I/O接口760耦接到一个或多个I/O设备770。计算机系统700可为各种类型的设备中的任一种,各种类型的设备包括但不限于服务器系统、个人计算机系统、台式计算机、膝上型计算机或笔记本式计算机、大型计算机系统、平板计算机、手持式计算机、工作站、网络计算机、消费设备(诸如移动电话、音乐播放器或个人数据助理(PDA))、嵌入式系统等。虽然为方便起见,图7中示出了单个计算机系统700,但是系统700也可被实施为一起操作的两个或更多个计算机系统。

处理器子系统720可包括一个或多个处理器或处理单元。在计算机系统700的各种实施方案中,处理器子系统720的多个实例可耦接到互连器780。在各种实施方案中,处理器子系统720(或720内的每个处理器单元)可包含高速缓存或其他形式的板上存储器。在一些实施方案中,上述网络规划器140可由处理器子系统720执行。

系统存储器740是可用的存储程序指令,该可用的存储程序指令可由处理器子系统720执行以使系统700执行本文描述的各种操作。可使用不同的物理存储器介质诸如硬盘存储装置、软盘存储装置、可移动磁盘存储装置、闪速存储器、随机存取存储器(RAM-SRAM、EDO RAM、SDRAM、DDR SDRAM、RAMBUS RAM等)、只读存储器(PROM,EEPROM等)等等来实施系统存储器740。计算机系统700中的存储器不限于诸如存储器740的主存储器。相反,计算机系统700也可包括其他形式的存储装置,诸如处理器子系统720中的高速缓存存储器和I/O设备770上的辅助存储装置(例如,硬盘驱动器、存储阵列等)。在一些实施方案中,这些其他形式的存储装置也可存储能够由处理器子系统720执行以执行本文描述的操作的程序指令。于是,在一些实施方案中,网络规划器140是存储在系统存储器740中的程序指令,该程序指令可由处理器子系统720执行以执行本文描述的各种操作。

根据各种实施方案,I/O接口760可为被配置为耦接到其他设备且与其他设备通信的各种类型的接口中的任一种。在一个实施方案中,I/O接口760是从前侧到一个或多个后侧总线的桥芯片(例如,南桥)。I/O接口760可经由一个或多个对应的总线或其他接口耦接到一个或多个I/O设备770。I/O设备770的示例包括存储设备(硬盘驱动器、光盘驱动器、可移动闪存驱动器、存储阵列、SAN或其相关联的控制器)、网络接口设备(例如,到本地或广域网)或其他设备(例如,图形、用户界面设备等)。在一个实施方案中,计算机系统700经由网络接口设备770耦接到网络(例如,被配置为经WiFi、蓝牙、以太网等进行通信)。

基于在前的描述,设想系统、计算机可读介质和用于确定网络调度表的方法的各种实施方案,各种实施方案包括但不限于下面列出的实施方案。

1.一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其上的程序指令,该程序指令能够由计算机系统执行,以致使计算机系统执行包括以下的操作:

接收拓扑信息,该拓扑信息描述可用于在网络中的节点之间传达多个流的该网络的资源;

接收业务信息,该业务信息描述用于传达多个流的需求,其中业务信息指示多个流中的第一流将被传输到多个节点,并且其中业务信息还指示第一流将被冗余地传输到多个节点中的第一节点;以及

基于拓扑信息和业务信息来确定网络调度表,该网络调度表指定如何经网络传达多个流,其中网络调度表指示第一流的两个实例将被传达到第一节点,并且其中网络调度表指示第一流的单个实例将被传达到多个节点中的第二节点。

2.根据实施方案1所述的计算机可读介质,其中拓扑信息包括关于连接两个节点的第一路径和第二路径的信息;并且

其中业务信息指示用于在两个节点之间传达第二流和第三流的需求;并且

其中网络调度表指示将经第一路径传达第二流并且将经第二路径传达第三流。

3.根据实施方案2所述的计算机可读介质,其中拓扑信息指示用于第一路径的支持带宽和用于第二路径的支持带宽;

其中业务信息将期望的带宽指示为传达第二流的需求;并且

其中所述确定包括基于支持带宽和期望的带宽来选择用于传达第二流的第一路径。

4.根据实施方案1所述的计算机可读介质,其中网络调度表指示何时第一流将被传达到多个节点的时隙。

5.根据实施方案1所述的计算机可读介质,其中所述确定包括从拓扑信息构建图形,其中图形代表网络。

6.根据实施方案5所述的计算机可读介质,其中所述确定包括:

使用图形为多个流中的第一类型的流选择时隙的初始集;以及使用图形为多个流中的第二类型的流选择时隙的后续集。

7.根据实施方案1所述的计算机可读介质,其中所述操作还包括:

将网络调度表分发到网络中的节点,其中网络调度表可由节点使用以确保用于满足传达多个流的需求。

***

虽然上面已经描述了具体实施方案,但这些实施方案不旨在限制本公开的范围,即使仅相对于特定特征描述单个实施方案的情况下也是如此。本公开中提供的特征的示例旨在为例示性的,而不是限制性的,除非另有陈述。如将对于具有本公开的益处的本领域技术人员来说显而易见的,上面的描述旨在涵盖此类另选方案、修改和等同物。

本公开的范围包括本文(明确或暗示)公开的任何特征或特征组合或其任何概括,而无论其是否减轻本文解决的任何或所有问题。于是,在本专利申请(或要求其优先权的专利申请)的申请过程期间可针对特征的任何此类组合制定新的权利要求。特别地,参考所附权利要求书,可将从属权利要求的特征与独立权利要求的特征进行组合,并可以任何适当的方式而不是仅以所附权利要求书中所列举的具体组合来组合来自相应独立权利要求的特征。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1