CN104104609B - 用于提供网络中基于信用的流控制的方法和系统 - Google Patents
用于提供网络中基于信用的流控制的方法和系统 Download PDFInfo
- Publication number
- CN104104609B CN104104609B CN201410140260.9A CN201410140260A CN104104609B CN 104104609 B CN104104609 B CN 104104609B CN 201410140260 A CN201410140260 A CN 201410140260A CN 104104609 B CN104104609 B CN 104104609B
- Authority
- CN
- China
- Prior art keywords
- credit
- bag
- port
- priority
- license
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/39—Credit based
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2466—Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
Abstract
在一个实施例中,系统包括具有一个或多个相互连接的设备的网络,所述网络包括第一设备,其具有第一端口和集成于第一处理器和/或由第一处理器执行逻辑,所述逻辑适用于在所述第一端口和所述网络中的第二设备的第二端口之间交换信用交换能力,从所述第二端口接收信用许可包,所述信用许可包指示许可到所述第一端口的信用;以及从所述第一端口发送一个或多个数据包到所述第二端口,所述一个或多个包对应于所述许可的信用。根据更多的实施例描述了其他用于提供基于信用的流控制的方法和系统。
Description
背景技术
本发明涉及数据中心基础结构,更具体的,本发明涉及基于信用的链路层流控制和使用数据中心桥接交换(DCBX)的信用交换。
基于以太网端口的流控制是基于反应的停-走(开-关)机制,称为PAUSE,如Institute of Electrical and Engineers(IEEE)标准802.3x所定义的,其仅用于接收器的缓冲积压超过了特定的高阈值之后,发送PAUSE(例如,停止)信号给发送器,并当接收器的缓冲积压下降到一个低阈值以下时发送一个UNPAUSE(例如,启动)信号。为了确保不发生由缓冲溢出引起的帧丢失,必须将接收器的高阈值设置在接收器缓冲能力之下至少一个带宽延时积(BDP),因此增加了缓冲大小的需求。而且,对于一个给定的阈值设定,例如由于在发射器和接收器之间安装了较长的电缆,或由于PAUSE帧的延迟处理,BDP的增加可能导致不想要的帧丢失。线路速率的持续增加(从原始的10Mb/s每端口增加到100Gb/s和更快)导致了BDP的增加而加剧了这一问题。因此,以太网易采用主动的基于预留的流控制和具有能保证接收器缓冲空间机制的帧接受方案,以确保不依赖于BDP而不发生帧丢失将是有利的。
数据交换之前在对等端口之间的交互带来了更多的确定性和更好的资源利用。以太网并没有用于满足特定应用和聚集以太网无限带宽的机制。
因此,以太网的安装将极大地受益于基于信用的流控制机制以带来更多的传送稳定性。
发明概述
在一个实施例中,系统包括具有一个或多个相互连接的设备的网络,所述网络包括第一设备,其具有第一端口和集成于第一处理器和/或由第一处理器执行的逻辑,所述逻辑适用于在所述第一端口和网络中第二设备的第二端口之间交换信用交换(CE)能力,从所述第二端口接受信用许可包,所述信用许可包指示了许可到所述第一端口的信用,并且从所述第一端口发送一个或多个数据包到所述第二端口,所述一个或多个包对应于许可的信用。
在另一个实施例中,用于在网络中提供基于信用的流控制的方法包括在第一端口和第二端口之间交换CE能力,从所述第二端口发送信用许可包到所述第一端口,所述信用许可包指示了许可到第一端口的信用,并且从所述第一端口发送一个或多个包到所述第二端口,所述一个或多个包对应于许可的信用。
根据又另一个实施例,系统包括具有一个或多个相互连接的设备的网络,所述网络包括第一设备,其具有第一端口和集成于第一处理器和/或由第一处理器执行的逻辑,所述逻辑适用于在所述网络的第二端口和所述第一端口之间交换信用交换(CE)能力,发送信用请求包到所述第二端口,所述信用请求包指示了至少一个用于交换的信用的优先级和至少一个指示的用于交换的优先级的信用量,从所述第二端口接受信用许可包,所述信用许可包指示了许可到所述第一端口的信用,以及发送一个或多个数据包到所述第二端口,所述一个或多个包对应于许可的信用。系统还包括第二设备,其具有第二端口和集成于第二处理器和/或由第二处理器执行的第二逻辑,所述第二逻辑适用于从所述第一端口接受信用请求包,响应于所述信用请求包发送信用许可包到所述第一端口,以及从所述第一端口接受一个或多个数据包。
本发明的实施例和其他方面将在由本发明主旨的例子说明的连同图一起的下述具体实施方式中更加清楚。
附图说明
图1根据一个实施例示出了网络结构。
图2根据一个实施例图示了可以与图1中的服务器和/或客户端关联的代表性的硬件环境。
图3是根据一个实施例的简化的网络系统图。
图4是根据一个实施例的信用交换(CE)帧图。
图5是根据一个实施例具有信用交换标签(CE-Tag)的帧图。
图6是根据一个实施例的方法流程图。
具体实施方式
以下描述是为了说明本发明的主旨,并不意味着限定本发明到此处权利要求的概念。更进一步,这里描述的特定性质可以用于各种可能的每一个的描述的其他性质的排列组合的组合。
除非此处另有说明,给定所有术语的最广的解释包括被本领域技术人员熟知的和/或在字典,条约等等中的说明及意义所引申的意义。
必须注意的是,如在说明书和附加权利要求中使用的,单数形式”a”,”an”及”the”包含复数指代除非另有说明。
在一个通常的实施例中,系统包括具有一个或多个相互连接的设备的网络,所述网络包括第一设备,其具有第一端口和集成于第一处理器和/或由第一处理器执行的逻辑,所述逻辑适用于在所述第一端口和网络中第二设备的第二端口之间交换信用交换(CE)能力,从所述第二端口接收信用许可包,信用许可包指示了许可到所述第一端口的信用,并且从所述第一端口发送一个或多个数据包到所述第二端口,所述一个或多个包对应于许可的信用。
在另一个通常的实施例中,用于在网络中提供基于信用的流控制的方法包括在第一端口和第二端口之间交换CE能力,从所述第二端口发送信用许可包到所述第一端口,所述信用许可包指示了许可到所述第一端口的信用,并且从所述第一端口发送一个或多个包到所述第二端口,所述一个或多个包对应于许可信用。
根据另又一个通常的实施例,系统包括具有一个或多个相互连接的设备的网络,所述网络包括第一设备,其具有第一端口和集成于第一处理器和/或由第一处理器执行的逻辑,所述逻辑适用于在所述第一端口和网络中第二设备的第二端口之间交换信用交换(CE)能力,发送信用请求包到所述第二端口,所述信用请求包指示了用于交换的信用的至少一个优先级以及用于交换的至少一个指示的优先级中的每一个的信用量,从所述第二端口接受信用许可包,信用许可包指示了许可到所述第一端口的信用,以及发送一个或多个数据包到所述第二端口,所述一个或多个包对应于许可的信用。系统还包括第二设备,其具有第二端口和集成于第二处理器和/或由第二处理器执行的逻辑,所述第二逻辑适用于从所述第一端口接受信用请求包,响应于所述信用请求包发送信用许可包到所述第一端口,以及从所述第一端口接受一个或多个数据包。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以利用一个或多个计算机可读媒介的任何组合。计算机可读媒介可以是计算机可读单媒介或非晶体管计算机可读存储媒介。非晶体管计算机可读存储媒介可以是,例如,但不限定于电子,磁,光,电磁,红外,或半导体系统、装置或设备,或前述的任何适当的组合。非晶体管计算机可读存储媒介的更多特别的例子(非穷尽列举)包括如下:便携式计算机磁盘,硬盘,随机存取存储器(RAM),只读存储器(ROM),可擦除可编程只读存储器(ERPOM或闪存存储器),便携式光盘只读存储器(CD-ROM),蓝光只读存储器(BD-ROM),光学存储设备,磁存储设备,或任何上述的组合。在本文件的情况中,非晶体管计算机可读存储媒介可以是任何有形的媒介,其可能是包含,或存储一段程序或应用,由指令执行系统,装置或设备使用,或与之相联系。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者设备使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以加载计算机程序指令到计算机,其他可编程的数据处理装置,或其他设备上以引起一系列操作步骤在计算机,其他可编程的数据处理装置,或其他设备上执行,以产生计算机执行过程,使得执行在计算机或其他可编程装置上的指令提供执行流程图或方块图中特定的功能。
图1根据一个实施例示出了网络结构100。如图1所示,提供了包括第一远程网络104和第二远程网络106的多个远程网络102。网关101可以连接在远程网络102和邻近网络108之间。在本发明网络结构100的情况中,网络104,106可以各自采取任何形式,包括但不限于LAN,VLAN,WAN例如互联网,公共开关电话网络(PSTN),内部电话网络等等。
在使用中,网关101用作从远程网络102到邻近网络108的入口点。例如,网关101可以用作路由器,其能够指引到达网关101的给定的数据包,以及可以用作开关,其能够为给定的包提供网关101的实际进出路径。
进一步的还包括连接于邻近网络108的至少一个数据服务器114,并且其可以通过网关101从远程网络102访问。应当注意的是,一个或多个数据服务器114可以包括任何类型的计算设备或组件。连接于每个数据服务器114的是多个用户设备116。这些用户设备116可以包括台式计算机,笔记本计算机,手持计算机,打印机,和/或任何类型的含有逻辑的设备。应当注意的是在一些实施例中,用户设备111也可以直接连接到任何网络。
外部设备120或一系列外部设备120(例如,传真机,打印机,扫描仪,硬盘驱动器,联网的和/或本地的存储单元或系统等等)可以连接到网络104,106,108中的一个或多个。应当注意,数据库和/或附加的组件可以与连接到网络104,106,108的任何类型的网络元件一起使用,或集成到这些网络元件中。在本描述的情况中,网络元件可以指网络的任何组件。
根据一些方法,此处描述的方法和系统可以用和/或在虚拟系统和/或仿真一个或多个其他系统的系统实施,例如仿真IBM z/OS环境的UNIX系统,虚拟架设MICROSOFTWINDOWS环境的UNIX系统,仿真IBM/OS环境的MICROSOFT WINDOWS系统等等。在一些实施例中,可以通过使用VMWARE软件来提高这样的虚拟和/或仿真。
在更多的方法中,一个或多个网络104,106,108可以代表一簇系统,通常被称为“云”。在云计算中,共享的资源,例如处理能力,外围设备,软件,数据,服务器等等被以按需关系提供给云中的任何系统,因此允许在多个计算系统间访问和分配服务。云计算典型的涉及运行在云中的系统间的互联网连接,但是如本领域中所知的,也可以使用其他连接系统的技术。
图2根据一个实施例示出了与图1中的用户设备116和/或服务器114相关联的代表性的硬件环境。图2根据多个实施例示出了工作站的典型硬件配置,该工作站具有中央处理单元(CPU)210,例如微处理器,和通过一个或多个总线212互联的多个其他单元,根据各种实施例,总线可以是不同类型,如局部总线,并行总线,串行总线等等。
图2所示的工作站包括随机存取存储器(RAM)214,只读存储器(ROM)216,I/O适配器218,用于连接例如硬盘存储单元220的外围设备到一个或多个总线212,用户接口适配器222用于连接键盘224,鼠标226,扬声器228,麦克风232,和/或其他用户接口设备如触摸屏,数码相机(未示出)等到一个或多个总线212,通信适配器234用于连接工作站到通信网络235(例如数据处理网络)以及显示适配器236用于连接一个或多个总线212到显示设备238.
工作站可以有驻留于其上的操作系统如MICROSOFT WINDOWS操作系统(OS),MACOS,UNIX OS,等等。应当理解,可以在除了上述平台及操作系统以外的平台及操作系统上实施优选的实施例。可以用JAVA,XML,C和/或C++语言,或其他编程语言连同基于对象的编程方法编写优选的实施例。可以使用面向对象的编程(OOP),其越来越多的被使用于开发复杂应用。
现参照图3,图示了根据一个实施例的系统300的简单的设备与设备的交互。第一设备302访问和/或支持一个或多个端口306,其适用于接收和/或传送数据。第二设备304访问和/或支持一个或多个端口308,其适用于接收和/或传送数据。设备302,304可以是开关,路由器,服务器或任何其他适当的网络设备(实质的或虚拟的)。设备302,304的其中一个或两个都可以与开关控制器304(例如,软件定义网络(SDN)控制器)通信,使得可以通过具有网络意识的开关控制器304提高设备之间的传送。
为了描述,第一设备302可以视为数据包发送器,并且第二设备304可以视为数据包接收器。在一个实施例中,为了从第一设备302发送数据包到第二设备304,可以有两种选择。第一种选择是,指示信用请求310的包首先从第一设备302发送到第二设备304。响应于信用请求包310,第二设备304可以发送指示信用许可312的包给第一设备302。请求的信用量可以基于要发送帧的大小。
第二种选择是,第二设备304,在没有接收到任何提示或请求包的情况下,发送信用许可包给任何连接至此的设备,其可以是发送包给第二设备304的设备,如第一设备302。
许可的信用量可以基于请求的信用量,可用的发送缓冲量,可用于交换的信用量,和/或任何其他合适的因素。在没有接收到信用请求的一种方法中,由信用许可包许可的信用量可以是驻留在第二设备304上的可用信用的全部或一部分。信用单位(交换一个信用可以发送的数据量)可以是最小值8位(例如,256位,512位(一份数据),1024位等)和一个最大传送单位的最大值(MTU),其可以是很多份数据。当其有利于优化性能、用户期望等时,信用单位可以超过MTU的大小。
在一个实施例中可以用信用单位的默认值512位,其可以是用户可调和/或通过策略或编程等被修改的。
此外,包的优先级值可以与要发送帧的IEEE802.1P值相关,或与服务类(COS)队列优先级值相关。另外,在一个方法中,可选的被包括的通道标识符(ID)可以基于服务标记(S-Tag),源MAC地址,或其他任何可编程的参数。
为了确定设备302,304中的每一个是否能用于基于信用的流控制,可以在每个设备的端口之间交换信用交换(CE)能力。
在一个实施例中,可以扩展和/或修改数据中心桥接交换(DCBX)协议以允许CE能力的交换。CE能力可以包括对等端口之间流控制需要的信息。在一个实施例中,可以被交换的信息包括信用交换单位(每个信用交换可以发送多少数据),以及设备是否有交换用于流控制的信用的能力。可以用大量的位数块来指示单位值,其中块长度可以从8位到最大信用块大小(MAX_CR_BLK)。
MAX_CR_BLK可以是所支持的MTU大小,2548字节,或任何其他大于8位的数字。2548字节足够供给光缆通道以太网(FCoE)帧安全编码,并且因此可以提供超过其他大小的优势。
此外,可选的,交换通道能力或信息的能力也可以在CE能力交换中指示。通道能力允许在信用交换帧或信用交换标签中添加通道ID。
在CE能力交换之后,从第一设备302发送信用请求包310到第二设备304。接下来,在信用许可包312中许可或拒绝信用。
接下来,如果任何信用被许可到第一设备302,则数据以与许可信用量一致的量从第一设备302传送到第二设备304。然后,第二设备接收数据,并且实施信用计算以调整可用于管理数据转发的信用量。
如图4-5详细描述的,被称为信用交换帧(CE帧)的帧可以被用在具有唯一的媒体访问控制(MAC)控制以太网类型,例如,0x88XX,其中XX是可编程的。新的层2标签(可被称作“CE-TAG”或信用交换标签)可以被用于指定包含信用交换信息的包。为了确保在帧有不同的优先级(可以从0-15分布)的情况下的帧的低丢失传输,发送器(MAC TX)通过给对等端口发送新的CE帧来请求信用。该帧包括用于多个优先级的信用请求。为了确保一个特定优先级的帧的低丢失传输,发送器(MAX TX)在发送逻辑中将CE标记帧或捎带(piggyback)添加在数据帧上。CE标签包括用于一个优先级的信用的请求,并具有低开销。在另一个实施例中不发送请求,并且对等端口提供任何信用,其接收以允许在没有提示的情况下进行包传送。
对等端口(接收器或MAC RX)接收CE帧或CE标记帧并为了相应的优先级或信用优先级解析这些请求。相应的,在返回CE帧中批准或提供合适的信用量给请求设备或端口,或通过在已经被传送给请求端的下一个数据帧上增加CE-Tag。
一旦接收到信用,发送器以接收的信用指定的合适的和/或允许的优先级发送帧或包。
现参照图4,根据一个实施例示出了信用交换(CE)帧400。信用帧400可以采用任何需要的形式,并且如图4所示的格式仅是举例目的并且不意在限制可能被使用的帧格式。
在该示例实施例中,帧400包括目的媒体访问控制(DMAC)地址字段402,源MAC(SMAC)地址字段404,以太类型字段406,MAC控制操作码(OpCode)字段408,通信类(TC)选择矢量410,TC信用矢量412,可选通道号字段414,以及循环冗余校验(CRC)字段418。如果有多余的空间,可以在通道号字段414和CRC字段418之间放置填充码416。
DMAC寻址字段402可以设置对于多播包标准的01:80:C2:00:00:01以辨识包为多播包。DMAC寻址字段402长度可以是48位,或其他由用户确定的合适的长度。
SMAC寻址字段404可以用于指定包的源,并且可以是48位长,或其他由用户确定的合适的长度。
以太类型字段406可以用于指定包的以太类型。由于CE帧现在没有任何专用的以太类型指定,因此只要将要发送和/或接收这些CE帧的网络中的设备明白以太类型的指定,则可以使用任何这样未被占用的以太类型。在一个这样的实施例中,可以设定以太类型字段406为0x88XX,其中XX可以是标准的或可编程的,这取决于用户希望如何使用该字段。
MAC控制操作编码(OpCode)字段408可以指定该包是信用请求包还是信用许可包。这可以通过使用还没有被用于其他指示的位串来完成。在一个例子中,可以使用0x0110来指定该包是信用请求包,而使用0x0111来指定该包是信用许可包。
在一些实施例中,为了得到信用许可,可以不发送信用请求包。相反,只要信用在任何接收设备处是可用的,就可以发送信用许可包给所有可用的设备。
用TC选择矢量410来指示信用的哪些优先级正在被请求或许可(基于MAC控制OpCode字段408)。对于可用的包的每一个优先级,可以指示是否正在请求/许可该优先级的信用。例如,有16种可用的优先级来分配给任何包,并且因此矢量中有16位,每一位代表了相应的优先级的信用是正在被请求还是许可。当然,可用的优先级数可以多于或少于16,例如8,12,20,24等等。
可以用TC信用矢量412来指示正在请求或许可(基于MAC控制OpCode字段408)每一个优先级的多少信用。对于可用的包的每一种优先级,可以指示不同的信用量。例如,可以有16种可用的优先级来分配给发送的包,并且因此矢量中有16个位置,每一个位置有许多位来代表对于相应的优先级正在请求或许可多少信用。
可选的,可以使用通道号字段414来指示通道号码或ID。通道ID可以指示端口上的多租户和/或将要被发送的一个或多个包的虚拟组。在一个这样的例子中,该通道号可以涉及和/或基于用于一个或多个将要发送的包的VLAN ID。为了允许在用户或政策需要时对端口进行额外的处理,可以包括关于端口上的多租户的信息。在一种方法中,这种字段的长度是16位,但是可以按需增大或减少。VLAN ID通常是12位,并且通道ID可以模拟这12位或可以修改或增加到这12位以包含其他信息。
现转向图5,根据一个实施例,示出了标准以太网帧500中的信用交换标签(CE-Tag)520。CE-Tag520连同典型的或标准的以太网帧500可以用于指示对于单一优先级正在被请求或许可的信用量。CE-Tag520包括CE标签以太类型字段502、TC选择矢量504、TC信用字段506和可选的通道号字段508。
可以增加CE-Tag520到已经将要从一个设备发送到另一个设备的包。以这种方式,不必在设备之间发送完整的CE帧,并且相反已经正在发送的包可以被修改为包含CE-Tag520并且因此减少设备之间发送的通信量,这是因为CE-Tag520可以捎带在已经正在发送的通信量上。
帧500可以包括许多标准字段,例如DMAC地址字段510,其可以用来指示包的目的地址,SMAC地址字段512,其可以用来指示包的源地址,数据字段514,其可以用于携带有效载荷或以太网帧数据,可选填充516,其可以被包括以填充帧500中的任何剩余空间,以及CRC518,其可以被包括用于错误校正,如本领域的技术人员将会理解的。
CE标签以太类型字段502可以用于指示该标签用于信用交换,并且可以是可编程的或标准的,并且可以指示该包是用于信用请求或信用许可。TC选择矢量504可以用于指示可用的优先级中的哪一个信用优先级正在被请求/许可。在一个方法中,这种字段的长度是16位,但是也可以按需更多或更少。
此外,TC信用字段506可以用来指示多少信用正在从由TC选择矢量504中指示的指定优先级被许可或请求。在一个方法中,这种字段的长度是16位,但是也可以按需更多或更少。
可选的通道号字段508可以用于指示通道号码或ID。该通道号可以涉及和/或基于用于一个或多个将要发送的包的VLAN ID。在一个方法中,这种字段的长度是16位,但是也可以按需更多或更少。
可以扩展DCBX协议以公告使用DCBX协议交换信息的任何设备的CE能力。根据这一过程,可以定义应用协议类型长度值(TVL),其被称为“CET”TLV。可以在发起端口与可以进行交换的对等端口之间的点对点基础上通过物理端口来产生TLV。在可选的实施例中,开关设备下游可以接着在它们所有DCBX成员端口上交换CE TLV信息给它们的对等设备。
因此,在网络完全收敛之后,从源设备或端口到目标设备或端口的路径中的所有设备都能够理解其对等端口的信用交换能力并与其对等端口进行信用交换。
现转向图6,根据一个实施例示出了网络中基于信用的流控制方法600。可以根据本发明在图1-5描述的任何环境或其他各种实施例的任何环境中实施方法600。当然,本领域技术人员在阅读了本说明书后将会理解,比图6所具体描述的更多或更少的操作可以被包括在方法600中。
方法600的每一步可以由操作环境中的任意合适的组件来实施。例如,在一个实施例中,通过终端、由服务器控制的vSwitch、服务器、开关、开关控制器(例如SDN控制器、开流控制器等等)、信用管理器、通信控制器、处理器(如CPU,专用集成电路(ASIC)、现场可编程控门阵列(FPGA)等等)、网络接口卡(NIC),虚拟NIC、虚拟化平台、或网络系统或结构的任何其他合适的设备或组件,可以部分或完整地实施方法600。
在操作602中,CE能力在第一(发送)端口和第二(接收)端口之间交换。在一个实施例中,可以使用DCBX来交换CE能力。
在另一个实施例中,CE能力可以包括参与基于信用的流控制和交换信用的能力(例如,端口是否能够理解CE)的指示,理解包括在CE帧和/或CE-Tag中的通道ID的能力(例如端口是否理解何时包含通道ID)的指示,和信用交换单位(每次信用交换时发送的数据量)。
在一个方法中,信用交换单位可以允许每个信用至少8位数据从第一端口发送到第二端口,并且允许高达一个MTU的数据。在特别的实施例中,每个信用可以允许发送2548字节的数据。
在操作604中,信用请求包从第一端口发送到第二端口。这一操作是可选的,因为发送请求不是必须的。相反,在首先发送或没有发送信用请求包的情况下,第二端口都可以在任何时候发送信用许可包。
在一个方法中,信用请求包可以指示将被交换的信用的至少一个优先级以及将被交换的至少一个指示优先级中的每一个的信用量。
在操作606中,信用许可包从第二端口发送到第一端口,信用许可包指示了许可到第一端口的信用。在一个实施例中,响应于信用请求包发送信用许可包。
在一个方法中,信用许可包可以指示许可到第一端口的信用的至少一个优先级(例如16个可用的优先级中的一个或多个)以及许可到第一端口的至少一个指示优先级中的每一个的信用量(例如每个优先级的多少信用正在被许可到第一端口)。
在进一步的方法中,信用许可包可以包括仅用于具有有效通道ID的那些包的信用(该信息可以被包括在信用请求包中或以其他方式被发现)。更进一步,可以在每一个虚拟端口的基础上授予信用,或在可以在授予第二端口信用之前提供并证实参数的基础上授予信用。
在操作608中,从第一端口发送一个或多个数据包到第二端口,所述一个或多个数据包对应于许可信用。
一个或多个数据包的量对应于许可到第一端口的至少一个指示优先级中的每一个的信用量。更进一步,一个或多个包的优先级对应于许可到第一端口的信用的至少一个优先级。以这种方式,只有对应于许可的信用量的一定量的数据被发送。更进一步,只有具有与许可信用(一个或多个)的优先级匹配的优先级的数据可以被发送。
在一个实施例中,信用许可包和信用请求包可以各自包含DMAC字段,用于指示包的目的地,SMAC字段,用于指示包的源,以太类型字段,用于指示包是CE包,MAC OpCode,用于指示包是信用许可包还是信用请求包,TC选择矢量,用于指示信用的哪些优先级正在被请求或许可,TC信用矢量,用于指示信用的每个优先级正在被请求或许可多少,以及CRC字段,用于校正错误。
在可替换的实施例中,信用许可包和信用请求包可以各自包含CE-Tag,所述CE-Tag包括以太类型字段,用于指示包是CE包,TC选择矢量,用于指示正在被请求或许可的信用的选择的优先级,TC信用矢量,用于指示信用的所选择的优先级正在被请求或许可多少。
在一个实施例中,信用老化持续时间可以在CE能力交换期间在第一端口和第二端口之间协商。基于一个或多个因素决定信用老化持续时间,例如第一端口和第二端口之间的链接速度,端口之间的距离,流信用的位大小等等。在另一个实施例中,开启计时器计时由第二端口占有的流信用的持续时间。
如本领域技术人员将理解的,可以在系统或计算机程序产品中实现方法600。例如,系统可以包括含有一个或多个彼此之间相互连接的设备的网络,所述网络具有第一设备,其包含第一端口和与第一处理器集成和/或可由第一处理器执行的逻辑块。所述逻辑块适用于在所述第一端口和在网络中的第二端口之间交换CE能力,发送信用请求包到所述第二端口,所述信用请求包指示了将被交换的信用的至少一个优先级和将被交换的至少一个指示的优先级中的每一个的信用量,从所述第二端口接收信用许可包,所述信用许可包指示了许可到所述第一端口的信用,并且发送一个或多个数据包到所述第二端口,所述一个或多个包对应于许可的信用。所述网络还包括第二设备,其包含第二端口和与第二处理器集成和/或可由第二处理器执行的逻辑块。第二逻辑块适用于从所述第一端口接收信用请求包,响应于信用请求包发送信用许可包到所述第一端口,并且从所述第一端口接收一个或多个数据包。
在一些实施例中,可以使用DCBX交换CE能力,并且CE能力可以包括参与基于信用的流控制和交换信用的能力的指示,理解包括在CE帧和/或CE-Tag中的通道ID的能力的指示,和信用交换单位。信用许可包也可以指示许可到所述第一端口的信用的至少一个优先级以及许可到所述第一端口的至少一个指示的优先级中的每一个的信用量。
在一些实施例中,在第二端口成功地转发了由其接收的包之后(包从第一端口转发到第二端口),第一端口可以接收与由第二端口成功转发的包的量成比例的信用量。在一个实施例中,为了追踪何时由第二端口成功转发了包,由第二端口的NIC驱动器成功消耗的每一份数据(其用于从第二端口转发包,例如到下一跳)可以由开关控制器或一些其他信用生成器(例如信用管理器,网关等等)监视。然后所述开关控制器或信用生成器可以按与由NIC驱动器消耗的数据量成比例的信用补充第一端口。
此外,所述第一或第二端口未使用的信用当他们的持续时间到达信用老化持续时间时可以过期,如在CE能力交换期间协商的。然后,用于终止过期信用的计时器被重新启动。
尽管上面描述了各种实施例,应该理解仅通过举例呈现,并不限定。因此,本发明的实施例的范围和宽度不应被上述任何一个示例的实施例所限制,但仅根据下述的权利要求和他们的等价物定义。
Claims (11)
1.一种系统,包括:
包括一个或多个彼此之间相互连接的设备的网络,所述网络包括:
第一设备,其包括第一端口和与第一处理器集成和/或可由第一处理器执行的逻辑块,所述逻辑块适用于:
在所述第一端口和所述网络中的第二设备的第二端口之间交换信用交换CE能力;
从所述第二端口接收信用许可包,所述信用许可包指示:
许可到所述第一端口的信用、许可到所述第一端口的信用的至少一个优先级,其中每个信用与一个优先级相关;
所述至少一个优先级的每一个的信用量,其中所述至少一个优先级与以下至少一个相关:
包的IEEE802.1P值;
包的服务类队列优先级值;
其中所述信用许可包包括:
以太类型字段,用于指示所述包是CE包;
通信类TC选择矢量,包括多个位,其中多个位的每一位用于指示信用的相应优先级是正在被请求还是许可;
TC信用矢量,包括多个位置,其中多个位置的每一个位置具有许多位用于指示信用的相应优先级正在被请求或许可多少信用;以及
从所述第一端口发送一个或多个数据包到所述第二端口,所述一个或多个数据包对应于所许可的信用。
2.如权利要求1所述的系统,其中所述CE能力使用数据中心桥接交换DCBX来交换。
3.如权利要求1所述的系统,其中所述CE能力包括:
参与基于信用的流控制和交换信用的能力的指示;
理解包含在信用交换CE帧和/或信用交换标签CE-Tag中的通道标识符ID的能力的指示;以及
信用交换单位。
4.如权利要求1所述的系统,其中所述逻辑块进一步适用于:
发送信用请求包给所述第二端口,所述信用请求包包括:
目的媒体访问控制DMAC字段,用于指示所述包的目的地;
源媒体访问控制SMAC字段,用于指示所述包的源;
以太类型字段,用于指示所述包是CE包;
媒体访问控制MAC操作码OpCode,用于指示所述包是信用许可包还是信用请求包;
通信类TC选择矢量,包括多个位,其中多个位的每一位用于指示信用的相应优先级是正在被请求还是许可;
TC信用矢量,包括多个位置,其中多个位置的每一个位置具有许多位用于指示信用的相应优先级正在被请求或许可多少信用;
通道标识符ID,用于指示要被发送的包的虚拟分组和所述第二端口上的多租户;以及
循环冗余校验CRC字段,用于校正错误。
5.如权利要求4所述的系统,其中所述信用许可包和所述信用请求包都包括CE-Tag,所述CE-Tag包括:
以太类型字段,用于指示所述包是CE包;
通信类TC选择矢量,用于指示正在被请求或许可的信用的选择的优先级;
TC信用矢量,用于指示信用的所选择的优先级正在被请求或许可多少。
6.一种用于提供网络中基于信用的流控制的方法,所述方法包括:
在第一端口和所述网络中的第二设备的第二端口之间交换信用交换CE能力;
从所述第二端口接收信用许可包,所述信用许可包指示:
许可到所述第一端口的信用、许可到所述第一端口的信用的至少一个优先级,其中每个信用与一个优先级相关;
所述至少一个优先级的每一个的信用量,其中所述至少一个优先级与以下至少一个相关:
包的IEEE802.1P值;
包的服务类队列优先级值;
其中所述信用许可包包括:
以太类型字段,用于指示所述包是CE包;
通信类TC选择矢量,包括多个位,其中多个位的每一位用于指示信用的相应优先级是正在被请求还是许可;
TC信用矢量,包括多个位置,其中多个位置的每一个位置具有许多位用于指示信用的相应优先级正在被请求或许可多少信用;以及
从所述第一端口发送一个或多个数据包到所述第二端口,所述一个或多个数据包对应于所许可的信用。
7.如权利要求6所述的方法,其中所述CE能力使用数据中心桥接交换DCBX来交换。
8.如权利要求6所述的方法,其中所述CE能力包括:
参与基于信用的流控制和交换信用的能力的指示;
理解包含在信用交换CE帧和/或信用交换标签CE-Tag中的通道标识符ID的能力的指示;以及
信用交换单位。
9.如权利要求6所述的方法,其中逻辑块进一步适用于:
发送信用请求包给所述第二端口,所述信用请求包包括:
目的媒体访问控制DMAC字段,用于指示所述包的目的地;
源媒体访问控制SMAC字段,用于指示所述包的源;
以太类型字段,用于指示所述包是CE包;
媒体访问控制MAC操作码OpCode,用于指示所述包是信用许可包还是信用请求包;
通信类TC选择矢量,包括多个位,其中多个位的每一位用于指示信用的相应优先级是正在被请求还是许可;
TC信用矢量,包括多个位置,其中多个位置的每一个位置具有许多位用于指示信用的相应优先级正在被请求或许可多少信用;
通道标识符ID,用于指示要被发送的包的虚拟分组和所述第二端口上的多租户;以及
循环冗余校验CRC字段,用于校正错误。
10.如权利要求9所述的方法,其中所述信用许可包和所述信用请求包都包括CE-Tag,所述CE-Tag包括:
以太类型字段,用于指示所述包是CE包;
通信类TC选择矢量,用于指示正在被请求或许可的信用的选择的优先级;
TC信用矢量,用于指示信用的所选择的优先级正在被请求或许可多少。
11.一种用于提供网络中基于信用的流控制的系统,所述系统包括实施权利要求6-10中任一方法的各个步骤的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/859,655 | 2013-04-09 | ||
US13/859,655 US9571410B2 (en) | 2013-04-09 | 2013-04-09 | Credit-based link level flow control and credit exchange using DCBX |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104104609A CN104104609A (zh) | 2014-10-15 |
CN104104609B true CN104104609B (zh) | 2017-11-24 |
Family
ID=51654358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410140260.9A Active CN104104609B (zh) | 2013-04-09 | 2014-04-09 | 用于提供网络中基于信用的流控制的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9571410B2 (zh) |
CN (1) | CN104104609B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9118554B2 (en) * | 2013-10-28 | 2015-08-25 | Dell Products L.P. | System and method for automated DCB configuration of access switches |
US10061734B2 (en) | 2015-05-20 | 2018-08-28 | International Business Machines Corporation | Adjustment of buffer credits and other parameters in a startup phase of communications between a plurality of channels and a control unit |
US9864716B2 (en) * | 2015-05-20 | 2018-01-09 | International Business Machines Corporation | Receiving buffer credits by a plurality of channels of one or more host computational devices for transmitting data to a control unit |
US9892065B2 (en) | 2015-05-20 | 2018-02-13 | International Business Machines Corporation | Adjustments of buffer credits for optimizing the number of retry operations and transfer ready operations |
CN106559351B (zh) * | 2015-09-30 | 2021-06-18 | 中兴通讯股份有限公司 | 一种处理报文的方法、sdn控制器及网元 |
CN109995664B (zh) * | 2017-12-29 | 2022-04-05 | 华为技术有限公司 | 一种发送数据流的方法、设备和系统 |
CN111385223B (zh) * | 2018-12-28 | 2023-08-15 | 阿里巴巴集团控股有限公司 | 流控方法、设备、系统及存储介质 |
CN113098673B (zh) * | 2021-03-26 | 2023-03-31 | 中国航空无线电电子研究所 | 基于串行链路镜像缓存的全双工通讯装置 |
US11916802B2 (en) * | 2022-03-31 | 2024-02-27 | International Business Machines Corporation | Data transmission flow control regime |
CN117478441B (zh) * | 2023-12-28 | 2024-03-12 | 云南建投物流有限公司 | 基于用户行为智能分析的动态访问控制方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286942A (zh) * | 2007-01-10 | 2008-10-15 | 国际商业机器公司 | 管理无限带宽通信链路的发送机、接收机和方法 |
CN101828177A (zh) * | 2007-09-19 | 2010-09-08 | Ati技术无限责任公司 | 差分串行通信链路中的多优先级通信 |
CN102075436A (zh) * | 2011-02-10 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 以太网络及其数据传输方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9300590B2 (en) * | 2011-06-24 | 2016-03-29 | Dell Products, Lp | System and method for dynamic rate control in Ethernet fabrics |
US9729459B2 (en) * | 2012-11-19 | 2017-08-08 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for credit-based link level flow control |
US9025451B2 (en) * | 2013-01-22 | 2015-05-05 | Emulex Corporation | Positive feedback ethernet link flow control for promoting lossless ethernet |
-
2013
- 2013-04-09 US US13/859,655 patent/US9571410B2/en active Active
-
2014
- 2014-04-09 CN CN201410140260.9A patent/CN104104609B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286942A (zh) * | 2007-01-10 | 2008-10-15 | 国际商业机器公司 | 管理无限带宽通信链路的发送机、接收机和方法 |
CN101828177A (zh) * | 2007-09-19 | 2010-09-08 | Ati技术无限责任公司 | 差分串行通信链路中的多优先级通信 |
CN102075436A (zh) * | 2011-02-10 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 以太网络及其数据传输方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US9571410B2 (en) | 2017-02-14 |
US20140301187A1 (en) | 2014-10-09 |
CN104104609A (zh) | 2014-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104104609B (zh) | 用于提供网络中基于信用的流控制的方法和系统 | |
US10901470B2 (en) | Power distribution unit self-identification | |
CN103548376B (zh) | 通过openflow数据平面在云计算机中实现epc | |
EP2963874B1 (en) | Data scheduling and switching method, apparatus, and system | |
US20150222550A1 (en) | Method and system for supporting packet prioritization at a data network | |
US9762493B2 (en) | Link aggregation (LAG) information exchange protocol | |
US9160565B2 (en) | Fragmentation of link layer discovery protocol packets | |
CN105229976B (zh) | 数据中心使用的低延迟无损交换结构 | |
US9007909B2 (en) | Link layer reservation of switch queue capacity | |
US20120079143A1 (en) | Wireless host i/o using virtualized i/o controllers | |
Song et al. | A congestion avoidance algorithm in SDN environment | |
WO2013033457A1 (en) | Topology discovery in a hybrid network | |
CN104052684A (zh) | 动态适配计算机网络中的最大传输单元大小的方法和系统 | |
CN110166414B (zh) | 一种通信方法、装置及系统 | |
WO2018149338A1 (zh) | 基于sdn的远端流镜像控制方法、实现方法及相关设备 | |
CN108011797B (zh) | 一种基于1553b协议的以太网通信系统 | |
EP2991294A1 (en) | Data transmission method, apparatus, and computer storage medium | |
CN112600684B (zh) | 云业务的带宽管理及配置方法及相关装置 | |
WO2020093871A1 (zh) | 下行报文发送、转发方法和装置 | |
JP2009503997A5 (zh) | ||
WO2011143968A1 (zh) | 拥塞控制信息的通知方法和系统 | |
CN101808037A (zh) | 交换网中流量管理的方法和装置 | |
CN109428842A (zh) | 一种QoS信息传送方法和装置 | |
US9467419B2 (en) | System and method for N port ID virtualization (NPIV) login limit intimation to converged network adaptor (CNA) in NPIV proxy gateway (NPG) mode | |
WO2017008514A1 (zh) | Clos网络中负载均衡的方法及装置 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211210 Address after: USA New York Patentee after: Qindarui Co. Address before: USA New York Patentee before: International Business Machines Corp. |