基于输入队列的设备的输出队列延迟行为的制作方法

文档序号:8532104阅读:203来源:国知局
基于输入队列的设备的输出队列延迟行为的制作方法
【技术领域】
[0001] 本公开一般地涉及互联网协议(IP)通信领域,并且更具体地,涉及基于输入队列 的交换机。
【背景技术】
[0002] IP通信涉及以一个或多个数据分组的形式的消息的传输。数据分组包括源地址和 至少一个目的地地址。交换机是将流量朝目的地地址引导的网络设备。交换机包括多个输 入和多个输出。交叉(crossbar)交换机包括从多个输入中的每个输入到多个输出中的每 个输出的可选择的连接。交叉交换机仅允许一个数据分组在任何特定的时间被传输到任何 一个输出。
[0003] 与交换机相关联的问题之一是缓冲膨胀。当网络中的大型缓冲器被诸如IP语音、 实时视频流、金融交易和其它带宽饥渴的应用之类的交互式应用淹没时,缓冲膨胀以增加 的延迟和抖动的形式发生。由于存储器的价格方面呈下降趋势,因此交换机和路由器制造 商增加了用于缓冲器的存储器尺寸。缓冲器尺寸的增加降低了被丢弃的分组的风险,但增 加的缓冲器尺寸有助于缓冲膨胀。大部分满的或几乎满的缓冲器导致所传输的分组经历较 大的延迟。这可能引起超时或可能引起不良的终端用户体验。
【附图说明】
[0004] 本文参照下面的附图来描述示例实施例。
[0005] 图1示出了输入队列交换机的示例网络。
[0006] 图2示出了图1的网络的示例节点。
[0007] 图3示出了图2的示例节点的反馈回路。
[0008] 图4示出了图1的网络的另一示例节点。
[0009] 图5示出了图1的节点的另一示例实施例。
[0010] 图6示出了用于输入队列缓冲中的延迟公平的一个实施例的示例流程图。
【具体实施方式】 [0011]皿
[0012] 在一个实施例中,一种方法包括:从被耦合到输出端口的多个输入端口中的每个 输入端口接收虚拟输出队列长度值;将输出端口的合计的队列长度值计算为来自多个输入 端口的虚拟输出队列长度值的总和;以及针对多个输入端口中的至少一个输入端口生成反 馈消息,该反馈消息包括合计的队列长度值。
[0013] 在另一实施例中,一种网络设备包括至少一个通信接口和控制器。通信接口被耦 合到输出端口并且被配置为从被耦合到输出端口的多个输入端口中的每个输入端口接收 虚拟输出队列长度值。控制器被配置为:将输出端口的合计的队列长度值计算为来自多个 输入端口中的每个输入端口的虚拟输出队列长度值的总和,并且将合计的队列长度值与预 定阈值进行比较。控制器被配置为根据比较的结果来生成反馈,反馈被提供给多个输入端
[0014] 在另一实施例中,一种包含指令的非暂态计算机可读介质,当指令被执行时被配 置为执行以下处理:将输出端口的合计的队列长度值计算为与多个输入端口中的一个输入 端口相关联的多个虚拟输出队列长度值的总和;计算合计的队列长度值与预定的队列长度 值之间的差值;并且基于合计的队列长度值与预定的队列长度值之间的差值来生成消息。
[0015] 示例实施例
[0016] 网络中已经开发和采用了各种交换架构。两个示例包括输入队列交换机和输出队 列交换机。正如名称所暗示的,输入队列交换机涉及输入端口处的分组队列,并且输出队列 交换机在每个输出端口处对分组进行排队。
[0017] 在输出队列交换机的一个示例中,目的地为特定输出端口的分组当该输出端口繁 忙时在该输出端口处被排队在先入先出(FIFO)缓冲器中。当输出端口变成可用时,位于 FIFO缓冲器的头部处的分组被选择并且从输出端口被发出到链路。传入(incoming)分组 所经历的排队延迟是链路排出位于传入分组之前的所有分组所需的时间。使用利特尔法则 (Little' s Law),任何分组的最大排队延迟是缓冲器的尺寸除以链路的排出速率。
[0018] 在输入队列交换机中,另一方面,其中队列与每个输入端口相关联,队列中的分组 可以去往不同的输出端口。在针对每个输入端口具有单个FIFO队列的输入队列交换机中, 所有的分组被存储在单个FIFO队列中,而不管目的地输出端口或相关联的输出端口。存在 两种类型的与该架构相关联的缓冲延迟或延迟相关的问题。
[0019] 首先,延迟方面没有最大界限。每个输入端口做出关于缓冲限制的独立的决定。调 度器(其负责控制将分组从输入端口传输到输出端口)做出关于被分配给每个输入端口以 排出被缓冲的分组的带宽的决定。没有传达输入端口多久或何时由调度器来服务的机制。 因此,针对任何特定的分组,分组可能经历的延迟方面没有最大界限。
[0020] 其次,因为只有位于FIFO队列的头部处的分组可以被传输,所以如果该分组的输 出端口是繁忙的,则该分组后面的所有分组都被延迟。这样的延迟可以被称为队头(head of the line,H0L)阻塞延迟。因此,延迟的量从一个输入端口到另一输入端口可能大幅变 化。
[0021] 作为进一步的说明,考虑通过交换机的两个通信路径。数据在通过交换机的两个 服务器之间的通信路径中的一个通信路径上流动并且队列被部分填充。如果由于存储器的 可用性而导致队列较大,则第二通信路径上的分组可能被延迟大量的时间。在一些情况下, 如果分组被丢弃而不是被排队,因此分组可以在另一路线中被重新传输的话,则第二通信 路径将被改善。输入队列交换机设计选择增加的延迟而非被丢弃的分组。然而,在输出队 列交换机中,不管分组来自哪个输入端口,分组经历延迟,该延迟仅取决于分组的输出队列 头部中的分组的数量。其它输出队列中的分组不受影响。下面的实施例在输入队列交换机 中模仿或模拟输出队列交换机的缓冲延迟性能。
[0022] 图1示出了输入队列设备的示例网络。任意数量的输入队列交换机(包括单个 交换机)可以包括下面的实施例。网络可以是包括由一个或多个交叉交换机连接的多级 (stage)的结构。术语结构涉及在矩阵布置中将多个输入连接到多个输出的交叉交换机的 网格状图案。交叉交换机可以被称为交叉点交换机或矩阵交换机。交叉交换机可以连接M 个输入和N个输出,其包括M X N个交叉点,从而使得每个输入可选择地被连接到每个输 出。交叉点可选择地将输入行连接到输出行。在一个示例中,交叉交换机可以具有10个输 入、1000个输出和10000个交叉点。交叉交换机可以包括晶体管网络。当交叉点的晶体管 被启用时,输入通过交叉点被连接到输出。
[0023] 多个交叉点可以被同时激活,以便将分组同时传送到多个输出。然而,多个输入不 能被连接到单个输出。仲裁器阻止多个输入被同时连接到单个输出。仲裁器被配置为控制 交叉点。仲裁器可以包括逻辑或硬件,逻辑或硬件被配置为输出有选择地激发交叉点的控 制信号。控制信号可以激活或激发每个交叉点处的晶体管。物理连接(例如,电线或追踪) 将仲裁器连接到每个交叉点。仲裁器决定分组从输入队列出列的顺序。
[0024] 网络可以是包括作为节点的网络设备的局域网。网络设备可以是能够复制和转发 数据分组的任何设备。示例网络设备包括路由器和交换机。网络可以包括两个节点至数 千个节点。节点被布置在级中,上行级包括第一等级节点l〇〇a、中间级包括第二等级节点 102a-b、并且下行级包括第三等级节点104a-c。可以包括更多的中间阶段。如由实线101 所示出的,数据分组从上行级被转发到下行级。当传入分组在输入端口处被接收时,节点咨 询转发表并且为被分配给应该接收传入分组的副本的端点的每个出口端口复制传入分组。
[0025] 图2示出了图1的网络的示例节点。示例节点包括三个输入端口 112a_c、交叉交 换机114、仲裁器128、以及具有至少一个有效输出队列122的至少一个输出端口 120。图2 中所示出的示例包括单个输出端口 120。可以使用更多的输出端口。额外的、更少的或不同 的组件可以被包括在图2的节点中
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1