用于确定性网络的分层调度器的制造方法
【技术领域】
[0001] 本公开一般地涉及计算机网络,更具体地涉及确定性网络。
【背景技术】
[0002] 通常,确定性网络尝试精确地控制数据分组何时到达它的目的地。这种网络已经 在诸如工业自动化、车辆控制系统、以及要求控制命令到被控设备的精确递送的其它系统 之类的大量应用中看到了增加的兴趣。一个这样的确定性协议是确定性以太网,其承诺无 分组损失以及针对时间敏感流量的减少的抖动。这是通过对流的特别小心的点对点调度来 完成的,该调度大多数是离线完成并且通常会对流施加一些约束。
[0003] 由于确定性以太网中的时间敏感性和零分组损失约束,每个网络节点必须与主时 钟同步并且桥接器必须遵循具体调度。通常,了解网络拓扑、网络的约束、以及数据流的需 求的被称为路径计算元件(PCE)的实体负责针对网络的每个节点定义路径和调度算法。在 所有这些约束中,在确定性以太网应用中调度网络流量被稍微简化(这是因为数据流是周 期性的),因此允许流调度在一个时间周期内被解决。
[0004] 在确定性应用中抖动控制是首要的并且抖动控制可以进行或中断可能的流量调 度。在确定性以太网和其它确定性网络应用中,延迟敏感流只有在有可能将抖动控制得非 常好的情况下才可以被调度。然而,开发减少确定性网络中的抖动的新的调度技术是存在 挑战的并且是困难的。
【附图说明】
[0005] 结合附图参考下面的描述可以更好地理解这里的实施例,附图中相同的参考标号 表示等同或功能相似的元件,其中:
[0006] 图1示出了示例通信网络;
[0007] 图2示出了示例网络设备/节点;
[0008] 图3示出了数据流被分派到时隙的示例;
[0009] 图4示出了具有相关联的数据速率的数据流的示例;
[0010] 图5示出了示例分组递送调度;
[0011] 图6示出了表现出抖动的示例分组递送调度;
[0012] 图7示出了数据流基于它们的数据速率被分派到时隙的示例;以及
[0013] 图8示出了用于将数据流分派到传送时隙的示例简化过程。
【具体实施方式】
[0014] 皿
[0015] 根据本公开的一个或多个实施例,设备识别多个数据流的一组数据流速率。基于 该组数据流速率来构造数据传送时隙的哈夫曼树。分派给树中的父节点的时隙数目被确定 并且被均匀地分配给父节点的子节点,以将时隙分派给数据流。
[0016]
[0017] 计算机网络是通过用于在诸如个人计算机和工作站之类的端节点之间传输数据 的通信链路和分段互连的节点的地理上分布的集合。包括局域网(LAN)和广域网(WAN)在 内的很多类型的网络都是可用的。LAN通常通过位于相同物理位置(例如,建筑物或校园) 中的专用私人通信链路连接节点。另一方面,WAN通常通过长距离通信链路(例如,公共载 波电话线、光学光路径、同步光纤网络(SONET)、或同步数字系列(SDH)链路)连接地理上分 散的节点。互联网是连接遍布全世界的不同网络的WAN的示例,在各种网络上的节点之间 提供全球通信。节点通常通过根据预定义的协议(例如,传输控制协议/互联网协议(TCP/ IP))交换离散的数据帧或分组在网络上进行通信。在这种背景下,协议包含定义节点如何 相互交互的一组规则。计算机网络可以进一步通过诸如路由器之类的中间网络节点互连, 以扩展每个网络的有效"尺寸"。
[0018] 图1是示例计算机网络100的示意框图,示例计算机网络100说明性地包括通过 各种通信方法互连的节点/设备200。本领域技术人员将理解,计算机网络中可以使用任意 数目的节点、设备、链路等,并且这里示出的视图是为了简单起见。网络100还可以包括确 定通信路径106的路径计算元件(PCE),数据经由通信路径106被路由通过任意数目的中间 节点到达节点11。
[0019] 根据一些实施例,网络100是实现诸如确定性以太网之类的确定性协议的确定性 网络。换句话说,网络100内的分组到节点11的调度和递送可以由PCE精确地定时。例如, 网络100中的节点/设备可以使用共享的定时机制来协调网络100内的数据分组的发送和 接收。
[0020] 图2是示例节点/路由器200的示意框图,该示例节点/路由器200 (例如,如下 面所详细描述的感兴趣的节点、路径计算元件(PCE)等)可以有利地用于本文描述的一个 或多个实施例。节点包括通过系统总线250互连的多个网络接口 210、一个或多个处理器 220、以及存储器240。网络接口 210包含机械的、电气的信令电路,用于在被耦合到网络100 的物理链路上传送数据。网络接口可以被配置为使用包括TCP/IP、UDP、ATM、同步光学网络 (SONET)、无线协议、帧中继、以太网、光纤分布式数据接口(FDDI)等的各种不同的通信协 议发送和/或接收数据。注意,物理网络接口 210还可以被用于实现本领域技术人员已知 的一个或多个虚拟网络接口(例如,用于虚拟专用网(VPN)访问的虚拟网络接口)。
[0021] 存储器240包括可以由每个处理器220和网络接口 210寻址的多个存储位置,用 于存储与本发明相关联的软件程序和数据结构。一个或多个处理器220可以包括适于执行 软件程序、以及操控数据结构的必要元件或逻辑(例如,缓冲器/队列241)。路由器操作 系统242 (例如,思科系统公司的网络互连操作系统或I0S?)的多个部分通常驻留在存储器 240中并且被一个或多个处理器执行,其通过调用支持在路由器上执行的软件进程和/或 服务的网络操作来在功能上对节点进行组织。这些软件进程和/或服务可以包括路由和调 度进程248。对本领域技术人员显而易见的是,其它处理器和存储器手段(包括各种计算机 可读介质)可以被用于存储和执行与本文描述的发明技术有关的程序指令。注意,虽然根 旁路(root bypass)进程248被示出在集中式存储器240中,但是可选的实施例提供具体 地将在网络接口 210内进行操作的进程(例如,作为MC层212的一部分的进程"248a")。
[0022] 路由和调度进程248包含由每个处理器220执行的计算机可执行指令,以执行由 一个或多个路由协议(例如,内部网关协议(例如,开放最短路径优先"OSPF"和中间系统 对中间系统"IS-IS")、边界网关协议(BGP)等)提供的功能,如将被本领域技术人员所理 解的。这些功能可以被配置为管理路由和转发信息数据库(未示出),该路由和转发信息数 据库包含例如,用于做出路由和转发决定的数据。注意,路由和调度服务248还可以执行与 虚拟路由协议相关的功能,例如维护VRF实例(未示出),如本领域技术人员所理解的。另 外,路由和调度进程248可以通过调度网络内的分组的传送和/或递送来实现确定性路由。
[0023] 对本领域技术人员显而易见的是,其它处理器和存储器类型(包括各种计算机可 读介质)可以被用于存储和执行与本文描述的技术有关的程序指令。另外,虽然说明书描 述了各种进程,但是可以明确预见各种进程可以被具体化为被配置为根据本文的技术(例 如,根据相似进程的功能)进行操作的模块。另外,虽然进程被分别示出,但是本领域技术 人员将理解的是,进程可以是其它进程内的模块或例程。
[0024] 图3示出了根据一个实施例的数据流被PCE分派到时隙的示例。如所示出的,数 据传送可以被划分到任意数目的时隙302中,在时隙302期间分组可以被传送。来自任意 数目的数据流304-306 (例如,第1至第η数据流)的数据分组随后可以被PCE分派到时隙 302,以调度来自各种数据流的分组的递送。例如,来自数据流304的分组可以被分派到第 一时隙,然后将来自数据流306的分组分派到第二时隙等。在一些情况下,分派的调度可以 以循环方式被重复任意次,以递送存在于数据流304、306中的分组。
[0025] 如图4的示例中所示出的,在网络内数据流可以具有变化的数据速率。例如,假设 将被PCE调度进行递送的一组数据流包括数据流402-408。另外,假设数据流402-408分 别具有变化的数据速率410-416。在这样的情况下,在确定性网络中在维持数据流402-408 各自的数据速率410-416的同时调度来自每个数据流402-408的分组的传送变得最重要。 更具体地,调度来自具有不同数据速率的数据流的分组的递送会导致网络抖动的增加(例 如,在非周期性的基础上递送来自给定数据流的分组)。
[0026] 通常,抖动可以使用熵的概念在数学上被定义。例如,存在于第i个数据流中的抖 动可以被定义如下:
[0028] 其中,Xk1是第i个流的分组中的第k个间隔,并且n i是该