交换结构数据包流重排序制造技术

技术编号:24805417 阅读:38 留言:0更新日期:2020-07-07 22:08
本发明专利技术涉及交换结构数据包流重排序。一种耦接到网络装置内的交换结构的入口结构端点基于拥塞状态重排序数据包流。在一个示例中,入口结构端点接收用于跨交换结构交换的数据包流。入口结构端点将每个数据包流的每个数据包分配给快路径或慢路径以进行数据包交换。为了生成用于跨交换结构交换的单元流,入口结构端点处理来自快路径和慢路径的数据包以维持每个数据包流内的数据包的先进先出排序。尽管在第二数据包流的数据包之前接收到第一数据包流的数据包,但入口结构端点在交换第二数据包流的数据包之后交换第一数据包流的数据包。

【技术实现步骤摘要】
交换结构数据包流重排序
本公开涉及计算机网络,并且更具体地,涉及在计算机网络内传送数据包。
技术介绍
计算机网络为可以交换数据和共享资源的互连计算装置的集合。在诸如以太网的基于数据包的网络中,计算装置通过将数据划分为称为数据包的可变长度块来传送数据,所述可变长度块被分别通过网络从源装置路由到目的地装置。目的地装置从数据包中提取数据并将数据组合成其原始形式。某些装置(称为路由器)维持代表网络拓扑的路由信息。路由器交换路由信息,以便保持通过网络的可用路由的准确表示。“路由”通常可以定义为网络上两个位置之间的路径。在接收到输入数据包时,路由器检查数据包内的信息(通常称为“密钥”),以根据路由信息选择数据包所转发至的适当下一跳。因特网内存在各种类型的路由器。例如,网络服务提供商(NSP)维持“边缘路由器”以向客户提供因特网接入和其他服务。NSP可以提供的服务的示例包括IP语音(VoIP),异步传输模式(ATM)的接入或帧中继通信,因特网协议(IP)数据服务以及诸如视频流传输的多媒体服务。NSP的边缘路由器经常将网络流量传送到高速“核心路由器”,核心路由器通常被视为构成因特网的主干。这些核心路由器通常包括比边缘路由器多得多的处理资源,并且被设计为处理大量网络流量。在一些示例中,核心路由器或另一路由器或交换装置可以采用分布式多级交换结构体系结构,在该结构中,网络包遍历位于路由器的分布式转发组件中的交换结构的多个级以从交换结构的入口点行进到交换结构的出口点。作为一个示例,交换结构可以实现为单个多级Clos交换结构,其在交换结构的各级之间中继数据包。典型的多级Clos交换结构具有多个互连的交换机以形成多个级。在典型的布置中,交换结构包括入口(或“第一”)级、一个或多个中间级和出口(或“最终”)级,每个级具有一个或多个交换机(例如,交叉交换机-通常更简单地称为“交叉交换机”)。此外,交换结构可以被实现为使得交换机被布置为多个并行结构平面,每个并行结构平面通过多个级提供从入口端口到出口端口的独立转发,其中一个或多个并行结构平面可以被视为备用结构平面。换句话说,每个并行结构平面可以被视为多级Clos交换结构的独立部分,其中每个平面提供交换冗余。交换结构在多个结构端点之间交换数据包。通常,每个结构端点都能够使用交换结构以到达连接到交换结构的任何其他结构端点并将数据包发送到该结构端点。在一些示例中,结构端点交换称为“单元”的数据单元,每个单元具有定义单元序列中单元的位置的序列号。从入口结构端点到出口结构端点的单元序列称为单元流。
技术实现思路
通常,描述了用于基于每个数据包流的拥塞状态对来自数据包流的数据包进行重排序以产生单元流以允许单元流中的非拥塞数据包流的数据包绕过拥塞数据包流的数据包的技术。入口结构端点接收多个数据包流并处理该数据包流以生成称为“单元”的离散数据单元流,以用于跨交换结构交换到出口结构端点。入口结构端点用序列号标记每个单元,该序列号定义在形成至特定出口结构端点的单元流的单元序列中的单元的位置。特定数据包流内的数据包应由入口结构端点处理,并根据数据包的先进先出(FIFO)排序交换到出口结构端点,以确保数据包流的完整性。本文描述的技术允许对来自不同数据包流的数据包进行非FIFO排序。例如,耦接到网络装置内的交换结构的入口结构端点可以使用数据包流的拥塞状态来将数据包流的数据包分配给用于数据包交换的快路径或用于数据包交换的慢路径以允许非拥塞数据包流的数据包绕过拥塞数据包流的数据包。入口结构端点接收用于跨交换结构交换到出口结构端点的数据包流。入口结构端点至少基于数据包流的拥塞状态,将所接收的数据包流的每个数据包流的数据包分配给用于数据包交换的快路径和用于数据包交换的慢路径中的一者。在一些示例中,快路径使用网络装置的内部存储器来缓冲用于内部交换的数据包,而慢路径使用网络装置的外部存储器来进行内部交换。入口结构端点处理来自快路径和慢路径的数据包,以生成用于跨交换结构交换到出口结构端点的单元流,同时在每个数据包流中保持数据包的FIFO排序,但不保持不同数据包流的数据包的FIFO排序。通过这种方式,入口结构端点在每个数据包流内保留了正确的数据包排序,但允许分配给快路径的非拥塞数据包流的数据包绕过分配给慢路径的拥塞数据包流的数据包,以防止拥塞数据包流影响非拥塞数据包流的吞吐量。本文描述的包重排序技术可以为计算机相关的网络流量转发领域提供一个或多个特定的技术改进。例如,因为结构端点可以相对于其他数据包流的数据包对数据包流的数据包进行重排序,所以该技术可以通过允许非拥塞数据包流的数据包绕过拥塞数据包流的数据包(否则,这在严格的FIFO排序下将阻塞非拥塞数据包流的数据包)来提高网络装置的吞吐量。此外,本公开的技术可以允许结构端点有效地使用低延迟、内部存储器和可扩展的更高延迟的外部存储器,以便通过增加结构端点可以同时处理的数据包流的数量来提高结构端点的可扩展性,而结构端点不会受到因使用外部存储器产生的更高延迟造成的瓶颈的影响。因此,本公开的技术可以产生改进的数据包流吞吐量、更有效地使用网络装置的存储器以及整体上更好的资源利用。在一些示例中,描述了一种方法,包括:由耦接到网络装置内的交换结构以交换单元的多个结构端点的入口结构端点接收跨交换结构交换到用于数据包流的多个结构端点的出口结构端点的多个数据包流;通过入口结构端点将多个数据包流的每个数据包流的每个数据包分配给用于数据包交换的快路径和用于数据包交换的慢路径中的一者;并且由生成用于跨交换结构交换到出口结构端点的单元流的入口结构端点处理来自快路径和慢路径的数据包以维持多个数据包流的每个数据包流内的数据包的先进先出排序,并且尽管第一数据包流的数据包在第二数据包流的数据包之前被入口结构端点接收,入口结构端点在交换数据包流的第二数据包流的数据包之后交换数据包流的第一数据包流的数据包。在一些示例中,描述了一种网络装置,包括:耦接到网络装置内的交换结构以交换单元的多个结构端点,多个结构端点的入口结构端点被配置为:接收跨交换结构交换到用于数据包流的多个结构端点的出口结构端点的多个数据包流;将多个数据包流的每个数据包流的每个数据包分配给用于数据包交换的快路径和用于数据包交换的慢路径中的一者;并且为了产生跨交换结构交换到出口结构端点的单元流,处理来自快路径和慢路径的数据包以维持多个数据包流的每个数据包流内的数据包的先进先出排序,并且尽管第一数据包流的数据包在第二数据包流的数据包之前被入口结构端点接收,但在交换数据包流的第二数据包流的数据包之后,交换数据包流的第一数据包流的数据包。在一些示例中,描述了一种非暂时性计算机可读介质,其包括指令,所述指令在被执行时被配置为使得网络装置的一个或多个处理器执行耦接到网络装置内的交换结构以交换单元的多个结构端点的入口结构端点,所述入口结构端点被配置为:接收跨交换结构交换到用于数据包流的多个结构端点的出口结构端点的多个数据包流;将多个数据包流的每个数据包流的每个数据包分配给用于数据包交换的快路径和用于数据包交换的慢路径本文档来自技高网
...

【技术保护点】
1.一种方法,包括:/n由耦接到网络装置内的交换结构以交换单元的多个结构端点的入口结构端点接收跨所述交换结构交换到用于数据包流的所述多个结构端点的出口结构端点的多个数据包流;/n由所述入口结构端点将所述多个数据包流的每个数据包流的每个数据包分配给用于数据包交换的快路径和用于数据包交换的慢路径中的一者;以及/n由生成用于跨所述交换结构交换到所述出口结构端点的单元流的所述入口结构端点处理来自所述快路径和所述慢路径的数据包以维持所述多个数据包流的每个数据包流内的数据包的先进先出排序,并且尽管所述第一数据包流的数据包在所述第二数据包流的数据包之前被所述入口结构端点接收,所述入口结构端点在交换所述数据包流的第二数据包流的数据包之后交换所述数据包流的第一数据包流的数据包。/n

【技术特征摘要】
20181228 US 16/235,8741.一种方法,包括:
由耦接到网络装置内的交换结构以交换单元的多个结构端点的入口结构端点接收跨所述交换结构交换到用于数据包流的所述多个结构端点的出口结构端点的多个数据包流;
由所述入口结构端点将所述多个数据包流的每个数据包流的每个数据包分配给用于数据包交换的快路径和用于数据包交换的慢路径中的一者;以及
由生成用于跨所述交换结构交换到所述出口结构端点的单元流的所述入口结构端点处理来自所述快路径和所述慢路径的数据包以维持所述多个数据包流的每个数据包流内的数据包的先进先出排序,并且尽管所述第一数据包流的数据包在所述第二数据包流的数据包之前被所述入口结构端点接收,所述入口结构端点在交换所述数据包流的第二数据包流的数据包之后交换所述数据包流的第一数据包流的数据包。


2.根据权利要求1所述的方法,
其中,将所述多个数据包流的每个数据包流的数据包分配给用于数据包交换的快路径和用于数据包交换的慢路径中的一者包括:
至少基于所述第一数据包流被拥塞的拥塞状态,将所述第一数据包流的数据包分配给用于数据包交换的所述慢路径;以及
至少基于所述第二数据包流未被拥塞的拥塞状态,将所述第二数据包流的数据包分配给用于数据包交换的所述快路径。


3.根据权利要求2所述的方法,
其中,接收跨所述交换结构交换到用于数据包流的所述多个结构端点的出口结构端点的多个数据包流包括在接收所述第二数据包流之前接收所述第一数据包流,以及
其中,处理来自所述快路径和所述慢路径的数据包包括在处理所述慢路径的所述第一数据包流的数据包之前处理所述快路径的所述第二数据包流的数据包。


4.根据权利要求1所述的方法,
其中,将所述多个数据包流的每个数据包流的数据包分配给用于数据包交换的快路径和用于数据包交换的慢路径中的一者包括将所述第一数据包流的数据包分配给用于数据包交换的所述慢路径,
其中,所述方法进一步包括:
对于分配给用于数据包交换的所述慢路径的所述第一数据包流的每个数据包,递增所述第一数据包流的流计数器;以及
对于从用于数据包交换的所述慢路径处理的所述第一数据包流的每个数据包,递减所述第一数据包流的流计数器。


5.根据权利要求1所述的方法,
其中,所述第一数据包流的数据包为第一数据包,
其中,所述第一数据包流的流计数器指示当前分配给所述慢路径的所述第一数据包流的数据包的数量,所述方法进一步包括:
响应于确定所述第一数据包流的流计数器指示所述第一数据包流的非零数量的数据包当前被分配给所述慢路径,将所述第一数据包流的第二数据包分配给用于数据包交换的所述慢路径;以及
响应于确定所述第一数据包流的流计数器指示所述第一数据包流的数据包当前没有分配给所述慢路径,将所述第一数据包流的第三数据包分配给用于数据包交换的所述快路径。


6.根据权利要求1所述的方法,其中,处理来自所述快路径和所述慢路径的数据包包括将来自所述快路径的数据包流的数据包与所述慢路径的数据包流合并,并且从合并的数据包生成用于跨交换结构交换到所述出口结构端点的单元流。


7.根据权利要求1所述的方法,
其中,将数据包分配给所述快路径包括将所述数据包推送到快路径队列,以及
其中,将数据包分配给所述慢路径包括:一旦从外部存储器读取所述数据包,就将所述数据包推送到慢路径队列,以及
其中,处理来自所述快路径和所述慢路径的数据包包括通过选择性地使来自所述慢路径队列和所述快路径队列的数据包出队来合并数据包流的数据包。


8.根据权利要求7所述的方法,其中,轮询调度程序选择性地使来自所述慢路径队列和所述快路径队列的数据包出队。


9.根据权利要求1所述的方法,其中,将所述多个数据包流的每个数据包流的每个数据包分配给用于数据包交换的快路径和用于数据包交换的慢路径中的一者包括:
响应于确定所述第一数据包流的数据包当前存储到外部存储器,将所述第一数据包流的数据包分配给所述慢路径以供所述入口结构端点的后续处理。


10.根据权利要求1至9的任意组合所述的方法,
其中,用于数据包交换的所述快路径包括所述网络装置的内部存储器路径,以及
其中,用于数据包交换的所述慢路径包括所述网络装置的外部存储器路径。


11.一种网络装置,包括耦接到所述网络装置内的交换结构以交换单元的多个结构端点,所述多个结构端点的入口结构端点被配置为:
接收跨所述交换结构交换到用于数据包流的所述多个结构端点的出口结构端点的多个数据包流;
将所述多个数据包流的每个数据包流的每个数据包分配给用于数据包交换的快路径和用于数据包交换的慢路径中的一者;以及
为了产生跨所述交换结构交换到所述出口结构端点的单元流,处理来自所述快路径和所述慢路径的数据包以维持所述多个数...

【专利技术属性】
技术研发人员:阿努杰·库马尔·斯里瓦斯塔瓦加里·戈尔德曼哈尔沙德·B·阿加舍迪内希·贾伊斯瓦尔皮尤什·贾因纳文·K·贾因
申请(专利权)人:丛林网络公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1