基于发送许可的流控制方法和装置的制作方法

文档序号:7863484阅读:256来源:国知局
专利名称:基于发送许可的流控制方法和装置的制作方法
技术领域
本发明涉及基于发送许可(credit-based)的流控制。更具体地说,本发明涉及使用基于发送许可的传输机制而将缓冲区特征信息高效地且有效地提供给发送机的方法和装置。
背景技术
很多传统的网络协议使用分组丢弃(packet dropping)来缓解网络节点处的拥塞。在一个示例中,在基于IP网络中的网络节点以超过其输出带宽的速率接收来自多个源的输入数据。在传统的实现方式中,丢弃被选分组,以允许在所分配的输出带宽内传输剩余分组。最后在诸如TCP一类的较高层协议的控制下重传所丢弃的分组。
在诸如光纤信道网络一类的网络中,通常不允许分组丢弃。相反,诸如光纤信道网络一类的网络实现了端到端和缓冲区到缓冲区的流控制机制。端到端和缓冲区到缓冲区的流控制机制直到第二网络节点准备好接收帧时,才允许第一网络节点向第二网络节点发送帧。第二网络节点一般通过赋予第一网络节点发送许可来指示其准备好接收帧。当帧被发送时,使用发送许可。当不剩余发送许可时,第一网络节点不能再向第二网络节点发送帧。但是,端到端和缓冲区到缓冲区的流控制机制仅仅提供了用于提供发送许可信息的非常笼统的技术。
因此,对于上述性能限制中的一些或全部,希望提供改善诸如光纤信道网络一类网络中的网络节点处的基于发送许可的流控制的方法和装置。

发明内容
本发明提供了用于基于发送许可的流控制的方法和装置。本发明的技术允许接收机使用单个扩展接收机就绪信号,将缓冲区特征信息提供给发送机。使用单个扩展接收机就绪信号也可以分配多个发送许可。使用了计数器和寄存器,以允许在扩展接收机就绪信号发生偶然丢失时,仍旧继续准确地反映出可获得的缓冲区的类型和数量。
在一个实施例中,提供了一种用于在网络交换机上进行流控制的方法。在光纤信道交换机上接收来自第一网络节点的多个帧。转发所述多个帧。基于所转发的帧的数量来修改与第一网络节点相关联的发送许可信息。将扩展接收机就绪信号提供给第一网络节点。扩展接收机就绪信号包括发送许可信息,所述发送许可信息向第一网络节点指示出可获得多个用于接收来自第一网络节点的传输的缓冲区。
在另一个实施例中,提供了一种耦合到光纤信道交换机的网络节点。所述网络节点包括输入接口、输出接口和处理器。输出接口用于将多个帧发送到光纤信道交换机。输入接口用于接收来自所述光纤信道交换机的扩展就绪信号。所述扩展就绪信号包括发送许可信息。处理器耦合到输入接口和输出接口。所述处理器被配置以使用发送许可信息来确定可获得的用于接收来自网络节点的传输的缓冲区数量。
在以下本发明的说明书和附图中,将更加详细地提出本发明的以上和其他特征与优点,其中附图以示例的方式示出了本发明的原理。


通过结合附图参考以下描述,可以最好地理解本发明,所述附图示出了本发明的具体实施例。
图1是可以使用本发明的技术的网络的图形表示。
图2示出了线路头部阻塞(head-of-line blocking)的图形表示。
图3示出了有序集和帧的图形表示。
图4示出了8b/10b符号的图形表示。
图5示出了一些有序集的图形表示。
图6示出了扩展就绪信号的有序集的图形表示。
图7是在接收光纤信道交换机和发射光纤信道交换机之间的交换的图形表示。
图8示出了在接收光纤信道交换机处的基于发送许可的流控制的流程图。
图9示出了在发射光纤信道交换机处的基于发送许可的流控制的流程图。
图10是光纤信道交换机的图形表示。
具体实施例方式
本发明涉及网络中的流控制。更具体地说,本发明涉及用于改善基于发送许可的流控制方案的方法和装置。
现在将详细描述本发明的一些具体实施例,所述具体实施例包括了发明人所想到的用于实现本发明的最好方式。附图中示出了这些具体实施例的示例。虽然结合这些具体实施例而描述了本发明,但将会了解,并不想要将本发明局限于所描述的实施例。相反,想要覆盖如所附的权利要求书所定义的,可以包括在本发明的精神和范围内的替换、修改和等同物。
例如,下面将以存储区域网络中所使用的光纤信道为背景来描述本发明的技术。但是,应该注意,本发明的技术可应用于各种不同的协议和网络。此外,本发明所提供的解决方案同样可应用于非光纤信道网络。在一个示例中,该技术可以应用于通常不允许分组丢弃的网络。在以下描述中,为了提供对本发明的全面理解,提出了若干具体细节。无需这些具体细节中的一些或全部也可以实施本发明。在其他示例中,为了避免不必要地模糊本发明,没有详细描述公知的过程操作。
在基于发送许可的流控制方案的典型实现方式中,准备就绪接收帧的光纤信道交换机使用诸如接收机就绪信号一类的就绪信号来告知发射机,在接收机上可获得新的缓冲区。在一个示例中,接收机将具有接收机就绪信号的发送许可提供给发射机,该发射机可以使用所述发送许可来发送分组。
图1是使用基于发送许可的流控制方案的存储区域网络的一个示例的图形表示。交换机101耦合到交换机103和105,并且耦合到主机111和存储器121。在一个实施例中,主机111是服务器或客户端系统,而存储器121是单个磁盘,或者独立磁盘冗余阵列(RAID)。互连的交换机103和105两者都耦合到交换机107。交换机107连接到主机113,并且交换机103连接到存储器123。交换机109连接到主机115、交换机107、磁盘阵列153和外部网络151,所述外部网络151可以使用,或不使用光纤信道。为了使主机111访问网络151,可以采用的一条路径是通过交换机105的。
如上所述,当传统的IP网络中的交换机或路由器发生拥塞时,分组被丢弃。可以随机地丢弃分组,或者利用某种程度的智能而有选择地丢弃分组。通过丢弃分组,消耗大量带宽的流通常将比消耗较少量带宽的流丢弃掉更多的分组。
但是,光纤信道通常不允许分组的丢弃。相反,当交换机109由于各种原因而发生拥塞时,使用缓冲区到缓冲区的发送许可机制来控制从交换机107到交换机109的流量流,所述原因例如是未能接收或无法接收更多的特定类型的帧。不同类型的帧可以是不同优先级或类别的帧。在典型的实现方式中,交换机109将预定数量的发送许可分配到交换机107。每次在交换机107向交换机109发送特定类型的帧时,使用所述发送许可。然后,当交换机109具有可获得的缓冲区时,交换机109可以将用于流量的附加发送许可分配到交换机107。
在一个示例中,交换机109可以为优先级1流量配置128个缓冲区,并且为优先级2流量配置128个缓冲区。在另一示例中,交换机109可以具有为四种不同优先级的流量所分配的64个缓冲区。在基于发送许可的流控制方案中的传统就绪信号只允许一般的发送许可。在交换机109具有用于优先级1流量的128个缓冲区和用于优先级2流量的128个缓冲区的一个示例中,由于发送机可能发送多于128个特定类别的帧,因此即使交换机109实际上总共具有256个缓冲区,它也只能宣告(advertise)其具有128个可获得的缓冲区。传统的就绪信号无法在共享相同链路的流量类型之间进行区分。如果交换机109宣告其总共具有256个缓冲区,即使这256个缓冲区中只有128个是为优先级2流量所指定的,交换机107也可能发送256个具有优先级2流量的帧。因此,无论哪种流量类型,交换机107都只能为流量宣告128个可获得的缓冲区。在一个示例中,当交换机109中用于优先级2流量的缓冲区为空时,交换机109中用于优先级1流量的缓冲区可能已满。
但是,即使可获得用于优先级2流量的缓冲区,交换机107也不能将优先级2流量发送到交换机109。交换机107不能发送帧是因为它已经用完了发送优先级1流量的所有发送许可。当交换机107用完了发送许可时,它不能再向交换机109发送帧。由于网络151未能接收或无法接收更多的优先级2的帧,因此交换机109不能向网络151发送帧,从而交换机107也不能向网络151发送帧。线路头部阻塞发生,并且交换机109中的缓冲区和光纤信道网络中的链路两者都未得到充分利用。
缓冲区到缓冲区的发送许可机制是一种非常粗略的控制到交换机109的流量流的方法。发送许可机制不仅阻止流量从交换机107流向交换机109,继而流向网络151,还阻止流量从交换机107流向交换机109,继而流向主机115,即使主机115及其相关链路可以具有从交换机109接收附加帧的带宽,也是如此。缓冲区到缓冲区的发送许可机制会导致某些类型流量的阻塞,而交换机可能具有处理所述这些类型流量的缓冲能力。
应该注意,帧通常是第二层的结构,其包括第三层的分组结构。这里通常可互换使用帧和分组,以描述网络传输。
因为交换机107不能再向交换机109发送帧,因此交换机107不得不对交换机103和105实现相同的缓冲区到缓冲区的发送许可机制。当交换机103和105不能再向交换机107发送帧时,交换机103和105不得不对交换机101实现缓冲区到缓冲区的发送许可机制。从而拥塞会级联遍布整个网络。级联的拥塞现象可以被称为拥塞扩展(congestion spreading)。
图2示出了线路头部阻塞的交换机的图形表示。交换机201连接到外部节点251、253、255和257。缓冲区203与外部节点251相关联。为了清晰而没有示出与外部节点253、255和257相关联的缓冲区。缓冲区203包括部分207和部分209,其中部分207被配置,以保存诸如优先级1帧的特定类型的帧,而部分209被配置,以保存优先级2帧。
在典型的实现方式中,去往各个外部节点的所有类型的帧都被放置在相同的缓冲区203中。从而,当交换机201接收大量诸如优先级1的特定类型的帧时,完全消耗缓冲区203中的部分207。当部分207满时,由于交换机201不能为外部节点251分配附加的发送许可,因此来自外部节点251的附加流量被阻塞。即使在部分209中可以获得空间,可以被放置在缓冲区部分209中的流量也会被阻塞。
根据各种实施例,在缓冲区203中所存储的帧由帧描述符队列211-247中的指针来标注。每个帧描述符可以包含一个指针或标记(reference),该指针或标记标识出该帧在缓冲区203中存储于何处。这里将指向共享的缓冲区的指针或标记称为描述符。描述符还可以标识出诸如帧的优先级或类别一类的其他信息。
在一个示例中,仲裁器205使用轮转(round-robin)方法来选择帧。在第一轮中,选择去往外部节点253的帧。在第二轮中,选择去往外部节点255帧,等等。更具体地说,仲裁器205可以首先选择去往外部节点253的与描述符211相关联的高优先级的帧,然后选择去往外部节点255的与描述符221相关联的高优先级的帧,然后选择去往外部节点257的与描述符231相关联的高优先级的帧,等等。应该注意,可以使用本领域的技术人员将会意识到的用于选择帧的各种技术。
基于目的地来分配输入缓冲区的排队系统可以被称为虚拟输出排队(VOQ)。在Tamir Y.,Frazier G.所著的,刊登于1988年6月的Proc.Of15th Ann.Symp.On Comp.Arch.,343-354页的“High Performance multi-queue buffers for VLSI communication switches”中进一步描述了VOQ,这里为所有目的而并入了其全部内容,以作为参考。如上所述,当由于特定类型的流量而使与特定外部节点相关联的共享缓冲区空间的部分已满时,来自所述特定外部节点的任意类型的所有流量都会被阻塞。这样会阻止不同类型流量的流动,并且导致级联的拥塞。因此,希望提供用于更高效地执行流控制,并且更有效地使用缓冲区203中的空间的技术。这里将标识出在两节点之间具有特定特征的流量的抽象概念称为流。在一个示例中,利用源标识符、目的地标识符、优先级、类别和交换标识符来标注流。其他特征也是可能的。但是,应该注意,也可以仅仅利用源和目的地标识符来标注流。
在典型的实现方式中,接收机就绪信号除了单个的发送许可之外,不运送任何信息。就是说,接收机就绪信号除了可获得单个缓冲区的事实之外,不向发射机提供任何信息。为了指示出可获得多个缓冲区,要发送多个就绪信号。
典型的基于发送许可的流控制方案规定,为每个所接收和转发的帧提供单个的发送许可。当突然可获得大量缓冲区时,接收交换机通常无法以快速而高效的方式将该信息传递到发送机。在一个示例中,在发送每个接收机就绪信号的有序集之前,发送两个空闲的有序集。
图3示出了光纤信道帧传输的图形表示。这里被称为有序集的数据位的组通常在光纤信道帧之间传输。有序集包含在发送机和接收机之间所传递的控制信息,并且帮助维持链路同步。接收机就绪信号通常是作为有序集来发送的。光纤信道的某些版本指定在每个接收机就绪信号的有序集之前发送两个空闲信号的有序集。在发送接收机就绪信号的有序集之前不得不发送多个空闲的有序集,这使用了光纤信道链路中的宝贵带宽。在一个示例中,在帧301和303之间发送了六个有序集311到321。将接收机就绪信号配置在有序集315和321中,并且将空闲信号配置在有序集311、313、317和319中。
由于接收机就绪信号的有序集仅仅将单个的发送许可给予发送机,因此如果一次可获得大量缓冲区,则在将适当数量的发送许可给予发送机之前,不得不将相同数量的接收机就绪信号的有序集发送到发送机。根据各个实施例,每个有序集是使用光纤信道8B/10B编码而被作为40位发送到发送机(sender)或发射机(transmitter)的32位序列。在Fibre ChannelFraming and Signaling(FC-FS),Rev.1.70中描述了光纤信道8B/10B编码。
之所以使用光纤信道8B/10B编码是因为通常不希望在特定链路上发送0或1的长序列。在特定链路上发送0或1的长序列会导致链路上的发送机和接收机失去同步。通过将8位的序列映射到10位的序列,可以增加0和1之间的转换。例如,可以将具有0的长序列的00000001长序列映射到0111010100序列,以增加0和1之间的转换。
图4示出了8B/10B编码的图形表示。根据各个实施例,在帧间所发送的每个有序集包括如列401所示的四个数据字节。每个数据字节具有如列403所示的8位表示。将数据字节映射到正的运行非均匀性(runningdisparity)10位码和负的运行非均匀性10位码两者。通常,正的运行非均匀性和负的运行非均匀性用于保持特定链路上所发送的0和1的数量之间的适当平衡。在一个示例中,如果前一序列包含的1比0多,或者该序列以0011结尾,则在该序列结尾处的运行非均匀性为正。如果前一序列包含的0比1多,或者该序列以1100结尾,则在该序列结尾处的运行非均匀性为负。列405示出了具有负的运行非均匀性的10位序列,并且列407示出了具有正的运行非均匀性的10位序列。这里也可以将运行非均匀性称为极性。给予每个数据字节一个字节名称。例如,给予数据字节00000100符号D4.0,并且如行421所示来表示该数据字节00000100。
有序集包括以8B/10B形式所表示的四个数据字节,并且通常以数据字节的名称来提及有序集。应该注意,包含了4个字节的有序集最初是32位,并且使用8B/10B符号而被映射到40位。
图5示出了连同代表性的有序集一起被用于光纤信道传输的信号的图形表示。例如,如行513所示,空闲信号是包括数据字节K28.5-D21.4-D21.5-D21.5的有序集,其开始的运行非均匀性是负的。典型的接收机就绪信号包括数据字节K28.5-D21.4-D10.2-D10.2。但是,典型的接收机就绪信号只能够指示发送机现在可获得的单个的缓冲区。典型的接收机就绪信号不传递关于可获得的缓冲区类型、可获得的缓冲区数量,或者接收机就绪信号本身正确性的任意信息。根据各个实施例,本发明的技术提供了扩展接收机就绪信号519。在一个实施例中,扩展接收机就绪信号的有序集包括数据字节K28.5-D21.0以及两个形成16位序列的附加数据字节,这两个附加数据字节传递优先级、缓冲区宣告和错误检测信息。
这种使用8B/10B编码的有序集提供了一种技术,该技术可以在保持链路同步的同时,使接收交换机将关于可获得的缓冲区的信息传递到发送机。但是,应该注意,本发明的技术适用于各种协议、结构等等。本发明的技术适用于接收机将关于可获得的用于接收传输的缓冲区的信息提供给发送机的任意情况。在一个示例中,本发明的技术应用于无需8B/10B的形式而被发送的有序集。在另一示例中,本发明的技术应用于异步链路。在其他示例中,可以不在帧间发送有序集,并且可以在帧本身中传递控制信息。具体的信号和用于代表这些信号的具体有序集也可以广泛变化。
本发明的技术提供了一种机制,该机制用于使接收机以一种可靠并且高效的方式,将关于其可获得的缓冲区的特征告知发送机。图6示出了一种格式示例的图形表示,所述格式可以用于将缓冲区特征有效地并且高效地告知发送机。根据各个实施例,以8B/10B的形式将16位序列613表示为两个分开的8位序列615和617。16位序列613包括保留位601、3位优先级序列603、8位缓冲区宣告序列的高4位605、另一保留位607、8位缓冲区宣告序列的低4位609和错误检测码611。为了确保在扩展接收机就绪有序集结尾处的负的运行非均匀性,必须用具有中性非均匀性的8B/10B码来表示8位序列615和617。因此,应该将由603和605所形成的,以及609和611所形成的7位子序列映射成其8B/10B形式具有负的运行非均匀性的8位序列。在从www.t10.org可获得的FC-AL Rev.7.0Amendment的123页中的表K.1中描述了一利可能的映射。这里为所有目的而并入了FC-AL Rev.7.0 Amendment的全部内容,以作为参考。
在一个示例中,错误检测码611是3位序列,其允许检测所发送的序列中除保留位之外的3位错误。在一个示例中,错误检测码611是循环冗余码(CRC)。在John L.Hennessy和David A.Patterson所著的ComputerOrganization&Design(ISBN1558604286)中描述了这种码,这里为所有目的而并入了其全部内容,以作为参考。
虽然在一个实施例中提供了3位的错误检测码611,但是也可以使用各种CRC码、校验和,以及奇偶校验位。在一个示例中,在就绪信号中不包括错误纠正码。
扩展接收机就绪信号还包括用于维护与被宣告为可获得的缓冲区相关联的优先级的位。3个优先级位603将与被传递的发送许可的优先级相关的信息传递到发送机。虽然所描述的实施例提供了一种技术,该技术用于使接收机有效地传递关于可获得的多个缓冲区的信息,并且传递诸如优先级或类别一类的特征信息,但是想到了多种格式。在一个示例中,没有包括优先级位,而是使用所述位来区分流量的类别。
根据各个实施例,扩展接收机就绪信号在16位序列613中还包括缓冲区宣告,所述缓冲区宣告由高四位缓冲区宣告605和低四位缓冲区宣告609的连接所产生。这种缓冲区宣告提供了对可获得的用于接收传输的缓冲区数量的相对计数。
在一种实现方式中,缓冲区宣告可以包含刚刚被释放并且现在可获得的用于接收来自发送机的传输的缓冲区的数量。例如,接收光纤信道交换机可能刚刚将六个帧转发到光纤信道构架中的下一节点。因为转发了六个帧,因此现在可获得六个用于接收来自发送机的传输的缓冲区。在典型的实现方式中,不得不将由至少两个空闲信号的有序集所分隔的六个接收机就绪信号的有序集发送到发送机。根据各个实施例,接收交换机可以使用单个扩展接收机就绪信号对现在可获得六个用于接收传输的缓冲区的事实进行宣告。当发送机接收到扩展就绪信号的缓冲区宣告时,发送机就知道其具有了六个附加的发送许可,用于将帧转发到接收交换机。
但是,该方案存在缺陷。虽然光纤信道架构中的传输较为可靠,但是在从接收交换机到发送交换机之间的传输期间,扩展接收机就绪信号可能被毁坏或丢失。如果扩展接收机就绪信号丢失,发送交换机则无法得到现在可获得六个缓冲区的信息。六个发送许可丢失。当接收交换机将附加的四个帧转发到下一节点,并且将四个附加的发送许可提供给发送交换机时,发送交换机得到四个附加的发送许可,但是仍然未解决已经丢失的六个发送许可。
图7示出了用于即使扩展接收机就绪信号丢失,也能有效地跟踪可获得的缓冲区数量的技术的事务图。这里,将用于向发送或发射交换机传递接收机现在可获得多个用于接收传输的缓冲区的信息的任意信号都称为扩展接收机就绪信号。这里将被配置以提供接收机就绪信号,或扩展接收机就绪信号的任意网络节点都称为接收机。这里将使用发送许可而将帧转发到接收机的任意网络节点都称为发射机或发送机。这里的发射机和发送机可互换使用。根据各个实施例,利用光纤信道链路来连接发射机701和接收机703。为了初始化链路,接收机703向发射机701提供扩展接收机就绪信号709,以指示在接收机703中总共可获得100个用于接收来自发射机的优先级0的传输的缓冲区。接收机703维护寄存器711,所述寄存器711保持跟踪发送到发射机的上一缓冲区宣告。每次链路被复位时,将该寄存器复位到0。在发送扩展接收机就绪信号709之后,接收机703用100个缓冲区的计数来更新上一缓冲区宣告寄存器711。
发射机701包括两个计数器或寄存器705和707,它们用于跟踪可获得的缓冲区的数量以及从接收机703接收到的上一缓冲区宣告。每次链路被复位时,将这两个寄存器复位到0。在接收到扩展接收机就绪信号709之后,在计数器717中将上一缓冲区宣告设置为100。发射机将四个帧719转发到接收机703。在发送四个帧时,指示发送机可获得的缓冲区数量的计数器715减小到96。在接收交换机703中的上一缓冲区宣告计数器721保持在100。在接收机703转发四个帧之后,上一缓冲区宣告计数器731增加到104。将扩展接收机就绪信号729发送到发射机701。扩展就绪信号729包括如下信息,该信息指示出在接收机703上可获得104个缓冲区的相对计数。但是,扩展就绪信号729可能不会到达发射机701。
即使现在应该将可获得的缓冲区的数量增加到100,可获得缓冲区计数器725也还保持在96。如果扩展接收机就绪信号已经到达,可获得的缓冲区的数量则应该已经增加到100,该数量100准确地反映出接收机中可获得的缓冲区的数量。上一缓冲区宣告计数器727保持在100。然后,发射机701继续将四个附加帧转发到接收机703。指示可获得的缓冲区数量的计数器735减小到92。由于成功接收到的上一缓冲区宣告是在有序集709中到达的,因此上一缓冲区宣告计数器737保持在100。在接收交换机703中的上一缓冲区宣告计数器741保持在104。在接收交换机703将四个帧转发到下一节点之后,再次出现四个可获得的缓冲区。接收机703提供具有缓冲区宣告108的扩展接收机就绪信号749。接收交换机703更新上一缓冲区宣告计数器751,以指示在扩展接收机就绪信号749中提供了上一缓冲区宣告108。
当扩展就绪信号749到达发射交换机701时,从扩展就绪信号749中的缓冲区宣告中减去上一缓冲区宣告计数器747。就是说,从数值108中减去数值100。差值8指示出从成功地接收到上一扩展接收机就绪信号开始,已经变为可获得的缓冲区数量。在本示例中,差值8指示出从在发射机701上接收到上一扩展就绪信号709开始,变为可获得的缓冲区数量。将该差值添加到可获得缓冲区计数器745上,从而产生在计数器755中所指示的100个可获得的缓冲区的总和。100个可获得的缓冲区的总和准确地反映出接收机703中可获得的缓冲区的数量。将上一缓冲区宣告计数器757设置为与扩展就绪信号749中的缓冲区宣告相等。
通过维护可获得缓冲区计数器和上一缓冲区宣告计数器,即使丢失了若干扩展就绪信号,也可以准确地跟踪接收机中可获得的缓冲区的数量。这里,将用于跟踪可获得的用于接收来自发射机的帧的缓冲区数量的任意机制都称为可获得缓冲区计数器。这里将用于跟踪所提供的上一缓冲区宣告的任意机制都称为上一缓冲区宣告计数器。
通过使用相对的缓冲区宣告计数器,可以在丢失扩展接收机就绪信号时仍旧准确地将可获得的缓冲区的数量传递到发射机701。但是,由于在扩展接收机就绪信号中能够传递缓冲区宣告信息的位数有限,因此对于可以丢弃多少个信号存在限制。相似地,在可获得缓冲区计数器和上一缓冲区宣告计数器中用于保存信息的位数可能有限。在某个点上,缓冲区宣告计数器翻转(roll over),并且再次变为0。例如,8位的缓冲区宣告序列保存256个值,从0到255。当缓冲区宣告到达256时,发生计数器翻转,并且缓冲区宣告再次变为0。在极端的情况下,试想丢失了如此多的扩展接收机就绪信号,以致发射机701由于计数器翻转而无法得到接收机703中可获得的缓冲区数量的准确印象。这里将由于计数器翻转而得到可获得的缓冲区数量的不准确印象称为失真(aliasing)。
例如,在提供了8位以保存缓冲区宣告的情况下,可以被宣告的最大缓冲区数量是256。接收机可能希望指示出130个可获得的缓冲区,并且在扩展接收机就绪信号中提供该数量。但是,如果扩展接收机就绪信号丢失,那么如果接收机需要宣告大于256-130=126的缓冲区数量,则接收机处的计数器将可能翻转,并且再次变为0。如果接收机想要再宣告130个可获得的缓冲区,那么在接收机就绪信号中的缓冲区宣告将不是260(130+130),而是等于4(翻转的256+4等于260)。
因此,如果将系统设计成允许丢失单个扩展接收机就绪信号,那么被允许的最大缓冲区宣告将是127,或者是在扩展就绪信号中的缓冲区宣告容量的较小部分。如果将系统设计成在一行中允许丢失两个扩展接收机就绪信号,那么被允许的最大缓冲区宣告将是85,或者是最大的缓冲区宣告的三分之一。在被设计成允许在一行中丢失三个扩展接收机就绪信号的系统中,被允许的最大缓冲区宣告将是63。表1示出了在具有8位缓冲区宣告空间的扩展接收机就绪信号中可以被丢弃的扩展接收机就绪信号的最大数量和可以宣告的缓冲区的最大数量之间的关系。
表1.被宣告缓冲区的最大数量

图8示出了接收机侧流控制的一个示例的流程图。在801处,在链路复位时,接收光纤信道交换机将上一缓冲区宣告寄存器设置为0。在803处,接收交换机将一个扩展接收机就绪信号发送到发射机,所述扩展接收机就绪信号将初始的可获得的缓冲区数量指示给用于传输诸如类别1或优先级2帧一类特定类型帧的发送机。在805处,接收交换机初始化其自身的上一缓冲区宣告寄存器或计数器。根据各个实施例,上一缓冲区宣告寄存器包含可获得的并且在接收交换机上所使用的缓冲区数量的翻转计数(rolling count)。在一个示例中,如果接收交换机包括100个缓冲区,则上一缓冲区宣告寄存器最初包含数值100。如果使用四个缓冲区来保存来自发送机的帧,并且最后将所述帧转发,那么上一缓冲区宣告寄存器将增加到数值104。在807处,接收交换机接收来自发射机的帧。在809处,将帧转发到下一节点。
在811处,将扩展接收机就绪信号提供给发射机。根据各个实施例,扩展接收机就绪信号包括相对范围,以及指示出自发出上一缓冲区宣告以来被释放的缓冲区数量的相对计数。在813处,更新上一缓冲区宣告寄存器。应该注意,本发明的技术不一定以这里所提供的流程图的步骤来执行。例如,可以在将扩展接收机就绪信号提供给发射机之前,更新上一缓冲区宣告寄存器。
图9示出了发送机侧流控制的一个示例的流程图。在901处,发送交换机将上一缓冲区宣告和可获得的缓冲区初始化为0。在903处,发送交换机接收来自接收交换机的扩展接收机就绪信号。根据各个实施例,扩展接收机就绪信号包含这样的计数,该计数指示出在接收交换机上可获得的用于接收来自发送机的帧的缓冲区的初始数量。在905处,发送交换机计算在扩展接收机就绪信号和上一缓冲区宣告计数器中的缓冲区宣告之间的差值,以确定在接收交换机上可获得的缓冲区的初始数量。将该数量添加到可获得缓冲区计数器上。在907处,转发帧。在909处,基于在907处所发送的帧的数量来更新可获得缓冲区寄存器。例如,如果发送了四个帧,则可获得缓冲区计数器减小4。在911处,接收具有缓冲区宣告的扩展接收机就绪信号。在913处,确定在扩展接收机就绪信号和上一缓冲区宣告寄存器中的缓冲区宣告之间的差值。在915处,使用所述差值来更新可获得缓冲区寄存器的值。例如,如果上一缓冲区宣告值是100,并且在最近接收到的扩展就绪信号中的缓冲区宣告是104,则将差值4添加到可获得缓冲区寄存器的值上。
如上所述,可以在各种网络设备或交换机中执行流控制。根据各个实施例,交换机包括处理器、网络接口和用于维护FIB的存储器。如本领域的技术人员将会意识到的,还可以提供各种端口、媒体访问控制(MAC)模块和缓冲区。
图10是可以用来实现本发明技术的光纤信道交换机的一个示例的图形表示。虽然将描述一种特定配置,但是应该注意,多种交换机和路由器的配置都是可获得的。光纤信道交换机1001可以包括一个或多个监控器(supervisor)1011。根据各个实施例,监控器1011具有其自身的处理器、存储器和存储资源。
线路卡1003、1005和1007可以通过接口电路1083、1085和1087以及底板(backplane)1015而与活动(active)监控器1011进行通信。根据各个实施例,每个线路卡包括多个端口,这些端口可以充当与外部的光纤信道网络实体1051和1053进行通信的输入端口或者输出端口。底板1015可以为线路卡和监控器之间的所有流量提供通信信道。单独的线路卡1003和1007还可以通过光纤信道端口1043和1047而被耦合到外部的光纤信道网络实体1051和1053。
外部的光纤信道网络实体1051和1053可以是诸如其他光纤信道交换机、盘、RAID、磁带库或服务器一类的节点。应该注意,交换机可以支持任意数量的线路卡和监控器。在示出的实施例中,只将单个的监控器连接到底板1015,并且该单个的监控器与多个不同的线路卡进行通信。可以对活动监控器1011进行配置或设计,以运行诸如路由、域管理、系统管理和实用应用一类的多个应用。
根据一个实施例,对路由应用进行配置,以在认识到已经将帧转发到下一跳时,向发送机提供发送许可。可以对实用应用进行配置,以跟踪所使用的缓冲区数量和发送许可数量。域管理应用可以用来在光纤信道存储区域网中分配域。还可以对各种监控器应用进行配置,以提供用于各个光纤信道协议层的诸如流控制、发送许可管理和服务质量(QoS)功能一类的功能。
另外,虽然描述了示例性的交换机,但是在各种网络设备(例如服务器)以及各种介质中可以实现上述实施例。例如,可以将用于实现上述发明的指令和数据存储在盘驱动器、硬盘驱动器、软盘、服务器计算机或者远端联网的计算机上。因此,应该将这些实施例看作示例性的,而不是限制性的,并且不应该将本发明局限于这里所给出的细节,而是可以在所附的权利要求书的范围及其等同物内对本发明进行修改。
虽然已经参考特定实施例具体地示出并描述了本发明,但是本领域的技术人员将会理解,无需脱离本发明的精神或范围,可以改变所公开的实施例的形式和细节。例如,可以将本发明的实施例应用于各种网络协议和体系结构。因此,意图是将本发明理解为包括了落在本发明的真实精神和范围内的所有改变和等同物。
权利要求
1.一种用于在网络交换机上进行流控制的方法,该方法包括在光纤信道交换机处从第一网络节点接收多个帧;转发所述多个帧;基于所转发的帧的数量来修改与所述第一网络节点相关联的发送许可信息;以及向所述第一网络节点提供扩展接收机就绪信号,所述扩展接收机就绪信号包括发送许可信息,所述发送许可信息向所述第一网络节点指示出可获得多个用于接收来自所述第一网络节点的传输的缓冲区。
2.如权利要求1所述的方法,其中所述扩展接收机就绪信号还包括优先级信息。
3.如权利要求2所述的方法,其中所述优先级信息用于在八种优先级之间进行区分。
4.如权利要求1到3中的任意一个所述的方法,还包括在接收所述多个帧之前,向所述第一网络节点提供初始化扩展接收机就绪信号。
5.如权利要求4所述的方法,其中所述初始化扩展接收机就绪信号包括初始化发送许可信息。
6.如权利要求4所述的方法,其中所述初始化发送许可信息是缓冲区宣告,该缓冲区宣告用于确定所述第一网络节点可获得的发送许可的初始数量。
7.如权利要求6所述的方法,其中每个发送许可允许所述第一网络节点发送单个帧。
8.如权利要求5所述的方法,其中所述初始化发送许可信息是缓冲区宣告,该缓冲区宣告用于确定可获得的用于接收来自第一网络节点的帧的缓冲区初始数量。
9.如权利要求1到8中的任意一个所述的方法,其中所述发送许可信息是缓冲区宣告,该缓冲区宣告用于确定所述第一网络节点可获得的发送许可的相对数量。
10.如权利要求9所述的方法,其中所述发送许可信息是缓冲区宣告,该缓冲区宣告用于确定可获得的用于接收来自第一网络节点的帧的缓冲区相对数量。
11.如权利要求10所述的方法,其中所述光纤信道交换机维护被提供给所述第一网络节点的上一缓冲区宣告。
12.如权利要求10所述的方法,其中所述第一网络节点维护从所述光纤信道交换机接收到的上一缓冲区宣告。
13.如权利要求12所述的方法,其中所述第一网络节点还维护发送许可值,所述发送许可值指示了可获得的用于接收来自所述第一网络节点的传输的缓冲区数量。
14.如权利要求13所述的方法,其中通过从当前的缓冲区宣告中减去上一缓冲区宣告来计算所述发送许可值,所述当前的缓冲区宣告是从所述光纤信道交换机接收到的。
15.如权利要求8所述的方法,其中每个缓冲区被配置用来保存单个帧。
16.如权利要求1到15中的任意一个所述的方法,其中所述扩展接收机就绪信号还包括错误检测码。
17.如权利要求1到16中的任意一个所述的方法,其中所述扩展接收机就绪信号是有序集。
18.如权利要求17所述的方法,其中在发送了两个空闲的有序集之后发送所述扩展接收机就绪信号。
19.一种耦合到光纤信道交换机的网络节点,所述网络节点包括用于向所述光纤信道交换机发送多个帧的输出接口;用于接收来自所述光纤信道交换机的扩展就绪信号的输入接口,所述扩展就绪信号包括发送许可信息;耦合到所述输入接口和所述输出接口的处理器,所述处理器被配置为使用所述发送许可信息来确定可获得的用于接收来自所述网络节点的传输的缓冲区数量。
20.如权利要求19所述的网络节点,其中所述扩展接收机就绪信号还包括优先级信息。
21.如权利要求20所述的网络节点,其中所述优先级信息用于在八种优先级之间进行区分。
22.如权利要求19到21中的任意一个所述的网络节点,其中所述输入接口还被配置用来在发送所述多个帧之前接收来自所述光纤信道交换机的初始化接收机就绪信号。
23.如权利要求22所述的网络节点,其中所述初始化扩展接收机就绪信号包括初始化发送许可信息。
24.如权利要求22所述的网络节点,其中所述初始化发送许可信息是缓冲区宣告,该缓冲区宣告指示了所述网络节点可获得的发送许可的初始数量。
25.如权利要求24所述的网络节点,其中每个发送许可允许所述网络节点发送单个帧。
26.如权利要求23所述的网络节点,其中所述初始化发送许可信息是缓冲区宣告,该缓冲区宣告用于确定可获得的用于接收来自网络节点的帧的缓冲区初始数量。
27.如权利要求19到26中的任意一个所述的网络节点,其中所述发送许可信息是缓冲区宣告,该缓冲区宣告用于确定所述网络节点可获得的发送许可的相对数量。
28.如权利要求27所述的网络节点,其中所述发送许可信息是缓冲区宣告,该缓冲区宣告用于确定可获得的用于接收来自网络节点的帧的缓冲区相对数量。
29.如权利要求28所述的网络节点,其中所述光纤信道交换机维护被提供给所述网络节点的上一缓冲区宣告。
30.如权利要求28所述的网络节点,其中所述网络节点维护从所述光纤信道交换机接收到的上一缓冲区宣告。
31.如权利要求30所述的网络节点,其中所述网络节点还维护发送许可值,所述发送许可值指示了可获得的用于向另一网络节点发送帧的缓冲区数量。
32.如权利要求31所述的网络节点,其中通过从当前的缓冲区宣告中减去上一缓冲区宣告来计算所述发送许可值,所述当前的缓冲区宣告是从所述光纤信道交换机接收到的。
33.如权利要求26所述的网络节点,其中每个缓冲区被配置用来保存单个帧。
34.如权利要求19到33中的任意一个所述的网络节点,其中所述扩展就绪信号还包括错误检测码。
35.如权利要求19到34中的任意一个所述的网络节点,其中所述扩展就绪信号是有序集。
36.如权利要求35所述的网络节点,其中在发送了两个空闲的有序集之后发送所述扩展就绪信号。
37.一种网络交换机,包括用于在光纤信道交换机处从第一网络节点接收多个帧的装置;用于转发所述多个帧的装置;用于基于所转发的帧的数量来修改与所述第一网络节点相关联的发送许可信息的装置;以及用于将扩展接收机就绪信号提供给所述第一网络节点的装置,所述扩展接收机就绪信号包括发送许可信息,所述发送许可信息向所述第一网络节点指示出可获得多个用于接收来自所述第一网络节点的传输的缓冲区。
全文摘要
本发明提供了用于基于发送许可进行流控制的方法和装置。本发明的技术允许接收机使用单个扩展接收机就绪信号,将缓冲区特征信息提供给发送机。使用单个扩展接收机就绪信号也可以分配多个发送许可。使用了计数器和寄存器,以允许在扩展接收机就绪信号发生偶然丢失时,仍旧继续准确地反映出可获得的缓冲区的类型和数量。
文档编号H04L12/56GK1706157SQ03817856
公开日2005年12月7日 申请日期2003年7月14日 优先权日2002年7月25日
发明者戴维·贝尔加马斯科, 西尔瓦诺·加伊, 托马斯·詹姆斯·埃兹尔, 雷·克洛特 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1