CN101352006B - 用于聚合多个高速点对点接口的散布和聚集方案 - Google Patents
用于聚合多个高速点对点接口的散布和聚集方案 Download PDFInfo
- Publication number
- CN101352006B CN101352006B CN2006800496119A CN200680049611A CN101352006B CN 101352006 B CN101352006 B CN 101352006B CN 2006800496119 A CN2006800496119 A CN 2006800496119A CN 200680049611 A CN200680049611 A CN 200680049611A CN 101352006 B CN101352006 B CN 101352006B
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- fifo
- point
- fifo register
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了一种机制,用于将多个点对点数据信道结合以提供高带宽数据信道,该高带宽数据信道具有与所使用的数据信道的带宽之和相当的聚合带宽。还提供了一种机制,用于在可用的点对点数据信道接口当中来散布输入数据分组的分段(称为数据块)。可以通过检查耦合到每个接口的FIFO的满状态来作出通过哪个数据信道接口发送数据块的决定。可以在与当前数据块相关联的控制字中提供期望其上具有下一数据块的数据信道的标识符。利用控制字中的这种信息,接收端接口可以通过查看当前处理的数据块中的控制字来找到下一数据块,从而重新组装分组。
Description
技术领域
本发明涉及通信设备,更具体地,涉及以接口连接通信设备的集成电路。
背景技术
现今的网络链路承载极大量的信息。这些网络链路所支持的高带宽应用例如包括流式视频、流式音频和大量聚合的语音流量。将来,网络需求将会增长。诸如流式音频和流式视频之类的某些应用可能由于将这种传输发送给多个订户而产生大量网络流量。为了传输这种大量的数据,网络路由和交换设备需要能够在物理接口端口上接受这种大量的数据,并且内部地将这种数据从耦合到网络端口的线路卡传送至交换矩阵。
在数据通信网络中,网络路由和交换设备在一组输入接口之一上接收报文(message),并将这些报文转发至一组输出接口中的一个或多个。用户通常要求这种路由和交换设备尽可能块地操作,以跟上输入报文的高速率。在分组路由网络中,在信息报文(information message)被以数据的离散分组来传输的情况下,每个分组包括头部。路由或交换设备利用头部信息将分组路由到输出接口,以供随后转发至目标设备。路由设备可以将分组转发至另一路由设备,以供进一步处理或转发。
图1是普通的分组路由设备100的简化框图。尽管在图1中网络设备100是路由器,但是下面的描述中的大部分可被应用于任何用于在网络中传输数据的网络设备(例如,交换机、桥接器或者网络存储处理设备)。类似地,下面在发明部分的详细描述中所呈现的概念可被应用于任何网络数据传输设备。
网络设备100包括许多线路卡105(1)-(M),每个线路卡具有类似的电路并且每个线路卡都耦合到交换结构180。这里,除非另外指定,否则线路卡105指的是线路卡105(1)-(M)中的任何一个。为了清楚起见,未示出与网络设备100相关联的各种硬件和软件组件。
在图1中,线路卡105向耦合到局域网110的客户端(未示出)发送数据流并从其接收数据流。来自网络110的输入数据流分组被线路卡105上的端口120(1)-(N)接收。分组被从端口120(1)-(N)传输至接收端口ASIC130。接收端口ASIC 130可以将分组经由点对点接口140和145传输至接收转发ASIC 150。分组可以被从接收转发ASIC 150传输至接收处理器模块160并随后传输至交换结构接口170。这种传输也可以通过类似于140和145的点对点接口来执行。一般而言,交换结构接口170可以将数据流从一种格式(例如,分组)转换为另一种格式(例如,公共交换接口单元)。经转换的分组被从交换结构接口170传输至交换结构180。在类似的方式下,分组可以被从交换结构180经由发送路径传输至耦合到网络110的客户端设备,该发送路径包括交换结构接口170、发送处理器模块165、发送转发ASIC 190和发送端口ASIC 135。
利用当前的网络技术,端口120(1)-(N)可以以超过10Gb/s的速率来接收数据。由于多个端口可以同时向接收端口ASIC 130供应数据流,因此希望接收端口ASIC 130和来自该ASIC的试图发送数据流的接口被配置为指示数据传输的这种高速率。如果从140至145的点对点接口无法支持足以处理来自端口120(1)-(N)的输入数据的传输速率,则点对点接口可能编程线路卡中的数据瓶颈。
图2A是图示出端口ASIC 210(例如接收端口ASIC 130)和转发ASIC 220的简化框图。端口ASIC 210在输入接口230(1)-(N)上接收数据分组,其中,各个输入接口可以对应于物理端口(例如,端口120(1)-(N))。端口ASIC 210又可以经由点对点端口240来发送数据分组。从点对点端口240所发送的数据分组可以被转发ASIC 220在接口250处接收,然后被相应地处理。点对点接口240的一个示例是系统分组接口第4级第2阶段(SPI-4.2)接口。在图2A所图示的这种配置中,包括端口ASIC210和转发ASIC 220的系统的数据吞吐量带宽受接口240和250的带宽限制。作为示例,在当前技术中,SPI-4.2接口可以是产生12.8Gb/s的总带宽的16对大约为800Mb/s的信号。
图2B是图示出耦合在端口ASIC和转发ASIC之间的可替换接口的简化框图。在图2B中,端口ASIC 215分别被经由多个点对点接口245(1)-(N)至接口255(1)-(N)而耦合到转发ASIC 225。每个点对点接口245(1)-(N)可以对应于端口接口230(1)-(N)。因此,每个输入端口具有其自己的从端口ASIC 215到转发ASIC 225的信道。尽管图2B所图示的方案比图2A所图示的方案提供端口ASIC 215和转发ASIC 225之间的更大总带宽,但是当单个端口接收超过其在端口ASIC 215和转发ASIC 225之间的相关信道的突发的高带宽流量时,每个个体数据路径仍然可能变得带宽受限。尽管在端口ASIC和转发ASIC之间存在大的总带宽,但是没有方法在任何信道上与变得带宽受限的频道来共享可用带宽。
发明内容
传统上用于解决点对点接口连接中的带宽受限问题的方案可能难以实现效用或者具有有限效用。一种方案是以更高的频率(例如,2.4吉赫兹)来驱动点对点接口并从而驱动ASIC。然而,利用当前的ASIC技术更加难以实现更高的频率。另一种传统的方案是基于与流量流特性有关的散列函数(hash function)来试图在多个信道上平衡负荷。然而,散列结果并不一定在任何给定的时间点上提供全面的负荷平衡。另一种解决带宽受限问题的方案将两个点对点接口并行对准以有效地提供单个更宽的数据通道。这种方案可能具有显著的偏斜(skewing)问题,这些偏斜问题要求通过利用对准控制字来频繁地将数据进行对准。随着频率升高,更多的对准控制字被发送,并且对来自并行接口的可用带宽的利用变得更少。
因此希望有一种点对点通信的机制,该机制提供更高的可用数据带宽以避免点对点通信接口处的数据瓶颈。还希望这种方法通过在所有可用的点对点数据路径当中利用负荷平衡来减少所浪费的带宽。
本发明利用多个点对点数据信道来提供高带宽数据信道,该高带宽数据信道具有基本等于所使用的个体数据信道的带宽之和的聚合带宽。本发明的一个方面提供一种用于在可用的点对点信道接口当中散布输入数据分组的分段(称为数据块)的方案。可以通过检查耦合到每个接口的FIFO的满状态来作出向哪个接口发送数据块的决定。在本发明的一个方面中,希望其上具有下一数据块的数据信道的标识符被设在与当前数据块相关联的控制字中。利用控制字中的这种信息,接收端接口可以通过查看当前处理的数据块中的控制字以找到下一数据块,从而重新组装分组。
附图说明
通过参考附图,可以更好地理解本发明,并且使其众多目的、特征和优点对于本领域技术人员而言变得显而易见。
图1是适于实现本发明实施例的普通的分组路由设备的简化框图。
图2A是图示出通过单个点对点接口而耦合的端口ASIC和转发ASIC的简化框图。
图2B是图示出通过多个点对点接口而耦合的端口ASIC和转发ASIC的简化框图。
图3是图示出点对点传输协议的简化框图。
图4是图示出根据本发明一个实施例的用于点对点数据传输的负荷散布方案的简化框图。
图5是图示出根据本发明一个实施例的负荷聚集方案的简化框图。
图6是图示出根据本发明一个实施例的可替换传输逻辑的简化框图。
图7是图示出根据本发明一个实施例的由发送接口所执行的处理的简化流程图。
图8是图示出根据本发明一个实施例的可以由数据传输的接收侧所执行的负荷聚集处理的简化流程图。
图9是图示出适于实现本发明实施例的另一网络路由设备的简化框图。
图10是图示出适于实现本发明实施例的网络体系结构的框图。
具体实施方式
图3是图示出点对点传输协议的简化框图。发送器310被耦合到接收器320。发送器310接收分组流330并且将该分组流提供为突发流(burststream)340。发送器320可以接收分组流330中的分组1-4,其中,分组1-4并不一定是相同长度的。发送器310然后将分组流330中的输入分组分成突发流340中的相等长度,突发流340被与控制字345交织。如图所示,突发1a和1b包含来自分组1的数据而突发2a、2b和2c包含来自分组2的数据。除了包含分组数据的最后一个突发之外,每个突发都是固定长度的。控制字345可以包括诸如分组开头、分组结束、控制字类型和纠错码之类的信息。这种点对点传输协议的一个示例是光互联论坛系统分组接口第4级第2阶段(SPI-4.2)(例如,如OIF-SPI-4-02.1中所呈现)。
图4是图示出根据本发明一个实施例的用于点对点数据传输的负荷散布方案的简化框图。来自分组流430的输入分组被分成相等大小的数据块(除了分组的最后一个块之外)以供发送。散布模块410可以将每个数据块分发给从发送FIFO 420(1)-(N)中选定的一发送FIFO。FIFO选择模块415可以通过检查每个发送FIFO并应用选择算法来确定发送FIFO 420(1)-(N)中的哪个发送FIFO将接收下一数据块。在本发明的一个实施例中,发送FIFO是基于哪个发送FIFO最不满来选择的。散布模块410然后将向选定的FIFO发送数据块以及块结束(EOC)控制字(例如,440)。
在这种负荷散布方案中,可能在同一发送FIFO中不会顺次找到包含分组的相邻部分的数据块。例如,如图所示,分组1被分成分别与发送FIFO 420(1)和420(2)相关联的数据块1a和1b。类似地,数据分组2被分成数据块2a和2b,其中数据块2a被写入发送FIFO 402(3),而数据块2b被写入发送FIFO(N)。在所图示的方案中,FIFO选择模块415基于哪个发送FIFO最不满来选择下一发送FIFO。因此,包含分组3的所有数据的数据块3在数据块2b之后被写入发送FIFO 420(N)。
为了使得接收接口能够重新组装数据分组,散布模块410可以在与数据块相关联的EOC控制字中包括用于下一选定FIFO的标识符(例如由FIFO选择模块415所供应),在该标识符中可以找到下一数据块。利用这种标识符,传输的接收侧可以定位下一数据块,从该下一数据块可以组装数据分组。通过下一选定FIFO的标识符,EOC控制字可以被看作链接列表,其允许接收侧理解数据到达发送侧和数据被从发送侧发送的顺序。
在本发明的一个实施例中,通过将发送接口与发送FIFO 420(1)-(N)中的每一个相关联,与多个发送接口相结合地使用诸如图4所图示的负荷散布方案。在本发明的另一个实施例中,每个发送接口可以是SPI-4.2接口。在这种实施例中,数据块包括一个或多个SPI-4.2数据突发,并且EOC控制字是SPI-4.2数据突发控制字的修正版本。数据突发控制字包含除标准SPI-4.2数据突发控制字之外的其他数据,其中,这种数据涉及下一选定FIFO并且涉及控制字是否与数据块的末端相关联。表1示出可以结合这种实施例来使用的EOC控制字的位定义。
表1
位 | 标注 | 描述 |
31:28 | ECC位 | 通过EOC和SPI_SEL这四位而生成的ECC位。 |
27 | 块结束(EOC) | EOC指示。 |
26:24 | SPI_SEL | SPI接口选择。例如,三位的接口地址允许对总共8个SPI接口进行负荷平衡。 |
23:21 | 类型/分组结束(EOP)状态 | 控制字类型和EOP状态(例如):0:空闲控制字1:无EOP2:EOP中止3:对准边界4:具有1个有效字节的EOP5:具有2个有效字节的EOP6:具有3个有效字节的EOP7:具有4个有效字节的EOP |
20 | 分组开头(SOP) | 分组开头指示符(例如):1:下一数据突发是SOP0:下一数据突发不是SOP |
19:12 | 端口地址(ADR) | 控制字之后的下一有效负荷数据(对应于发送侧上的下一FIFO)的8位端口地址。 |
11:8 | 奇偶位 | 通过当前控制字和跟随上一个控制字的紧接之前的数据字而计算出的奇偶位。 |
7:0 | 控制码 | 用于发送/接收以上字节中的数据的扩展控制 |
码。 |
与标准的16位SPI-4.2控制字相比,这种EOC控制字的示例是32位长。结合表1所定义的EOC控制字来使用图4所示的负荷散布方案可以提供如下的数据通道,该数据通道的带宽等于与发送FIFO 420(1)-(N)相关联的各个信道接口的聚合。个体信道被进行负荷平衡以辅助避免诸如参考图2A和图2B所讨论的数据带宽瓶颈。
在上述示例中,EOC控制字与SPI-4.2控制字相关联。在本发明的一个实施例中,SPI-4.2控制字可以包括EOC控制字。在本发明的另一个实施例中,EOC控制字可以独立于SPI-4.2控制字。EOC控制字的一个目的在于将SPI接口选择值(SPI_SEL)从连接的发送侧传送至连接的接收侧。
每个耦合到发送FIFO 420(1)-(N)的发送接口可以具有相同的带宽或者可以具有不同的带宽。在任一种情况下,连接的发送侧和接收侧之间的数据路径的带宽基本是个体数据路径的带宽的聚合。在本发明的一个实施例中,发送接口的第一子集可以由第一集成电路芯片处理在第一频率提供,而发送接口的第二子集可以有第二IC芯片处理在第二频率提供。这种布置可以提供与第一和第二IC芯片相对应的不同带宽的发送接口。相应的接收端口可以被与发送带宽相匹配。
图5是图示出根据本发明一个实施例的负荷聚集方案的简化框图。图5所图示的负荷聚集方案实质上是以上参考图4所讨论的处理的反向处理。聚集模块510从接收缓冲器520(1)-(N)接收数据块。每个接收缓冲器520具有相应的接收接口,用于从耦合到相应的发送FIFO的相应的发送FIFO接收数据块。聚集模块510将从初始接收缓冲器开始读取数据块。初始接收缓冲器的身份对应于初始发送FIFO的身份,以使得接收端和发送端在同一数据传输线上开始它们的处理,尽管这种初始化也可以通过由发送FIFO在每个接口上发送的对准边界控制字来实现。如图所示,聚集模块510读取接收缓冲器520(1)中的数据块1a,并将与数据块1a相关联的分组数据放置在分组缓冲器中。聚集模块510还读取与数据块1a相关联的EOC控制字。缓冲器选择模块515基于EOC控制字中的信息(例如,表1中的ADR),选择用于下一数据块的下一接收缓冲器。在这种方式下,聚集模块510将在分组流530中组装分组。将对所有接收到的数据块继续这种处理。
缓冲器选择模块515可以引导聚集模块510从初始接收缓冲器读取数据块。这种初始接收缓冲器可以被配置并且将在传输线的发送侧上具有相应的初始发送FIFO。在这种实施例的一个方面中,缓冲器选择模块515可以响应于系统的复位或者在每个接口上发送的对准边界控制字来选择初始接收缓冲器。因此,当含有本发明的网络设备被复位时,传输线的发送侧和接收侧这两侧将缺省地分别在初始发送FIFO和初始接收缓冲器上发送和接收第一数据块。
在这种实施例的另一方面中,可以由发送侧逻辑利用EOC控制字来设置对准边界。在这种对准边界处,下一发送FIFO被设置为初始发送FIFO。当接收侧逻辑读取包含对准边界的EOC控制字时,接收侧查看用于下一数据块的初始接收缓冲器。如表1所示,可以通过利用对准边界类型来将EOC控制字定义为对准边界。作为上述接收缓冲器选择的可替换的初始化,也可以使用在每个接口上发送的指向初始接口的对准边界来对接收侧上的缓冲器选择进行初始化。
通过利用对准边界,可以容忍EOC控制字的传输中的误差的影响。如果对EOC控制字检测到误差,则直至下一对准边界的所有数据块可能被接收侧逻辑丢弃。接收侧逻辑然后可以查看初始接收缓冲器以恢复将数据块排序到数据分组中。在经配置的时间段或者经配置数目的数据块之后可以发送对准边界,或者在检测到EOC控制字误差时,可以由接收侧来请求对准边界。
图6是图示出根据本发明一个实施例的可替换传输逻辑的简化框图。在图6中,散布模块610、发送FIFO 620(1)-(N)和FIFO选择模块615与以上针对图4所图示的相应模块而提供的功能描述具有类似的功能描述。图6还图示出向散布模块610提供分组的多个输入信道650。信道选择模块640确定一输入信号,从该信道将形成通过散布模块来发送的下一数据块。在本发明的一个实施例中,信道选择模块640在选择下一分组的过程中对每个信道应用加权循环判优(deficit-weighted round-robinarbitration)。指派给每个信道的加权可以辅助保证每个信道的贷款分配。信道选择模块640也可以被配置用于从下游模块中接收背压(backpressure)信息,以辅助判断是否不应该选择和发送来自信道的信息。利用这种方法,可以在输入信道和与那些输入信道相关联的端口之间共享点对点接口的总带宽。
图7是图示出根据本发明一个实施例的由发送接口所执行的处理的简化流程图。可以选择初始FIFO标识符(SEL_FIFO(0))。如上所述,这种初始FIFO标识符可以是用于数据块发送和接收的经配置的起始点。然后可以由点对点发送器来接收数据分组(715)。然后可以将数据分组分成M个数据块(720)。然后可以将计数器初始化(725)。
选择与其中将写入下一数据块的发送FIFO相对应的下一FIFO(SEL_FIFO(N+1))(730)。如上所述,可以通过确定哪一个是下一个最不满的FIFO来执行这种FIFO选择。通过选择用于下一数据块的下一最不满的FIFO,可以提供发送接口当中的负荷平衡。较快的发送接口比较慢的发送接口将更快地使相应的发送FIFO变空,因此可以比较慢的发送接口具有更多数目的将要写入发送FIFO的数据块。也可以提供背压机制来指示发送FIFO中的一个或多个是否超过了某一满阈值。响应于背压指示,可以根据设备的配置来丢弃或存储数据分组。利用这种最不满FIFO选择方案,不同速度的接口因而可以被聚合为一更快的接口,其带宽等于各个个体接口的总和。
一旦下一选定发送FIFO已被识别,用于该发送FIFO的标识符就可以被包括在于数据块(n)相关联的EOC控制字中(735)。可以对当前处理的数据块(数据块(n))是否是相关联分组的结束作出判断。如果当前数据块不是分组结束,则计数器可以被递增(755),并且当前数据块和相关联的EOC控制字可以被写入针对该数据块而选定的发送FIFO(例如,用于数据块(n)的SEL_FIFO(n))(760)。可以重复处理,直到每个域数据分组相关联的数据块已被写入相关联的发送FIFO。一旦已经写入每个块,就可以在控制字中提供分组结束(EOP)指示,并且可以将EOC控制字与数据块写入针对该数据块而选定的发送FIFO。在包含EOC控制字的EOP中的下一选定FIFO指示将是在下一分组的第一数据块被写入处。
图8是图示出根据本发明一个实施例的可以由数据传输的接收侧所执行的负荷聚集处理的简化流程图。例如可以通过图5所图示的接收逻辑来执行图8所图示的处理。如图5中,数据块在多个物理接口处被接收,并且这些数据块中的信息可以被放置在一组相应的接收缓冲器(例如,520(1)-(N))中。可以定义初始缓冲器,接收逻辑例如在对网络路由器设备进行复位或者接收对准边界的情况下缺省地指向该初始缓冲器。作为初始步骤,选定的缓冲器(SEL_BUFFER)可以被设置为初始缓冲器(810)。然后,接收逻辑可以读取选定的缓冲器中的数据块和EOC控制字(820)。为了组装分组,接收逻辑可以将在数据块中找到的分组信息写入分组缓冲器(830)。接收逻辑可以确定在哪里查找下一数据块,从该数据块可以继续组装当前分组或者找到用于下一分组的数据。接收逻辑检查EOC控制字以判断控制字是否是对准边界(840)。如果EOC控制字被指定为对准边界,则接收逻辑将选定的缓冲器设置为初始缓冲器值(850)。如果EOC控制字不是对准边界,则接收逻辑可以为选定的缓冲器设置一在EOC控制字中所标识的缓冲器地址。
然后接收逻辑可以判断刚才所读取的数据块是否是分组的结束(860)。可以检查EOC控制字来判断其是否被指定为分组结束(EOP)。如果数据块不是EOP,则接收逻辑可以返回步骤820,并且读取在新选定的缓冲器处找到的下一数据块和相关联的EOP控制字。如果数据块是EOP,则接收逻辑可以将分组数据从分组缓冲器发送到数据路径中的下一步骤以供进一步处理(870)。然后接收逻辑可以在步骤820中读取选定缓冲器中的下一数据块和EOC控制字,以继续读取输入数据块并组装分组的处理。
通过利用本发明,可以协同使用多个点对点接口以呈现单个“胖”接口,该单个“胖”接口所提供的带宽基本与个体接口的带宽之和相同。点对点接口的数目不受本发明限制。为了接收本发明的优点,多个点对点接口的每一个的带宽不必是相同的。
示例路由器
图9是图示出适于实现本发明实施例的另一网络路由设备的简化框图。在该图示中,网络路由设备900包括多个线路卡(线路卡902(1)-(N)),这些线路卡被经由数据总线930和结果总线940而通信耦合到转发引擎910和处理器920。线路卡902(1)-(N)包括多个由端口处理器控制器960(1)-(N)来控制的端口处理器950(1,1)-(N,N)。还将会注意,转发引擎910和处理器920不仅通过数据总线930和结果总线940而彼此耦合,而且通过通信链路970而彼此通信耦合。
根据本发明的实施例,当接收到分组时,由诸如网络路由设备900之类的网络路由设备以下面的方式来识别并分析分组。在接收之后,分组(或者其控制信息的一些或全部)就被从接收分组的端口处理器950(1,1)-(N,N)之一发送到与数据总线930耦合的那些设备(例如,950(1,1)-(N,N)、转发引擎910和/或处理器920中的其他设备)中的一个或多个。例如可以通过转发引擎910来确定分组的处理。例如,转发引擎910可以确定,分组应该被转发至端口处理器950(1,1)-(N,N)中的一个或多个。这可以通过向端口处理器控制器960(1)-(N)中的相应一个或多个指示以下内容来实现:在端口处理器950(1,1)-(N,N)的给定的一个或多个中所保持的分组的拷贝应该被转发至端口处理器950(1,1)-(N,N)中的适当的一个端口处理器。
在前述处理中,可以以多种方式在网络路由设备900所发出(source)的帧中包括网络安全信息。例如,可以使用转发引擎910来检测在分组中包括网络安全信息的要求,并且可以调用处理器920来进行服务以提供必要的网络安全信息。在分组内容从端口处理器950(1,1)-(N,N)中的一个到端口处理器950(1,1)-(N,N)中的另一个的传输期间,例如通过直接提供必要信息的处理器920或者经由转发引擎910,可以在分组中包括这种网络安全信息。因此可以使在端口处理器950(1,1)-(N,N)中的接收端口处理器处所组装的分组包含必要的网络安全信息。
另外或者可替换地,一旦识别了分组以用于根据本发明的处理,就可以使用转发引擎910、处理器920等来以某种方式处理分组或者增加分组安全信息,从而保护分组。在发出这种分组的节点上,这种处理例如可以包括分组信息的一些或全部的加密、数字签名或其他一些信息的增加或者能够保护分组的处理。在接收这种经处理的分组的节点上,执行相应的处理以恢复或者验证因此所保护的分组信息。
示例网络环境
图10是图示出网络体系结构1000的框图,在网络体系结构1000中,客户端系统1010、1020和1030以及存储服务器1040A和1040B被耦合到网络1050。存储服务器1040A被进一步图示为直接附接有存储设备1060A(1)-(N),并且存储服务器1040B被图示为直接附接有存储设备1060B(1)-(N)。存储服务器1040A和1040B还连接到SAN构架1070,尽管对于本发明的操作而言不需要与存储区域网络(SAN)的连接。SAN构架1070支持存储服务器1040A和1040B对存储设备1080(1)-(N)的访问,并且因此允许客户端系统1010、1020和1030经由网络1050的访问。还示出智能存储阵列1090,作为可经由SAN构架1070来访问的特定存储设备的示例。
客户端系统1010、1020和1030能够利用例如web浏览器或其他客户端软件(未示出)来访问存储服务器1040A或1040B上的信息。这种客户端允许客户端系统1010、1020和1030访问存储服务器1040A或1040B,或者存储设备1060A(1)-(N)、1060B(1)-(N)、1080(1)-(N)或智能存储阵列1090之一的数据。图10图示出使用诸如因特网之类的用于交换数据的网络,但是本发明不限于因特网或者任何特定的基于网络的环境。
其他实施例
本发明很好地用于获得所提及的优点以及其中固有的其他优点。尽管通过参考本发明的实施例已图示、描述并限定了本发明,但是这种参考并非意味着对本发明的限制,并且不会推断出这种限制。如本领域普通技术人员将会知道的,本发明在形式和功能上能够作出相当多的修改、变更和等价物。所图示并描述的实施例仅是示例,并非发明范围的全部。
前面描述了具有包含在其他组件中的组件的实施例(例如,作为网络设备100的组件而是出的各种元件)。这种体系结构仅仅是示例,实际上,可以实现获得相同功能性的许多其他体系结构。在概括但仍明确的意义上,任何获得相同功能性的组件的布置都被有效地“关联”,以使得期望的功能性被获得。因此,这里的任何两个被组合以获得特定功能性的组件都可以被看作彼此“相关联”以使得期望的功能性被获得,而不管体系结构或中间组件。同样,任何两个如此关联的组件也可以被看作彼此“操作上连接”或者“操作上耦合”以获得期望的功能性。
前述详细描述通过利用框图、流程图和示例而给出了本发明的各种实施例。本领域技术人员将会了解,每个框图组件、流程图步骤、通过利用示例所图示出的操作和/或组件都可以被个体地和/或全体地、通过宽范围的硬件、软件、固件或者其任意组合来实现。
已经在全功能的计算机系统的环境下描述了本发明;然而,本领域技术人员将会知道,能够以各种形式、作为程序产品来分发本发明,并且不管实际用于实现分发的信号承载介质的特定类型,本发明都可以同等地应用。信号承载介质的示例包括诸如软盘和CD-ROM之类的可记录介质、诸如数字和模拟通信链路之类的传输型介质以及将来所开发的介质存储和分发系统。
上面讨论的实施例可以由执行某些任务的软件模块来实现。这里所讨论的软件模块可以包括脚本、程序组(batch)或者其他可执行文件。软件模块可以被存储在诸如磁盘驱动器之类的机器可读或计算机可读存储介质上。用于存储根据本发明实施例的软件的存储设备例如可以是磁软盘、硬盘或者诸如CD-ROM或CD-R之类的光盘。用于存储根据本发明实施例的固件或硬件模块的存储设备还可以包括基于半导体的存储器,基于半导体的存储器可以永久地、可移动地或者远程地耦合到微处理器/存储器系统。因此,模块可以被存储在计算机系统存储器中,以配置计算机系统来执行模块的功能。可以使用其他新的和各种类型的计算机可读存储介质来存储这里所讨论的模块。
上述描述是为了说明本发明,并且不应该认为是用于限制的。本发明范围内的其他实施例是可以的。本领域技术人员将会容易地实现提供这里所讨论的结构和方法所必需的步骤,并且将会了解,处理参数和步骤顺序是仅通过示例而给出的,可以对其进行变更以实现期望的结构以及在本发明范围内的修改。可以基于这里所给出的描述来作出这里所公开的实施例的变更和修改,而不脱离本发明的范围。
因此,本发明仅将由所附权利要求的范围来限制,所附权利要求给出了对所有方面中的等价物的全面认识。
工业应用性
本发明的实施例可以用于联网领域。
Claims (9)
1.一种用于点对点数据传输的负荷散布方法,包括:
将第一数据流的第一部分分成第一组多个数据块,其中
所述第一组多个数据块中的每个数据块包括来自所述第一数据流的所述第一部分的一个数据子集,并且
在第一信道上提供所述第一部分;
将第二数据流的第二部分分成第二组多个数据块,其中
所述第二组多个数据块中的每个数据块包括来自所述第二数据流的所述第二部分的一个数据子集,并且
在第二信道上提供所述第二部分;
确定多个FIFO寄存器中最不满的FIFO寄存器;
将所述第一组多个数据块中的第一数据块写入所述多个FIFO寄存器中的第一FIFO寄存器;
将第一块结束EOC控制字与所述第一FIFO寄存器中的所述第一数据块相关联,其中
所述第一EOC控制字包括所述最不满的FIFO寄存器的标识符,并且
所述关联包括将所述第一EOC控制字写入所述第一FIFO寄存器;
从所述第一信道和所述第二信道之一中选择下一数据块;以及
将所述下一数据块写入所述最不满的FIFO寄存器。
2.如权利要求1所述的方法,还包括:
构造所述多个数据块中除了最后一个数据块之外的每个数据块,以包括第一数量的数据位;以及
构造所述最后一个数据块,其中,所述最后一个数据块包括
第二数量的数据位,和
分组结束控制字。
3.如权利要求1所述的方法,还包括:
将所述多个FIFO寄存器中的每一个耦合到一个相应的点对点发送接口,其中
每个点对点发送接口包括系统分组接口。
4.如权利要求1所述的方法,其中,将所述数据流的所述第一部分分成多个数据块包括:
将所述数据流的所述第一部分分成多个数据突发,其中
所述数据流的所述第一部分包括第一数据分组,
所述数据流的所述第一部分的最后一个数据突发包括分组结束EOP控制字;以及
根据所述多个数据突发的子集来构造数据块。
5.如权利要求1所述的方法,还包括:
识别初始FIFO寄存器;以及
将多个FIFO寄存器中的EOC控制字设置为指向所述初始FIFO寄存器。
6.如权利要求5所述的方法,还包括:
响应于将阈值数量的数据块写入所述多个FIFO寄存器,执行将所述多个FIFO寄存器中的所述EOC控制字设置为指向所述初始FIFO寄存器的所述步骤。
7.如权利要求6所述的方法,还包括:
响应于将所述阈值数量的数据块写入到所述多个FIFO寄存器,将对准边界指示包括在下一EOC控制字中。
8.一种用于点对点数据传输的负荷散布系统,包括:
多个FIFO寄存器;
FIFO选择模块,该FIFO选择模块耦合到所述多个FIFO寄存器,并且被配置用于
确定所述多个FIFO寄存器中最不满的FIFO寄存器;以及
散布模块,该散布模块耦合到所述多个FIFO寄存器和所述FIFO选择模块,并且被配置用于
将第一数据流的第一部分分成第一组多个数据块,其中
所述第一组多个数据块中的每个数据块包括来自所述第一数据流的所述第一部分的一个数据子集,并且
在第一信道上提供所述第一部分,将第二数据流的第二部分分成第二组多个数据块,其中
所述第二组多个数据块中的每个数据块包括来自所述第二数据流的所述第二部分的一个数据子集,并且
在第二信道上提供所述第二部分,将所述第一组多个数据块中的第一数据块写入所述多个FIFO寄存器中的第一FIFO寄存器,
将第一块结束EOC控制字与所述第一FIFO寄存器中的所述第一数据块相关联,其中
所述第一EOC控制字包括所述最不满的FIFO寄存器的标识符,并且
所述关联包括将所述第一EOC控制字写入所述第一FIFO寄存器,
从所述第一信道和所述第二信道之一中选择下一数据块,以及
将所述下一数据块写入所述最不满的FIFO寄存器。
9.一种用于点对点数据传输的负荷散布装置,包括:
用于将第一数据流的第一部分分成第一组多个数据块的装置,其中
所述第一组多个数据块中的每个数据块包括来自所述第一数据流的所述第一部分的一个数据子集,并且
在第一信道上提供所述第一部分;
用于将第二数据流的第二部分分成第二组多个数据块的装置,其中
所述第二组多个数据块中的每个数据块包括来自所述第二数据流的所述第二部分的一个数据子集,并且
在第二信道上提供所述第二部分;
用于确定多个FIFO寄存器中最不满的FIFO寄存器的装置;
用于将所述第一组多个数据块中的第一数据块写入所述多个FIFO寄存器中的第一FIFO寄存器的装置;
用于将第一块结束EOC控制字与所述第一FIFO寄存器中的所述第一数据块相关联的装置,其中
所述第一EOC控制字包括所述最不满的FIFO寄存器的标识符,并且
所述关联包括将所述第一EOC控制字写入所述第一FIFO寄存器;
用于从所述第一信道和所述第二信道之一中选择下一数据块的装置;以及
用于将所述下一数据块写入所述最不满的FIFO寄存器的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/263,609 US8259739B2 (en) | 2005-10-31 | 2005-10-31 | Scatter and gather scheme for aggregating multiple high speed point-to-point interfaces |
US11/263,609 | 2005-10-31 | ||
PCT/US2006/042407 WO2007053593A1 (en) | 2005-10-31 | 2006-10-31 | Scatter and gather scheme for aggregating multiple high speed point-to-point interfaces |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101352006A CN101352006A (zh) | 2009-01-21 |
CN101352006B true CN101352006B (zh) | 2013-03-06 |
Family
ID=37807927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800496119A Expired - Fee Related CN101352006B (zh) | 2005-10-31 | 2006-10-31 | 用于聚合多个高速点对点接口的散布和聚集方案 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8259739B2 (zh) |
EP (1) | EP1943792B1 (zh) |
CN (1) | CN101352006B (zh) |
WO (1) | WO2007053593A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7782805B1 (en) | 2005-02-08 | 2010-08-24 | Med Belhadj | High speed packet interface and method |
US7835359B2 (en) * | 2005-12-08 | 2010-11-16 | International Business Machines Corporation | Method and apparatus for striping message payload data over a network |
US8135972B2 (en) | 2009-03-10 | 2012-03-13 | Cortina Systems, Inc. | Data interface power consumption control |
US8964757B2 (en) | 2009-12-18 | 2015-02-24 | Qualcomm Incorporated | HTTP optimization, multi-homing, mobility and priority |
US20110314129A1 (en) * | 2009-12-18 | 2011-12-22 | Ramin Rezaiifar | Binding/aggregating multiple interfaces at application layer |
WO2012122538A1 (en) * | 2011-03-10 | 2012-09-13 | Cisco Technology, Inc. | Large interconnect fabrics |
GB201321148D0 (en) * | 2013-11-29 | 2014-01-15 | Bridgeworks Ltd | Data transfer |
US10554571B2 (en) * | 2015-08-18 | 2020-02-04 | Avago Technologies International Sales Pte. Limited | Packet-to-packet timing reconstruction for channel bonding |
CN109309615B (zh) * | 2017-07-27 | 2020-07-07 | 华为技术有限公司 | 传输数据的方法和设备 |
US10693787B2 (en) * | 2017-08-25 | 2020-06-23 | Intel Corporation | Throttling for bandwidth imbalanced data transfers |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148010A (en) * | 1998-06-24 | 2000-11-14 | Qualcomm Incorporated | Method and apparatus for distributing and consolidating data packets onto multiple network interfaces |
US6574191B1 (en) * | 1998-08-09 | 2003-06-03 | Nec Corporation | Line switching system and method |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956341A (en) * | 1996-12-13 | 1999-09-21 | International Business Machines Corporation | Method and system for optimizing data transmission line bandwidth occupation in a multipriority data traffic environment |
FR2778258A1 (fr) * | 1998-04-29 | 1999-11-05 | Texas Instruments France | Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces |
US6490296B2 (en) | 2001-02-28 | 2002-12-03 | Symmetricom, Inc. | Multi-link segmentation and reassembly for bonding multiple PVC's in an inverse multiplexing arrangement |
JP3598985B2 (ja) * | 2001-03-21 | 2004-12-08 | 日本電気株式会社 | キュー割り当てシステムおよびパケット交換機のキュー割り当て方法 |
US7139280B2 (en) * | 2001-07-30 | 2006-11-21 | Yishay Mansour | Buffer management policy for shared memory switches |
US6954466B1 (en) * | 2002-03-05 | 2005-10-11 | Modelware, Inc. | Link-layer receiver |
JP4409991B2 (ja) * | 2004-03-01 | 2010-02-03 | 富士通株式会社 | リンクアグリゲーションを用いた伝送制御システム |
-
2005
- 2005-10-31 US US11/263,609 patent/US8259739B2/en active Active
-
2006
- 2006-10-31 WO PCT/US2006/042407 patent/WO2007053593A1/en active Application Filing
- 2006-10-31 CN CN2006800496119A patent/CN101352006B/zh not_active Expired - Fee Related
- 2006-10-31 EP EP06836687.1A patent/EP1943792B1/en not_active Not-in-force
-
2012
- 2012-08-30 US US13/598,913 patent/US8665894B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148010A (en) * | 1998-06-24 | 2000-11-14 | Qualcomm Incorporated | Method and apparatus for distributing and consolidating data packets onto multiple network interfaces |
US6574191B1 (en) * | 1998-08-09 | 2003-06-03 | Nec Corporation | Line switching system and method |
Also Published As
Publication number | Publication date |
---|---|
US20120320735A1 (en) | 2012-12-20 |
WO2007053593A1 (en) | 2007-05-10 |
EP1943792A1 (en) | 2008-07-16 |
US8259739B2 (en) | 2012-09-04 |
US8665894B2 (en) | 2014-03-04 |
EP1943792B1 (en) | 2019-03-06 |
CN101352006A (zh) | 2009-01-21 |
US20070116026A1 (en) | 2007-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101352006B (zh) | 用于聚合多个高速点对点接口的散布和聚集方案 | |
US7489625B2 (en) | Multi-stage packet switching system with alternate traffic routing | |
US8081650B2 (en) | Method and system for selecting virtual lanes in fibre channel switches | |
US8614955B2 (en) | Misdirected packet detection apparatus and method | |
US20090296716A1 (en) | Method and system for programmable data dependant network routing | |
US20080310306A1 (en) | Programmable pseudo virtual lanes for fibre channel systems | |
US7126956B2 (en) | System to provide fractional bandwidth data communications services | |
US20090168772A1 (en) | Lun based hard zoning in fibre channel switches | |
US7324537B2 (en) | Switching device with asymmetric port speeds | |
US7079538B2 (en) | High-speed router | |
US20100040074A1 (en) | Multi-speed cut through operation in fibre channel switches | |
US7719969B1 (en) | System and method for assigning network device port address based on link rate | |
US20220294603A1 (en) | Data Stream Processing Method and Apparatus | |
US7522529B2 (en) | Method and system for detecting congestion and over subscription in a fibre channel network | |
RU2007111857A (ru) | Кольцевая сеть, устройство связи и способ оперативного управления, используемый для кольцевой сети и устройства связи | |
CN108718258B (zh) | 一种板间链路的质量检测方法及设备 | |
US20130077637A1 (en) | High speed fibre channel switch element | |
US20080123649A1 (en) | Systems and methods for broadcast storm control | |
US7990987B2 (en) | Network processor having bypass capability | |
US20090296715A1 (en) | Method and system for programmable data dependant network routing | |
CN112631985A (zh) | 一种链路共享的片上网络 | |
WO2024116323A1 (ja) | 制御装置、通信システム及び制御方法 | |
US9369296B2 (en) | Fabric chip having trunked links | |
CN100446499C (zh) | 一种保护倒换方法及装置 | |
KR100413520B1 (ko) | 비동기 전송 모드 셀 다중링크 제어장치 및 그 제어방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130306 Termination date: 20201031 |