用于统一输入/输出和降低延迟的网络设备体系结构的制作方法

文档序号:7949066阅读:574来源:国知局
专利名称:用于统一输入/输出和降低延迟的网络设备体系结构的制作方法
与相关申请的交叉引用本申请要求2004年10月22日递交的题为“FC Over Ethernet”的美国临时申请No.60/621,396(律师案卷号No.CISCP404P)和2005年3月30日递交的题为“Network Device Architecture For ConsolidatingInput/Output And Reducing Latency”的美国专利申请No.11/094,877(律师案卷号No.CISCP417)的优先权,这里通过引用将这些申请的全部内容结合进来。
背景技术
图1示出了要求高可用性和网络存储的企业(例如金融机构)可能使用的一般类型的数据中心的简化版本。数据中心100包括具有冗余连接以获得高可用性的冗余以太网交换机。数据中心100经由防火墙115经由网络105连接到客户端。网络105例如可以是企业内联网、DMZ和/或因特网。以太网十分适合于客户端(例如远程客户端180和185)和数据中心之间的TCP/IP流量。
在数据中心105内,有许多网络设备。例如,许多服务器一般被布置在具有标准外形参数的机架(rack)上(例如一个“机架单元”可能宽19”并且厚约1.25”)。“机架单元”或“U”是用于机架安装型设备的电子工业联盟(或者更常称之为“EIA”)标准计量单元。近来,由于出现在许多种商业、工业和军事市场中的机架安装产品的激增,该术语变得更加流行。“机架单元”的高度等于1.75”。为了计算机架外壳的内部可用空间,只需要简单地用机架单元的总量乘以1.75”。例如,44U机架外壳将具有77”的内部可用空间(44×1.75)。数据中心内的每个机架例如可具有约40个服务器。数据中心可具有数千个或甚至更多的服务器。最近,一些厂商已经发布了“刀片服务器(blade server)”,其允许甚至更高密度的服务器封装(大约每机架60至80个服务器)。
但是,随着数据中心内网络设备的数目增长,连通性变得越来越复杂和昂贵。在最低限度上,数据中心105的服务器、交换机等等一般将经由以太网连接。为了获得高可用性,至少将有2个以太网连接,如图1所示。
此外,不希望服务器包括巨大的存储能力。由于此原因和其他原因,企业网络包括与存储设备(例如存储阵列150)的连通性的情形变得越来越常见。历史上,存储流量是通过SCSI(小型计算机系统接口)和/或FC(光纤信道)来实现的。
在20世纪90年代中期,SCSI流量只能行进较短的距离。当时最感兴趣的主题是如何使SCSI去往“盒外”。就像一直以来一样,希望速度能够更快。当时,以太网正从10Mb/s发展到100Mb/s。一些人设想了未来达到1Gb/s的速度,但是许多人认为这已经接近了物理极限。对于10Mb/s以太网,存在半双工和冲突的问题。以太网被认为是不太可靠的,这一部分是因为分组可能会丢失并且可能存在冲突。(虽然术语本领域的技术人员通常使用的“分组”和“帧”的含义可能略有不同,但是在这里这两个术语可以互换使用)。
FC被认为是存储应用的有吸引力并且可靠的选择,这是因为根据FC协议,分组不会被故意丢弃,并且FC已经能够以1Gb/s运行。但是,在2004年间,以太网和FC都达到了10Gb/s的速度。此外,以太网已经发展到了全双工并且没有冲突的阶段。因此,FC比起以太网来不再有速度优势。但是,交换机中的拥塞可能导致以太网分组被丢弃,这对于存储流量来说是不合需要的特征。
在21世纪的最初几年,大量工作投入到了开发iSCSI中,以在TCP/IP网络上实现SCSI。虽然这些努力取得了一些成功,但是iSCSI并没有变得十分流行iSCSI占有存储网络市场的约1%-2%,与之相比,FC占有大约98%-99%。
一个原因在于iSCSI栈与FC栈相比有些复杂。参考图7A,可以看出iSCSI栈700需要5个层以太网层705、IP层710、TCP层715、iSCSI层720和SCSI层725。TCP层715是栈的必要部分,因为以太网层705可能丢失分组,而SCSI层725不能容忍分组丢失。TCP层715为SCSI层725提供了可靠的分组传送。但是,在1到10Gb/s的速度下,TCP层715是一个难以实现的协议。相反,由于FC不丢失帧,因此不需要利用TCP层之类的层来补偿丢失的帧。因此,如图7B所示,FC栈750更简单,只需要FC层755、FCP层760和SCSI层765。
因此,FC协议通常被用于网络上的服务器和存储设备(例如存储阵列150)之间的通信。因此,数据中心105包括FC交换机140和145,用于服务器110和存储阵列150之间的通信,在此示例中FC交换机140和145由Cisco Systems,Inc.提供。
1RU和刀片服务器非常流行,因为它们相对而言更低廉、强大、标准化,并且可以运行任何一种最流行的操作系统。已经熟知近来年典型服务器的成本已经降低并且其性能水平已经提高。由于服务器相对较低的成本和在一个服务器上运行多于一类软件应用可能造成的潜在问题,每个服务器一般被专用于一个特定应用。在典型企业网络上运行的大量应用继续增加了网络中服务器的数目。
但是,由于维持与每个服务器的各种类型的连通性(例如以太网和FC连通性)较为复杂(其中为了获得高可用性每类连通性最好是冗余的),服务器的连通性成本变得高于服务器本身的成本。例如,服务器的单个FC接口的成本就可能与服务器本身一样高。服务器与以太网的连接一般是经由网络接口卡(“NIC”)进行的,而它与FC网络的连接是利用主机总线适配器(“HBA”)进行的。
FC网络和以太网网络中的设备的角色就网络流量来说有些不同,这主要是因为响应于TCP/IP网络中的拥塞,分组照例会被丢弃,而在FC网络中帧不会被故意丢弃。因此,在这里有时FC将被称为“无丢弃”(nodrop)网络的一个示例,而以太网将会被称为“丢弃”(drop)网络的一种表现形式。当在TCP/IP网络上分组被丢弃时,系统将会迅速恢复,例如在几百微秒中恢复。但是,FC网络的协议一般是基于帧不会被丢弃的假设的。因此,当在FC网络上帧被丢弃时,系统不会迅速恢复,并且SCSI将会花若干分钟来恢复。
目前,以太网交换机的端口可在丢弃分组之前将其缓冲达约100毫秒。由于实现了10Gb/s以太网,以太网交换机的每个端口将需要约100MB的RAM来将分组缓冲100毫秒。这将会昂贵得令人望而生畏。
对于一些企业,希望“集群(cluster)”多于一个服务器,如图1中服务器S2和S3周围的虚线所示。集群使得偶数个服务器被视为单个服务器。为了进行集群,希望执行远程直接存储器访问(“RDMA”),其中一个虚拟存储器空间(可能分散在许多物理存储器空间上)的内容可在没有CPU干预的情况下被拷贝到另一个虚拟存储器空间。应当以非常低的延迟(latency)来执行RDMA。在一些企业网络中,存在专用于集群服务器的第三类网络,如交换机175所示。这例如可以是“Myrinet”、“Quadrix”或“Infiniband”网络。
因此,服务器的集群将给数据中心网络添加更多的复杂因素。但是,与Quadrix和Myrinet不同,Infiniband允许进行集群并且提供了简化数据中心网络的可能性。Infiniband网络设备相对更低廉,这主要是因为它们使用较小的缓冲器空间、铜介质和简单的转发方案。
但是,Infiniband网络有若干缺陷。例如,目前只有一个Infiniband交换机组件来源。此外,尚未证明Infiniband能够在例如大型企业的数据中心这样的上下文中正确工作。例如,没有已知的用于互连Infiniband子网的Infiniband路由器的实现方式。虽然在Infiniband和光纤信道以及Infiniband到以太网之间可能有网关,但是,将以太网从数据中心中去除的可能性是非常小的。这也意味着主机不仅需要Infiniband连接,还需要以太网连接。
因此,即使大型企业希望忽略前述缺点并改为基于Infiniband的系统,该企业也需要在企业测试基于Infiniband系统时有遗留数据中心网络(例如如图1所示)安装并工作。因此,基于Infiniband的成本将不会是替代成本,而是额外的成本。
非常需要以允许相对于现有数据中心网络发生进化改变的方式简化数据中心网络。理想的系统将会提供用于以低成本统一服务器I/O和提供低延迟和高速度的进化系统。

发明内容
本发明提供了用于实现低延迟以太网(“LLE”)解决方案的方法和设备,在这里LLE解决方案也被称为数据中心以太网(“DCE”)解决方案,它简化了数据中心的连通性,并且提供了用于传输以太网和存储流量的高带宽、低延迟网络。本发明的一些方面包括将FC帧变换成适合于在以太网上传输的格式。
本发明的一些优选实现方式在数据中心或类似网络的单个物理连接中实现了多个虚拟通道(“VL”)(也称为虚拟链路)。一些VL是“丢弃”VL,具有类似以太网的行为,其他的是具有类似FC行为的“无丢弃”通道。一些实现方式提供了“丢弃”和“无丢弃”之间的中间行为。一些这样的实现方式是“推迟丢弃”(delayed drop),其中当缓冲器满时帧不会立即被丢弃,相反在丢弃帧之前存在有限时间(例如毫秒量级)的上游“回推”。
VL部分地可通过标记帧来实现。由于每个VL可具有其自己的信用,因此每个VL可被独立地对待。甚至可以依据补充速率根据指派给VL的信用来确定每个VL的性能。为了允许更复杂的拓扑并允许对交换机内的帧进行更好的管理,TTL信息以及帧长度字段可被添加到帧。还可以有关于拥塞的编码信息,以便源可以接收显式(explicit)消息以减慢下来。
本发明的一些优选实现方式提供了基于信用和VL的保证带宽。不同的VL可被指派以可随时间改变的不同保证带宽。优选地,VL将会保持相同的特性(例如将会保持是丢弃或无丢弃通道),但是VL的带宽将会取决于一天中的时间、要完成的任务等等而动态改变。
活动缓冲器管理既允许高可靠性,又允许了低延迟,同时还使用较小的帧缓冲器,甚至对于10GB/s以太网也是如此。优选地,对于不同类型的VL,例如丢弃和无丢弃VL,用于活动缓冲器管理的规则是不同的。本发明的一些实施例是利用铜介质而不是光纤实现的。给定所有这些属性,可以以有竞争力的、相对低廉的方式实现I/O统一。
本发明的一些方面提供了一种用于在单个网络设备中处理多于一类网络流量的方法。该方法包括以下步骤在逻辑上被划分成多个虚拟通道的物理链路上接收第一帧和第二帧;将网络设备的缓冲器划分成用于在第一虚拟通道上接收的第一帧的第一缓冲器空间和用于在第二虚拟通道上接收的第二帧的第二缓冲器空间;将第一帧存储在第一缓冲器空间中;将第二帧存储在第二缓冲器空间中;向第一帧应用第一组规则;以及向第二帧应用第二组规则。该方法还可包括针对每个虚拟通道指派保证最小量缓冲器空间的步骤。
第一帧可以是以太网帧,例如这里描述的扩展以太网帧。在一些实现方式中,第一组规则使得第一帧响应于延迟被丢弃,而第二组规则不会使得第二帧响应于延迟被丢弃。但是,第二组规则可使得帧被丢弃以避免死锁。第一组规则和/或第二组规则可使得显式拥塞通知响应于延迟被从网络设备发送。显式拥塞通知可被发送到源设备或边缘设备之一,并且可以经由数据帧或控制帧之一发送。
“无丢弃”和“推迟丢弃”VL的流控制可通过利用缓冲器到缓冲器信用计入方案和/或暂停帧的任何便利组合来实现。例如,一些实现方式在网络设备内使用缓冲器到缓冲器信用计入方案,并且在链路上使用暂停帧来进行流控制。因此,第二组规则可包括为第二帧实现缓冲器到缓冲器信用计入方案。缓冲器到缓冲器信用计入方案包括根据帧大小计入信用,并且可以实现在网络设备内和/或网络链路上。在网络设备内,缓冲器到缓冲器信用可由仲裁器管理。如果缓冲器到缓冲器信用计入方案既被用于网络设备内又被用于链路上,则在网络设备内管理的信用最好与在链路上管理的信用不相同。
划分步骤可包括根据缓冲器占用率、一天中的时间、流量负载、拥塞、保证最小带宽分配、已知的要求较大带宽的任务和最大带宽分配来划分缓冲器。第一帧和第二帧可被存储在虚拟输出队列(“VOQ”)中。每个VOQ可与一个目的地端口/虚拟通道对相关联。该方法可包括响应于VOQ长度、每虚拟通道缓冲器占用率、整体缓冲器占用率和分组年龄执行缓冲器管理的步骤。
本发明的一些实施例提供了一种网络设备,其包括被配置用于在多条物理链路上接收帧的多个端口,以及多个线路卡。每个端口与多个线路卡之一通信。每个线路卡被配置为执行以下步骤从多个端口之一接收帧;识别在第一虚拟通道上接收的第一帧和在第二虚拟通道上接收的第二帧;将缓冲器划分成用于第一帧的第一缓冲器空间和用于第二帧的第二缓冲器空间;将第一帧存储在第一缓冲器空间中;将第二帧存储在第二缓冲器空间中;向第一帧应用第一组规则;以及向第二帧应用第二组规则。
本发明的另一些实现方式提供了一种用于在单个网络设备上承载多于一类流量的方法。该方法包括以下步骤识别在第一虚拟通道上接收的第一帧和在第二虚拟通道上接收的第二帧;动态地将网络设备的缓冲器划分成用于第一帧的第一缓冲器空间和用于第二帧的第二缓冲器空间;将第一帧存储在第一缓冲器空间的第一VOQ中;将第二帧存储在第二缓冲器空间的第二VOQ中;向第一帧应用第一组规则;以及向第二帧应用第二组规则。可以根据以下因素来动态划分缓冲器整体缓冲器占用率、每虚拟通道缓冲器占用率、一天中的时间、流量负载、拥塞、保证最小带宽分配、已知的要求较大带宽的任务和最大带宽分配。
本发明的其他实施例提供了一种网络设备,其包括被配置用于在多条物理链路上接收帧的多个端口,以及多个线路卡。每个端口与多个线路卡之一通信。每个线路卡被配置为执行以下步骤识别在第一虚拟通道上接收的第一帧和在第二虚拟通道上接收的第二帧;动态地将网络设备的缓冲器划分成用于第一帧的第一缓冲器空间和用于第二帧的第二缓冲器空间;将第一帧存储在第一缓冲器空间的第一虚拟输出队列(“VOQ”)中;将第二帧存储在第二缓冲器空间的第二VOQ中;向第一帧应用第一组规则;以及向第二帧应用第二组规则。可以根据以下因素来动态划分缓冲器整体缓冲器占用率、每虚拟通道缓冲器占用率、一天中的时间、流量负载、拥塞、保证最小带宽分配、已知的要求较大带宽的任务和最大带宽分配。这里描述的方法可以按多种方式实现和/或表现,所述多种方式例如包括硬件、软件等等。


通过结合附图参考以下描述将理解本发明,附示了本发明的具体实现方式。
图1是示出数据中心的简化网络图。
图2是示出根据本发明一个实施例的数据中心的简化网络图。
图3是示出在单个物理链路上实现的多个VL的框图。
图4示出根据本发明一些实现方式携带有用于实现DCE的额外字段的以太网帧的一种格式。
图5示出根据本发明一些实现方式的链路管理帧的一种格式。
图6A是示出本发明的简化的基于信用(credit)的方法的网络图。
图6B是示出本发明的信用计入(crediting)方法的表。
图6C是概括根据本发明用于初始化链路的一种示例性方法的流程图。
图7A示出了iSCSI栈。
图7B示出了用于在FC上实现SCSI的栈。
图8示出了根据本发明一些方面用于在DCE上实现SCSI的栈。
图9A和9B示出了根据本发明一些方面用于在以太网上实现FC的方法。
图10是根据本发明一些方面用于在以太网上实现FC的简化网络图。
图11是根据本发明一些方面用于聚集DCE交换机的简化网络图。
图12示出了根据本发明一些实施例的DCE交换机的体系结构。
图13是示出根据本发明一些实现方式每个VL的缓冲器管理的框图。
图14是示出根据本发明的某些类型的显式拥塞通知的网络图。
图15是示出根据本发明一些实现方式的每个VL的缓冲器管理的框图。
图16是示出根据本发明一些方面的概率性丢弃函数的图线。
图17是示出一段时间中VL缓冲器的示例性占用率的图线。
图18是示出根据本发明的另一些方面的概率性丢弃函数的图线。
图19示出可被配置执行本发明的一些方法的网络设备。
具体实施例方式
现在将详细参考本发明的一些具体实施例,其中包括发明人认为实现本发明的最佳模式。这些具体实施例的示例在附图中示出。虽然是结合这些具体实施例来描述本发明的,但是应当理解,并不希望将本发明限制到所描述的实施例。相反,希望覆盖所附权利要求所限定的本发明的精神和范围所包括的替换、修改和等同。此外,下面阐述了许多具体细节以帮助全面理解本发明。没有这些具体细节也能实现本发明。在其他情况下,没有详细描述公知的过程操作,以避免喧宾夺主。
本发明提供了用于简化数据中心的连通性和提供用于传输以太网和存储流量的高带宽、低延迟网络的方法和设备。本发明的一些优选实现方式在数据中心或类似网络的单个物理连接中实现了多个VL。优选地,针对每个VL维护缓冲器到缓冲器信用。一些VL是“丢弃”VL,具有类似以太网的行为;其他的是具有类似FC的行为的“无丢弃”通道。
一些实现方式提供了“丢弃”和“无丢弃”之间的中间行为。一些这样的实现方式是“推迟丢弃”,其中在缓冲器满时,帧不会立即被丢弃,相反在丢弃帧之前存在有限时间(例如毫秒量级)的上游“回推”。推迟丢弃实现方式对于管理短暂的拥塞是有用的。
优选地,拥塞控制方案在第2层实现。本发明的一些优选实现方式基于信用和VL提供了保证带宽。使用信用的替换方案是针对每个VL使用标准IEEE 802.3暂停(PAUSE)帧,以实现“无丢弃”或“推迟丢弃”VL。这里通过引用将IEEE 802.3标准结合进来,用于所有目的。例如,通过引用具体结合了802.3ae-2002标准的附录31B,其标题为“MACControl PAUSE Operation”。还要理解,在没有VL的情况下本发明仍能工作,但是在这种情况下,整条链路将会表现出“丢弃”或“推迟丢弃”或“无丢弃”行为。
优选实现方式支持协商机制,例如IEEE 802.1x指定的那种,这里通过引用将其结合进来。协商机制例如可以确定主机设备是否支持LLE,并且,如果支持的话,则允许主机接收VL和信用信息,例如支持多少个VL,VL是使用信用还是暂停,如果是信用那么有多少信用,每个个体VL的行为如何。
活动缓冲器管理既允许高可靠性,又实现了低延迟,同时还使用较小的帧缓冲器。优选地,对于丢弃和无丢弃VL,用于活动缓冲器管理的规则是不同的。
本发明的一些实现方式支持对于集群实现方式尤其有用的高效RDMA协议。在本发明的一些实现方式中,网络接口卡(“NIC”)实现了用于集群应用的RDMA,还实现了用于RDMA的可靠传输。本发明的一些方面是经由来自用户直接访问编程库(“uDAPL”)的用户API实现的。uDAPL定义了用于所有具有RDMA能力的传输的一组用户API,这里通过引用将其结合进来。
图2是示出用于简化数据中心200的连通性的LLE解决方案的一个示例的简化网络图。数据中心200包括LLE交换机240,其具有用于经由防火墙215与TCP/IP网络205和主机设备280和285的连通性的路由器260。示例性的LLE交换机的体系结构在这里详细阐述。优选地,本发明的LLE交换机可运行10Gb/s以太网,并且具有相对较小的帧缓冲器。一些优选的LLE交换机只支持第2层功能。
虽然本发明的LLE交换机可以利用光纤和光收发机实现,但是一些优选的LLE是利用铜连通性来实现的,以便降低成本。一些这样的实现方式是根据提议的IEEE 802.3ak标准实现的,该标准被称为10Base-CX4,这里通过引用将其结合进来,用于所有目的。发明人预期其他实现方式将使用新兴的标准IEEE P802.3an(10GBASE-T),这里也通过引用将其结合进来,用于所有目的。
服务器210也与LLE交换机245相连接,LLE交换机245包括用于与盘阵列250通信的FC网关270。FC网关270在以太网上实现FC(这里将对其进行详细描述),从而消除了在数据中心200内有单独的FC和以太网网络的需要。网关270可以是诸如Cisco Systems的MDS 900IP存储服务模块这样的设备,该设备已被配置有用于执行本发明的一些方法的软件。以太网流量按原始格式承载于数据中心200内。之所以能够这样是因为LLE是以太网的扩展,它除了原有的以太网外还能承载以太网上FC(FC over Ethernet)和RDMA。
图3示出了由物理链路315连接的两个交换机305和310。交换机305和310的行为一般来说受IEEE 802.1约束,而物理链路315的行为一般来说受IEEE 802.3约束。大体上,本发明提供了LLE交换机的两个一般行为,以及多种中间行为。第一一般行为是“丢弃”行为,该行为与以太网的类似。一般行为是“无丢弃”行为,该行为与FC的类似。本发明还提供了“丢弃”和“无丢弃”行为之间的中间行为,包括但不限于本文中其他地方描述的“推迟丢弃”行为。
为了在同一物理链路315上实现两种行为,本发明提供了用于实现VL的方法和设备。VL是将一条物理链路分割成多个逻辑实体以便一个VL中的流量不受其他VL上的流量的影响的方式。这是通过为每个VL维护单独的缓冲器(或一个物理缓冲器的单独的部分)来完成的。例如,可以使用一个VL来传送控制平面流量和一些其他的高优先级流量,而这些流量不会由于另一VL上的低优先级大块流量而被阻塞。VLAN可被分组成不同的VL,以便一组VLAN中的流量的行进可以不受其他VLAN上流量的阻碍。
在图3所示的示例中,交换机305和310实际上在物理链路315上提供了4个VL。在这里,VL 320和325是丢弃VL,而VL 330和335是无丢弃VL。为了同时实现“丢弃”行为和“无丢弃”行为两者,必须为每类行为指派至少一个VL,总共2个。(理论上,可以只有一个VL,该VL被临时指派给每类行为,但是这种实现方式不是优选的)。为了支持遗留设备和/或其他缺乏LLE功能的设备,本发明的优选实现方式支持没有VL的链路,并且将该链路的所有流量映射到第一LLE端口处的单个VL。从网络管理角度来看,最好有2到16个VL,虽然也可以实现更多个。
优选地,将链路动态划分为VL,这是因为静态划分不太灵活。在本发明的一些优选实现方式中,动态划分例如是通过添加扩展头部而在逐分组基础上(或逐帧基础上)实现的。本发明涵盖了这种头部的很多种格式。在本发明的一些实现方式中,在DCE链路上有两类帧发送这些类型是数据帧和链路管理帧。
虽然图4和5分别示出了用于实现本发明的一些方面的以太网数据帧和链路管理帧的格式,但是本发明的其他实现方式提供了具有更多或更少字段的帧、不同顺序的帧或其他变体。图4的字段405和410是分别用于帧的目的地地址和源地址的标准以太网字段。类似地,协议类型字段430、有效载荷435和CRC字段440可以是标准以太网帧的那些字段。
但是,协议类型字段420指示以下字段是DCE头部425的那些字段。如果存在的话,DCE头部最好尽可能地接近帧的开始处,这是因为它使得在硬件中能够很容易进行解析。DCE头部可被携带在以太网数据帧中,如图4所示,以及携带在链路管理帧中(见图5和相应的描述)。该头部最好被MAC剥去,并且不需要被存储在帧缓冲器中。在本发明的一些实现方式中,当不存在数据流量或由于缺乏信用而不能发送常规帧时,生成链路管理帧的连续流。
DCE头部中携带的大多数信息与包含有该DCE头部的以太网帧相关。但是,一些字段是用于为相反方向上的流量补充信用的缓冲器信用字段。在该示例中,缓冲器信用字段只由具有长DCE头部的帧携带。如果解决方案使用暂停帧而不是信用,则可能不需要信用字段。
TTL字段445指示存活时间,这是一个每当帧400被转发时就被递减的数。通常,第2层网络不需要TTL字段。以太网使用生成树拓扑,这种拓扑是非常保守的。生成树对活动拓扑施加约束,并且对于从一个交换机到另一个交换机的分组只允许一条路径。
在本发明的优选实现方式中,不遵从对活动拓扑的这种限制。相反,优选地,多条路径同时活动,例如经由链路状态协议,比如OSPF(最短路径优先)或IS-IS(中间系统到中间系统)。但是,已经知道链路状态协议在拓扑重配置期间会导致瞬时环路。利用TTL或类似的特征确保了瞬时环路不会变成大问题。因此,在本发明的优选实现方式中,TTL被编码在帧中,从而实际上在第2层实现链路状态协议。与使用链路状态协议不同的是,本发明的一些实现方式使用以不同的LLE交换机为根的多个生成树,并获得了类似的行为。
字段450标识帧400的VL。根据字段450对VL的标识允许了设备将帧指派给适当的VL,并且为不同的VL应用不同的规则。如本文中其他地方详细描述的,规则将会根据各种标准而有所不同,所述标准例如是VL是丢弃还是无丢弃VL,VL是否具有保证带宽,当前在VL上是否有拥塞,以及其他因素。
ECN(显式拥塞通知)字段455被用于指示缓冲器(或分配给此VL的缓冲器的一部分)就要被填满,因而对于所指示的VL,源应当减慢其传送速率。在本发明的优选实现方式中,网络中的至少一些主机设备可理解ECN信息,并且将会对所指示的VL应用整形器,即一个a/k/a速率限制器。显式拥塞通知可以按至少两种一般方式发生。在一种方法中,出于发送ECN的明确目的而发送一个分组。在另一种方法中,该通知被“捎带(piggy-back)”在已被传送的分组上。
如其他地方所述的,显式拥塞通知可被发送到源或发送到边缘设备。ECN可发源于DCE网络中的各种设备中,包括末端设备和核心设备。如下面的交换机体系结构部分中更详细讨论的,拥塞通知和对其的响应是控制拥塞同时维持较小的缓冲器大小的重要部分。
本发明的一些实现方式允许了ECN被从发端设备向上游发送,以及/或者允许了ECN被向下游发送,然后返回上游。例如,ECN字段455可以包括前向ECN部分(“FECN”)和后向ECN部分(“BECN”)。当交换机端口经历拥塞时,它可对FECN部分中的一位进行置位,并正常地转发帧。在接收到FECN位被置位的帧时,末端站对BECN位进行置位,并且帧被发送回源。源接收帧,检测到BECN位已被置位,并且减少注入网络中的流量,或者至少对于所指示的VL减少注入网络中的流量。
帧信用字段465被用于指示应当为帧400分配的信用的数目。在本发明的范围内,存在许多可能的实现这种系统的方式。最简单的解决方案是为个体分组或帧计入信用。从缓冲器管理角度来看,这可能不是最佳的解决方案如果为单个信用预留一个缓冲器并且每个分组上应用一个信用,那么就为单个分组预留了整个缓冲器。即使缓冲器的大小只等于预期的标准大小帧的大小,这种信用计入方案经常也会导致对每个缓冲器的利用率很低,这是因为许多帧将会小于最大大小。例如,如果标准大小帧为9KB,并且所有缓冲器都是9KB,但是平均帧大小是1500字节,则通常每个缓冲器中只有1/6被使用。
一种更好的解决方案是根据帧大小来计入信用。虽然可以为例如单个字节计入一个信用,但是在实际中最好使用更大的单位,例如64B、128B、256B、512B、1024B,等等。例如,如果信用是针对512B这一单位的,则前述的平均1500字节的帧将会需要3个信用。如果根据本发明的一个这种实现方式传送这种帧,帧信用字段465将会指示帧需要3个信用。
根据帧大小的信用计入允许了更高效地使用缓冲器空间。已知分组的大小不仅指示了将会需要多少缓冲器空间,还指示了何时可将分组从缓冲器移走。例如,如果交换机的内部传送速度不同于数据到达交换机端口的速率的话,那么这就尤其重要。
此示例提供了DCE头部的较长版本和较短版本。长头部字段460指示了DCE头部是长版本还是短版本。在该实现方式中,所有的数据帧都至少包含短头部,该短头部在字段445、450、455和465中分别包括TTL、VL、ECN和帧信用信息。如果数据帧除需要携带存在于短头部中的信息外还需要携带与每个VL相关联的信用信息,则数据帧可包含长头部。在该示例中,存在8个VL以及用于指示每个VL的缓冲器信用的8个相应字段。短DCE头部和长DCE头部两者的使用减少了在所有帧中携带信用信息的开销。
当没有要发送的数据帧时,本发明的一些实施例使得链路管理帧(“LMF”)被发送,以宣告信用信息。LMF还可用于携带来自接收者的缓冲器信用或者携带来自发送者的所发送的帧信用。LMF应当在无信用的情况下被发送(帧信用=0),因为它最好被端口消耗,而不被转发。LMF可被周期性地发送和/或响应于预定条件发送,例如在每10MB的有效载荷被数据帧传送之后。
图5示出了根据本发明的一些实现方式的LMF格式的示例。LMF 500开始于标准的6B以太网字段510和520,它们分别用于帧的目的地地址和源地址。协议类型头部530指示之后是DCE头部540,该DCE头部在本示例中是短DCE头部(例如长头部字段=0)。DCE头部540的VL、TTL、ECN和帧信用字段被发送者设置为零并且被接收者忽略。因此,LMF可由以下特性标识Protocol_Type=DCE_Header并且Long_Header=0并且Frame_Credit=0。
字段550指示活动VL的接收者缓冲器信用。在本示例中,存在8个活动VL,因此由字段551至558指示每个活动VL的缓冲器信用。类似地,字段560指示发送设备的缓冲器信用,因此由字段561至568指示每个活动VL的帧信用。
LMF 500不包含任何有效载荷。如果必要的话,就像本示例中一样,LMF 500被填充字段570填充到64字节,以创建合法的最小大小的以太网帧。LMF 500终止于标准的以太网CRC字段580。
一般来说,本发明的缓冲器到缓冲器信用计入方案是根据以下两条规则来实现的(1)发送者在来自接收者的信用数大于或等于要发送的帧所需的信用数时发送该帧;以及(2)接收者在其能够接受额外的帧时向发送者发送信用。如上所述,利用数据帧或LMF中的任何一种都可以补充信用。仅当至少存在数目等于帧长度(排除DCE头部的长度)的信用时,才允许端口为特定VL发送帧。
如果使用暂停帧而不是信用,则应用类似的规则。发送者在帧未被接收者暂停时发送该帧。接收者在无法接受额外的帧时向发送者发送暂停帧。
以下是数据传输和信用补充的简化示例。图6A示出了从交换机B发送到交换机A的数据帧605,其具有短DCE头部。在分组605到达交换机A之后,它将被保存在缓冲器610的存储器空间608中。由于缓冲器610的存储器中有一些被消耗了,因此交换机B的可用信用将会有相应的减少。类似地,当数据帧615(也具有短DCE头部)被从交换机A发送到交换机B时,数据帧615将会消耗缓冲器620的存储器空间618,从而交换机A可用的信用将会相应减少。
但是,在帧605和615已被转发之后,在发送方交换机的缓冲器中相应的存储器空间将会可用。在某个时刻,例如周期性地或根据需要地,该缓冲器空间再次可用这一事实应当被传送给链路另一端的设备。具有长DCE头部的数据帧和LMF被用于补充信用。如果不补充信用,则可使用短DCE头部。虽然一些实现方式对所有传送都使用较长的DCE头部,但是这种实现方式的效率不那么高,这是因为为不包含关于信用补充的信息的分组消耗了超额的带宽。
图6B示出了本发明的信用信令方法的一个示例。传统的信用信令方案650通告接收者希望返回的新信用。例如,在时刻t4,接收者希望返回5个信用,因此值5被携带在帧中。在时刻t5,接收者没有信用要返回,因此值0被携带在帧中。如果在时刻t4帧丢失,则五个信用丢失。
DCE方案660通告累积的信用值。换言之,每个通告将要返回的新信用加到先前返回的信用的总数模m(对于8位,m为256)。例如,在时刻t3,从链路初始化开始返回的信用总数是3;在时刻t4,由于需要返回5个信用,因此将5加到3,并且在帧中发送8。在时刻t5,不需要返回信用,从而再次发送8。如果在时刻t4帧丢失,那么没有信用丢失,因为在时刻t5帧包含相同的信息。
根据本发明的一种示例性实现方式,接收方DCE交换机维护以下信息(其中VL指示信息是针对每个虚拟通道维护的)·BufCrd[VL]-按能够发送的信用数递增的模数计数器;·BytesFromLastLongDCE-自最后一个长DCE头部以来发送的字节数;·BytesFromLastLMF-自最后一个LMF以来发送的字节数;·MaxIntBetLongDCE-在发送长DCE头部之间的最大间隔;·MaxIntBetLMF-在发送LMF之间的最大间隔;以及·FrameRx-按接收帧的FrameCredit字段递增的模数计数器。
发送DCE交换机端口维护以下信息·LastBufCrd[VL]-接收者的BufCrd[VL]变量的最后估计值;以及·FrameCrd[VL]-按用于发送帧的信用数递增的模数计数器。
当链路建立时,链路每一端的网络设备将会协商DCE头部的存在性。如果头部不存在,则网络设备例如将会简单地使链路能够进行标准以太网操作。如果头部不存在,则网络设备将会启用根据本发明一些方面的DCE链路的特征。
图6C是示出根据本发明的一些实现方式如何初始化DCE链路的流程图。本领域的技术人员将会意识到,方法680(与这里描述的其他方法一样)的步骤不需要按所指示的顺序执行,并且在一些情况下没有按所指示的顺序执行。此外,这些方法的一些实现方式包括比所指示的更多或更少的步骤。
在步骤661中,两个交换机端口之间的物理链路建立,并且在步骤663中,第一分组被接收。在步骤665中,确定(由接收方端口)该分组是否具有DCE头部。如果没有,则使该链路能够传送标准以太网流量。如果该分组具有DCE头部,则端口执行步骤以将该链路配置为DCE链路。在步骤671中,接收者和发送者将与链路上的流量相关的所有阵列清零。在步骤673中,MaxIntBetLongDCE的值被初始化为配置的值,并且在步骤675中,MaxIntBetLMF被初始化为配置的值。
在步骤677中,两个DCE端口优选地通过发送LMF来交换每个VL的可用信用信息。如果某个VL不被使用,则它的可用信用被宣告为0。在步骤679中,使链路能够传送DCE,并且包括数据帧在内的常规DCE流量可根据这里描述的方法在该链路上发送。
为了在存在单个帧丢失的情况下正确工作,优选实现方式的DCE自恢复机制要求帧中通告的信用的最大数目小于最大可通告值的1/2。在短DCE头部的一些实现方式中,每个信用字段为8位,即等于256的值。从而,在单个帧中可通告最多达127个额外信用。127个信用的最大值是合理的,因为最坏情况由一个方向上的一长串最小大小帧和相反方向上的单个巨大帧所代表。在传送9KB的巨大帧期间,最小大小帧的最大数目约为9220B/84B=110个信用(假定9200字节的最大传送单位和20字节的IPG和前导)。
如果多个连续的帧丢失,则LMF恢复方法可“修复”链路。一个这种LMF恢复方法基于以下观点,即在一些实现方式中,由DCE交换机的端口维护的内部计数器为16位,但是为了节省带宽,只有较低的8位在长DCE头部中发送。如果没有连续帧丢失则这一方式工作得很好,如前所述。当链路经历多个连续差错时,长DCE头部可能不再能够同步计数器,但这却通过包含所有计数器的全部16位的LMF实现了。8个额外的位允许了恢复多256倍的差错,即总共512个连续差错。优选地,在遇到这种情况之前,链路被声明为不可工作并被重置。
为了实现低延迟以太网系统,必须考虑至少3种一般类型的流量。这些类型是IP网络流量、存储流量和集群流量。如上面详细描述的,LLE为“无丢弃”VL提供了适合于例如存储流量的类似FC的特性。“无丢弃”VL不会丢失分组/帧,并且可以根据例如图8所示的简单栈来提供。只有一小“片”LLE上FC(FC over LLE)810处于LLE层805和FC第2层(815)之间。层815、820和825与FC栈750的那些相同。因此,以前运行在FC上的存储应用现在可以运行在LLE上。
现在将参考图9A、9B和10描述根据LLE上FC层810的一个示例性实现方式的FC帧到以太网上FC(FC over Ethernet)帧的映射。图9A是FC帧的简化版本。FC帧900包括SOF 905和EOF 910,它们是有序的符号集合,不仅用于限定帧900的边界,还用于传达诸如帧的种类、帧是序列(一组FC帧)的开始还是结束,帧是正常还是非正常之类的信息。这些符号中的至少一些是非法的“代码违规(code violation)”符号。FC帧900还包括24位的源FC ID字段915、24位的目的地FC ID字段920和有效载荷925。
本发明的一个目标是在以太网上传达FC帧(例如FC帧900)中包含的存储信息。图10示出了用于能够传达这种存储流量的LLE的本发明的一种实现方式。网络1000包括LLE云1005,设备1010、1015和1020附接到该LLE云。LLE云1005包括多个LLE交换机1030,其示例性体系结构在本文中其他地方讨论。设备1010、1015和1020可以是主机设备、服务器、交换机等等。存储网关1050将LLE云1005与存储设备1075相连。出于移动存储流量的目的,网络100可被配置为充当FC网络。因此,设备1010、1015和1020的端口分别具有其自己的FC ID,并且存储设备1075的端口具有FC ID。
为了在设备1010、1015和1020与存储设备1075之间高效地移动存储流量(包括帧900),本发明的一些优选实现方式将来自FC帧900的字段的信息映射到LLE分组950的相应字段。LLE分组950包括SOF 955、目的地MAC字段的组织ID字段965和设备ID字段970、源MAC字段的组织ID字段975和设备ID字段980、协议类型字段985、字段990和有效载荷995。
优选地,字段965、970、975和980都是24位字段,符合常规以太网协议。因此,在本发明的一些实现方式中,FC帧900的目的地FC ID字段的内容被映射到字段965或970中的一个,优选映射到字段970。类似地,FC帧900的源FC ID字段的内容被映射到字段975或980中的一个,优选映射到字段980。优选地,将FC帧900的目的地FC ID字段915和源FC ID字段920的内容分别映射到LLE分组950的字段970和980,因为约定俗成地,IEEE为单个组织代码指派许多设备代码。这种映射功能例如可由存储网关1050执行。
因此,FC帧到LLE分组的映射部分地可通过向IEEE购买与一组设备代码相对应的组织唯一标识符(“OUI”)代码来实现。在一个这种示例中,当前的受让人Cisco Systems支付了OUI的注册费,并将OUI指派给“以太网上的FC”。根据本发明的这一方面配置的存储网关(例如存储网关1050)将OUI置于字段965和975中,将目的地FC ID字段915的24位内容拷贝到24位字段970,并将源FC ID字段920的24位内容拷贝到24位字段980。存储网关在协议类型字段985中插入指示以太网上FC的代码,并将有效载荷925的内容拷贝到有效载荷字段995。
由于上述映射,不需要在存储网络上明确指派MAC地址。然而,由于映射,目的地和源FC ID的以算法导出的版本被编码在了LLE帧的相应部分中,这些相应部分在常规以太网分组中将被指派给目的地和源MAC地址。通过就好像这些字段是MAC地址字段那样利用这些字段的内容,可在LLE网络上路由存储流量。
SOF字段905和EOF字段910包含有序的符号集合,其中一些(例如用于指示FC帧的开始和结束的那些)是保留的符号,有时这些符号被称为“非法”或“代码违规”符号。如果这些符号之一被拷贝到LLE分组950内的某个字段(例如字段990),则该符号将会导致差错,例如通过指示LLE分组950应当在该符号处终止。但是,由这些符号传达的信息必须被保留,因为它指示了FC帧的种类,帧是序列的开始还是结束,以及其他重要信息。
因此,本发明的优选实现方式提供了将非法符号转换成合法符号的另一种映射功能。这些合法符号随后可被插入在LLE分组950的内部部分中。在一个这种实现方式中,经转换的符号被置于字段990中。字段990不需要很大;在一些实现方式,它的长度仅为1或2个字节。
为了允许贯通(cut-through)交换的实现,字段990可被分割成两个单独的字段。例如,一个字段可以位于帧开始处,另一个可位于帧的另一端。
前述方法只是用于将FC帧封装在扩展的以太网帧内的各种技术的一个示例。其他方法包括任何便利的映射,例如包括从三元组{VSAN,D ID,S ID}导出三元组{VLAN,DST MAC Addr,Src MAC Addr}。
上述映射和符号转换过程产生了LLE分组,例如LLE分组950,其允许去往或来自基于FC的存储设备1075的存储流量经由LLE云1005被转发到末端节点设备1010、1015和1020。映射和符号转换过程例如可以由存储网关1050在逐帧基础上运行。
因此,本发明提供了用于在FC-以太网云的入口边缘处将FC帧封装在扩展的以太网帧内的示例性方法。本发明的类似方法提供了在以太网-FC云的出口边缘处执行的相反过程。FC帧可从扩展以太网帧中解封出来,然后在FC网络上传送。
一些这样的方法包括这些步骤接收以太网帧(例如按这里描述的方式封装);将以太网帧的目的地MAC字段的第一部分的目的地内容映射到FC帧的目的地FC ID字段;将以太网帧的源MAC字段的第二部分的源内容映射到FC帧的源FC ID字段;将以太网帧的合法符号转换成非法符号;将非法符号插入到FC帧的所选字段中;将以太网帧的有效载荷字段的有效载荷内容映射到FC帧有效载荷字段;以及在FC网络上传送FC帧。
不需要保留关于帧的状态信息。因此,可以迅速地处理帧,例如以40Gb/s的速率处理帧。末端节点可基于SCSI运行存储应用,因为存储应用能看到图8所示的LLE栈800的SCSI层825。不同于经由专用于FC流量的交换机(例如图1所示的FC交换机140和145)转发存储流量,这种FC交换机可由LLE交换机1030所取代。
此外,LLE交换机的功能允许了空间强大的管理灵活性。参考图11,在一种管理方案中,LLE云1105的LLE交换机1130中的每一个可被视为单独的FC交换机。或者,LLE交换机1130中的一些或全部可被聚集起来,并且出于管理目的被视为FC交换机。例如,出于网络管理目的,通过将LLE云1105中的所有LLE交换机视为单个FC交换机,形成了虚拟FC交换机1140。个体LLE交换机1130的所有端口例如可被视为虚拟FC交换机140的端口。或者,可以聚集较少量的LLE交换机1130。例如,3个LLE交换机被聚集起来以形成虚拟FC交换机1160,4个LLE交换机被聚集起来以形成虚拟FC交换机1165。网络管理者可通过考虑个体LLE交换机具有多少端口等等来决定聚集多少交换机。通过将每个LLE交换机视为一个FC交换机,或者通过将多个LLE交换机聚集成一个虚拟FC交换机,可实现FC的控制平面功能,例如分区(zoning)、DNS、FSPF和其他功能。
此外,同一LLE云1105可支持许多虚拟网络。虚拟局域网(“VLAN”)是本领域中已知的,用于提供虚拟的基于以太网的网络。题为“Interswitch Link Mechanism for Connecting High-Performance NetworkSwitches”的美国专利No.5,742,604描述了相关系统,这里通过引用将其结合进来。本受让人的各种专利申请,包括2001年12月26日递交的题为“Methods And Apparatus For Encapsulating A Frame For Transmission In AStorage Area Network”的美国专利申请No.10/034,160,提供了用于为基于FC的网络实现虚拟存储区域网(“VSAN”)的方法和设备。这里通过引用将该申请完全结合进来。由于LLE网络既能支持以太网流量又能支持FC流量,本发明的一些实现方式实现了为FC和以太网流量两者在同一物理LLE云上形成虚拟网络。
图12是示出根据本发明一个实施例的DCE交换机1200的简化体系结构的示意图。DCE交换机1200包括N个线路卡,每个线路卡的特征在于入口侧(或输入)1205和出口侧(或输出)1225。线路卡入口侧1205经由交换结构1250连接到线路卡出口侧1225,在本示例中该交换结构包括纵横交换机。
在该实现方式中,在输入和输出侧都执行缓冲。也可能实现其他体系结构,例如具有输入缓冲器、输出缓冲器和共享存储器的那些。因此,输入线路卡1205中的每一个包括至少一个缓冲器1210,并且输出线路卡1225中的每一个包括至少一个缓冲器1230,所述缓冲器可以是本领域已知的任何便利类型的缓冲器,例如外部的基于DRAM的缓冲器或片上的基于SRAM的缓冲器。缓冲器1210例如用于输入缓冲,以便在等待输出线路卡处有足够缓冲器可用于存储要经由交换结构1250发送的分组的同时暂时保存分组。缓冲器1230例如用于输出缓冲,以便在等待有足够信用用于要发送到另一DCE交换机的分组的同时暂时保存接收自输入线路卡1205中的一个或多个的分组。
值得注意的是,虽然信用可在交换机内部和外部使用,但是在内部和外部信用之间不一定存在一对一映射。此外,可以在内部或外部使用暂停帧。例如,四个可能组合暂停-暂停(PUASE-PAUSE)、暂停-信用(PAUSE-CREDITS)、信用-暂停(CREDITs-PAUSE)和信用-信用(CREDIT-CREDIT)中的任何一种都可产生可行的解决方案。
DCE交换机1200包括某种形式用于施加流控制的信用机制。该流控制机制可在缓冲器1230之一的输出队列达到其最大容量时在缓冲器1210上施加反向压力。例如,在发送帧之前,输入线路卡1205之一可在从输入队列1215向输出队列1235发送帧之前向仲裁器1240(它例如可以是位于中央位置的单独的芯片或分布在输出线路卡上的一组芯片)请求信用。优选地,该请求例如根据DCE头部的帧信用字段指示帧的大小。仲裁器1240将会确定输出队列1235是否能够接受该帧(即输出缓冲器1230具有足够的空间来容纳该帧)。如果能够,则信用请求将会被准予,并且仲裁器1240将会向输入队列1215发送信用授予。但是,如果输出队列1235太满,则该请求将会被拒绝,并且不会向输入队列1215发送信用。
如本文中其他地方所讨论的,DCE交换机1200需要能够支持虚拟通道所要求的“丢弃”、“无丢弃”和中间行为。部分地通过在内部向DCE交换机施加类似上面描述的某类信用机制来启用“无丢弃”功能。在外部,“无丢弃”功能可根据先前描述的缓冲器到缓冲器信用机制或暂停帧来实现。例如,如果输入线路卡1205之一正经历着通过内部信用机制来自一个或多个输出线路卡1225的反向压力,那么线路卡可经由类似FC的那种的缓冲器到缓冲器信用系统在上游方向上在外部传播反向压力。
优选地,提供“无丢弃”和中间功能的同一芯片(例如同一ASIC)也将提供类似经典以太网交换机的那种的“丢弃”功能。虽然这些任务可被分配在不同芯片上,但是在同一芯片上提供丢弃、无丢弃和中央功能允许了以低得多的成本来提供DCE交换机。
每个DCE分组将会在例如本文中其他地方描述的DCE头部中包含指示DCE分组所属的虚拟通道的信息。DCE交换机1200将会根据DCE分组被指派到的VL是丢弃还是无丢弃VL来处理每个DCE分组。
图13示出了为VL划分缓冲器的示例。在该示例中,指派了4个VL。VL 1305和VL 1310是丢弃VL。VL 1315和VL 1320是无丢弃VL。在该示例中,输入缓冲器1300具有为每个VL指派的特定区域VL 1305被指派到缓冲器空间1325,VL 1310被指派到缓冲器空间1330,VL 1315被指派到缓冲器空间1335,VL 1320被指派到缓冲器空间1340。VL 1305和VL 1310上的流量的管理方式很像常规的以太网流量,并且部分是根据缓冲器空间1325和1330的操作。类似地,VL 1315和1320的无丢弃特征部分是根据仅为缓冲器空间1335和1340启用的缓冲器到缓冲器信用流控制方案来实现的。
在一些实现方式中,指派给VL的缓冲器空间的量可根据诸如以下标准动态地指派缓冲器占用率、一天中的时间、流量负载/拥塞、保证最小带宽分配、已知的要求更大带宽的任务、最大带宽分配,等等。优选地,公平原则将会应用来防止一个VL获得过多量的缓冲器空间。
在每个缓冲器空间内,在作为与目的地相关联的逻辑队列(虚拟输出队列或VOQ)的数据结构中存在数据的组织。(“A Practical SchedulingAlgorithm to Achieve 100% Throughput in Input-Queued Switches”,AdisakMekkittikul和Nick McKeown,Computer Systems Laboratory,StanfordUniversity(InfoCom 1998)和其中引用的参考文献描述了用于实现VQO的相关方法,这里通过引用将它们结合进来)。目的地最好是目的地端口/虚拟通道对。利用VOQ方案避免了在输出端口阻塞时和/或目的地输出端口的另一虚拟通道阻塞时引起的输入线路卡处的队头阻塞(head of lineblocking)。
在一些实现方式中,在VL之间不共享VOQ。在其他实现方式中,在丢弃VL之间或无丢弃VL之间可共享VOQ。但是,在无丢弃VL和丢弃VL之间不应当共享VOQ。在一些实施例中,VOQ与单个缓冲器相关联。但是,在其他实施例中,VOQ可由多于一个缓冲器实现。
DCE交换机的缓冲器可实现各种类型的活动队列管理。DCE交换机缓冲器的一些优选实施例提供了至少4种基本类型的活动队列管理流控制;出于拥塞避免目的,针对丢弃VL进行丢弃或针对无丢弃VL进行标记;丢弃以避免无丢弃VL中的死锁;以及为了延迟控制而丢弃。
DCE网络的流控制具有至少两种基本表现,一种被实现在DCE交换机内,另一种被实现在网络的链路上。一种流控制表现是缓冲器到缓冲器的基于信用的流控制,它主要用于实现“无丢弃”或推迟丢弃VL。如上所述,暂停帧之类也可用于为“无丢弃”或“推迟丢弃”VL实现流控制。信用和暂停帧的任何便利组合,不论是在DCE交换机内还是在链路上,都可用于实现流控制。注意到以下这一点是很重要的在优选实施例中,在DCE交换机内管理的信用与在链路上管理的信用是不同的。一些优选实施例在链路上使用暂停帧,而在DCE交换机内使用信用。
一些优选实现方式的另一种流控制表现包括向网络中的其他设备的显式上游拥塞通知。该显式上游拥塞通知例如可由DCE头部的显式拥塞通知(“ECN”)字段实现,如本文中其他地方所描述。
图14示出了DCE网络1405,包括边缘DCE交换机1410、1415、1425和1430以及核心DCE交换机1420。在这种情况下,核心DCE交换机1420的缓冲器1450实现3类流控制。一类是缓冲器到缓冲器流控制指示1451,它由缓冲器1450和边缘DCE交换机1410的缓冲器1460之间的缓冲器到缓冲器信用的授予(与否)来传达。
缓冲器1450还发送2个ECN 1451和1452,这两个ECN都是经由DCE分组的DCE头部的ECN字段实现的。ECN 1451可被视为核心到边缘通知,因为它是由核心设备1420发送并由边缘DCE交换机1410的缓冲器1460接收的。ECN 1452将被视为核心到末端通知,因为它是由核心设备1420发送并由末端节点1440的NIC卡1465接收的。
在本发明的一些实现方式中,ECN是通过对存储到经历拥塞的缓冲器中的分组进行采样来生成的。通过将其目的地地址设置为等于被采样分组的源地址,ECN被发送到该分组的源。边缘设备将会得知源是像末端节点1440那样支持DCE ECN,还是像末端节点1435那样不支持。在后一情况下,边缘设备1410将会终止ECN并实现适当的动作。
活动队列管理(AQM)将响应于各种标准被执行,这些标准包括但不限于缓冲器占用率(例如针对每个VL)、每个VOQ的队列长度以及VOQ中的分组的年龄。为了简单起见,在讨论AQM时,一般会假定在VL之间不共享VOQ。
现在将参考图15描述根据本发明的AQM的一些示例。图15示出了特定进刻的缓冲器使用情况。在该时刻,物理缓冲器1500的部分1505已被分配给丢弃VL,而部分1510已被分配给无丢弃VL。如本文中其他地方所述,缓冲器1500被分配给丢弃VL或无丢弃VL的量可随时间而改变。在分配给丢弃VL的部分1505中,部分1520当前正被使用,而部分1515当前未被使用。
在部分1505和1510内,存在许多VOQ,包括VOQ 1525、1530和1535。在该示例中,确立了阈值VOQ长度L。VOQ 1525和1535的长度大于L,而VOQ 1530的长度小于L。长的VOQ指示下游拥塞。活动队列管理优选地防止了任何VOQ变得太大,这是因为否则的话影响一个VOQ的下游拥塞将会不利地影响去往其他目的地的流量。
VOQ中的分组的年龄是用于AQM的另一标准。在优选实现方式中,分组在进入缓冲器并被排队到适当的VOQ中时被加上时间戳。因此,分组1540在到达缓冲器1500时接收时间戳1545,并被根据其目的地和VL标示置于VOQ中。如其他地方所述,VL标示将会指示是应用丢弃还是无丢弃行为。在该示例中,分组1540的头部指示分组1540将在丢弃VL上传送,并且具有与VOQ 1525相对应的目的地,因此分组1540被置于VOQ 1525中。
通过比较时间戳1545的时刻和当前时刻,在之后的时刻可确定分组1540的年龄。在此上下文中,“年龄”仅指分组在交换机中花费的时间,而不是在网络中的某个其他部分中花的时间。然而,通过分组的年龄可推断网络的其他部分的状况。例如,如果分组的年龄变得相对较大,则这种状况指示去往分组的目的地的路径正经历着拥塞。
在优选实现方式中,年龄超过预定年龄的分组将被丢弃。如果在确定年龄时发现VOQ中的若干个分组超过了预定的年龄阈值,则可以进行多个丢弃。
在一些优选实现方式中,存在用于延迟控制(TL)和用于避免死锁(TD)的单独的年龄极限。当分组到达TL时要采取的动作最好取决于分组是在丢弃VL还是在无丢弃VL上传送。对于无丢弃通道上的流量,数据完整性比延迟更重要。因此,在本发明的一些实现方式中,当无丢弃VL中的分组的年龄超过TL时,分组不被丢弃,而是采取另一动作。例如,在一些这样的实现方式中,分组可被标记和/或上游拥塞通知可被触发。对于丢弃VL中的分组,延迟控制相对更重要,因此当分组的年龄超过TL时采取更激进的动作较为适当。例如,可向该分组应用概率性丢弃函数。
图16的图线1600提供了概率性丢弃函数的一些示例。根据丢弃函数1605、1610和1615,当分组的年龄超过TCO,即延迟截止阈值时,随着分组的年龄增大达到TL,它将会被故意丢弃的概率从0%增大到100%,这取决于函数。丢弃函数1620是阶梯函数,其故意丢弃的概率为0%,直到达到TL为止。当分组的年龄达到TL时,丢弃函数1605、1610、1615和1620都达到100%的故意丢弃机率。虽然TCO、TL和TD可以是任何便利的时间,但是在本发明的一些实现方式中,TCO在数十微秒量级,TL在数毫秒至数十毫秒量级,而TD在数百毫秒量级,例如500毫秒。
如果丢弃VL或无丢弃VL中的分组的年龄超过TD,则分组将会被丢弃。在优选实现方式中,针对无丢弃VL的TD比针对丢弃VL的TD要大。在一些实现方式中,TL和/或TD也可部分取决于分组在其上传送的VL的带宽以及同时将分组传送到该VL的VOQ的数目。
对于无丢弃VL,与图16所示类似的概率函数可被用于触发上游拥塞通知,或设置属于能够支持TCP ECN的连接的TCP分组的头部中的拥塞经历位(CE)。
在一些实现方式中,分组是否被丢弃、上游拥塞通知是否被发送以及TCP分组的CE位是否被标记不仅取决于分组的年龄,还取决于分组被置于其中的VOQ的长度。如果这种长度高于阈值Lmax,则采取AQM动作;否则将对从长度超过阈值Lmax的VOQ出队的第一分组执行AQM动作。
每VL缓冲器占用率的使用如图15所示,缓冲器被划分成VL。对于缓冲器中被划分给丢弃VL的部分(例如缓冲器1500的部分1505),如果在任何给定时刻VL的占用率大于预定的最大值,则分组将被丢弃。在一些实现方式中,计算并维护VL的平均占用率。基于这种平均占用率,可采取AQM动作。例如,对于与无丢弃VL相关联的部分1505,DCE ECN将被触发,而不是像与丢弃VL相关联的部分1510的情况下那样进行分组丢弃。
图17示出了一段时间(水平轴)中VL占用率B(VL)(垂直轴)的图线1700。在这里,BT是B(VL)的阈值。在本发明的一些实现方式中,在确定B(VL)达到时VL中的一些分组将被丢弃。一段时间中B(VL)的实际值由曲线1750示出,但是B(VL)仅在时刻t1至tN是确定的。在该示例中,在点1705、1710和1715分组将被丢弃,这些点对应于时刻t2、t3和t6。将会根据分组的年龄(例如最老的最先)、其大小、分组的虚拟网络的QoS、随机地、根据丢弃函数或以其他方式丢弃分组。
此外(或者作为替换),当B(VL)的平均值、加权平均值等等达到或超过BT时,可采取活动队列管理动作。这种平均可根据各种方法来计算,例如通过将确定出的B(VL)值相加起来并且除以确定数。一些实现方式应用加权函数,例如通过为更新近的样本赋予更大的权重。可以应用本领域已知的任何类型的加权函数。
所采取的活动队列管理动作例如可以是发送ECN,和/或应用概率性丢弃函数,例如与图18所示的那些之一类似的函数。在该示例中,图线1880的水平轴是B(VL)的平均值。当平均值低于第一值1805时,故意丢弃分组的机率是0%。当平均值达到或超过第二值1810时,故意丢弃分组的机率为100%。可以向居间值应用任何便利的函数,不论是与1815、1820或1825类似的函数还是其他函数。
参考图15,很明显,VOQ 1525和1535的长度超过了预定长度L。在本发明的一些实现方式中,这种状况触发了活动队列管理响应,例如发送一个或多个ECN。优选地,缓冲器1500中包含的分组将会指示源是否能够对ECN作出响应。如果分组的发送者不能对ECN作出响应,则该状况可触发概率性丢弃函数或者就简单地进行丢弃。VOQ 1535不仅长于预定长度L1,还长于预定长度L2。根据本发明的一些实现方式,该状况触发分组的丢弃。本发明的一些实现方式利用了平均VOQ长度作为触发活动队列管理响应的标准,但是由于它需要大量的计算因此不是优选的。
希望具有多个用于触发AQM动作的标准。例如,虽然提供对VOQ长度的响应是有用的,但是这种措施对于每端口具有约1至2MB缓冲器空间的DCE交换机可能是不够的。对于给定缓冲器,可能有数千个活动VOQ。但是,可能只有足够用于103个分组量级的存储器空间,或者可能更少。因此,可能会出现没有哪个个体VOQ有足够触发任何AQM响应的分组,但某个VL却已用尽空间的情况。
无丢弃VL的队列管理在本发明的优选实现方式中,丢弃VL和无丢弃VL的活动队列管理之间的主要差别是对于丢弃VL将会触发分组丢弃的(一个或多个)标准对于无丢弃VL将会导致DCE ECN被发送或TCP CE位被标记。例如,对于丢弃VL将会触发概率性分组丢弃的状况一般将会导致去往上游边缘设备或末端(主机)设备的概率性ECN。基于信用的方案不是基于分组去往何处的,而是基于分组来自何处的。因此,上游拥塞通知帮助了提供缓冲器使用的公平性,并且避免了在用于无丢弃VL的流控制的唯一方法是基于信用的流控制的情况下可能造成的死锁。
例如,对于使用每VL缓冲器占用率作为标准,优选地不会仅因为每VL缓冲器占用率达到或超过了阈值就丢弃分组。相反,例如,分组将被标记,或者ECN将被发送。类似地,仍可以计算某种类型的平均每VL缓冲器占用率,并应用概率函数,但是要采取的基本动作是标记和/或发送ECN。分组将不会被丢弃。
但是,即使对于无丢弃VL,响应于例如如本文中其他地方所描述的由超过阈值的分组年龄所指示的阻塞或死锁状况,分组仍将被丢弃。本发明的一些实现方式还允许了无丢弃VL的分组响应于延迟状况被丢弃。这将会取决于对于该具体无丢弃VL,对延迟设置的重要程度。一些这样的实现方式应用概率性丢弃算法。例如,与存储应用相比,一些集群应用可在延迟因素上设置更高的值。数据完整性对于集群应用来说仍是重要的,但是通过放弃某个程度的数据完整性来降低延迟可能会是有利的。在一些实现方式中,比起用于丢弃通道的相应值,较大值的TL(即延迟控制阈值)可被用于无丢弃通道。
图19示出了可被配置来实现本发明的一些方法的网络设备的示例。网络设备1960包括主中央处理单元(CPU)1962、接口1968和总线1967(例如PCI总线)。一般来说,接口1968包括适用于与适当介质通信的端口1969。在一些实施例中,接口1968中的一个或多个包括至少一个独立的处理器1974,并且在一些情况下包括易失性RAM。独立处理器1974例如可以是ASIC或任何其他适当的处理器。根据一些这样的实施例,这些独立处理器1974执行这里描述的逻辑的至少一些功能。在一些实施例中,接口1968中的一个或多个控制诸如媒体控制和管理这样的通信密集型任务。通过为通信密集型任务提供单独的处理器,接口1968允许了主微处理器1962高效地执行诸如路由计算、网络诊断、安全性功能之类的其他功能。
接口1968一般是作为接口卡(有时称为“线路卡”)提供的。一般来说,接口1968控制网络上数据分组的发送和接收,并且有时支持与网络设备1960一起使用的其他外围设备。可以提供的接口包括光纤(“FC”)接口、以太网接口、帧中继接口、线缆接口、DSL接口、令牌环接口,等等。此外,可以提供各种甚高速接口,例如以太网接口、吉比特以太网接口、ATM接口、HSSI接口、POS接口、FDDI接口、ASI接口、DHEI接口,等等。
当在适当软件或固件的控制之下动作时,在本发明的一些实现方式中,CPU 1962可负责实现与所需网络设备的功能相关联的特定功能。根据一些实施例,CPU 1962在包括操作系统(例如Linux、VxWorks等等)和任何适当的应用软件在内的软件的控制之下实现所有这些功能。
CPU 1962可以包括一个或多个处理器1963,例如来自Motorola微处理器家族或MIPS微处理器家族的处理器。在另一实施例中,处理器863是特别设计的用于控制网络设备1960的操作的硬件。在特定实施例中,存储器1961(例如非易失性RAM和/或ROM)也形成CPU 1962的一部分。但是,存在许多不同的存储器耦合到系统的方式。存储器块1961可以用于多种目的,例如,缓存和/或存储数据,编程指令等等。
不论网络设备的配置如何,它都可以采用被配置为存储数据、用于通用通用网络操作的程序指令和/或与这里描述的技术的功能相关的其他信息的一个或多个存储器或存储器模块(例如存储器块1965)。程序指令例如可以控制操作系统和/或一个或多个应用的操作。
由于这种信息和程序指令可以用来实现这里描述的系统/方法,因此本发明涉及包括用于执行这里描述的各种操作的程序指令、状态信息等的机器可读介质。机器可读介质的示例包括但不限于磁介质,例如硬盘、软盘和磁带;光介质,例如CD-ROM盘;磁光介质;以及特别配置为存储和执行程序指令的硬件,例如只读存储器器件(ROM)和随机访问存储器(RAM)。本发明也可以实现在在诸如无线电波、光线路、电线路之类的适当介质上传播的载波中。程序指令的示例既包括机器代码,例如由编译器产生的机器代码,也包括包含可以由计算机利用解释器执行的更高级别代码的文件。
虽然图19所示的系统示出了本发明的一个特定网络设备,但是它决非其上可实现本发明的唯一的一种网络设备。例如,经常使用具有处理通信以及路由计算等的单个处理器的体系结构。此外,其他类型的接口和介质也可与网络设备一起使用。接口/线路卡之间的通信路径可以是基于总线的(如图19所示)或者基于交换结构的(例如纵模交换机)虽然已经参考特定实施例详细地示出和描述了本发明,但是本领域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以对所公开的实施例作出形式和细节上的改变。例如,本发明的一些实现方式允许VL从丢弃VL变为推迟丢弃或无丢弃VL。从而,这里描述的示例并不想要限制本发明。因此,希望所附权利要求书被解释为包括落在本发明的真实精神和范围之内的所有变化、等同、改变和修改。
权利要求
1.一种用于在单个网络设备中处理多于一类网络流量的方法,该方法包括在逻辑上被划分成多个虚拟通道的物理链路上接收第一帧和第二帧;将所述网络设备的缓冲器划分成用于在第一虚拟通道上接收的第一帧的第一缓冲器空间和用于在第二虚拟通道上接收的第二帧的第二缓冲器空间;将所述第一帧存储在所述第一缓冲器空间中;将所述第二帧存储在所述第二缓冲器空间中;向所述第一帧应用第一组规则;以及向所述第二帧应用第二组规则。
2.如权利要求1所述的方法,还包括针对每个虚拟通道指派保证最小量缓冲器空间的步骤。
3.如权利要求1所述的方法,其中所述第一帧包括以太网帧。
4.如权利要求1所述的方法,其中所述第一组规则使得第一帧响应于延迟被丢弃。
5.如权利要求1所述的方法,其中所述第二组规则不会使得第二帧响应于延迟被丢弃。
6.如权利要求1所述的方法,其中所述第一组规则使得显式拥塞通知响应于第二帧的延迟被从所述网络设备发送。
7.如权利要求1所述的方法,其中所述第二组规则使得显式拥塞通知响应于第二帧的延迟被从所述网络设备发送。
8.如权利要求1所述的方法,其中所述划分步骤包括根据从由以下因素构成的因素群组中选择出的一个或多个因素划分缓冲器缓冲器占用率、一天中的时间、流量负载、拥塞、保证最小带宽分配、已知的要求较大带宽的任务和最大带宽分配。
9.如权利要求1所述的方法,其中所述第二组规则使得帧被丢弃以避免死锁。
10.如权利要求1所述的方法,其中所述第一组规则响应于延迟应用概率性丢弃函数。
11.如权利要求1所述的方法,其中所述第二组规则包括为所述第二帧实现缓冲器到缓冲器信用计入方案。
12.如权利要求1所述的方法,还包括将所述第一帧和所述第二帧存储在虚拟输出队列(“VOQ”)中的步骤,其中每个VOQ与一个目的地端口/虚拟通道对相关联。
13.如权利要求1所述的方法,还包括响应于每虚拟通道缓冲器占用率和分组年龄中的至少一个执行缓冲器管理的步骤。
14.如权利要求6所述的方法,其中所述显式拥塞通知被发送到源设备或边缘设备之一。
15.如权利要求6所述的方法,其中所述显式拥塞通知是经由数据帧或控制帧之一发送的。
16.如权利要求11所述的方法,其中所述缓冲器到缓冲器信用计入方案包括根据帧大小计入信用。
17.如权利要求11所述的方法,其中缓冲器到缓冲器信用由仲裁器管理。
18.如权利要求11所述的方法,其中所述第二组规则包括在网络设备内实现所述缓冲器到缓冲器信用计入方案,并且在所述第二虚拟通道上使用暂停帧来进行流控制。
19.如权利要求12所述的方法,还包括以下步骤响应于VOQ长度、每虚拟通道缓冲器占用率、整体缓冲器占用率和分组年龄中的至少一个执行缓冲器管理。
20.一种网络设备,包括用于在逻辑上被划分成多个虚拟通道的物理链路上接收第一帧和第二帧的装置;用于将所述网络设备的缓冲器划分成用于在第一虚拟通道上接收的第一帧的第一缓冲器空间和用于在第二虚拟通道上接收的第二帧的第二缓冲器空间的装置;用于将所述第一帧存储在所述第一缓冲器空间中的装置;用于将所述第二帧存储在所述第二缓冲器空间中的装置;用于向所述第一帧应用第一组规则的装置;以及用于向所述第二帧应用第二组规则的装置。
21.一种网络设备,包括被配置用于在多条物理链路上接收帧的多个端口;多个线路卡,每个线路卡与所述多个端口之一通信,并且被配置为执行以下步骤从所述多个端口之一接收帧;识别在第一虚拟通道上接收的第一帧和在第二虚拟通道上接收的第二帧;将缓冲器划分成用于所述第一帧的第一缓冲器空间和用于所述第二帧的第二缓冲器空间;将所述第一帧存储在所述第一缓冲器空间中;将所述第二帧存储在所述第二缓冲器空间中;向所述第一帧应用第一组规则;以及向所述第二帧应用第二组规则。
22.一种用于在单个网络设备上承载多于一类流量的方法,该方法包括识别在第一虚拟通道上接收的第一帧和在第二虚拟通道上接收的第二帧;动态地将所述网络设备的缓冲器划分成用于所述第一帧的第一缓冲器空间和用于所述第二帧的第二缓冲器空间,其中所述缓冲器是根据从由以下因素构成的因素群组中选择出的一个或多个因素来动态划分的整体缓冲器占用率、每虚拟通道缓冲器占用率、一天中的时间、流量负载、拥塞、保证最小带宽分配、已知的要求较大带宽的任务和最大带宽分配;将所述第一帧存储在所述第一缓冲器空间的第一虚拟输出队列(“VOQ”)中;将所述第二帧存储在所述第二缓冲器空间的第二VOQ中;向所述第一帧应用第一组规则;以及向所述第二帧应用第二组规则。
23.一种网络设备,包括用于识别在第一虚拟通道上接收的第一帧和在第二虚拟通道上接收的第二帧的装置;用于动态地将所述网络设备的缓冲器划分成用于所述第一帧的第一缓冲器空间和用于所述第二帧的第二缓冲器空间的装置,其中所述缓冲器是根据从由以下因素构成的因素群组中选择出的一个或多个因素来动态划分的整体缓冲器占用率、每虚拟通道缓冲器占用率、一天中的时间、流量负载、拥塞、保证最小带宽分配、已知的要求较大带宽的任务和最大带宽分配;用于将所述第一帧存储在所述第一缓冲器空间的第一虚拟输出队列(“VOQ”)中的装置;用于将所述第二帧存储在所述第二缓冲器空间的第二VOQ中的装置;用于向所述第一帧应用第一组规则的装置;以及用于向所述第二帧应用第二组规则的装置。
24.一种网络设备,包括被配置用于在多条物理链路上接收帧的多个端口;多个线路卡,每个线路卡与所述多个端口之一通信,并且被配置为执行以下步骤识别在第一虚拟通道上接收的第一帧和在第二虚拟通道上接收的第二帧;动态地将所述网络设备的缓冲器划分成用于所述第一帧的第一缓冲器空间和用于所述第二帧的第二缓冲器空间,其中所述缓冲器是根据从由以下因素构成的因素群组中选择出的一个或多个因素来动态划分的整体缓冲器占用率、每虚拟通道缓冲器占用率、一天中的时间、流量负载、拥塞、保证最小带宽分配、已知的要求较大带宽的任务和最大带宽分配;将所述第一帧存储在所述第一缓冲器空间的第一虚拟输出队列(“VOQ”)中;将所述第二帧存储在所述第二缓冲器空间的第二VOQ中;向所述第一帧应用第一组规则;以及向所述第二帧应用第二组规则。
全文摘要
本发明提供了用于实现低延迟以太网(“LLE”)解决方案的方法和设备,在这里LLE解决方案也被称为数据中心以太网(“DCE”)解决方案,它简化了数据中心的连通性,并且提供了用于传输以太网和存储流量的高带宽、低延迟网络。本发明的一些方面包括将FC帧变换成适合于在以太网上传输的格式。本发明的一些优选实现方式在数据中心或类似网络的单个物理连接中实现了多个虚拟通道(“VL”)。一些VL是“丢弃”VL,具有类似以太网的行为,其他的是具有类似FC行为的“无丢弃”通道。本发明的一些优选实现方式基于信用和VL提供了保证带宽。活动缓冲器管理既允许高可靠性,又允许了低延迟,同时还使用较小的帧缓冲器。优选地,对于丢弃和无丢弃VL,用于活动缓冲器管理规则是不同的。
文档编号H04L12/28GK101040489SQ200580034646
公开日2007年9月19日 申请日期2005年10月13日 优先权日2004年10月22日
发明者西尔瓦诺·加伊, 托马斯·埃兹尔, 戴维·贝尔加马斯科, 迪内希·达特, 弗拉维欧·博诺米 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1