用于提供网络中基于信用的流控制的方法和系统的制作方法

文档序号:7800982阅读:120来源:国知局
用于提供网络中基于信用的流控制的方法和系统的制作方法
【专利摘要】在一个实施例中,系统包括具有一个或多个相互连接的设备的网络,所述网络包括第一设备,其具有第一端口和集成于第一处理器和/或由第一处理器执行逻辑,所述逻辑适用于在所述第一端口和所述网络中的第二设备的第二端口之间交换信用交换能力,从所述第二端口接收信用许可包,所述信用许可包指示许可到所述第一端口的信用;以及从所述第一端口发送一个或多个数据包到所述第二端口,所述一个或多个包对应于所述许可的信用。根据更多的实施例描述了其他用于提供基于信用的流控制的方法和系统。
【专利说明】用于提供网络中基于信用的流控制的方法和系统 【背景技术】
[0001] 本发明涉及数据中心基础结构,更具体的,本发明涉及基于信用的链路层流控制 和使用数据中心桥接交换(DCBX)的信用交换。
[0002] 基于以太网端口的流控制是基于反应的停-走(开-关)机制,称为PAUSE,如 Institute of Electrical and Engineers (IEEE)标准 802. 3x 所定义的,其仅用于接收器 的缓冲积压超过了特定的高阈值之后,发送PAUSE (例如,停止)信号给发送器,并当接收器 的缓冲积压下降到一个低阈值以下时发送一个UNPAUSE (例如,启动)信号。为了确保不发 生由缓冲溢出引起的帧丢失,必须将接收器的高阈值设置在接收器缓冲能力之下至少一个 带宽延时积(BDP),因此增加了缓冲大小的需求。而且,对于一个给定的阈值设定,例如由于 在发射器和接收器之间安装了较长的电缆,或由于PAUSE帧的延迟处理,BDP的增加可能导 致不想要的帧丢失。线路速率的持续增加(从原始的lOMb/s每端口增加到100Gb/ S和更快) 导致了 BDP的增加而加剧了这一问题。因此,以太网易采用主动的基于预留的流控制和具 有能保证接收器缓冲空间机制的帧接受方案,以确保不依赖于BDP而不发生帧丢失将是有 利的。
[0003] 数据交换之前在对等端口之间的交互带来了更多的确定性和更好的资源利用。以 太网并没有用于满足特定应用和聚集以太网无限带宽的机制。
[0004] 因此,以太网的安装将极大地受益于基于信用的流控制机制以带来更多的传送稳 定性。
[0005] 发明概述
[0006] 在一个实施例中,系统包括具有一个或多个相互连接的设备的网络,所述网络包 括第一设备,其具有第一端口和集成于第一处理器和/或由第一处理器执行的逻辑,所述 逻辑适用于在所述第一端口和网络中第二设备的第二端口之间交换信用交换(CE)能力,从 所述第二端口接受信用许可包,所述信用许可包指示了许可到所述第一端口的信用,并且 从所述第一端口发送一个或多个数据包到所述第二端口,所述一个或多个包对应于许可的 信用。
[0007] 在另一个实施例中,用于在网络中提供基于信用的流控制的方法包括在第一端口 和第二端口之间交换CE能力,从所述第二端口发送信用许可包到所述第一端口,所述信用 许可包指示了许可到第一端口的信用,并且从所述第一端口发送一个或多个包到所述第二 端口,所述一个或多个包对应于许可的信用。
[0008] 根据又另一个实施例,系统包括具有一个或多个相互连接的设备的网络,所述网 络包括第一设备,其具有第一端口和集成于第一处理器和/或由第一处理器执行的逻辑, 所述逻辑适用于在所述网络的第二端口和所述第一端口之间交换信用交换(CE)能力,发送 信用请求包到所述第二端口,所述信用请求包指示了至少一个用于交换的信用的优先级和 至少一个指示的用于交换的优先级的信用量,从所述第二端口接受信用许可包,所述信用 许可包指示了许可到所述第一端口的信用,以及发送一个或多个数据包到所述第二端口, 所述一个或多个包对应于许可的信用。系统还包括第二设备,其具有第二端口和集成于第 二处理器和/或由第二处理器执行的第二逻辑,所述第二逻辑适用于从所述第一端口接受 信用请求包,响应于所述信用请求包发送信用许可包到所述第一端口,以及从所述第一端 口接受一个或多个数据包。
[0009] 本发明的实施例和其他方面将在由本发明主旨的例子说明的连同图一起的下述 【具体实施方式】中更加清楚。 【专利附图】

【附图说明】
[0010] 图1根据一个实施例示出了网络结构。
[0011] 图2根据一个实施例图示了可以与图1中的服务器和/或客户端关联的代表性的 硬件环境。
[0012] 图3是根据一个实施例的简化的网络系统图。
[0013] 图4是根据一个实施例的信用交换(CE)帧图。
[0014] 图5是根据一个实施例具有信用交换标签(CE-Tag)的帧图。
[0015] 图6是根据一个实施例的方法流程图。 【具体实施方式】
[0016] 以下描述是为了说明本发明的主旨,并不意味着限定本发明到此处权利要求的概 念。更进一步,这里描述的特定性质可以用于各种可能的每一个的描述的其他性质的排列 组合的组合。
[0017] 除非此处另有说明,给定所有术语的最广的解释包括被本领域技术人员熟知的和 /或在字典,条约等等中的说明及意义所引申的意义。
[0018] 必须注意的是,如在说明书和附加权利要求中使用的,单数形式"a","an"及"the" 包含复数指代除非另有说明。
[0019] 在一个通常的实施例中,系统包括具有一个或多个相互连接的设备的网络,所述 网络包括第一设备,其具有第一端口和集成于第一处理器和/或由第一处理器执行的逻 辑,所述逻辑适用于在所述第一端口和网络中第二设备的第二端口之间交换信用交换(CE) 能力,从所述第二端口接收信用许可包,信用许可包指示了许可到所述第一端口的信用,并 且从所述第一端口发送一个或多个数据包到所述第二端口,所述一个或多个包对应于许可 的信用。
[0020] 在另一个通常的实施例中,用于在网络中提供基于信用的流控制的方法包括在第 一端口和第二端口之间交换CE能力,从所述第二端口发送信用许可包到所述第一端口,所 述信用许可包指示了许可到所述第一端口的信用,并且从所述第一端口发送一个或多个包 到所述第二端口,所述一个或多个包对应于许可信用。
[0021] 根据另又一个通常的实施例,系统包括具有一个或多个相互连接的设备的网络, 所述网络包括第一设备,其具有第一端口和集成于第一处理器和/或由第一处理器执行 的逻辑,所述逻辑适用于在所述第一端口和网络中第二设备的第二端口之间交换信用交换 (CE)能力,发送信用请求包到所述第二端口,所述信用请求包指示了用于交换的信用的至 少一个优先级以及用于交换的至少一个指示的优先级中的每一个的信用量,从所述第二端 口接受信用许可包,信用许可包指示了许可到所述第一端口的信用,以及发送一个或多个 数据包到所述第二端口,所述一个或多个包对应于许可的信用。系统还包括第二设备,其具 有第二端口和集成于第二处理器和/或由第二处理器执行的逻辑,所述第二逻辑适用于从 所述第一端口接受信用请求包,响应于所述信用请求包发送信用许可包到所述第一端口, 以及从所述第一端口接受一个或多个数据包。
[0022] 所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算 机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、 完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方 式,这里可以统称为"电路"、"模块"或"系统"。此外,在一些实施例中,本发明的各个方面 还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介 质中包含计算机可读的程序代码。
[0023] 可以利用一个或多个计算机可读媒介的任何组合。计算机可读媒介可以是计算机 可读单媒介或非晶体管计算机可读存储媒介。非晶体管计算机可读存储媒介可以是,例如, 但不限定于电子,磁,光,电磁,红外,或半导体系统、装置或设备,或前述的任何适当的组 合。非晶体管计算机可读存储媒介的更多特别的例子(非穷尽列举)包括如下:便携式计算 机磁盘,硬盘,随机存取存储器(RAM),只读存储器(R0M),可擦除可编程只读存储器(ERP0M 或闪存存储器),便携式光盘只读存储器(⑶-R0M),蓝光只读存储器(BD-R0M),光学存储设 备,磁存储设备,或任何上述的组合。在本文件的情况中,非晶体管计算机可读存储媒介可 以是任何有形的媒介,其可能是包含,或存储一段程序或应用,由指令执行系统,装置或设 备使用,或与之相联系。
[0024] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括--但 不限于--电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者 传输用于由指令执行系统、装置或者设备使用或者与其结合使用的程序。
[0025] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括--但不限 于--无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0026] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算 机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++ 等,还包括常规的过程式程序设计语言一诸如"C"语言或类似的程序设计语言。程序代码可 以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、 部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。 在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络--包括局域网(LAN) 或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务 提供商来通过因特网连接)。
[0027] 下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和 /或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中 各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算 机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算 机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图 和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0028] 也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、 其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的 指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令 的制造品(article of manufacture)〇
[0029] 也可以加载计算机程序指令到计算机,其他可编程的数据处理装置,或其他设备 上以引起一系列操作步骤在计算机,其他可编程的数据处理装置,或其他设备上执行,以产 生计算机执行过程,使得执行在计算机或其他可编程装置上的指令提供执行流程图或方块 图中特定的功能。
[0030] 图1根据一个实施例示出了网络结构100。如图1所示,提供了包括第一远程网络 104和第二远程网络106的多个远程网络102。网关101可以连接在远程网络102和邻近 网络108之间。在本发明网络结构100的情况中,网络104, 106可以各自采取任何形式,包 括但不限于LAN,VLAN,WAN例如互联网,公共开关电话网络(PSTN),内部电话网络等等。
[0031] 在使用中,网关101用作从远程网络102到邻近网络108的入口点。例如,网关101 可以用作路由器,其能够指引到达网关101的给定的数据包,以及可以用作开关,其能够为 给定的包提供网关101的实际进出路径。
[0032] 进一步的还包括连接于邻近网络108的至少一个数据服务器114,并且其可以通 过网关101从远程网络102访问。应当注意的是,一个或多个数据服务器114可以包括任 何类型的计算设备或组件。连接于每个数据服务器114的是多个用户设备116。这些用户 设备116可以包括台式计算机,笔记本计算机,手持计算机,打印机,和/或任何类型的含有 逻辑的设备。应当注意的是在一些实施例中,用户设备111也可以直接连接到任何网络。
[0033] 外部设备120或一系列外部设备120 (例如,传真机,打印机,扫描仪,硬盘驱动器, 联网的和/或本地的存储单元或系统等等)可以连接到网络104, 106, 108中的一个或多个。 应当注意,数据库和/或附加的组件可以与连接到网络104, 106, 108的任何类型的网络元 件一起使用,或集成到这些网络元件中。在本描述的情况中,网络元件可以指网络的任何组 件。
[0034] 根据一些方法,此处描述的方法和系统可以用和/或在虚拟系统和/或仿真一个 或多个其他系统的系统实施,例如仿真IBM z/OS环境的UNIX系统,虚拟架设MICROSOFT WINDOWS环境的UNIX系统,仿真IBM/0S环境的MICROSOFT WINDOWS系统等等。在一些实施 例中,可以通过使用VMWARE软件来提高这样的虚拟和/或仿真。
[0035] 在更多的方法中,一个或多个网络104, 106, 108可以代表一簇系统,通常被称为 "云"。在云计算中,共享的资源,例如处理能力,外围设备,软件,数据,服务器等等被以按需 关系提供给云中的任何系统,因此允许在多个计算系统间访问和分配服务。云计算典型的 涉及运行在云中的系统间的互联网连接,但是如本领域中所知的,也可以使用其他连接系 统的技术。
[0036] 图2根据一个实施例示出了与图1中的用户设备116和/或服务器114相关联的 代表性的硬件环境。图2根据多个实施例示出了工作站的典型硬件配置,该工作站具有中 央处理单元(CPU)210,例如微处理器,和通过一个或多个总线212互联的多个其他单元,根 据各种实施例,总线可以是不同类型,如局部总线,并行总线,串行总线等等。
[0037] 图2所示的工作站包括随机存取存储器(RAM) 214,只读存储器(ROM) 216, I/O适 配器218,用于连接例如硬盘存储单元220的外围设备到一个或多个总线212,用户接口适 配器222用于连接键盘224,鼠标226,扬声器228,麦克风232,和/或其他用户接口设备如 触摸屏,数码相机(未示出)等到一个或多个总线212,通信适配器234用于连接工作站到通 信网络235 (例如数据处理网络)以及显示适配器236用于连接一个或多个总线212到显 示设备238.
[0038] 工作站可以有驻留于其上的操作系统如MICROSOFT WINDOWS操作系统(OS),MAC 0S,UNIX 0S,等等。应当理解,可以在除了上述平台及操作系统以外的平台及操作系统上实 施优选的实施例。可以用JAVA, XML, C和/或C++语g,或其他编程语g连同基于对象的编 程方法编写优选的实施例。可以使用面向对象的编程(00P),其越来越多的被使用于开发复 杂应用。
[0039] 现参照图3,图示了根据一个实施例的系统300的简单的设备与设备的交互。第一 设备302访问和/或支持一个或多个端口 306,其适用于接收和/或传送数据。第二设备 304访问和/或支持一个或多个端口 308,其适用于接收和/或传送数据。设备302, 304可 以是开关,路由器,服务器或任何其他适当的网络设备(实质的或虚拟的)。设备302, 304的 其中一个或两个都可以与开关控制器304 (例如,软件定义网络(SDN)控制器)通信,使得可 以通过具有网络意识的开关控制器304提高设备之间的传送。
[0040] 为了描述,第一设备302可以视为数据包发送器,并且第二设备304可以视为数据 包接收器。在一个实施例中,为了从第一设备302发送数据包到第二设备304,可以有两种 选择。第一种选择是,指示信用请求310的包首先从第一设备302发送到第二设备304。响 应于信用请求包310,第二设备304可以发送指示信用许可312的包给第一设备302。请求 的信用量可以基于要发送帧的大小。
[0041] 第二种选择是,第二设备304,在没有接收到任何提示或请求包的情况下,发送 信用许可包给任何连接至此的设备,其可以是发送包给第二设备304的设备,如第一设备 302。
[0042] 许可的信用量可以基于请求的信用量,可用的发送缓冲量,可用于交换的信用量, 和/或任何其他合适的因素。在没有接收到信用请求的一种方法中,由信用许可包许可的 信用量可以是驻留在第二设备304上的可用信用的全部或一部分。信用单位(交换一个信 用可以发送的数据量)可以是最小值8位(例如,256位,512位(一份数据),1024位等)和一 个最大传送单位的最大值(MTU),其可以是很多份数据。当其有利于优化性能、用户期望等 时,信用单位可以超过MTU的大小。
[0043] 在一个实施例中可以用信用单位的默认值512位,其可以是用户可调和/或通过 策略或编程等被修改的。
[0044] 此外,包的优先级值可以与要发送帧的IEEE802. 1P值相关,或与服务类(C0S)队 列优先级值相关。另外,在一个方法中,可选的被包括的通道标识符(ID)可以基于服务标 记(S-Tag),源MAC地址,或其他任何可编程的参数。
[0045] 为了确定设备302, 304中的每一个是否能用于基于信用的流控制,可以在每个设 备的端口之间交换信用交换(CE )能力。
[0046] 在一个实施例中,可以扩展和/或修改数据中心桥接交换(DCBX)协议以允许CE能 力的交换。CE能力可以包括对等端口之间流控制需要的信息。在一个实施例中,可以被交 换的信息包括信用交换单位(每个信用交换可以发送多少数据),以及设备是否有交换用于 流控制的信用的能力。可以用大量的位数块来指示单位值,其中块长度可以从8位到最大 信用块大小(MAX_CR_BLK )。
[0047] MAX_CR_BLK可以是所支持的MTU大小,2548字节,或任何其他大于8位的数字。 2548字节足够供给光缆通道以太网(FCoE)帧安全编码,并且因此可以提供超过其他大小 的优势。
[0048] 此外,可选的,交换通道能力或信息的能力也可以在CE能力交换中指示。通道能 力允许在信用交换帧或信用交换标签中添加通道ID。
[0049] 在CE能力交换之后,从第一设备302发送信用请求包310到第二设备304。接下 来,在信用许可包312中许可或拒绝信用。
[0050] 接下来,如果任何信用被许可到第一设备302,则数据以与许可信用量一致的量从 第一设备302传送到第二设备304。然后,第二设备接收数据,并且实施信用计算以调整可 用于管理数据转发的信用量。
[0051] 如图4-5详细描述的,被称为信用交换帧(CE帧)的帧可以被用在具有唯一的媒体 访问控制(MAC)控制以太网类型,例如,0x88XX,其中XX是可编程的。新的层2标签(可被 称作"CE-TAG"或信用交换标签)可以被用于指定包含信用交换信息的包。为了确保在帧有 不同的优先级(可以从0-15分布)的情况下的帧的低丢失传输,发送器(MAC TX)通过给对等 端口发送新的CE帧来请求信用。该帧包括用于多个优先级的信用请求。为了确保一个特定 优先级的巾贞的低丢失传输,发送器(MAX TX)在发送逻辑中将CE标记巾贞或捎带(piggyback) 添加在数据帧上。CE标签包括用于一个优先级的信用的请求,并具有低开销。在另一个实 施例中不发送请求,并且对等端口提供任何信用,其接收以允许在没有提示的情况下进行 包传送。
[0052] 对等端口(接收器或MAC RX)接收CE帧或CE标记帧并为了相应的优先级或信用优 先级解析这些请求。相应的,在返回CE帧中批准或提供合适的信用量给请求设备或端口, 或通过在已经被传送给请求端的下一个数据帧上增加 CE-Tag。
[0053] -旦接收到信用,发送器以接收的信用指定的合适的和/或允许的优先级发送帧 或包。
[0054] 现参照图4,根据一个实施例示出了信用交换(CE)帧400。信用帧400可以采用 任何需要的形式,并且如图4所示的格式仅是举例目的并且不意在限制可能被使用的帧格 式。
[0055] 在该示例实施例中,帧400包括目的媒体访问控制(DMAC)地址字段402,源MAC (SMAC)地址字段404,以太类型字段406, MAC控制操作码(OpCode)字段408,通信类(TC) 选择矢量410, TC信用矢量412,可选通道号字段414,以及循环冗余校验(CRC)字段418。 如果有多余的空间,可以在通道号字段414和CRC字段418之间放置填充码416。
[0056] DMAC寻址字段402可以设置对于多播包标准的01:80: C2:00:00:01以辨识包为多 播包。DMAC寻址字段402长度可以是48位,或其他由用户确定的合适的长度。
[0057] SMAC寻址字段404可以用于指定包的源,并且可以是48位长,或其他由用户确定 的合适的长度。
[0058] 以太类型字段406可以用于指定包的以太类型。由于CE帧现在没有任何专用的 以太类型指定,因此只要将要发送和/或接收这些CE帧的网络中的设备明白以太类型的指 定,则可以使用任何这样未被占用的以太类型。在一个这样的实施例中,可以设定以太类型 字段406为0x88XX,其中XX可以是标准的或可编程的,这取决于用户希望如何使用该字段。
[0059] MAC控制操作编码(OpCode)字段408可以指定该包是/[目用请求包还是/[目用许可 包。这可以通过使用还没有被用于其他指示的位串来完成。在一个例子中,可以使用0x0110 来指定该包是信用请求包,而使用0x0111来指定该包是信用许可包。
[0060] 在一些实施例中,为了得到信用许可,可以不发送信用请求包。相反,只要信用在 任何接收设备处是可用的,就可以发送信用许可包给所有可用的设备。
[0061] 用TC选择矢量410来指示信用的哪些优先级正在被请求或许可(基于MAC控制 OpCode字段408)。对于可用的包的每一个优先级,可以指示是否正在请求/许可该优先级 的信用。例如,有16种可用的优先级来分配给任何包,并且因此矢量中有16位,每一位代 表了相应的优先级的信用是正在被请求还是许可。当然,可用的优先级数可以多于或少于 16,例如 8, 12, 20, 24 等等。
[0062] 可以用TC信用矢量412来指示正在请求或许可(基于MAC控制OpCode字段408) 每一个优先级的多少信用。对于可用的包的每一种优先级,可以指示不同的信用量。例如, 可以有16种可用的优先级来分配给发送的包,并且因此矢量中有16个位置,每一个位置有 许多位来代表对于相应的优先级正在请求或许可多少信用。
[0063] 可选的,可以使用通道号字段414来指示通道号码或ID。通道ID可以指示端口上 的多租户和/或将要被发送的一个或多个包的虚拟组。在一个这样的例子中,该通道号可 以涉及和/或基于用于一个或多个将要发送的包的VLAN ID。为了允许在用户或政策需要 时对端口进行额外的处理,可以包括关于端口上的多租户的信息。在一种方法中,这种字段 的长度是16位,但是可以按需增大或减少。VLAN ID通常是12位,并且通道ID可以模拟这 12位或可以修改或增加到这12位以包含其他信息。
[0064] 现转向图5,根据一个实施例,示出了标准以太网帧500中的信用交换标签 (CE-Tag)520。CE-Tag520连同典型的或标准的以太网帧500可以用于指示对于单一优先级 正在被请求或许可的信用量。CE-Tag520包括CE标签以太类型字段502、TC选择矢量504、 TC信用字段506和可选的通道号字段508。
[0065] 可以增加 CE_Tag520到已经将要从一个设备发送到另一个设备的包。以这种 方式,不必在设备之间发送完整的CE帧,并且相反已经正在发送的包可以被修改为包含 CE-Tag520并且因此减少设备之间发送的通信量,这是因为CE-Tag520可以捎带在已经正 在发送的通信量上。
[0066] 帧500可以包括许多标准字段,例如DMAC地址字段510,其可以用来指示包的目的 地址,SMAC地址字段512,其可以用来指示包的源地址,数据字段514,其可以用于携带有效 载荷或以太网帧数据,可选填充516,其可以被包括以填充帧500中的任何剩余空间,以及 CRC518,其可以被包括用于错误校正,如本领域的技术人员将会理解的。
[0067] CE标签以太类型字段502可以用于指示该标签用于信用交换,并且可以是可编程 的或标准的,并且可以指示该包是用于信用请求或信用许可。TC选择矢量504可以用于指 示可用的优先级中的哪一个信用优先级正在被请求/许可。在一个方法中,这种字段的长 度是16位,但是也可以按需更多或更少。
[0068] 此外,TC信用字段506可以用来指示多少信用正在从由TC选择矢量504中指示 的指定优先级被许可或请求。在一个方法中,这种字段的长度是16位,但是也可以按需更 多或更少。
[0069] 可选的通道号字段508可以用于指示通道号码或ID。该通道号可以涉及和/或基 于用于一个或多个将要发送的包的VLAN ID。在一个方法中,这种字段的长度是16位,但是 也可以按需更多或更少。
[0070] 可以扩展DCBX协议以公告使用DCBX协议交换信息的任何设备的CE能力。根据 这一过程,可以定义应用协议类型长度值(TVL),其被称为"CET"TLV。可以在发起端口与可 以进行交换的对等端口之间的点对点基础上通过物理端口来产生TLV。在可选的实施例中, 开关设备下游可以接着在它们所有DCBX成员端口上交换CE TLV信息给它们的对等设备。
[0071] 因此,在网络完全收敛之后,从源设备或端口到目标设备或端口的路径中的所有 设备都能够理解其对等端口的信用交换能力并与其对等端口进行信用交换。
[0072] 现转向图6,根据一个实施例示出了网络中基于信用的流控制方法600。可以根据 本发明在图1-5描述的任何环境或其他各种实施例的任何环境中实施方法600。当然,本领 域技术人员在阅读了本说明书后将会理解,比图6所具体描述的更多或更少的操作可以被 包括在方法600中。
[0073] 方法600的每一步可以由操作环境中的任意合适的组件来实施。例如,在一个实 施例中,通过终端、由服务器控制的vSwitch、服务器、开关、开关控制器(例如SDN控制器、 开流控制器等等)、信用管理器、通信控制器、处理器(如CPU,专用集成电路(ASIC)、现场可 编程控门阵列(FPGA)等等)、网络接口卡(NIC),虚拟NIC、虚拟化平台、或网络系统或结构 的任何其他合适的设备或组件,可以部分或完整地实施方法600。
[0074] 在操作602中,CE能力在第一(发送)端口和第二(接收)端口之间交换。在一个实 施例中,可以使用DCBX来交换CE能力。
[0075] 在另一个实施例中,CE能力可以包括参与基于信用的流控制和交换信用的能力 (例如,端口是否能够理解CE)的指示,理解包括在CE帧和/或CE-Tag中的通道ID的能力 (例如端口是否理解何时包含通道ID)的指示,和信用交换单位(每次信用交换时发送的数 据量)。
[0076] 在一个方法中,信用交换单位可以允许每个信用至少8位数据从第一端口发送到 第二端口,并且允许高达一个MTU的数据。在特别的实施例中,每个信用可以允许发送2548 字节的数据。
[0077] 在操作604中,信用请求包从第一端口发送到第二端口。这一操作是可选的,因为 发送请求不是必须的。相反,在首先发送或没有发送信用请求包的情况下,第二端口都可以 在任何时候发送信用许可包。
[0078] 在一个方法中,信用请求包可以指示将被交换的信用的至少一个优先级以及将被 交换的至少一个指示优先级中的每一个的信用量。
[0079] 在操作606中,信用许可包从第二端口发送到第一端口,信用许可包指示了许可 到第一端口的信用。在一个实施例中,响应于信用请求包发送信用许可包。
[0080] 在一个方法中,信用许可包可以指示许可到第一端口的信用的至少一个优先级 (例如16个可用的优先级中的一个或多个)以及许可到第一端口的至少一个指示优先级中 的每一个的信用量(例如每个优先级的多少信用正在被许可到第一端口)。
[0081] 在进一步的方法中,信用许可包可以包括仅用于具有有效通道ID的那些包的信 用(该信息可以被包括在信用请求包中或以其他方式被发现)。更进一步,可以在每一个虚 拟端口的基础上授予信用,或在可以在授予第二端口信用之前提供并证实参数的基础上授 予信用。
[0082] 在操作608中,从第一端口发送一个或多个数据包到第二端口,所述一个或多个 数据包对应于许可信用。
[0083] 一个或多个数据包的量对应于许可到第一端口的至少一个指示优先级中的每一 个的信用量。更进一步,一个或多个包的优先级对应于许可到第一端口的信用的至少一个 优先级。以这种方式,只有对应于许可的信用量的一定量的数据被发送。更进一步,只有具 有与许可信用(一个或多个)的优先级匹配的优先级的数据可以被发送。
[0084] 在一个实施例中,信用许可包和信用请求包可以各自包含DMAC字段,用于指示包 的目的地,SMAC字段,用于指示包的源,以太类型字段,用于指示包是CE包,MAC OpCode,用 于指示包是信用许可包还是信用请求包,TC选择矢量,用于指示信用的哪些优先级正在被 请求或许可,TC信用矢量,用于指示信用的每个优先级正在被请求或许可多少,以及CRC字 段,用于校正错误。
[0085] 在可替换的实施例中,信用许可包和信用请求包可以各自包含CE-Tag,所述 CE-Tag包括以太类型字段,用于指示包是CE包,TC选择矢量,用于指示正在被请求或许可 的信用的选择的优先级,TC信用矢量,用于指示信用的所选择的优先级正在被请求或许可 多少。
[0086] 在一个实施例中,信用老化持续时间可以在CE能力交换期间在第一端口和第二 端口之间协商。基于一个或多个因素决定信用老化持续时间,例如第一端口和第二端口之 间的链接速度,端口之间的距离,流信用的位大小等等。在另一个实施例中,开启计时器计 时由第二端口占有的流信用的持续时间。
[0087] 如本领域技术人员将理解的,可以在系统或计算机程序产品中实现方法600。例 如,系统可以包括含有一个或多个彼此之间相互连接的设备的网络,所述网络具有第一设 备,其包含第一端口和与第一处理器集成和/或可由第一处理器执行的逻辑块。所述逻辑 块适用于在所述第一端口和在网络中的第二端口之间交换CE能力,发送信用请求包到所 述第二端口,所述信用请求包指示了将被交换的信用的至少一个优先级和将被交换的至少 一个指示的优先级中的每一个的信用量,从所述第二端口接收信用许可包,所述信用许可 包指示了许可到所述第一端口的信用,并且发送一个或多个数据包到所述第二端口,所述 一个或多个包对应于许可的信用。所述网络还包括第二设备,其包含第二端口和与第二处 理器集成和/或可由第二处理器执行的逻辑块。第二逻辑块适用于从所述第一端口接收信 用请求包,响应于信用请求包发送信用许可包到所述第一端口,并且从所述第一端口接收 一个或多个数据包。
[0088] 在一些实施例中,可以使用DCBX交换CE能力,并且CE能力可以包括参与基于信 用的流控制和交换信用的能力的指示,理解包括在CE帧和/或CE-Tag中的通道ID的能力 的指示,和信用交换单位。信用许可包也可以指示许可到所述第一端口的信用的至少一个 优先级以及许可到所述第一端口的至少一个指示的优先级中的每一个的信用量。
[0089] 在一些实施例中,在第二端口成功地转发了由其接收的包之后(包从第一端口转 发到第二端口),第一端口可以接收与由第二端口成功转发的包的量成比例的信用量。在一 个实施例中,为了追踪何时由第二端口成功转发了包,由第二端口的NIC驱动器成功消耗 的每一份数据(其用于从第二端口转发包,例如到下一跳)可以由开关控制器或一些其他信 用生成器(例如信用管理器,网关等等)监视。然后所述开关控制器或信用生成器可以按与 由NIC驱动器消耗的数据量成比例的信用补充第一端口。
[0090] 此外,所述第一或第二端口未使用的信用当他们的持续时间到达信用老化持续时 间时可以过期,如在CE能力交换期间协商的。然后,用于终止过期信用的计时器被重新启 动。
[〇〇91] 尽管上面描述了各种实施例,应该理解仅通过举例呈现,并不限定。因此,本发明 的实施例的范围和宽度不应被上述任何一个示例的实施例所限制,但仅根据下述的权利要 求和他们的等价物定义。
【权利要求】
1. 一种系统,包括: 包括一个或多个彼此之间相互连接的设备的网络,所述网络包括: 第一设备,其包括第一端口和与第一处理器集成和/或可由第一处理器执行的逻辑 块,所述逻辑块适用于: 在所述第一端口和所述网络中的第二设备的第二端口之间交换信用交换CE能力; 从所述第二端口接收信用许可包,所述信用许可包指示许可到所述第一端口的信用; 以及 从所述第一端口发送一个或多个数据包到所述第二端口,所述一个或多个包对应于所 许可的信用。
2. 如权利要求1所述的系统,其中所述信用许可包指示: 许可到所述第一端口的信用的至少一个优先级;以及 许可到所述第一端口的至少一个指示的优先级中的每一个的信用量。
3. 如权利要求2所述的系统,其中在所述一个或多个数据包中的数据量对应于许可到 所述第一端口的至少一个指示的优先级中的每一个的信用量,并且其中所述一个或多个包 的优先级对应于许可到所述第一端口的信用的至少一个优先级。
4. 如权利要求1所述的系统,其中所述CE能力使用数据中心桥接交换DCBX来交换。
5. 如权利要求1所述的系统,其中所述CE能力包括: 参与基于信用的流控制和交换信用的能力的指示; 理解包含在信用交换CE帧和/或信用交换标签CE-Tag中的通道标识符ID的能力的 指示;以及 信用交换单位。
6. 如权利要求1所述的系统,其中所述逻辑块进一步适用于: 发送信用请求包给所述第二端口,所述信用请求包指示: 将被交换的信用的至少一个优先级;以及 将被交换的至少一个指示的优先级中的每一个的信用量。
7. 如权利要求6所述的系统,其中所述信用请求包进一步包括通道标识符ID,用于指 示要被发送的包的虚拟分组和所述第二端口上的多租户。
8. 如权利要求6所述的系统,其中所述信用许可包和所述信用请求包都包括: 目的媒体访问控制DMAC字段,用于指示所述包的目的地; 源媒体访问控制SMAC字段,用于指示所述包的源; 以太类型字段,用于指示所述包是CE包; 媒体访问控制MAC操作码OpCode,用于指示所述包是信用许可包还是信用请求包; 通信类TC选择矢量,用于指示信用的哪些优先级正在被请求或许可; TC信用矢量,用于指示信用的每个优先级正在被请求或许可多少;以及 循环冗余校验CRC字段,用于校正错误。
9. 如权利要求7所述的系统,其中所述信用许可包和所述信用请求包都包括CE-Tag, 所述CE-Tag包括: 以太类型字段,用于指示所述包是CE包; 通信类TC选择矢量,用于指示正在被请求或许可的信用的选择的优先级; TC信用矢量,用于指示信用的所选择的优先级正在被请求或许可多少。
10. -种用于提供网络中基于信用的流控制的方法,所述方法包括: 在第一端口和第二端口之间交换信用交换CE能力; 从所述第二端口发送信用许可包到所述第一端口,所述信用许可包指示许可到所述第 一端口的信用;以及 从所述第一端口发送一个或多个数据包到所述第二端口,所述一个或多个包对应于所 许可的信用。
11. 如权利要求10所述的方法,其中所述信用许可包指示: 许可到所述第一端口的信用的至少一个优先级;以及 许可到所述第一端口的至少一个指示的优先级中的每一个的信用量。
12. 如权利要求11所述的方法,其中所述一个或多个数据包的量对应于许可到所述第 一端口的至少一个指示的优先级中的每一个的信用量,并且其中一个或多个包的优先级对 应于许可到所述第一端口的信用的至少一个优先级。
13. 如权利要求10所述的方法,其中所述CE能力使用数据中心桥接交换DCBX来交换。
14. 如权利要求10所述的方法,其中所述CE能力包括: 参与基于信用的流控制和交换信用的能力的指示; 理解包含在信用交换CE帧和/或信用交换标签CE-Tag中的通道标识符ID的能力的 指示;以及 信用交换单位。
15. 如权利要求14所述的方法,其中信用交换单位允许每个信用至少8位数据从所述 第一端口发送到所述第二端口。
16. 如权利要求10所述的方法,进一步包括从所述第一端口发送信用请求包到所述第 二端口,所述信用请求包指示: 将被交换的信用的至少一个优先级;以及 将被交换的至少一个指示的优先级中的每一个的信用量。
17. 如权利要求16所述的方法,其中所述信用许可包和所述信用请求包都包括: 目的媒体访问控制DMAC字段,用于指示所述包的目的地; 源媒体访问控制SMAC字段,用于指示所述包的源; 以太类型字段,用于指示所述包是CE包; 媒体访问控制MAC操作码OpCode,用于指示所述包是信用许可包还是信用请求包; 通信类TC选择矢量,用于指示信用的哪些优先级正在被请求或许可; TC信用矢量,用于指示信用的每个优先级正在被请求或许可多少;以及 循环冗余校验CRC字段,用于校正错误。
18. 如权利要求16所述的方法,其中所述信用许可包和信用请求包都包括CE-Tag,所 述CE-Tag包括: 以太类型字段,用于指示所述包是CE包; 通信类TC选择矢量,用于指示正在被请求或许可的信用的选择的优先级; TC信用矢量,用于指示信用的所选择的优先级正在被请求或许可多少。
19. 一种系统,包括: 包括一个或多个彼此之间相互连接的设备的网络,所述网络包括: 包括第一端口和与第一处理器集成和/或由第一处理器执行的逻辑块的第一设备,所 述逻辑块适用于: 在所述第一端口和所述网络中的第二端口之间交换信用交换CE能力; 发送信用请求包到所述第二端口,所述信用请求包指示: 将被交换的信用的至少一个优先级;以及 将被交换的至少一个指示的优先级中的每一个的信用量; 从所述第二端口接收信用许可包,所述信用许可包指示许可到所述第一端口的信用; 以及 发送一个或多个数据包到所述第二端口,所述一个或多个包对应于所许可的信用;以 及 包括所述第二端口和与第二处理器集成和/或可由第二处理器执行的第二逻辑块的 第二设备,所述第二逻辑块适用于: 从所述第一端口接收所述信用请求包; 响应于所述信用请求包发送所述信用许可包到所述第一端口;以及 从所述第一端口接收所述一个或多个数据包。
20. 如权利要求19所述的系统, 其中所述信用许可包和所述信用请求包都包括: 以太类型字段,用于指示所述包是CE包; 媒体访问控制MAC操作码OpCode,用于指示所述包是信用许可包还是信用请求包; 通信类TC选择矢量,用于指示信用的哪些优先级正在被请求或许可;以及 TC信用矢量,用于指示信用的每个优先级正在被请求或许可多少, 其中CE能力使用数据中心桥接交换DCBX来交换并且包括: 参与基于信用的流控制和交换信用的能力的指示; 理解包含在信用交换CE帧和/或信用交换标签CE-Tag中的通道标识符ID的能力的 指示;以及 信用交换单位; 其中所述信用许可包指示: 许可到所述第一端口的信用的至少一个优先级;以及 许可到所述第一端口的至少一个指示的优先级中的每一个的信用量。
21. -种用于提供网络中基于信用的流控制的系统,所述系统包括实施权利要求 10-18中任何方法的任何步骤的装置。
【文档编号】H04L12/833GK104104609SQ201410140260
【公开日】2014年10月15日 申请日期:2014年4月9日 优先权日:2013年4月9日
【发明者】卡斯莫·M·德库萨蒂斯, M·格撒特, K·G·坎伯, C·J·明肯伯格, V·A·潘迪, R·J·勒西欧 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1