CN105308920B - 多播流重排序方案 - Google Patents
多播流重排序方案 Download PDFInfo
- Publication number
- CN105308920B CN105308920B CN201480033652.3A CN201480033652A CN105308920B CN 105308920 B CN105308920 B CN 105308920B CN 201480033652 A CN201480033652 A CN 201480033652A CN 105308920 B CN105308920 B CN 105308920B
- Authority
- CN
- China
- Prior art keywords
- data
- grouping
- sublink
- data grouping
- descriptor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/552—Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了用于在网络中进行多播流重排序的示例系统和方法,所述示例系统和方法包括:在节点的出口处接收数据分组,该数据分组与包括至少一个参数的描述符相关联;确定该描述符的至少一个参数;以及基于对该描述符的至少一个参数的确定,来处理该数据分组以进行重排序。
Description
技术领域
本公开总体涉及通信网络,并且更具体地,涉及用于在通信网络中进行多播数据业务流重排序的系统和方法。
背景技术
通信网络一般地进行运作以通过由点到点链路互连的节点的网络将数据从源移动到目的地。这些链路可以是网络内两个互连节点之间的双向通信路径。可以在分组中发送数据并且通过中间节点(例如,网络中的源与目的地之间的交换机和路由器)对其进行路由。在网络的节点内实现的路由协议允许该节点的一个或多个组件、设备、或模块正确地将数据指向其适当的下一目的地。网络中对数据从源向目的地的传输可以是点到点通信的一部分,其中源将该传输指向单一目的地。对数据向源的传输也可以是多播传输的一部分,其中,源将传输指向多个目的地。
附图说明
为了提供对本公开及其特征和优点的更加完整的理解,结合附图,参照下面的描述,其中,相似的参考标号表示相似的部分,其中:
图1是示出示例系统的简化框图,其中可以在该示例系统中实现本公开的实施例;
图2A和图2B是根据本公开的实施例示出系统的入口部分的示例细节的简化框图;
图3是根据本公开的实施例示出可与系统的入口部分相关联的示例操作的简化流程图;
图4A和图4B是根据本公开的实施例示出系统的出口部分的示例细节的简化框图;
图4C是根据本公开的实施例示出示例重排序状态机的简化图;
图5A至图5F是根据本公开的实施例示出可与系统的出口部分相关联的示例操作的简化流程图;
图6A至图6C是示出可与本公开的实施例相关联的示例信号流的简化信号流图;
图7A和图7B是示出可与本公开的实施例相关联的示例信号流的简化信号流图;以及
图8是示出可与本公开的实施例相关联的数据格式的示例细节的简化图。
具体实施方式
概述
提供了用于多播数据业务流重排序的示例方法,并且该方法包括在节点的出口(例如,接口)处接收数据分组,该数据分组与包括至少一个参数的描述符相关联。该描述符可以与任意符号、文本、颜色字段、标识符、标签、属性信息等相关联:所有这些符号、文本、色场、标识符、标签、属性信息等可以在分组的任意适当的位置中提供(例如,在指定的字段中、在头部中、作为封装的一部分、作为属性协议的一部分、作为有效负荷的一部分等)。描述符可以与参数相链接(例如,有关、绑定、关联或其他方式地相关联),该参数可以与该分组的任何有关信息、网络中的状况、状态、上下文、链路特性等相关联。例如,描述符可以提供关于数据分组的上下文的信息,例如,源IO片、散列箱(hash bin)信息以及子链路ID。
该方法还可以包括确定(例如,标识、估计、查找等)描述符的至少一个参数并且基于对描述符的至少一个参数的确定来处理(例如,路由、排序、排队、出队、组织、存储等)数据分组以进行重排序。
当动态负载均衡被用于将多播流重新分配到通过该节点的新的路径时,可以应用示例系统。该系统和方法还可以包括:在节点的入口处配置与经重新分配的多播流的数据分组相关联的信息;将相关联的信息和数据分组发送至出口;以及基于相关联的信息,在出口处对经重新分配的多播流的数据分组进行重新排序。该系统和方法可以提供对所接收的同一多播流的数据分组进行重新排序,该多播流可以在通过某一节点的以前分配的路径或新分配的路径上传输。
示例实施例
现在参照图1,图1是示出示例系统100的简化框图,其中本公开的实施例可以在该示例系统100中实现。系统100包括输入/输出(I/O)片 102(a)-102(d)、交换机104(a)和104(b)、交换结构(fabric)子系统106以及处理器/存储器108。系统100可以被实现为电信网络中的节点,并作为交换机/路由器来运作,以接收来自其他网络节点和设备的数据业务以及将数据业务指向其他网络节点和设备,从而实现网络中的数据传输。交换机100可以是处置数据业务的任意类型的路由器、交换机或系统。根据一个示例实施例,例如,诸如Nexus 7000或MDS 9000 之类的交换机可以用来实现系统100。
在I/O片102(a)-102(d)处接收来自I/O端口101(a-p)上的网络的数据业务以及向I/O端口101(a-p)上的网络发送数据业务。当从网络源发送至网络目的地的数据在I/O片102(a)-102(b)中的一个I/O片处被接收时,该数据在将每个I/O片102(a)-102(b)连接至每个交换机 104(a)和104(b)的多个链路中的一个链路上被发送至交换机104(a) 和104(b)中的一个交换机。在示例实施例中,连接103(a)-103(h) 中的每个连接可以各自包括两个链路,这两个链路将I/O片102(a)-102 (b)之一与交换机104(a)和104(b)之一相耦合,并且交换机104 (a)和104(b)中的每个交换机上的N个端口可以包括8个端口。例如,在图1中,I/O片102(a)可以通过连接103(a)具有去到104(a) 的两个链路并且通过连接103(b)具有到104(b)的两个链路。数据被从交换机104(a)或104(b)传递到交换结构子系统106,并且针对其目的地、通过交换结构子系统在适当的链路上被适当地路由,随后该数据在去往其网络目的地的路由上返回经过交换机104(a)或104(b),经过 102(a)-102(d)中适当的I/O片和I/O端口101(a-p)所表示的I/O端口。尽管图1针对I/O端口、交换机、交换结构子系统以及I/O片示出了示例数目的系统组件和连接,但本公开的替代实施例可以在如下系统中实现:该系统使用不同组件的任意适当的组合、具有不同数目的系统组件以及组件之间的连接具有各种配置和数目。
处理器/存储器108可以被用来实现本公开的多播流重排序的系统和方法的实施例。在示例实现方式中,在每个I/O片102(a-d)中可以实现处理器/存储器单元108,其中处理器/存储器单元108根据本公开的实施例控制每个I/O片的入口和出口多播重排序功能。替代地,一个或多个处理器/ 存储器单元108的功能可以由I/O片204(a-d)共享。处理器/存储器108 可以被实现于任意适当的硬件和软件组合中,并且例如可以包括被配置来执行重排序处理的专用集成电路(ASIC)或编程处理器。
应当注意,为了更好的理解本公开的一些能力和教导,提供了以下基本信息。这些信息被认真提供并且不应以任何方式限制本公开的范围。
实现多播传输中的多播业务,以使得尽可能高效地利用资源和带宽、通过网络将数据分组路由至多个目的地。这通过如下操作来完成:经由网络在单个路径上尽可能远的发送针对多个目的地的单一分组;以及当网络拓扑指定使用多个路径来到达多个目的地时,对分组进行复制以在去往多个目的地的多个路径上传输。在多播分组穿过网络时,网络节点只在需要将该分组传递至多个目的地时复制该分组。
网络节点通常具有输入(入口)端口和输出(出口)端口以及交换电路,该交换电路用于将在入口端口上接收的分组业务交换到该节点的适当出口端口。可以在节点的交换结构中复制节点内的多播业务。对于多播业务(包括单播洪泛),节点按需在该节点内的分叉点处复制数据分组,以使得能够在无需对任何特定路径带来负担的情况下,利用相同分组的多个副本来对多播数据分组进行有效复制。节点的交换结构具有将多播分组复制到下行链路出口端口的能力。交换结构允许经复制的多播数据分组只去往需要它们的下行链路路径,而无需将所有的多播业务发送至交换结构中的每个分组处理器。交换结构中的每个多播业务流可以针对分组要被复制给的输出分组处理器和出口端口而被配置。输出队列(OA)机制对去往节点的适当出口端口的多播数据分组的排队进行处置。多播业务可以被作为有损非仲裁多播数据业务进行发送。与点到点数据业务应用相比,在非仲裁多播数据业务中,一些数据分组损失被认为是可容忍的,并且序列号不被用来对分组进行重排序。
现有多播负载均衡是通过如下操作来实现的:使用分组深度检查来对各种多播流进行分类,并且基于分组内的某些流特征字段来对其进行装箱 (binning)。除了其他字段,该方法使用IP地址、端口号等来在数学上计算一组散列函数,从而针对每个流确定唯一的随机箱(bin)ID。这些箱 ID随后通过交换结构被静态地分配以固定路径。假设流模式是完全随机的,则多播流通过交换结构被扩散在多个路径之间,从而实现交换结构负载均衡的均匀分布。由于通过交换结构的路径是基于流特征而非流量来静态分配的,因此不能保证路径分配会实现预期的负载均衡,因而需要基于流量对为经过交换结构的流选择的路径进行修正。需要考虑流量的变化来部署该修正。与基于流特征来静态创建经过交换结构的随机路径的原始方案相比,这使得负载均衡是动态的。
动态负载均衡是在网络的节点中使用的方法,该方法用来对通过节点的交换结构在多个子链路上从入口端口发送至出口端口的多个数据业务流进行均衡。多个子链路定义了数据业务流通过交换结构所采用的各种路径。在尝试对通过交换结构的业务负载进行均衡时,动态负载均衡对一个或多个数据业务流被分配给的子链路进行重新分配。例如,动态负载均衡可以将来自拥塞的子链路的特定数据业务流重新分配给较不拥塞的子链路。这可以消除该特定业务流以及该拥塞的子链路上的其他业务流的瓶颈和传输延迟,并且提高吞吐量。
动态负载均衡可以被应用于节点中的多播数据传输。然而,应用于多播数据传输的动态负载均衡针对在节点的出口处接收多播数据分组方面可能存在排序问题。如果多播业务流被从先前子链路重新分配到新的子链路,则该多播流在先前分配的子链路上发送的数据分组和同一多播业务流在新分配的子链路上发送的数据分组可能乱序到达出口。例如,多播数据业务流中在新分配的子链路上发送的数据分组可能在发送于先前分配的子链路上的一个或多个数据分组之前到达出口。
乱序到达节点出口的有损多目的地非仲裁多播数据业务可能导致特定的问题,因为数据分组没有携带可用于对分组进行重新排序的序列号。添加用于在节点中对非仲裁的多播数据业务进行重排序的序列号会增加开销,并且在设计和实现方面很复杂。因此,在网络节点中具有易于实现、高效且在实现所需的节点资源方面提供低开销的多播流重排序的系统和方法将提供优势。
在示例实施例中,用可用于重排序的信息在入口处对多播流的数据分组进行标记,并将该多播流的数据分组通过该节点发送至出口。可以利用如下指示来标记数据分组:该数据分组是“最后”、“新”或“按序”。该标记例如可以通过将分组头部的描述符中的颜色字段设置为“最后”、“新”或“按序”中某一状态或颜色标记来完成。当多播流被重新分配给通过该节点的、由新的子链路定义的新的路径时,在多播流先前被分配给的子链路上向出口发送的最后一个数据分组可以被标记“最后”。在新的子链路上被发送的该多播流的后续数据分组可以被标记“新”,直到满足预定标准为止。在满足预定标准之后,在新的子链路上发送的多播流的后续数据分组可以被标记“按序”。节点的出口可以基于在出口处接收到的分组的适当的上下文和颜色标记,来针对经重新分配的数据流进行配置并且管理重排序队列。
在另一示例实施例中,在节点的入口处接收到的多播流的数据分组可以被分配给多个散列箱之一。每个散列箱随后可以被分配给多个子链路之一,其中每个子链路与通过该节点的唯一路径相关联。基于对散列箱进行的流量测量,将多播流分配给的散列箱随后可被动态地重新分配给新的子链路。通过节点发送的多播流的数据分组可以被标记以“最后”、“新”或“按序”中的某一状态或颜色标记。入口可以首先将通过节点的所有数据分组发送至出口并将这些数据分组标记为“按序”。标记例如可以通过对分组头部的描述符中的颜色字段进行设置来完成。描述符还可以包括关于数据分组的上下文的信息,例如,源IO片、散列箱信息以及子链路 ID。当散列箱被重新分配给新的子链路时,在原始子链路上发送的多播流的最后一个数据分组可以被标记为“最后”并且被洪泛至节点中的所有多播流目的地。在新的子链路上,从当前已被重新分配的散列箱发送的新的数据分组然后可以被标记为“新”。将分组标记为“新”可以继续,直到对入口内的预定标准的满意度针对多播流的数据分组标记开始从“新”变化为“按序”为止。从多播流的入口发送的数据分组在出口处被接收。当出口接收到被标记为“新”的数据分组时,对所接收的数据分组相关联的上下文进行检查。如果针对该上下文不存在重排序队列,则可以针对该上下文设置重排序队列并且数据分组被存储于该队列中。如果针对该上下文已经存在重排序队列,则该分组可以被存储于被分配以该上下文的重排序队列中。当出口接收到被标记为“最后”的数据分组时,出口确定任何被标记为“新”的数据分组是否被存储于针对被标记为“最后”的数据分组的上下文的重排序队列中。如果被标记为“新”的数据分组被存储于针对该上下文的重排序队列中,则出口可以首先将被标记为“最后”的数据分组从重排序队列中出队到出口输出队列,然后将被标记为“新”的分组按照它们被接收的顺序从重排序队列中出队到出口输出队列。如果出口接收到被标记为“最后”的数据分组并且针对该分组的上下文的重排序队列中没有存储分组,则出口可以不采取任何重排序动作,并且数据分组可以被发送至出口输出队列。在该情形中,不发生乱序的流。当出口接收到被标记为“按序”的分组并且针对该数据分组的上下文的重排序队列中存储有被标记为“新”的分组时,出口可以对被标记为“按序”的数据分组的描述符中的子链路ID进行检查。如果该子链路ID是重新分配的流的新的子链路的子链路ID并且不同于与重排序队列中的数据分组相关联的子链路 ID,则出口可以假设针对箱重新分配被标记为“最后”的分组丢失并且将这些分组从重排序队列中出队。如果子链路ID是重新分配的流的先前子链路的子链路ID,则出口可以将标记为“按序”的分组发送至出口输出队列。
在另一示例实施例中,定时器可以用于节点的入口或出口中以控制多播流的重排序。在该示例实施例中,在节点的入口处接收到的多播流的数据分组可以被分配给散列箱。每个散列箱随后可以被分配给多个子链路之一,其中每个子链路与通过该节点的唯一路径相关联。基于对散列箱进行的流量测量,将多播流分配给的散列箱随后可被动态地重新分配给新的子链路。通过节点发送的多播流的数据分组可以被标记以“最后”、“新”或“按序”中的某一状态或颜色标记。标记例如可以通过对分组头部的描述符中的颜色字段进行设置来完成。描述符还可以包括关于数据分组的上下文的信息,例如,源IO片、散列箱信息以及子链路ID。入口首先将通过节点的多播流的所有数据分组发送至出口并将这些数据分组标记为“按序”。当散列箱被重新分配给新的子链路时,在原始子链路上发送的多播流的最后一个数据分组可以被标记为“最后”并且被洪泛至节点中的所有多播流目的地。还可以开启入口重排序定时器。在新的子链路上,从当前已被重新分配的散列箱发送的新的数据分组然后可以被标记为“新”。将分组标记为“新”可以在入口处继续,直到入口定时器到期为止。一旦入口定时器到期,则入口可以针对多播流的数据分组标记开始从“新”变化为“按序”。从多播流的入口发送的数据分组在出口处被接收。当出口接收到被标记为“新”的数据分组时,对与所接收的数据分组的箱和子链路相关联的上下文进行检查。如果针对该上下文不存在重排序队列,则可以针对该上下文发起重排序队列并且数据分组被存储于该队列中。也可以开启出口重排序定时器。如果针对该上下文已经存在重排序队列,则该数据分组可以被存储于被分配以该上下文的重排序队列中。出口继续监控出口重排序定时器。当出口接收到被标记为“最后”的数据分组时,出口确定任何被标记为“新”的数据分组是否被存储于针对被标记为“最后”的数据分组的上下文的重排序队列中。如果被标记为“新”的数据分组被存储于针对该上下文的重排序队列中,则出口可以将被标记为“最后”的数据分组出队到出口输出队列,然后将被标记为“新”的分组按照它们被接收的顺序从重排序队列中出队到出口输出队列。如果出口接收到被标记为“最后”的数据分组并且针对该分组的上下文的重排序队列中没有存储分组,则出口可以不采取任何重排序动作,并且数据分组被发送至出口输出队列。在该情形中,不发生乱序的流。当出口接收到被标记为“按序”的分组并且针对该数据分组的上下文的重排序队列中存储有被标记为“新”的分组时,则出口对被标记为“按序”的数据分组的描述符中的子链路ID 进行检查。如果该子链路ID是重新分配的流的新的子链路的子链路ID并且不同于与重排序队列中的数据分组相关联的子链路ID,则出口可以将第二定时器重新设置为第二出口定时器值,该第二出口定时器值小于出口重排序定时器的初始设置。如果子链路ID是重新分配的流的先前子链路的子链路ID,则出口可以将标记为“按序”的分组发送至出口输出队列。在任何时候,当出口重排序定时器到期时,无论是从接收第一个被标记为“新”的分组时所设置的初始设置到期开始,还是从当“按序”分组通过新的子链路被接收时执行的重新设置开始,出口可以将针对该上下文的重排序队列清空,并且将重排序队列中的数据分组发送至出口的输出队列。
现在参照图2A和图2B,其根据本公开的一个实施例示出网络的入口部分的示例功能的简化框图。图2A示出入口功能框,这些入口功能框包括本实施例的多播仲裁器(VMA)204、队列管理器(VQM)202、以及交换结构发送(VFT)206功能。图2B示出了本实施例的入口部分的结果捆绑散列(Result bundle hash,RBH)箱到子链路的映射功能208的逻辑表达方式。RBH箱到子链路的映射功能208可以由VMA框204来实现。 VQM 202、VFT 206和VMA 204可以由图1的处理器/存储器108实现在每个I/O片102(a-d)中,并且可以包括协助其功能的操作的任意适当的硬件、软件、组件、模块、接口或对象。这可以包括允许数据或信息的有效交换的适当的算法和通信协议。
参照图2A和图2B,当多播分组数据在网络100的入口处被接收时, VMA 204通过对来自VQM多播队列的请求生成准予来实现多播动态负载均衡功能。非仲裁多播数据分组通过图1的系统100采用初始交换结构路由,这是基于分组的RBH值在各个交换阶段确定的。
传入多播业务可以基于RBH值被存储在多播队列中。例如,对于每个数据分组,可以在框210处从来自分组头部的5元组散列来获得RBH 值。在框212处,分组随后基于RBH值通过模256除法被映射到箱214 (0)-214(255)之一。基于RBH值,如图2B所表示的,VMA 204实现将多播分组的映射到箱214(0)-214(255)中以及子链路216(0)-216 (23)上。每个箱214(0)-214(255)可以被映射到多个链路或子链路 (子链路216(0)-216(23))之一,其中该子链路定义了通过交换结构的路径上的路由。针对通过在VMA 204上将RBH值映射到LSV/子链路值而确定的I/O片,多播分组随后被VFT 206置于四个非仲裁业务队列之一上。VFT 206还基于RBH值来确定子链路值(FBH),从而确定适当的交换机104a、104b中的第二级子链路路径。VMA 204中的子链路映射器的RBH与VFT 206中的子链路映射器的RBH一致。
在本公开的实施例中,与图2B的箱214(0)-214(255)相对应的 VQM 202中的入口多播输出队列经受流量测量和箱重新分配,以基于每 RBH箱来调整业务流。使用了基于流量的动态散列(DHFV)过程。RBH 箱被搅乱,从而所有子链路具有几乎相等的队列长度。该过程可以被周期性重复,以将子链路队列长度的差异维持在可编程的值范围内。当在入口处接收数据分组时,基于每RBH标签来对RBH箱执行流量测量。因此,基于子链路映射,可以通过将箱214(0)-214(255)中具有最大长度输出队列的最大流量的箱重新分配到最短长度输出队列来使用重新均衡,从而维持每一子链路216(0)-216(23)的输出队列长度。当VMA执行RBH箱重新分配时,其将具有所选的RBH的一个分组标记为“最后”,并且将使用新的RBH到LSV/子链路映射器来对随后到达的所有分组进行映射。VMA 204利用被标记为“最后”的数据分组将RBH到子链路的变化传递给VFT 206。在替代的实现方式中,任何其他适当的映射方案和流量重新分配方案可以被用来实现本公开的实施例。
由于重新分配高流量业务箱,因此在相同流内但在与原始分配的子链路以及新分配的子链路不同的子链路上发送的多播业务可能在交换机的出口处进行接收时变得乱序。因此,根据本公开的实施例执行对多播业务的重排序。时分复用(TDM)时隙间隔可以在入口处被用来触发多播负载均衡的时序。该间隔可根据来自出口的反馈进行调整以防止在同一线卡上的 I/O片之间产生重叠。
现在参照图3,其为根据本公开的实施例示出可与网络的入口部分相关联的示例操作的简化流程图300。图3中所示的操作可以被实现于图2A 的VMA 204、VQM 202以及VFT206功能中,从而根据该示例实施例提供交换机100的入口中的重排序功能。在该示例实施例中,多播分组头部在入口处被配置为包括关于重新分配的分组数据流的状态信息,并且该信息在出口处由出口重排序功能来使用。该信息可以被配置为包括于数据分组头部中的描述符内的2比特颜色字段,并且可以在重排序中被用来将数据分组的状态标记为“按序”、“新”或“最后”。
该处理开始于操作302处。在302处,入口首先开始向出口发送被分配给RBH箱的多播流中的数据分组并将这些数据分组标记为“按序”。在306处,关于该RBH箱是否已被重新分配做出确定。如果该RBH箱未被重新分配,则入口继续发送多播流中的数据分组并且将其标记为“按序”。如果在306处确定RBH箱已被从最大队列长度的队列重新分配到不同子链路的最小队列长度的队列,则该处理移至308。在308处,入口通过交换结构来将原始子链路上的重新分配的箱的最后一个数据分组洪泛至所有的目的地并且将该数据分组标记为“最后”。在310处,入口定时器被设置为预定时间并且该入口定时器被开启。在示例实现方式中,入口定时器可以被设置为数据分组通过交换结构的往返时间10倍的时间段。在312处,发送多播流中的重新分配的箱的数据分组并且在新分配的子链路上将这些数据分组标记为“新”分组。在314处,如果入口定时器尚未到期,则该处理返回至312。在312处,入口继续发送多播流中的数据分组并将其标记为“新”。这些数据分组将继续被标记为“新”,直到入口定时器到期为止,并且该处理从314移至316。在316处,重新分配的箱的分组被标记为“按序”来进行发送,并且该处理移至306,如果RBH箱被重新分配给另一子链路,则该处理重复进行。在交换机100的出口处接收由此处理的多播业务的数据分组。
现在参照图4A和图4B,其为根据本公开的实施例示出网络的出口部分的示例细节的简化框图。图4A示出了功能框虚拟交换结构接收 (VFR)402、虚拟出口缓冲器(VEB)404、虚拟多播重排序(VMR) 406以及虚拟出口队列(VEQ)408。VEB 404被示出为包括LTL/RBH框404a、RA框404b以及多播出口缓冲器404c。图4B示出了图4A的VMR 406的简化功能框图。VMR406被示出为包括SFI到LC映射框424、多播重排序(MR)上下文存储器428、MR定时器存储器432、背景定时器扫描模块434、MR队列管理器444、队列头部/尾部指针442以及MR队列链表440。在示例实施例中,图4A和图4B的功能框可以由图1的系统 100的每个I/O片102(a-d)中实现的处理器/存储器108来实现,并且这些功能框可以包括协助其功能的操作的任意适当的硬件、软件、组件、模块、接口或对象。这可以包括允许数据或信息的有效交换的适当的算法和通信协议。在该示例实施例中,由VFR 402在连接103(a-e)(由图4A 的链路410来表示)的适当链路之一上的I/O片102(a-d)中的某一I/O片处接收多播业务。来自多播业务的每个数据分组的头部的描述符和数据业务随后被输入到VEB 404中。
现在参照图8,其为示出可与本公开的实施例相关联的数据格式的示例细节的简化图。图8示出了可以在VEB 404处接收的描述符的数据格式。每个数据分组的VEB描述符802包括源交换结构索引(SFI)字段 804,该字段指示被分配给源IO片的唯一的ID。该SFI字段可以与重排序队列相关联,并且可以通过映射表从SFI值获得线卡值。在任何给定的时间,每个线卡只允许一个多播重排序处理。描述符802还包括RBH字段 806、PRI字段、子链路ID(SUBLINK ID)字段810、PSV字段812以及颜色(COLOR)字段814,其中RBH字段806是从分组头部提取的,PRI 字段被用来将分组入队到适当的优先级端口队列,子链路ID字段810指示子链路中与相关的分组的流相关联的子链路,PSV字段812被VEQ 408 用来按需在多个端口之间复制描述符。描述符802还包括分组描述符 (PACKET DESCRIPTOR)字段816、分组标志(PACKET FLAGS)字段、丢弃(DROP)字段820,其中分组描述符字段816包括与分组的第一单元(cell)相对应的分组指针并且该分组指针还被VMR队列链表用作链接指针,分组标志字段指示分组的最后、部分以及共享单元,丢弃字段820指示基于LTL/RBH 404a修剪结果或RA404b中与尾部丢弃决策有关的资源核算,分组是否应被丢弃并且不被入队(然而,即使数据分组要被丢弃,VMR 406仍对重排序状态机的描述符进行处理)。图8还示出存储器内容824和描述符836。存储器内容824示出了多播重排序上下文存储器428以及相关联的重排序定时器存储器432的特征。这些包括如下项的值:MR状态826、SFI 827、RBH 828、子链路ID830、定时器有效 (TIMER VALID)832以及与上下文相关联的超时(TIMEOUT)834。描述符836是包括PRI 838、PSV 840以及分组描述符842字段的描述符,并且该描述符在重排序处理期间被从VMR 406发送至VEQ 408。
再次参照图4A和图4B,一旦接收到数据业务和描述符802, LTL/RBH框404a基于RBH值来执行LTL查找、复制以及修剪。RA框 404b执行资源核算并且将多播描述符802传递至VMR 406(图4B)。 VMR 406接收来自VEB 404的RA框404b的描述符802。在描述符802 被传递至VMR 404之前,多播缓冲器资源核算和LTL/RBH修剪已被VEB 404的LTL/RBH框404a和RA框404b执行。如果基于资源核算或 LTL/RBH核算而丢弃分组,则描述符仍被发送至VMR 406以利用指示分组应被丢弃的丢弃字段来进行重排序处理。在上下文和状态机被更新之后,如果该描述符在丢弃字段中被标记为丢弃,则VMR 404将丢弃该描述符,而不是将其发送至多播重排序输出队列(MROQ)。在重排序处理中,VMR 404在SFI到LC映射框424中将SFI字段804映射到线卡 (LC)值。该LC值被用来索引到多播重排序上下文存储器(MRCM) 428并且索引到MR定时器存储器432。LC值还被用作MROQ的队列索引。每个LC值被标记给特定的线卡。在该实施例中,仅允许线卡上的一个IO片执行动态多播负载均衡。每个重排序队列对分组进行排队,这些分组使用去往其基于DHFV处理所选择的目的地的重路由路径。这些分组直到来自原始路由的最后一个分组被发送出去才被发送。MR上下文存储器428中所存储的MR_STATE(MR状态)值跟踪每个上下文的重排序流。
现在参照图4C,其示出根据本公开的实施例的重排序状态机。可以参照图4B和图4C来描述重排序处理。在状态460处,当针对给定的线卡,具有被标记为“新”的颜色字段814的分组被检测到,并且该线卡的重排序状态机处于空闲(IDLE)时,重排序处理开始。在462处,该线卡的上下文被针对该线卡而创建,该上下文包括SFI、RBH、子链路ID值,并且索引到该线卡的MROQ被激活。在状态462处,还在MR定时器存储器432(图4B)中针对线卡的MROQ来设置定时器值和VLD(定时器有效)状态430,从而运行重排序定时器。MR状态然后转换到活动 (ACTIVE)状态464。MR上下文存储器428存储定义上下文的描述符 802的字段以及MR_STATE,如426所示(图4B)。一旦重排序状态在状态466处为活动,则重排序处理基于颜色、RBH、SFI以及子链路字段来将经重排序的业务与普通的业务分离。经重路由的分组(新的路由上的分组)被出队到由线卡ID索引的MROQ中。所有其他分组在MROQ[0]处被入队。MROQ[0]是将分组描述符馈送到VEQ 408的唯一队列。MROQ 结构存储描述符中与VEQ 408有关的部分,该部分包括PSV、PRI以及分组描述符字段。无论何时MROQ[0]保存一个或多个分组,其会被出队。被配置为如图8所示的描述符836被发送至VEQ 408以进行复制和排队。如果在描述符802中设置了丢弃标志,则在重排序处理之后该描述符被丢弃并且不在MROQ中排队。
在464处,如果针对处于活动状态的部分重排序上下文(SFI、 RBH),被标记为“最后”的分组描述符被接收,则重排序处理移至重排序(REORDER)状态467,并且在465处,相关联的MROQ被插入到 MROQ[0]的尾部。在466处,如果传入分组被标记为“新”,但在活动状态中检测到SFI失配,则在463处,MR状态生成错误中断。该错误中断标记对同一线卡进行动态多播负载均衡的多播活动实例的条件。新的经重新路由的流被忽略并且被发送至MROQ[0]。MS状态机仅在“最后”分组被接收或者针对原始流接收到超时时完成重排序过程。错误中断条件可以被用来向软件标志错误中断,以增加用于在入口处触发多播负载均衡的 TDM时隙间隔,从而防止同一线卡上的I/O片之间的重叠。
当434(图4B)的背景定时器扫描模块在MR定时器存储器432处检测到超时条件时,其在466处生成从活动状态464到重排序状态467的超时事件。定时器可以被用来约束针对给定流的重排序间隔。在超时时,认为完成了给定上下文的重排序,并且针对该上下文的重排序队列MROQ 被插入到MROQ[0]的尾部。MROQ[0]被出队,直到所有待定的分组描述符被发送至VEQ并且MROQ[0]为空为止。
MROQ可以包括采用MR队列链表440的形式的32K深度的矩阵,该 MR队列链表440保存分组描述符。队列存储器可以是32K深度,这与可由VEB 404的总的多播出口缓冲器404c所存储的分组的最大数目相同。分组指针还可以作为链接指针。在该示例实施例中,MROQ支持26+1个队列,如26+1队列头部/尾部指针框442所示,26个队列中的每个队列与特定的线卡相对应,并且将队列ID 0作为普通的输出队列MROQ[0]来预留。在替代的实施例中,可以实现任意数目的队列。仅从MROQ[0]中出队分组描述符。队列MROQ[1-26]可以专用于LC[1]至LC[26]。需要重排序的分组被插入到重排序队列中。在针对特定上下文的重排序处理的最后 (这可以通过接收被标记为“最后”的分组或者超时来触发),针对该上下文的重排序队列可以被插入到MROQ[0]的尾部,并且多播描述符被发送至VEQ 408。
现在参照图5A-5F,其为根据本公开的实施例示出可与系统的出口部分相关联的示例操作的简化流程图。图5A-5D根据本公开的实施例,示出了重排序处理的示例实施例,该重排序处理一般由参考标号500示出。该处理开始于502处,此时分组在出口处被接收。在504处,确定该分组是否具有颜色标记“新”。如果该分组被标记为“新”,则该处理移至图5B。在图5B的514处,被标记为“新”的分组被存储于针对其上下文的重排序队列(MROQ)中(基于与该数据分组相关联的描述符中的SFI和 RBH)。如果针对被标记为“新”的分组的上下文已经存在重排序队列,则该数据分组被存储于现有的针对其上下文的重排序队列中。如果针对该上下文的重排序队列不活动,则针对该上下文激活重排序队列,并且被标记为“新”的数据分组被存储于新创建的重排序队列中。在516处,确定重排序定时器是否针对该上下文正在运行。如果出口重排序定时器已经针对该上下文在运行,则该处理移回至图5A的502。然而,如果在516处确定没有重排序定时器在运行,并且刚刚针对该上下文创建重排序队列,则在518处开启重排序定时器。该处理然后移回至图5A的502并且继续。
然而,如果在504处确定所接收的数据分组没有被标记“新”,则该处理移至506,在506处确定该数据分组是否被标记为“最后”。如果该数据分组被标记为“最后”,则该处理移至图5C的526。在图5C的526 处,确定在针对被标记为“最后”的数据分组的上下文的重排序队列中是否存在被标记为“新”的数据分组。如果在针对该上下文的重排序队列中不存在被标记为“新”的数据分组,则在528处不采取任何动作,并且该数据分组被出队到出口输出队列。该处理然后移回至图5A的502。然而,如果在针对所接收的被标记为“最后”的数据分组的上下文的重排序队列中存在被标记为“新”的数据分组,则该处理移至530,在530处,被标记为“最后”的数据分组被出队到出口输出队列。接下来在532处,在针对该上下文的重排序队列中被标记为“新”的数据分组以所接收的顺序而被出队到出口输出队列,并且在534处,针对该上下文的重排序状态被重置。该处理返回至图5A的处理。
然而,如果在图5A的506处确定数据分组未被标记为“最后”,则该处理移至步骤508。在508处,确定数据分组是否被标记“按序”,并且确定针对该数据分组的上下文的活动的重排序队列中是否存在被标记为“新”的数据分组。如果该数据分组被标记为“按序”并且如果在针对该数据分组的上下文的重排序队列中不存在被标记为“新”的数据分组,则该处理移回至502。然而,如果该数据分组被标记为“按序”并且如果在针对该数据分组的上下文的重排序队列中存在被标记为“新”的数据分组,则该处理移至图5D。在图5D的548处,对该数据分组的描述符中的Sublink_ID(子链路ID)进行检查,并且在550处,确定该Sublink_ID是否为针对该数据分组的上下文新分配的子链路。如果该数据分组的 Sublink_ID不属于针对该数据分组的上下文新分配的子链路,则该数据分组被出队到输出队列。该处理然后移回至图5A。如果该分组的Sublink_ID 属于新分配的子链路,则在552处,针对该上下文的重排序定时器(该重排序定时器已被开启,因为已接收到被标记为“新”的数据分组)被重置,并且该Sublink_ID被标记。该处理然后返回至图5A。
现在参照图5F,其为示出根据本公开的实施例进行监控的重排序定时器的简化流程图。图5F的处理是用于对在图5B的518处设置的重排序定时器进行监控的背景处理。在570处,重排序定时器被监控。在570和 572处,只要重排序定时器尚未到期,则该处理继续监控重排序定时器。在572处,如果确定重排序定时器到期,则该处理移至574。在574处,与到期的重排序定时器相关联的上下文的重排序队列被清空,并且在576 处,来自排序队列的分组被出队并且被发送至输出,并且在577处,该上下文的重排序状态被重置为空闲。
作为替代实施例,该实施例的处理可以从图5A的508移至图5E的 558,来代替移至图5D的548。在该替代中,在558处,分组的 Sublink_ID被检查,并且在560处,确定该Sublink_ID是否是针对该数据分组的上下文新分配的子链路。如果该数据分组的Sublink_ID不属于针对该分组的上下文新分配的子链路,则该分组被出队到输出队列,并且该处理移回至图5A的502。如果该分组的Sublink_ID属于新分配的子链路,则在562处,假设来自先前分配的Sublink_ID的被标记为“最后”的分组已丢失,并且将针对该数据分组上下文的重排序队列以这些数据分组被接收的顺序进行出队,并且针对该上下文的重排序处理被重置到空闲状态。该处理然后移至图5A。在该替代中,重排序处理可以在562处结束,而无需重排序定时器到期或者接收到针对该上下文的被标记为“最后”的分组。
现在参照图6A-图6C,其为示出可与本公开的实施例相关联的示例数据分组流的简化数据分组流图。图6A-图6C示出了随着时间在垂直方向上从上至下移动,数据分组逐次传输的数据分组流。图6A示出了在出口处没有进行重排序的RBH箱重新分配。在图6A中,在出口602处接收来自入2601的初始“按序”分组多播流603。在存在拥塞的情况下,入口 601中的DHFV处理对多播流进行重新分配,并且在604处,原始子链路上的被标记为“最后”的分组被洪泛到所有目的地。从605处开始,在新分配的子链路上将被标记为“新”的前几个分组发送至出口602。入口重排序定时器到期,并且在606处,新分配的子链路上的分组被发送并且被标记为“按序”。在图6A中,在出口602处没有触发重排序处理,因为经重新分配的多播流不是乱序到达。图6B示出了常规重排序操作。在图 6B中,在608处,初始的“按序”数据分组的流被从入口601发送至出口 602。DHFV处理对多播流进行重新分配,并且在609处,原始子链路上的最后一个数据分组被洪泛到所有多播流目的地。在610处,在新分配的链路上发送被标记为“新”的数据分组。在被标记为“最后”的数据分组在 613处被接收之前,在612处,被标记为“新”的数据分组在出口处被接收。被标记为“新”的数据分组随后会被排队到针对这些被标记为“新”的数据分组的上下文的重排序队列中。在625处接收的被标记为“按序”的分组具有相同的上下文,并且被出队到输出,而被标记为“新”的分组继续被排队到重排序队列中,直到在613处接收到被标记为“最后”的分组为止。当在613处接收到被标记为“最后”的分组,该数据分组被出队,并且重排序队列中所有待定的分组以到达的顺序被移入输出队列。针对该上下文的重排序状态被重置,并且后续接收的“新”和“按序”数据分组被立即出队到输出并且不被发送到重排序队列。图6C示出了当被标记为“最后”的分组丢失时的重排序操作。在图6C中,初始的“按序”数据分组流615被从入口601发送至出口602。DHFV处理对多播流进行重新分配,并且在616处,原始子链路上的最后一个数据分组被标记为“最后”并且被洪泛到所有目的地。在617处,在新分配的链路上发送被标记为“新”的数据分组。在618处,出口接收到被标记为“新”的帧,激活重排序处理,并且针对被标记为“新”的数据分组的上下文开启重排序定时器。在被标记为“新”的数据分组被发送到重排序队列的同时,被标记为“按序”并且具有在对626处接收到的有关箱进行重新分配之前所使用的子链路ID的数据分组被发送至输出队列。重排序定时器在619处一旦到期,则来自重排序队列的帧被发送至输出队列,而常规帧接收被搁置。一旦该队列为空,则常规帧接收操作继续。出口重排序定时器值可以被预定为足够长,以使得在正常的业务流中,在出口602处接收来自经重新分配的子链路ID的被标记为“按序”的若干个帧。
现在参照图7A和图7B,其为示出可与本公开的实施例相关联的示例信号流的简化信号流图。图7A示出了重排序操作,在该重排序操作中,被标记为“最后”的数据分组和若干个被标记为“新”的帧丢失。在图 7A中,初始的“按序”分组流703被从入口701发送至出口702。DHFV 处理对多播流进行重新分配,并且在704处,原始子链路上的最后一个数据分组被标记为“最后”并且被洪泛到所有的多播流目的地。在705处,在新分配的链路上发送被标记为“新”的分组。在706处,出口接收被标记为“新”的初始数据分组,激活重排序处理,并且开启针对该流的上下文的重排序定时器。在初始发送的被标记为“新”的数据分组被接收之后,在722处被标记为“新”的其他数据分组丢失并且在出口处未接收到。在710处接收的被标记为“按序”并且具有重新分配之前的子链路ID 的帧被发送至输出队列。重排序定时器在709处一旦到期,则来自重排序队列的帧被发送至输出队列,而常规帧接收被搁置。一旦该队列为空,则常规帧接收操作继续。出口重排序定时器值可以被预定为足够长,以使得在正常的业务流中,出口702在707处接收来自经重新分配的子链路ID 的被标记为“按序”的若干个帧。如图7A所示,由于多播帧可能由于拥塞和各种其他状况而被丢弃或延迟,因此可以调整出口重排序定时器值,以使得从重排序状态恢复是受某一时间值约束的。图7B示出了多个标记的帧丢失的示例,其中,在不发出乱序分组的情况下存在超时更新。在图 7B中,初始的“按序”分组流715被从入口701发送至出口702。DHFV 处理对多播流进行重新分配,并且在716处,原始子链路上的最后一个数据分组被标记为“最后”并且被洪泛到所有的目的地。在717处,在新分配的链路上发送被标记为“新”的分组。若干个被标记为“新”的分组丢失,但在718处,出口接收被标记为“新”的数据分组,激活重排序处理,并且针对被标记为“新”的数据分组的上下文开启的重排序定时器。出口702在729处接收的任何被标记为“按序”并且具有重新分配之前的子链路ID的帧被发送至输出队列。在被标记为“新”的第一个数据分组在718处被接收之后,出口在719处接收的数据分组被标记为“按序”并且被承载到新分配的子链路上。这使得出口重排序定时器在719处被重置为较短的时间段。出口定时器随后在720处到期。一旦出口重排序定时器在720处到期,则来自重排序队列的帧被发送至输出队列,而常规帧接收被搁置。一旦该队列为空,则常规帧接收操作继续。出口重排序定时器值可以被预定为足够长,以使得在正常的业务流中,在出口702处接收来自经重新分配的子链路ID的被标记为“按序”的若干个帧。
应当注意,在本说明书中,对包括在“一个实施例”、“示例实施例”、“实施例”、“另一实施例”、“一些实施例”、“各个实施例”、“其他实施例”、“某些实施例”、“替代实施例”等中的各个特征(例如,元件、结构、模块、组件、步骤、操作、特点等)的引用意欲指任何这样的特征被包括在本公开的一个或多个实施例中,但是可以或者不一定被组合在同一实施例中。还应注意,本说明书中所使用的“应用”可以包括可执行文件,该可执行文件包括可在计算机上被理解或者处理的指令,并且所述“应用”还可以包括在运行期间加载的程序库模块、目标文件、系统文件、硬件逻辑、软件逻辑、或任意其他可执行模块。
在示例实现方式中,本文所概述的活动中的至少一些部分可以被实现于软件(例如,配设于任何网络节点中的软件)中。在一些实施例中,这些特征中的一个或多个特征可以被实现于硬件中、被提供于这些元件的外部、或以任意适当的方式被合并,从而实现预期功能。各种网络元件可以包括能够进行协调以实现本文所概述的操作的软件(或往复式软件)。在另外的其他实施例中,这些元件可以包括协助其操作的任意适当的算法、硬件、软件、组件、模块、接口或对象。
还应注意的是,如本文所使用的,术语“节点”可以包括计算机、网络设备、服务器、路由器、交换机、网关、网桥、负载均衡器、防火墙、处理器、模块或可操作来在网络环境中交换信息的任意其他适当的设备、组件、网络元件或对象。而且,这些节点可以包括协助其操作的任意适当的硬件、软件、组件、模块、接口或对象。这可以包括允许进行数据或信息的有效交换的适当的算法和通信协议。
而且,这些实施例还可以包括用于在网络环境中接收、发送和/或以其他方式传输数据或信息的适当的接口。此外,与各种节点相关联的一些处理器和存储器元件可以被移除或者以其他方式被合并,以使得单个处理器和单个存储器元件负责某些活动。总的来说,附图中所描绘的布置可以在其表达方式上更具有逻辑性,而物理架构可以包括这些元件的各种排列、组合和/或混合。需注意的是,无数可能的设计配置可以被用来实现本文所概述的操作目标。相应地,相关联的架构具有大量的代替布置、设计选择、设备可能性、硬件配置、软件实现方式、设备选择等。
在一些示例实施例中,一个或多个存储器元件可以存储用于本文所描述的操作的数据。这包括能够在非暂态介质中存储指令(例如,软件、逻辑、代码等)以使得这些指令被运行来实施本说明书所描述的活动的存储器元件。处理器可以运行与用来实现本说明书中所详述的操作的数据相关联的任意类型的指令。在另一示例中,可以利用固定逻辑或可编程逻辑 (例如,由处理器运行的软件/计算机指令)来实现本文所概述的活动,并且本文所标识的元件可以是一些类型的可编程处理器、可编程数字逻辑 (例如,现场可编程门阵列(FPGA)、可擦除可编程只读存储器 (EPROM)、电可擦除可编程只读存储器(EEPROM))、ASIC,该 ASIC包括数字逻辑、软件、代码、电子指令、闪存、光盘、CD-ROM、 DVD ROM、磁卡或光卡、适用于存储电子指令的其他类型的机器可读介质、或者其任意适当的组合。
这些设备还可以将信息保存在任意适当类型的非暂态存储介质(例如,随机存取存储器(RAM)、只读存储器(ROM)、现场可编程门阵列(FPGA)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)等)、软件、硬件中,或者在适当的情况下,基于特定需求,保存在任意其他适当的组件、设备、元件或对象中。在通信系统10中被跟踪、发送、接收或存储的信息可以基于特定需求和实现方式而提供于任意数据库、寄存器、表格、缓存、队列、控制列表或存储结构中,这些全部可以在任意适当的时间帧内进行引用。本文所讨论的任意存储器项应被理解为包含在广义术语“存储器元件”内。类似地,本说明书所描述的任意可能的处理元件、模块、和机器应被解释为包括在广义术语“处理器”之内。
还应注意,参照先前附图所描述的操作仅示出了一些可由系统运行或者可在系统内运行的可能的场景。这些操作中的一些操作在适当的情况下可被删除或移动,或者在不背离所论述的概念的范围的情况下,这些操作中的一些操作可被大幅更改、修改、或变更。此外,这些操作相对于彼此的时序可以被大幅更改,并且仍实现本公开所教导的结果。先前的操作流程是出于示例和讨论的目的来提供的。该提供提供了大量的灵活性,这在于在不背离所论述的概念的范围的情况下,可以提供任何适当的布置、时间、配置和时序机制。
尽管本公开参照特定的布置和配置进行了详细描述,但这些示例配置和布置可以在不背离本公开的范围的情况下大幅更改。而且,尽管已参照促进通信处理的特定元件和操作对通信系统100进行了说明,但这些元件和操作可以由实现通信系统100所期望的功能的任意适当的架构或处理来代替。
本领域的技术人员可以查明大量其他的改变、替换、变化、更改、以及修改,并且旨在于本公开包括落入所附权利要求的范围内的所有这样的改变、替换、变化、更改、以及修改。为了有助于美国专利和商标局 (USPT0)以及附加地本申请中所发布的任何专利的任何读者对所附权利要求进行解释,申请人期望注意的是,申请人:(a)不期望任何所附权利要求援引其递交日期存在的U.S.C.35部分112的段落六(6),除非在特定权利要求中具体使用了词语“用于…的装置”或“用于…的步骤”;并且(b)不期望通过说明书中的任何陈述来以所附权利要求中未反映的任何方式来限制本公开。
Claims (15)
1.一种用于多播数据业务流重排序的方法,该方法包括:
在节点的出口处接收数据分组,所述数据分组与包括多个参数的描述符相关联,所述多个参数中的至少一个参数指示所述数据分组的状态而不是序列号;
确定所述描述符的所述至少一个参数;以及
基于对所述描述符的所述至少一个参数的确定,来处理所述数据分组以进行重排序,
其中所述状态包括以下状态之一:
第一状态,指示所述数据分组包括在第一子链路上发送的数据业务流的最后一个数据分组,其中,所述数据业务流被重新分配到第二子链路;
第三状态,指示所述数据分组包括在第二子链路上发送的数据业务流的新的数据分组,其中,所述数据业务流是从第一子链路重新分配的;以及
第二状态,指示在满足预定标准之后,在第二子链路上发送的数据业务流的后续数据分组。
2.根据权利要求1所述的方法,还包括:
将所述数据业务流从第一子链路重新分配到多个子链路中的第二子链路;
确定所述数据分组与包括所述第一状态的描述符相关联;以及
将所述数据分组在所述第一子链路上发送至所述出口。
3.根据权利要求2所述的方法,还包括开启入口重排序定时器,并且其中如果所述入口重排序定时器到期,则满足所述预定标准。
4.根据权利要求1所述的方法,还包括:
确定是否存在与包括所述第三状态的描述符相关联并且被存储于重排序队列中的至少一个第二数据分组;
将所述数据分组排队到出口输出队列;
将所述至少一个第二数据分组从所述重排序队列中出队;以及
重置所述重排序队列。
5.根据权利要求1所述的方法,还包括:
确定与包括所述第三状态的描述符相关联的特定数据分组是否被存储于重排序队列中;
确定第一子链路ID是否是所述特定数据分组的特定数据业务流最近已被重新分配给的子链路的子链路ID;
将某一数据分组从所述重排序队列中出队到出口输出队列;以及
在所述出口输出队列的结尾处插入所述某一数据分组。
6.根据权利要求1所述的方法,还包括:
将所述数据分组存储于与上下文相关联的重排序队列中;
确定所述数据分组是在与所述上下文相关联的重排序队列中与包括所述第三状态的描述符相关联的第一分组;以及
开启与所述上下文相关联的定时器以运行预定时间。
7.根据权利要求6所述的方法,还包括:
在节点的出口处接收第二数据分组,所述第二数据分组与第二描述符相关联;
确定所述第二描述符包括所述第二状态;
确定第二子链路ID是否与第一子链路ID相同;以及
针对所述上下文重置重排序定时器。
8.根据权利要求6所述的方法,还包括:
监控与所述上下文相关联的定时器;
将存储于所述重排序队列中的数据分组出队到出口输出队列;以及
清除与所述上下文相关联的重排序队列。
9.一种用于多播数据业务流重排序的装置,该装置包括:
接口,其被配置为接收网络业务;
一个或多个处理器,其中所述装置被配置为:
在所述装置的出口处接收数据分组,所述数据分组与包括多个参数的描述符相关联,所述多个参数中的至少一个参数指示所述数据分组的状态而不是序列号;
确定所述描述符的所述至少一个参数;以及
基于对所述描述符的所述至少一个参数的确定,来处理所述数据分组以进行重排序,
其中所述状态包括以下状态之一:
第一状态,指示所述数据分组包括在第一子链路上发送的数据业务流的最后一个数据分组,其中,所述数据业务流被重新分配到第二子链路;
第三状态,指示所述数据分组包括在第二子链路上发送的数据业务流的新的数据分组,其中,所述数据业务流是从第一子链路重新分配的;以及
第二状态,指示在满足预定标准之后,在第二子链路上发送的数据业务流的后续数据分组。
10.根据权利要求9所述的装置,其中所述装置还被配置为:
将所述数据业务流从第一子链路重新分配到多个子链路中的第二子链路;
确定所述数据分组与包括所述第一状态的描述符相关联;以及
将所述数据分组在所述第一子链路上发送至所述出口。
11.根据权利要求10所述的装置,其中,所述装置被配置为开启入口重排序定时器,并且其中如果所述入口重排序定时器到期,则满足所述预定标准。
12.根据权利要求9所述的装置,其中所述装置还被配置为:
确定是否与包括所述第三状态的描述符相关联并且其被存储于重排序队列中的至少一个第二数据分组;
将所述数据分组排队到出口输出队列;
将所述至少一个第二数据分组从所述重排序队列中出队;以及
重置所述重排序队列。
13.根据权利要求9所述的装置,其中所述装置还被配置为:
确定与包括所述第三状态的描述符相关联的特定数据分组是否被存储于重排序队列中;
确定第一子链路ID是否是所述特定数据分组的特定数据业务流最近已被重新分配给的子链路的子链路ID;
将某一数据分组从所述重排序队列中出队到出口输出队列;以及
在所述出口输出队列的结尾处插入所述某一数据分组。
14.根据权利要求9所述的装置,其中所述装置还被配置为:
将所述数据分组存储于与上下文相关联的重排序队列中;
确定所述数据分组是在与所述上下文相关联的重排序队列中的与包括所述第三状态的描述符相关联的第一分组;以及
开启与所述上下文相关联的定时器以运行预定时间。
15.一种存储有指令的非暂态计算机可读介质,当所述指令被运行时,使得装置:
在节点的出口处接收数据分组,所述数据分组与包括多个参数的描述符相关联,所述多个参数中的至少一个参数指示所述数据分组的状态而不是序列号;
确定所述描述符的所述至少一个参数;以及
基于对所述描述符的所述至少一个参数的确定,来处理所述数据分组以进行重排序,
其中,所述状态包括以下状态之一:
第一状态,指示所述数据分组包括在第一子链路上发送的数据业务流的最后一个数据分组,其中,所述数据业务流被重新分配到第二子链路;
第三状态,指示所述数据分组包括在第二子链路上发送的数据业务流的新的数据分组,其中,所述数据业务流是从第一子链路重新分配的;以及
第二状态,指示在满足预定标准之后,在第二子链路上发送的数据业务流的后续数据分组。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/915,698 | 2013-06-12 | ||
US13/915,698 US9106593B2 (en) | 2013-06-12 | 2013-06-12 | Multicast flow reordering scheme |
PCT/US2014/040930 WO2014200777A1 (en) | 2013-06-12 | 2014-06-04 | Multicast flow reordering scheme |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105308920A CN105308920A (zh) | 2016-02-03 |
CN105308920B true CN105308920B (zh) | 2019-04-05 |
Family
ID=51062971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480033652.3A Active CN105308920B (zh) | 2013-06-12 | 2014-06-04 | 多播流重排序方案 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9106593B2 (zh) |
EP (1) | EP3008868B1 (zh) |
CN (1) | CN105308920B (zh) |
WO (1) | WO2014200777A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9813319B1 (en) * | 2013-11-22 | 2017-11-07 | Sprint Spectrum L.P. | Method of detecting packet loss in a communication network |
US10015113B2 (en) * | 2015-06-09 | 2018-07-03 | Brocade Communications Systems LLC | Techniques to restore multicast data plane from persistent storage |
US11449554B2 (en) * | 2015-10-22 | 2022-09-20 | Mcafee, Llc | Extensible search solution for asset information |
CN105337888B (zh) * | 2015-11-18 | 2018-12-07 | 华为技术有限公司 | 基于多核转发的负载均衡方法、装置及虚拟交换机 |
CN106603628A (zh) * | 2016-11-10 | 2017-04-26 | 汉柏科技有限公司 | 网络出站负载均衡方法及装置 |
US10715455B2 (en) * | 2017-07-28 | 2020-07-14 | Cisco Technology, Inc. | Packet switching device modifying paths of flows of packets taken within while outputting packets in received intra-flow order but not necessarily inter-flow order |
CN109041262B (zh) | 2018-08-23 | 2020-06-16 | Oppo广东移动通信有限公司 | 数据传输方法及相关装置 |
US10965602B2 (en) * | 2019-03-14 | 2021-03-30 | Intel Corporation | Software assisted hashing to improve distribution of a load balancer |
US11405306B2 (en) | 2019-05-30 | 2022-08-02 | Cisco Technology, Inc. | Technique for dynamic discovery, update and propagation of multicast stream capabilities in a capability-aware network |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1611035A (zh) * | 2001-04-13 | 2005-04-27 | 飞思卡尔半导体公司 | 数据流处理器中的数据流管理 |
CN1832455A (zh) * | 2005-02-18 | 2006-09-13 | 美国博通公司 | 网络设备及处理数据的方法 |
CN101166107A (zh) * | 2006-10-18 | 2008-04-23 | 日本电气株式会社 | Ip组播业务系统、切换设备和其所用的组选择传输方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6714553B1 (en) * | 1998-04-15 | 2004-03-30 | Top Layer Networks, Inc. | System and process for flexible queuing of data packets in network switching |
US6434118B1 (en) * | 1999-01-11 | 2002-08-13 | 3Com Corporation | Method for determining round trip time utilizing ATM traffic management mechanism |
US6661773B1 (en) | 1999-06-07 | 2003-12-09 | Intel Corporation | Method for detection of stale cells following route changes in a data communication |
JP3730471B2 (ja) * | 2000-02-14 | 2006-01-05 | 富士通株式会社 | パケット転送装置 |
US6965571B2 (en) * | 2001-08-27 | 2005-11-15 | Sun Microsystems, Inc. | Precise error reporting |
US7586909B1 (en) * | 2002-03-06 | 2009-09-08 | Agere Systems Inc. | Striping algorithm for switching fabric |
US7782885B1 (en) * | 2002-12-10 | 2010-08-24 | Cisco Technology, Inc. | System and method for queue management using queue sets |
US8995445B2 (en) | 2002-12-19 | 2015-03-31 | International Business Machines Corporation | System and method for re-sequencing data packets on a per-flow basis |
US8116312B2 (en) * | 2006-02-08 | 2012-02-14 | Solarflare Communications, Inc. | Method and apparatus for multicast packet reception |
-
2013
- 2013-06-12 US US13/915,698 patent/US9106593B2/en active Active
-
2014
- 2014-06-04 CN CN201480033652.3A patent/CN105308920B/zh active Active
- 2014-06-04 EP EP14735039.1A patent/EP3008868B1/en active Active
- 2014-06-04 WO PCT/US2014/040930 patent/WO2014200777A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1611035A (zh) * | 2001-04-13 | 2005-04-27 | 飞思卡尔半导体公司 | 数据流处理器中的数据流管理 |
CN1832455A (zh) * | 2005-02-18 | 2006-09-13 | 美国博通公司 | 网络设备及处理数据的方法 |
CN101166107A (zh) * | 2006-10-18 | 2008-04-23 | 日本电气株式会社 | Ip组播业务系统、切换设备和其所用的组选择传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105308920A (zh) | 2016-02-03 |
US9106593B2 (en) | 2015-08-11 |
WO2014200777A1 (en) | 2014-12-18 |
US20140369351A1 (en) | 2014-12-18 |
EP3008868B1 (en) | 2019-02-13 |
EP3008868A1 (en) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105308920B (zh) | 多播流重排序方案 | |
US11818037B2 (en) | Switch device for facilitating switching in data-driven intelligent network | |
US7397794B1 (en) | Systems and methods for implementing virtual switch planes in a physical switch fabric | |
US7586909B1 (en) | Striping algorithm for switching fabric | |
CN102132511B (zh) | 为虚拟机提供基于虚拟交换机的服务质量的方法、装置和系统 | |
JP4822997B2 (ja) | 通信装置および通信方法 | |
US7835279B1 (en) | Method and apparatus for shared shaping | |
CA2505844A1 (en) | Apparatus and method for distributing buffer status information in a switching fabric | |
CN104247341B (zh) | 分布式交换机及其多播树层次结构的动态优化方法 | |
CN102714628A (zh) | 通信系统、控制装置、处理规则设置方法、分组传输方法和程序 | |
SE525800C2 (sv) | Anordning och router i ett bredbandsnät som arbetar genom överföring av paketflöden, med ett av en central processorenhet omkopplat mjukvaruflöde och ett hårdvaruomkopplat accelerarat flöde | |
CN108667898A (zh) | 使用外出镜像提供网元中的缓冲器内容的快照 | |
US10491543B1 (en) | Shared memory switch fabric system and method | |
US9807034B2 (en) | System and method for creating a scalable monolithic packet processing engine | |
CN103916321B (zh) | 定义软件定义网络的网络元件的查找表实现的方法和设备 | |
US7269158B2 (en) | Method of operating a crossbar switch | |
JP2005045626A (ja) | データ転送システム及びそれに用いるマルチキャスト転送方法 | |
Lis et al. | Path-diverse in-order routing | |
US7613200B1 (en) | Method and apparatus using a random indication to map items to paths and to recirculate or delay the sending of a particular item when a destination over its mapped path is unreachable | |
US20240056385A1 (en) | Switch device for facilitating switching in data-driven intelligent network | |
Turner et al. | Deadlock-free connection-based adaptive routing with dynamic virtual circuits | |
Huang et al. | SLIT: Achieving Fast Bandwidth Isolation Across Virtual Machines | |
CN106302232A (zh) | 一种缓存管理方法及本端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |