专利名称:网络数据拥塞管理系统的制作方法
技术领域:
本发明涉及计算机系统领域,且更特定而言,涉及解决数据拥塞及其管理。
现有技术通常,对传统以太网结构(fabric)进行动态地路由。换言之,经由网络将包自一个交换节点逐个中继段地(hop by hop)引导至下一个交换节点。所使用的协议的示例包括聚合式增强型以太网(CEE)、聚合式增强型以太网上的光纤信道(FCoCEE)及数据中心桥接(DCB),以及专用路由方案。
发明内容
根据本发明的一个实施例,一种管理计算机网络中的数据拥塞的系统可包括在整 个网络内路由数据包的网络设备。该系统还可包括一源节点,该源节点将数据包发送至所述网络设备中的任何一个。该系统可进一步包括每一网络设备处的一路由表,该路由表由该源节点更新,且由任何网络设备发送数据包的路由基于每一相应路由表。所述网络设备可为至少一虚拟局域网的成员。该源节点可将一标头添加至数据包以便定义该虚拟局域网。该系统可另外包括在该源节点处使用一目的地地址,以便判定数据包所遵循的路由。该源节点可收集来自所述网络设备的拥塞通知消息且将所述收集的拥塞通知消息映射至一网络拓扑。该源节点可基于所述拥塞通知消息来更新所述路由表。该系统还可包括一过滤器,该过滤器控制由该源节点使用来自所述网络设备的所述拥塞通知消息的哪些部分。该源节点可路由绕过所述收集的拥塞通知消息揭示了拥塞历史的任何网络设备。该源节点可基于一链路成本指示器(link cost indicator)而路由至任何网络设备或路由绕过任何网络设备。该系统可进一步包括使用目的地地址来选择路由的顺序。本发明的另一方面为一种管理网络拥塞的方法。该方法可包括将数据包自一源节点发送至网络设备中的任何一个。该方法也可包括经由所述网络设备在整个网络内路由所述数据包。该方法可进一步包括由该源节点更新每一网络设备处的一路由表,且该路由表判定由任何网络设备发送数据包的路由。该方法还可包括由该源节点将一标头添加至数据包,且该标头定义一虚拟局域网。该方法可进一步包括提供一目的地节点地址,该目的地节点地址由该源节点用来判定数据包遵循的路由。该方法还可包括经由该源节点收集来自所述网络设备的拥塞通知消息以将所述收集的拥塞通知消息映射至一网络拓扑。该方法可进一步包括对该源节点所使用的所述拥塞通知消息进行过滤。该方法可另外包括路由绕过所述收集的拥塞通知消息揭示拥塞历史的任何网络设备。该方法还可包括基于一链路成本指示器而路由至任何网络设备或路由绕过任何网络设备。该方法可进一步包括经基于包的目的地节点地址来选择路由的顺序。本发明的另一方面为一种实施网络拥塞管理的耦合至有形介质的计算机可读程序代码。所述计算机可读程序代码可被配置为使该程序将数据包自一源节点发送至网络设备中的任何一个。所述计算机可读程序代码还可经由所述网络设备在整个网络内路由所述数据包。所述计算机可读程序代码可另外由该源节点更新每一网络设备处的一路由表,且该路由表判定由任何网络设备发送数据包的路由。
图I为根据本发明的解决网络数据拥塞管理的系统的示意方块图;图2为示出根据本发明的方法方面的流程图;图3为示出根据图2的方法的方法方面的流程图;
图4为示出根据图2的方法的方法方面的流程图;图5为示出根据图2的方法的方法方面的流程图;图6为示出根据图5的方法的方法方面的流程图;图7为示出根据图5的方法的方法方面的流程图;图8为示出根据图2的方法的方法方面的流程图;及图9为示出根据图2的方法的方法方面的流程图。
具体实施例方式下文中将参看随附图更全面地描述本发明,附图中示出了本发明的优选实施例。类似数字在全篇中指代类似组件,具有字母后缀的类似数字用于标识单个实施例中的类似部分,且小写字母后缀η为指示无限数目的类似组件的变量。现参看图1,最初描述了解决计算机网络12中的数据拥塞管理的系统10。如本领域技术人员将了解的,系统10为根据指令集来储存并操纵数据的可编程装置。在一个实施例中,系统10包括一通信网路12,该通信网路12使得信号(例如,数据包及/或其类似者)能够在系统10内或系统10外的任何地方传播。举例而言,通信网路12为有线及/或无线网络。举例而言,相对于系统10而言,通信网路12为本地及/或全局网络。在一个实施例中,系统10包括在整个网络12内路由数据包的网络设备14a_14n。网络设备14a-14n为诸如交换器、网桥(network bridge)、路由器及/或其类似者的计算机网络设备。如本领域技术人员将了解的,网络设备14a-14n可以在任何配置中连接在一起以形成通信网路12。在一个实施例中,系统10包括一源节点16,该源节点16将数据包发送至网络设备14a-14η中的任何一个。在系统10中可存在任何数目的源节点16。源节点16为能够将数据包发送至网络设备14a-14n的任何一件计算机设备。在一个实施例中,系统10进一步包括每一相应网络设备14a_14n处的一路由表18a-18n,该路由表18a_18n由源节点16更新。由任一网络设备14a_14n发送数据包的路由基于每一相应路由表18a-18n。在一个实施例中,网络设备14a_14n为至少一个虚拟局域网20的成员。如本领域技术人员将了解的,虚拟局域网20允许以与每一网络设备14a-14n的物理特性(例如,与通信网路12的拓扑有关的物理特性)较为无关的方式配置及/或重新配置网络设备14a-14n。在另一个实施例中,源节点16将一标头添加至数据包以便定义虚拟局域网20。系统10可另外包括使用一目的地节点地址来判定数据包穿过网络12的路由。该目的地节点地址与目的地节点22有关,且在系统10中可存在任何数目的目的地节点22。在一个实施例中,仅源节点16在选择路由时总是活动的,且目的地节点22仅可用作地址(不作为节点是活动的),即,目的地节点由源节点在选择路由时使用。在另一个实施例中,目的地节点22为与源节点16合作以选择路由的活动的节点。在一个实施例中,源节点16收集来自网络设备14a_14n的拥塞通知消息,且将收集的拥塞通知消息映射至网络拓扑。系统10可另外包括一过滤器24,该过滤器24控制由源节点16使用来自网络设备14a-14n的拥塞通知消息的哪些部分。另外,源节点16可路由数据包绕过收集的拥塞通知消息揭示了拥塞历史的任何网络设备14a-14n。在一个实施例中,源节点16基于一链路成本指示器26而路由至任何网络设备 14a-14n或路由绕过任何网络设备14a_14n。如以下进一步论述的,可将拥塞通知消息(CNM)用作链路成本指示器。在另一个实施例中,系统10进一步包括一目的地节点地址,该目的地节点地址由源节点16用来选择路由的顺序。本发明的另一方面为一种管理计算机网络12上的网络拥塞的方法,现参看图2的流程图30来描述该方法。该方法在块32处开始且可包括在块34处自源节点发送数据包至网络设备中的任何一个。该方法还可包括在块36处经由网络设备在整个网络内路由数据包。该方法可进一步包括在块38处由源节点更新每一网络设备处的路由表,且该路由表判定由任一网络设备发送数据包的路由。该方法在块40处结束。在现参看图3的流程图42所描述的另一方法实施例中,该方法在块44处开始。该方法可在块34、36、38处包括图2的步骤。该方法可另外包括在块46处由源节点将一标头添加至数据包,且该标头定义一虚拟局域网。该方法在块48处结束。在现参看图4的流程图50所描述的另一方法实施例中,该方法在块52处开始。该方法可在块34、36、38处包括图2的步骤。该方法可另外包括在块54处提供一目的地节点地址,该目的地节点地址由源节点16用来判定数据包所遵循的路由。该方法在块56处结束。在现参看图5的流程图58所描述的另一方法实施例中,该方法在块60处开始。该方法可在块34、36、38处包括图2的步骤。该方法可另外包括在块62处经由源节点收集来自网络设备的拥塞通知消息以将收集的拥塞通知消息映射至网络拓扑。该方法在块64处结束。在现参看图6的流程图66所描述的另一方法实施例中,该方法在块68处开始。该方法可在块34、36、38及62处包括图5的步骤。该方法可另外包括在块70处对由源节点使用的拥塞通知消息进行过滤。该方法在块72处结束。在现参看图7的流程图74所描述的另一方法实施例中,该方法在块76处开始。该方法可在块34、36、38及62处包括图5的步骤。该方法可另外包括在块78处路由绕过收集的拥塞通知消息揭示了拥塞历史的任何网络设备。该方法在块80处结束。在现参看图8的流程图82所描述的另一方法实施例中,该方法在块84处开始。该方法可在块34、36、38处包括图2的步骤。该方法可另外包括在步骤块86处基于一链路成本指示器而路由至任何网络设备或路由绕过任何网络设备。该方法在块88处结束。在现参看图9的流程图90所描述的另一方法实施例中,该方法在块92处开始。该方法可在块34、36、38处包括图2的步骤。该方法可另外包括在块94处经由(通过)目的地节点地址来选择路由的顺序。该方法在块96处结束。鉴于前述内容,系统10解决计算机网络12中的数据拥塞管理。举例而言,大型聚合式网络不定义控制网络拥塞的适当手段,从而导致通信流(traffic)延迟,数据帧被丢弃及性能不良。传统的逐中继段路由在解决网络拥塞方面并非有效的(尤其当存储与网络通 信流的组合被置于一共同网络上时),从而导致新的且特性不良的通信流统计。如果要实现聚合式网络连接的益处,则需要一种新的通信流路由方法。为了解决该问题,系统10使用基于源的、反应性(reactive)且适应性(adaptive)的路由方案。在一个实施例中,系统10在每一网络设备14a_14n(例如,交换器)中添加一虚拟LAN(VLAN) 20路由表18a_18n。VLAN 20由一附加至所有包的12位标头字段(因此,为上基于源的路由方案)加上一组路由表18a-18n条目(在所有交换器中)来定义,这些条目可对VLAN进行路由。12位VLAN 20ID被添加至通常包头字段,且其触发每一网络设备14a_14n中的新的VLAN 20路由方案。每一网络设备14a-14n针对每一活动的VLAN 20具有其自己的路由条目。在一个实施例中,源节点16 (其可能也使用目的地节点地址)使用全局选择函数来决定针对通信流的最佳端对端路径。接着将该最佳端对端路径被预加载至作为此VLAN20的成员的网络设备14a-14n(例如,交换器)中。在一个实施例中,VLAN 20表18a_18n为适应性的且将周期性地被更新。路由表18a-18n的刷新时间可变化,但对于相当大数目(大约4,000)的VLAN 20而言将很可能为至少几秒钟。有待于优化的数据通信流将使用由控制源/应用16所配置的VLAN 20。在一个实施例中,由通信流源16收集来自网络设备14a_14n (例如,结构交换器)的拥塞通知消息(CNM),从而基于端口 ID来标记交换器及端口位置。每一通信流源16建立其已接收的CNM的历史,该历史被映射至网络拓扑。基于源16的全局端对端路径的历史映射,该源将重新配置由VLAN 20表18a-18n定义的任何过载路径,以路由绕过最持久的拥塞点(由经启用的交换器用信号通知的)。在一个实施例中,CNM由QCN标准及/或其类似者产生,或自其他源产生。在另一个实施例中,源节点16基于由QCN拥塞点提供的返馈及对网络12中的替代路径的了解而适应性地改变路由表18a_18n0在一个实施例中,对于每一目的地而言,源16知晓包可采用的所有可能路径。于是源16可评估沿着这些路径中的每一个的拥塞程度,且选择具有最小成本的一个路径,且因此该方法为适应性的。在另一个实施例中,选择这些路径的顺序由目的地地址给出。在未接收到CNM的情形下,源16将默认为由传统及不经意(oblivious)方法所使用的相同路径。在一个实施例中,如果默认路径被拥塞,则接下来以循环式搜寻从默认路径开始来检查替代路径(通过比较其拥塞成本),直至找到不拥塞的路径为止。否则,选择具有最小拥塞成本的第一个路径。在另一个实施例中,将CNM用作链路成本指示器26。系统10定义了全局与局部成本加权方法,加上过滤方案以增强性能。以此方式,系统10可判定拥塞程度最高的链路位于网络中何处。对于每一目的地22而言,源16知晓一包可采用的所有可能路径。源16可接着评估沿着这些路径中的每一个的拥塞程度,且选择具有最小成本的一路径,且因此该方法适应性的。在一个实施例中,系统10使用计算路径成本的两种不同方法中的至少一个。第一种方法为全局代价,该全局代价为该路径的每一链路上的拥塞程度的(加权)总和。另一种方法为局部代价,该局部代价为路径的链路的最大(加权)拥塞程度。局部代价方法背后的直觉知识为,单一链路经历严重拥塞的路径比多条链路经历轻微拥塞的路径差。另一方面,具有两个严重拥塞链路的路径比具有单一严重拥塞链路的路径差。 使用全局代价方法背后的直觉知识为,自远程网络设备14a_14n(例如,交换器)接收的CNM比自靠近源16的交换器接收的CNM能提供更多信息。此情形的发生是因为拥塞出现于很有可能集中更多流(flow)的链路(即,更远离源的链路)上。在一个实施例中,为了避免可导致网络设备14a_14n(例如,交换器)更新过程的不稳定性的高频噪声,系统10将过滤器24应用于传入的CNM串流(stream)。举例而言,过滤器24为低通过滤器。过滤器24将具有一平均化且平滑化CNM串流的运行时间窗口。在一个实施例中,源16将周期性地刷新,且必要时更新受影响的网络设备14a-14n中的VLAN 20路径信息。在另一个实施例中,最佳路径路由由源16计算且周期性地在整个交换器结构内被刷新。系统10可以硬件、软件及/或固件来实施。本发明的另一方面为一种实施网络拥塞管理的耦合至有形介质的计算机可读程序代码。该计算机可读程序代码可被配置为使该程序将数据包自源节点16发送至网络设备14a-14n中的任何一个。该计算机可读程序代码也可经由网络设备14a_14n在整个网络12内路由数据包。该计算机可读程序代码可另外通过源节点16更新每一网络设备14a-14n处的路由表18a-18n,且路由表判定由任一网络设备发送数据包的路由。所属技术领域的技术人员知道,本发明的方面可以实现为系统、方法或计算机程序产品。因此,本发明的方面可以具体实现为以下形式,即可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、电线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言一诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部 分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。以上参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本文中所使用的术语仅为达成描述特定实施例的目的且并不旨在限制本发明。如在本文中所使用,除非上下文另外清楚地指示,否则单数形式“一”、“一个”及“该”旨在也包括复数形式。应进一步理解,术语“包含”、“包括”在用于本说明书中时指定所陈述的特征、整数、步骤、操作、元件及/或组件的存在,但不排除一或多个其他特征、整数、步骤、操作、元件、组件及/或以上各者的组的存在或添加。虽然已描述了本发明的优选实施例,但应了解,在现在及将来,本领域技术人员可 进行在以下权利要求的范围内的各种改进及增强。应将这些权利要求理解为维持对最初所描述的本发明的适当保护。
权利要求
1.ー种方法,包括 将数据包自源节点发送至网络设备中的任何ー个; 通过所述网络设备在整个网络内路由数据包; 由该源节点更新每ー网络设备处的路由表,其中该路由表判定由任何网络设备发送的数据包的路由,其中由该源节点收集来自每ー个网络设备的拥塞通知消息以将所述收集的拥塞通知消息映射至网络拓扑,且其中基于所述拥塞通知消息更新所述路由表。
2.如权利要求I的方法,还包括由该源节点将ー标头添加至所述数据包,该标头定义一虚拟局域网。
3.如权利要求I的方法,还包括提供一目的地地址,该目的地地址由该源节点用来判定所述数据包遵循的路由。
4.如权利要求I的方法,还包括过滤由该源节点使用的拥塞通知消息。
5.如权利要求I的方法,还包括路由绕过所述收集的拥塞通知消息掲示了拥塞历史的任何网络设备。
6.如权利要求I的方法,还包括基于ー链路成本指示器而路由至任何网络设备或路由绕过任何网络设备。
7.如权利要求I的方法,还包括经由目的地地址来选择路由的顺序。
8.一种系统,包括适于执行根据任何上述方法权利要求的所有步骤的装置。
9.一种计算机程序,包括当所述计算机程序在计算机系统上执行时用于执行根据任何上述方法权利要求的所有步骤的指令。
全文摘要
一种管理计算机网络中的数据拥塞的系统可包括用于在整个该网络内路由数据包的网络设备。该系统还可包括一源节点,该源节点将数据包发送至所述网络设备中的任何一个(34)。该系统可进一步包括每一网络设备处的一路由表,该路由表系由该源节点更新(38),且由任何网络设备发送数据包的路由基于每一相应路由表(36)。
文档编号H04L12/24GK102835080SQ201180018541
公开日2012年12月19日 申请日期2011年4月20日 优先权日2010年4月22日
发明者C·德库赛提斯, M·古赛特, D·克里斯安, C·J·民肯伯格 申请人:国际商业机器公司