防止链路拥塞的方法和设备的制作方法
【专利摘要】本申请提供了防止链路拥塞的方法和设备。在本申请中,通过环形链路中各叶子节点设备和根桥设备协商一个临时在环形网络中通行的临时通道,以便在环形网络中的链路带宽紧张时,启用临时通道帮助带宽紧张的链路分担流量,这能够解决因为链路带宽紧张而可能出现的暂时性链路拥塞。
【专利说明】防止链路拥塞的方法和设备
【技术领域】
[0001]本申请涉及网络通信技术,特别涉及防止链路拥塞的方法和设备。
【背景技术】
[0002]生成树协议(STP:Spanning Tree Protocol),是一种二层管理协议,它通过选择性地阻塞网络中的冗余链路来消除二层环路,同时还具备链路备份的功能。STP由IEEE802.1D标准定义,用于在局域网中消除数据链路层物理环路的协议。运行该协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某些端口进行阻塞,最终将环路网络结构修剪成无环路的树型网络结构,从而防止报文在环路网络中不断增生和无限循环,避免设备由于重复接收相同的报文造成的报文处理能力下降的问题发生。
[0003]快速生成树协议(RSTP:Rapid Spanning Tree Protocol),由 IEEE 802.1w 标准定义,它在STP基础上进行了改进,实现了网络拓扑的快速收敛。其“快速”体现在,当一个端口被选为根端口和指定端口后,其进入转发状态的延时将大大缩短,从而缩短了网络最终达到拓扑稳定所需要的时间。
[0004]不管是STP还是RSTP,其都不能发现并解决网络中链路出现的临时性拥塞。如图1所不,Ξ=|网络拓扑状态稳定后,如果Device A作为根桥连接上彳丁设备接入互联网,DeviceB下连用户PC主机,Device C阻塞其连接Device B的端口 Port C2,PC通过Device B至Device A的链路访问互联网络,但是当该Device B至Device A的链路因为数据流量过大而出现拥塞时,STP或者RSTP都是没有办法来避免拥塞。
【发明内容】
[0005]本申请提供了防止链路拥塞的方法和设备,以避免因为链路带宽紧张而可能出现的链路拥塞。
[0006]本申请提供的技术方案包括:
[0007]—种防止链路拥塞的方法,该方法应用于环形网络中的网络设备,所述网络设备为叶子节点设备或者为根桥设备,该方法包括:
[0008]当所述网络设备为叶子节点设备时,
[0009]如果本设备上存在阻塞端口,则在所述环形网络中发起协商临时通道的通告,接收所述环形网络中根桥设备以及其他叶子节点设备发送的允许建立临时通道的通知时,将本设备上存在的所述阻塞端口加入至所述临时通道,所述阻塞端口在临时通道中被允许转发数据报文;如果本设备上不存在阻塞端口,则接收所述通告,并判断本设备是否允许建立临时通道,如果是,将本设备上的根端口和指定端口一起加入至临时通道,并将允许建立临时通道的通知给发起所述通告的叶子节点设备;
[0010]在完成临时通道协商后,对本设备上的根端口进行报文流量监控,在监控到根端口满足端口拥塞条件时,启用临时通道和根端口一起分担原本经由该根端口转发的报文,以避免根端口出现拥塞;
[0011]当所述网络设备为根桥设备时,
[0012]接收所述环形网络中存在阻塞端口的叶子节点设备发起的协商临时通道的通告,判断本设备是否允许建立临时通道,如果是,将本设备上的所有指定端口加入至临时通道,并将允许建立临时通道通知给发起所述通告的叶子节点设备;
[0013]当完成临时通道协商后,对本设备上每一指定端口进行报文流量监控;在监控到指定端口满足端口拥塞条件时,启用临时通道和该指定端口一起分担原本经由该指定端口转发的报文,以避免该指定端口出现拥塞。
[0014]一种防止链路拥塞的设备,该设备应用于环形网络中的网络设备,当所述网络设备为叶子节点设备时,包括:第一协商单元、第一监控单元、第一分担处理单元;
[0015]第一协商单元,用于在本设备上存在阻塞端口时,在所述环形网络中发起协商临时通道的通告,接收所述环形网络中根桥设备以及其他叶子节点设备发送的允许建立临时通道的通知时,将本设备上存在的所述阻塞端口加入至所述临时通道,所述阻塞端口在临时通道中被允许转发数据报文;以及
[0016]用于在本设备上不存在阻塞端口时,接收所述通告,并判断本设备是否允许建立临时通道,如果是,将本设备上的根端口和指定端口一起加入至临时通道,并将允许建立临时通道的通知给发起所述通告的叶子节点设备;
[0017]第一监控单元,用于在完成临时通道协商后,对本设备上的根端口进行报文流量监控;
[0018]第一分担处理单元,用于在所述第一监控单元监控到根端口满足端口拥塞条件时,启用临时通道和根端口一起分担原本经由该根端口转发的报文,以避免根端口出现拥塞;
[0019]当所述网络设备为根桥设备时,包括:第二协商单元、第二监控单元、第二分担处理单元;
[0020]第二协商单元,用于接收所述环形网络中存在阻塞端口的叶子节点设备发起的协商临时通道的通告,判断本设备是否允许建立临时通道,如果是,将本设备上的所有指定端口加入至临时通道,并将允许建立临时通道通知给发起所述通告的叶子节点设备;
[0021]第二监控单元,用于当完成临时通道协商后,对本设备上每一指定端口进行报文流量监控;
[0022]第二分担处理单元,用于在所述第二监控单元监控到指定端口满足端口拥塞条件时,启用临时通道和该指定端口一起分担原本经由该指定端口转发的报文,以避免该指定端口出现拥塞。
[0023]由以上技术方案可以看出,本发明中,通过环形链路中各叶子节点设备和根桥设备协商一个临时在环形网络中通行的临时通道,以便在环形网络中的链路带宽紧张时,启用临时通道帮助带宽紧张的链路分担流量,这能够解决因为链路带宽紧张而可能出现的暂时性链路拥塞。
【专利附图】
【附图说明】
[0024]图1为现有网络组网示意图;
[0025]图2为本发明实施例提供的组网示意图;
[0026]图3为本发明提供的方法流程图;
[0027]图4为本发明提供的另一方法流程图;
[0028]图5为本发明实施例提供的哈希运算示意图;
[0029]图6为本发明实施例提供的实例组网示意图;
[0030]图7为本发明提供的设备结构图;
[0031]图8为本发明提供的另一设备结构图。
【具体实施方式】
[0032]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0033]为使本申请容易理解,下面先对本申请涉及的技术术语进行描述:
[0034]根桥设备:树形的网络结构必须有树根,于是引入了根桥设备(Root Bridge)的概念。根桥设备在全网中有且只有一个,其它设备则称为叶子节点。根桥会根据网络拓扑的变化而改变,因此根桥并不是固定的。
[0035]根端口:叶子节点设备上离根桥设备最近的端口。叶子节点设备上的根端口负责与根桥设备进行通信。根端口负责与根桥设备通信,一个叶子节点设备上有且只有一个根端口,根桥设备上没有根端口,其连接环形网络的端口均被定为指定端口。
[0036]指定端口、阻塞端口:对于叶子节点设备,其在确定连接环形网络的一个端口为根端口后,会经过一些计算确定连接环形网络的另一个端口为指定端口还是阻塞端口,下文描述了如何确定其连接环形网络的另一个端口为指定端口还是阻塞端口,这里暂不赘述。
[0037]以上对本申请涉及的技术术语进行了描述。
[0038]本发明应用于拓扑状态收敛(也称稳定)的环形网络。下面仅以STP为例描述基于STP的环形网络的拓扑状态收敛过程,RSTP原理类似。
[0039]初始状态:
[0040]各网络设备上连接环形网络的端口在初始时会生成并发送以本设备为根桥设备的桥协议数据单元(BF1Dl^Bridge Protocol Data Unit),该BPDU中根桥ID为自身的设备ID,根路径开销为O,指定桥ID为自身的设备ID,指定端口为本端口。
[0041]选择根桥:
[0042]网络初始时,各网络设备都认为自己是“根桥”设备,之后通过和其他网络设备交换BPDU选择出根桥ID最小的设备为根桥设备。
[0043]选择根端口:
[0044]叶子节点设备选择离根桥设备最近的端口为根端口。
[0045]选择指定端口和阻塞端口:
[0046]叶子节点设备通过以下替换方式处理本设备上除根端口之外连接环形网络的端口(称为角色待定端口)生成的Brou,将处理后的BPDU定为指定端口 BPDU:
[0047]根桥ID替换为根端口的BPDU的根桥ID ;
[0048]根路径开销替换为根端口 BPDU内的根路径开销加上根端口对应的路径开销;
[0049]指定桥ID替换为自身设备的ID ;
[0050]指定端口 ID替换为自身端口 ID。
[0051]叶子节点设备将本设备计算出的指定端口 BPDU与角色待定端口自己生成的BPDU进行如下比较:如果计算出的BPDU更优,则该端口被确定为指定端口,其BPDU也被计算出的BPDU替换,并周期性地向外发送;如果该端口自己的BPDU更优,则不更新该端口的BPDU并将该端口的状态设置为阻塞(Discarding),该状态设置为阻塞的端口称为阻塞端口,将不再转发数据,且只接收不发送BPDU。
[0052]在经过上述各个过程后,整个基于STP的环形网络的拓扑状态也就稳定下来。图2示出了根桥设备、以及各个叶子节点设备上连接环形网络的端口的状态。
[0053]通过设置一个叶子节点设备上连接环形网络的端口为阻塞端口,能够解决环形网络中常出现的环路问题,但是,这不能发现并解决环形网络中链路拥塞。
[0054]在网络应用中,链路拥塞只是暂时的,基于此,本发明在有链路带宽紧张时,临时拓展带宽,以解决因为链路带宽紧张而可能出现的暂时性链路拥塞。本发明并不需要额外增加硬件或者设备,也不需要对现有以太网设备的软件形态和生成树协议本身进行重大改变,所以不会增加网络解决方案实施成本。
[0055]下面对本发明提供的方法进行描述:
[0056]参见图3,图3为本发明实施例提供的方法流程图。该方法应用于如上所述的环形网络比如基于STP或RSTP的环形网络。当环形网络的拓扑状态稳定比如基于STP或者RSTP的环形网络的拓扑状态稳定(实质也是指生成树状态稳定),则执行如图3所示的流程。
[0057]如图3所示,该流程可包括以下步骤:
[0058]步骤301,存在阻塞端口的叶子节点设备在环形网络中发起协商临时通道的通告。
[0059]步骤302,不存在阻塞端口的叶子节点设备接收所述通告,并判断本设备是否允许建立临时通道,如果是,将本设备上的根端口和指定端口一起加入至临时通道,并将允许建立临时通道的通知给发起所述通告的叶子节点设备;根桥设备接收所述通告,并判断本设备是否允许建立临时通道,如果是,将本设备上的所有指定端口一起加入至临时通道,并将允许建立临时通道的通知给发起所述通告的叶子节点设备。
[0060]本发明中,叶子节点设备将本设备上的根端口和指定端口加入临时通道,其只是意味着在采用临时通道时,该根端口和指定端口具备转发报文的功能,但并不影响该根端口和指定端口原有的功能比如在环形网络中原有的报文转发。同样,根桥设备将本设备上的所有指定端口加入至临时通道的原理类似。
[0061]步骤303,存在阻塞端口的叶子节点设备接收所述环形网络中根桥设备以及其他叶子节点设备发送的允许建立临时通道的通知时,将本设备上存在的所述阻塞端口加入至所述临时通道。
[0062]至此,就完成临时通道的协商。这里,协商的临时通道是在环形网络中的链路即将出现拥塞时,帮助该即将出现拥塞的链路分担流量,以避免该链路拥塞,具体见步骤304所述。
[0063]步骤304,叶子节点设备在完成临时通道协商后,对本设备上的根端口进行报文流量监控,在监控到根端口满足端口拥塞条件时,启用临时通道和根端口一起分担原本经由该根端口转发的报文,以避免根端口出现拥塞;根桥设备在完成临时通道协商后,对本设备上每一指定端口进行报文流量监控;在监控到指定端口满足端口拥塞条件时,启用临时通道和该指定端口一起分担原本经由该指定端口转发的报文,以避免该指定端口出现拥塞。
[0064]本步骤304具体实现可参见图4所示流程中的406至步骤415。这里暂不赘述。
[0065]至此,完成图3所示流程。
[0066]从图3所示流程可以看出,本发明通过环形链路中各网络设备协商一个临时在环形网络中通行的临时通道,以便在环形网络中的链路带宽紧张时,启用临时通道帮助带宽紧张的链路分担流量,这能够解决因为链路带宽紧张而可能出现的暂时性链路拥塞。
[0067]下面通过图4对上述图3所示流程进行详细描述。
[0068]参见图4,图4为本发明实施例提供的实施例流程图。如图4所示,该流程可包括以下步骤:
[0069]步骤401,环形网络中存在阻塞端口的叶子节点设备在环形网络中率先发起协商临时通道的通告。
[0070]如图2所示,叶子节点设备Device C,其端口 Port C2的端口状态设置为阻塞,即Port C2为阻塞端口,也即,叶子节点设备Device C为存在阻塞端口的叶子节点设备,如此,基于步骤401,Device C会在图2所示的整个环形网络中发起协商临时通道的通告。这里,Device C可通过广播或者组播方式在图2所示的整个环形网络中发起协商临时通道的通生口 ο
[0071]本发明中,叶子节点设备比如图2中的Device C发送的通告中携带了本设备为临时通道生成的虚拟局域网(VLAN)标识(ID)。优选地,叶子节点设备比如图2中的DeviceC可通过以下方式为临时通道生成VLAN ID:
[0072]叶子节点设备比如图2中的Device C通过伪随机算法计算得到一个介于2至4094之间的随机数,将该得到的随机数作为VLAN ID。
[0073]需要说明的是,上述生成VLAN ID的方式只是举例,并非限定本发明。
[0074]进一步地,为便于环形网络中了解该阻塞端口,所述通告中还进一步携带了阻塞端口的信息,比如阻塞端口的标识等配置信息。
[0075]步骤402,环形网络中接收到所述通告的叶子节点设备判断本设备是否允许建立临时通道,并在判断出本设备允许建立临时通道时,将本设备上的根端口和指定端口一起加入至临时通道,并将允许建立临时通道通知给发起所述通告的叶子节点设备。
[0076]仍以图2为例,图2中的Device C发起协商临时通道的通告,当图2中的叶子节点设备Device B收到该通告后,判断本设备是否允许建立临时通道,这里,判断本设备是否允许建立临时通道的操作在步骤403进行了具体描述,本步骤402暂不描述。
[0077]当Device B判断出本设备允许建立临时通道时,将本设备上的根端口即Port BI和指定端口即Port B2—起加入至临时通道。也即,此时临时通道就包含了 Device B的根端口 Port BI和指定端口 Port B2。这里,临时通道包含了 Device B的根端口 Port BI和指定端口 Port B2,意味着在采用临时通道时,根端口 Port BI和指定端口 Port B2可以进行报文转发,但这并不影响根端口 Port BI和指定端口 Port B2原有在环形网络中的报文转发。之后,Device B将允许建立临时通道通知给发起所述通告的叶子节点设备即DeviceC0
[0078]本步骤402中,当Device B判断出本设备不允许建立临时通道时,则将不允许建立临时通道通知给发起所述通告的叶子节点设备即Device C。
[0079]步骤403,环形网络中接收到所述通告的根桥设备判断本设备是否允许建立临时通道,并在判断出本设备允许建立临时通道时,将本设备上的所有指定端口一起加入至临时通道,并将允许建立临时通道通知给发起所述通告的叶子节点设备。
[0080]仍以图2为例,图2中的Device C发起协商临时通道的通告,当图2中的根桥设备Device A收到该通告后,判断本设备是否允许建立临时通道,当Device A判断出本设备允许建立临时通道时,将本设备上的所有指定端口即Port Al和Port A2 一起加入至临时通道。也即,此时临时通道也包含了 Device A的指定端口 Port Al和Port A2。这里,临时通道包含了 Device A的指定端口 Port Al和Port A2,意味着在米用临时通道时,指定端口 Port Al和Port A2可以进行报文转发,但这并不影响指定端口 Port Al和Port A2原有在环形网络中的报文转发。之后,Device A将允许建立临时通道通知给发起所述通告的叶子节点设备即Device C。
[0081]本步骤403中,当Device A判断出本设备不允许建立临时通道时,则将不允许建立临时通道通知给发起所述通告的叶子节点设备即Device C。
[0082]需要说明的是,上述步骤402和步骤403并无固定的时间先后顺序,本申请只是为便于描述,对其标注的编号,并非限定其执行的顺序。
[0083]在上述步骤402、步骤403中,可通过以下步骤判断是否允许建立临时通道:
[0084]判断接收的通告携带的VLAN标识是否与本设备已存在的VLAN标识冲突,如果是,则判断出本设备不允许建立临时通道,如果否,则判断出本设备允许建立临时通道。
[0085]步骤404,存在阻塞端口的叶子节点设备在接收到所述环形网络中其他叶子节点设备和根桥设备发送的允许建立临时通道的通知时,将本设备上存在的阻塞端口加入至所述临时通道。
[0086]也即,执行到本步骤404时,临时通道也包含了阻塞端口,当阻塞端口加入至所述临时通道,意味着阻塞端口在临时通道中具备数据报文转发功能,其可允许转发数据报文,但是,对于不经过临时通道转发的数据报文,该阻塞端口仍然阻塞该不经过临时通道转发的数据报文,否则会导致STP状态反复切换,协议震荡。
[0087]需要说明的是,基于步骤402、步骤403的描述,本发明中,存在阻塞端口的叶子节点设备如果接收到环形网络中根桥设备和/或至少一个叶子节点设备发送的不允许建立临时通道的通知,则进一步执行以下步骤:
[0088]重新在所述环形网络中发起协商临时通道的通告,该重新发起的通告携带了为所述临时通道重新生成的VLAN标识。之后,返回步骤402至步骤404。
[0089]当存在阻塞端口的叶子节点设备将阻塞端口加入至临时通道,存在阻塞端口的叶子节点设备就会判定临时通道的协商已完成。之后,其会定时发出心跳报文(HeartMessage),以维护所述临时通道,这里,心跳报文可通过广播或者组播方式发送。仍以图2为例,则Device C作为存在阻塞端口的叶子节点设备在完成临时通道协商后,定时通过广播或者组播方式在所述环形网络中发出心跳报文。
[0090]而环形网络中不存在阻塞端口的叶子节点设备首次收到心跳报文时,其认为临时通道的协商已完成。之后,会每隔设定时间比如30秒检测是否接收到存在阻塞端口的叶子节点设备发出的心跳报文,如果否,则将本设备上已加入至临时通道的根端口和指定端口从临时通道退出。仍以图2为例,Device C作为存在阻塞端口的叶子节点设备,Device B作为不存在阻塞端口的叶子节点设备,则Device B在首次收到心跳报文后,会每隔设定时间比如30秒检测是否接收到Device C发出的心跳报文,如果接收到,则返回每隔设定时间比如30秒检测是否接收到Device C发出的心跳报文的操作,反之,如果没有接收到,则将本设备上的根端口 Port BI和指定端口 Port B2从临时通道退出,此时,临时通道不再包含Port BI和Port B2,即Port BI和Port B2不再转发经由临时通道的报文,但这并不影响Port BI和Port B2原有在环形网络中的报文转发。
[0091]同样,环形网络中的根桥设备首次收到心跳报文时,也会认为临时通道的协商已完成。之后,会每隔设定时间比如30秒检测是否接收到存在阻塞端口的叶子节点设备发出的心跳报文,如果否,则将本设备上已加入至临时通道的两个指定端口从临时通道退出。仍以图2为例,Device C作为存在阻塞端口的叶子节点设备,Device A作为根桥设备,则,Device A在首次收到心跳报文后,会每隔设定时间比如30秒检测是否接收到Device C发出的心跳报文,如果接收到,则忽略该心跳报文,反之,如果没有接收到,则将本设备上的指定端口 Port Al和Port A2从临时通道退出,此时,临时通道不再包含Port Al和Port A2,即Port Al和Port A2不再转发经由临时通道的报文,但这并不影响Port Al和Port A2原有在环形网络中的报文转发。
[0092]可以看出,通过上述步骤401至步骤404即可完成临时通道的协商。以图2为例,则通过上述步骤401至步骤404最后协商出的临时通道就由Device A的Port Al、PortA2> Device B 的 Port B1、Port B2> Device C 的 Port Cl、Port C2 组成。
[0093]步骤405,在完成临时通道协商后,叶子节点设备执行下述步骤406至步骤410,根桥设备执行下述步骤411至步骤415。
[0094]这里的叶子节点设备可为存在阻塞端口的叶子节点设备,也可为不存在阻塞端口的叶子节点设备。
[0095]需要说明的是,本发明中,步骤406至步骤410,以及步骤411至步骤415并非是固定的时间先后顺序,其是为便于描述所标注的编号,并非限定本发明。
[0096]步骤406,每隔单位时间对经由本设备上根端口转发的报文流量进行记录。
[0097]这里,单位时间可为I秒,或者为其它值,本发明并不具体限定。
[0098]步骤407,利用当前单位时间T2记录的报文流量C2和上一个单位时间Tl记录的报文流量Cl计算当前单位时间下所述根端口的速率。
[0099]优选地,本步骤407可通过以下公式计算根端口的速率:
[0100](C2-C1)/(T2_T1)。
[0101]需要说明的是,该计算速率的方式只是一种举例,并非限定本发明。
[0102]步骤408,判断所述速率是否大于第一设定阈值,如果是,则将本设备上根端口对应的计数器加1,如果否,在所述速率小于第二设定阈值时,将本设备上根端口对应的计数器减I。
[0103]这里,所述第一设定阈值大于或等于第二设定阈值。
[0104]步骤409,监控根端口当前对应的计数器,如果该计数器取值大于第一设定值,则确认根端口满足端口拥塞条件,启用临时通道和根端口一起分担原本经由该根端口转发的报文。
[0105]本发明中,第一设定阈值、第二设定阈值可根据实际网络情况设定。事实上,本发明中,当根端口的速率大于第一设定阈值,就意味着根端口带宽紧张,即将出现流量拥塞,就需要启用临时通道和根端口一起分担原本经由该根端口转发的报文,以避免根端口出现拥塞,而本发明之所以没有在根端口的速率大于第一设定阈值时,启用临时通道和根端口一起分担原本经由该根端口转发的报文,而是对计数器进行处理,原因是:实际网络应用中,网络突发流量比较多,速率变化频繁,为避免频繁启用临时通道,就增加了计数器,该计数器的取值范围可预先根据网络情况设定,比如取值范围为[-5,5],只有在计数器的取值达到第一设定值时,才会启用临时通道和根端口一起分担原本经由该根端口转发的报文,这能够避免临时通道频繁被启用。
[0106]优选地,本步骤409中,可按照以下原则启用临时通道和根端口一起分担原本经由该根端口转发的报文:
[0107]1,广播报文、组播报文和未知单播报文不允许进入临时通道,防止报文出现回环;
[0108]2,对其他类型的报文,执行以下处理:
[0109]对报文携带的报文特征参数进行哈希运算,得到哈希结果,这里,所述报文特征参数可为报文携带的源MAC地址、目的MAC地址、源IP地址、目的IP地址、传输层协议号、端口号等中的至少一个;
[0110]如果依据哈希结果确定出是通过临时通道转发,则在该报文上携带本设备的设备标识以及临时通道的VLAN标识,并通过临时通道转发,如果依据哈希结果确定出是通过根端口转发,则通过该根端口转发该报文。
[0111]这里,依据哈希结果确定出是通过临时通道还是通过根端口转发具体可通过以下方式I或方式2实现:
[0112]方式1:
[0113]预先指定通过临时通道转发的标识为奇数或者偶数,这里以偶数为例,则通过根端口转发的标识就相应为奇数;
[0114]基于此,如果计算出的哈希结果为偶数,则就表示是通过临时通道转发,而如果计算出的哈希结果为奇数,则就表示是通过根端口转发。
[0115]以哈希结果为报文摘要为例,比如,假设报文特征参数为报文携带的源MAC地址,则对于源MAC地址为2C41-38A1-4D5F的报文,叶子节点设备根据HASH算法对源MAC地址2C41-38A1-4D5F进行如图5所示的多次异或计算后,得到哈希结果(这里哈希结果为报文摘要)8,哈希结果8为偶数,则源MAC地址为2C41-38A1-4D5F的报文最终应通过临时通道转发。
[0116]方式2:
[0117]设置M个哈希桶,用于存放哈希结果,并预先指定根端口和临时通道的报文分摊比例。因为根端口在之前的STP协议收敛过程中具有更小的COST值,所以在报文未拥塞的前提下,报文从根端口转发,优于从临时通道转发,进而报文从根端口转发的分摊比例应大于从临时通道转发。
[0118]比如,预先设置10个哈希桶,这10个哈希桶存放的哈希结果依次为O、1、2、3、4、5、6、7、8、9 ;指定根端口和临时通道的报文分担比例为8:2,即前8个哈希桶(第I至第8个哈希桶)用于根端口转发,后两个哈希桶(第9至第10个哈希桶)用于临时通道转发;则假设报文特征参数为报文携带的源MAC地址,对于源MAC地址为2C41-38A1-4D5F的报文,叶子节点设备根据HASH算法对源MAC地址2C41-38A1-4D5F进行如图5所示的多次异或计算后,得到哈希结果(这里哈希结果为报文摘要)8,哈希结果8正好存放在第9个哈希桶中,而第9个哈希桶正好被指定用于临时通道转发,则源MAC地址为2C41-38A1-4D5F的报文最终应通过临时通道转发。
[0119]需要说明的是,上述方式1、方式2只是依据哈希结果确定出是通过临时通道还是通过根端口转发的实施例,并非限定本发明。
[0120]还有,本发明中,当启用临时通道和根端口一起分担原本经由该根端口转发的报文后,后续该根端口也可能出现带宽富裕的情况,这里,本发明将根端口的速率小于第二设定阈值的情况定为根端口带宽富裕的情况。在根端口带宽富裕时,如果当前还启用了临时通道帮助根端口转发流量,则会导致带宽浪费,基于此,本发明在根端口带宽富裕时,如果当前还启用了临时通道帮助根端口转发流量,则收回临时通道,将经由临时通道转发的报文切换至该根端口转发。正如上文所述,网络突发流量比较多,速率变化频繁,为避免频繁启用、收回临时通道,本发明也不是一监控到根端口带宽富裕就收回临时通道,而是监控根端口当前对应的计数器,如果该计数器取值小于第二设定值,则确认根端口满足端口空闲条件;所述第一设定值大于第二设定值,比如第一设定值为3,第二设定值为-3。当根端口满足端口空闲条件时,若当前已启用临时通道与该根端口一起分担原本经由该根端口转发的报文,则将经由临时通道转发的报文切换至该根端口转发。
[0121]步骤410,接收到携带设备标识和临时通道标识报文时,如果该报文携带的设备标识为本设备自身的设备标识,则丢弃该接收到的报文,如果该报文携带的设备标识不为本设备自身的设备标识,则判断本设备学习到该报文目的MAC地址的端口是否为除以下端口之外的其他端口:本设备上根端口和指定端口,或者本设备上根端口和阻塞端口,如果是,则剥去报文携带的设备标识和临时通道标识,通过学习到该报文目的MAC地址的端口转发该报文,如果否,在本设备通过根端口收到该报文时,通过本设备上的指定端口转发该报文,在本设备通过指定端口收到该报文时,通过本设备上的根端口转发该报文。
[0122]本步骤410中,叶子节点设备在收到的报文携带的设备标识为本设备自身的设备标识时丢弃该收到的报文,以及在判断本设备学习到该收到的报文的目的MAC地址的端口为除本设备上根端口和指定端口之外的端口时,剥去报文携带的设备标识和临时通道标识,通过学习到该报文目的MAC地址的端口转发该报文,能够防止报文转发出现回环。
[0123]步骤411,根桥设备每隔单位时间对经由本设备上每一指定端口转发的报文流量进行记录。
[0124]步骤412,根桥设备针对每一指定端口,利用当前单位时间记录的报文流量和上一个单位时间记录的报文流量计算当前单位时间下该指定端口的速率。
[0125]本步骤412与上述步骤407类似,只不过步骤407是对根端口,本步骤411是针对指定端口而已。
[0126]步骤413,根桥设备判断所述速率是否大于第三设定阈值,如果是,则将该指定端口对应的计数器加1,如果否,在所述速率小于第四设定阈值时,将该指定端口对应的计数器减I。
[0127]这里,所述第三设定阈值大于或等于第四设定阈值。
[0128]本步骤413中,第三设定阈值与上述步骤408中的第一设定阈值无关。同样,第四设定阈值与上述步骤408中的第二设定阈值也无关。另外,本步骤413设置第三设定阈值、第四设定阈值的目的与上述步骤409中描述的设置第一设定阈值、第二设定阈值的目的类似,这里不再赘述。
[0129]步骤414,根桥设备监控指定端口当前对应的计数器,如果该计数器取值大于第三设定值,确认指定端口满足端口拥塞条件,启用临时通道和该指定端口一起分担原本经由该指定端口转发的报文。
[0130]本步骤414中,第三设定值与上述步骤409中的第一设定值、第二设定值无关。
[0131]本步骤414中启用临时通道和该指定端口一起分担原本经由该指定端口转发的报文与上述步骤409中启用临时通道和根端口一起分担原本经由该根端口转发的报文的方式类似,只不过是将步骤409中的根端口替换为本步骤414中的指定端口而已,这里不再赘述。
[0132]还有,本发明中,当启用临时通道和指定端口一起分担原本经由该指定端口转发的报文后,后续该指定端口也可能出现带宽富裕的情况,这里,本发明将指定端口的速率小于第四设定阈值的情况定为指定端口带宽富裕的情况。在指定端口带宽富裕时,如果当前还启用了临时通道帮助该指定端口转发流量,则会导致带宽浪费,基于此,本发明在指定端口带宽富裕时,如果当前还启用了临时通道帮助该指定端口转发流量,则收回临时通道,将经由临时通道转发的报文切换至该指定端口转发。正如上文所述,网络突发流量比较多,速率变化频繁,为避免频繁启用、收回临时通道,本发明也不是一监控到指定端口带宽富裕就收回临时通道,而是监控指定端口当前对应的计数器,如果该计数器取值小于第四设定值,则确认指定端口满足端口空闲条件;所述第四设定值与上述的第一设定值、第二设定值无关,但小于上述的第三设定值,比如第三设定值为3,第四设定值为-3。当指定端口满足端口空闲条件时,若当前已启用临时通道与该指定端口一起分担原本经由该指定端口转发的报文,则将经由临时通道转发的报文切换至该指定端口转发。
[0133]步骤415,根桥设备通过一个指定端口接收到携带设备标识和临时通道标识的报文时,如果该报文携带的设备标识为本设备自身的设备标识,则丢弃该接收到的报文,如果该报文携带的设备标识不为本设备自身的设备标识,则判断本设备学习到该报文目的MAC地址的端口是否为除本设备上指定端口之外的端口,如果是,则剥去报文携带的设备标识和临时通道标识,通过学习到该报文目的MAC地址的端口转发该报文,如果否,通过本设备上其他指定端口转发该报文。
[0134]本步骤415中,根桥设备在收到的报文携带的设备标识为本设备自身的设备标识时丢弃该收到的报文,以及在判断本设备学习到该收到的报文的目的MAC地址的端口为除本设备上两个指定端口之外的端口时,剥去报文携带的设备标识和临时通道标识,通过学习到该报文目的MAC地址的端口转发该报文,能够防止报文转发出现回环。
[0135]至此,完成图4所示的流程。
[0136]下面通过一个具体实施例对图4所示流程进行描述:
[0137]参见图6,图6为本发明实施例提供的网络实例图。在图6中,5台以太网交换机组建一个如图6所示的环形网络,在该环形网络中,经过生成树协议运算,得到-Device A为根桥设备,Device A的Port Al、Port A2为指定端口,Device B至Device E为叶子节点设备,Device B的Port BI为根端口、Port B2为指定端口,Device C的Port C2为阻塞端口,Port Cl 为根端口,Device D 的 Port Dl 为根端口、Port D2 为指定端口,Device E的Port El为根端口、Port E2为指定端口。Device B下连接了多台PC(称为PC B群)与Server A之间有大量数据转发。
[0138]则基于图6所示的网络,则,
[0139]Device C开始发起协商临时通道的通告,该通告中携带Device C为临时通道随机生成的VLAN标识比如为100 ;
[0140]Device A收到通告后,判断出允许建立临时通道,则将自身上的两个指定端口Port AUPort A2加入临时通道,并向Device C发送允许建立临时通道的通知;
[0141]Device B收到通告后,判断出允许建立临时通道,则将自身上的根端口 PortBl和指定端口 Port B2加入临时通道,并向Device C发送允许建立临时通道的通知;
[0142]Device D收到通告后,判断出允许建立临时通道,则将自身上的根端口 PortDl和指定端口 Port D2加入临时通道,并向Device C发送允许建立临时通道的通知;
[0143]Device E收到通告后,判断出允许建立临时通道,则将自身上的根端口 PortEl和指定端口 Port E2加入临时通道,并向Device C发送允许建立临时通道的通知;
[0144]Device C 收到 Device A、Device B、Device D、Device E 发送的允许建立临时通道的通知后,将本设备上的阻塞端口 Port C2加入临时通道,并开启阻塞端口 Port C2在临时通道中的数据报文转发功能。此时,Device C认为临时通道协商已完成,则会定时在所述环形网络中发出心跳报文;
[0145]当Device A、Device B、Device D、Device E 首次收到 Device C 发送的心跳报文,则认为临时通道协商完成,之后,每隔设定时间检测是否接收到存在阻塞端口的叶子节点设备发出的心跳报文,如果否,则将本设备上已加入至临时通道的根端口和指定端口从临时通道退出,如果是,则忽略该心跳报文。同时,Device B、C、D、E开始对本设备上的根端口进行流量监控;而Device A开始对本设备上的每一指定端口进行流量监控。
[0146]当PC B群与Server A之间有大量数据转发,Device D通过流量监控发现根端口Port Dl满足端口拥塞条件,需要启用临时通道和根端口 Port Dl—起分担原本经由该根端口 Port Dl转发的报文:
[0147]Device D对PC B群的报文进行分类,使一部分报文从根端口 Port Dl转发至Device E、Device A后到达Server A,这里不重点描述。
[0148]Device D将另一部分报文携带临时通道的VLAN标识100和本设备的设备标识Device D,之后通过临时通道转发至Device C。下文进行了重点描述:
[0149]Device C收到携带VLAN标识100的报文后,判断报文目的MAC地址(即ServerA的MAC地址)学习在根端口 Port Cl,仅转发报文;
[0150]Device B收到携带VLAN标识100的报文的处理方式与Device C相同;
[0151]Device A收到携带VLAN标识100的报文后,检查报文目的MAC地址(即ServerA的MAC地址)学习在本Device A连接Server A的端口 PortO,即是在本Device A上两个指定端口以外的其他端口,则剥掉报文携带的VLAN标识100和设备标识,然后将报文按照正常流程转发给Server A ;
[0152]Server A回应的报文根据设备学习的MAC地址转发,从Device A的指定端口回到PC B群。如果Device A发现指定端口拥塞,也可以采用类似步骤411至步骤415的方式对Server A回应PC B群的报文进行分类转发,这里不再赘述。
[0153]至此,完成本发明提供的方法描述。
[0154]下面对本发明提供的设备进行描述:
[0155]参见图7,图7为本发明提供的设备结构图。该设备应用于环形网络中的网络设备。
[0156]如图7所示,当该设备为叶子节点设备时,包括:第一协商单元、第一监控单元、第一分担处理单元;
[0157]第一协商单元,用于在本设备上存在阻塞端口时,在所述环形网络中发起协商临时通道的通告,接收所述环形网络中根桥设备以及其他叶子节点设备发送的允许建立临时通道的通知时,将本设备上存在的所述阻塞端口加入至所述临时通道,所述阻塞端口在临时通道中被允许转发数据报文;以及
[0158]用于在本设备上不存在阻塞端口时,接收所述通告,并判断本设备是否允许建立临时通道,如果是,将本设备上的根端口和指定端口一起加入至临时通道,并将允许建立临时通道的通知给发起所述通告的叶子节点设备;
[0159]第一监控单元,用于在完成临时通道协商后,对本设备上的根端口进行报文流量监控;
[0160]第一分担处理单元,用于在所述第一监控单元监控到根端口满足端口拥塞条件时,启用临时通道和根端口一起分担原本经由该根端口转发的报文,以避免根端口出现拥塞;
[0161]当所述网络设备为根桥设备时,包括:第二协商单元、第二监控单元、第二分担处理单元;
[0162]第二协商单元,用于接收所述环形网络中存在阻塞端口的叶子节点设备发起的协商临时通道的通告,判断本设备是否允许建立临时通道,如果是,将本设备上的所有指定端口加入至临时通道,并将允许建立临时通道通知给发起所述通告的叶子节点设备;
[0163]第二监控单元,用于当完成临时通道协商后,对本设备上每一指定端口进行报文流量监控;
[0164]第二分担处理单元,用于在所述第二监控单元监控到指定端口满足端口拥塞条件时,启用临时通道和该指定端口一起分担原本经由该指定端口转发的报文,以避免该指定端口出现拥塞。
[0165]优选地,本发明中,当所述网络设备为叶子节点设备时,所述第一分担处理单元进一步在所述第一监控单元监控到根端口满足端口空闲条件时,如果当前已启用临时通道与该根端口一起分担原本经由该根端口转发的报文,则将经由临时通道转发的报文切换至该根端口转发;
[0166]当所述网络设备为根桥设备时,所述第二分担处理单元进一步在所述第二监控单元监控到指定端口满足端口空闲条件时,若当前已启用临时通道与该指定端口一起分担原本经由该指定端口转发的报文,则将经由临时通道转发的报文切换至该指定端口转发。
[0167]优选地,本发明中,当所述网络设备为叶子节点设备,且本设备上存在阻塞端口时,发起的通告携带了本设备为所述临时通道生成的虚拟局域网VLAN标识;
[0168]当所述网络设备为叶子节点设备,且本设备上不存在阻塞端口时,或者,当所述网络设备为根桥设备时,判断本设备是否允许建立临时通道包括:
[0169]判断接收的通告携带的VLAN标识是否与本设备已存在的VLAN标识冲突,如果是,则判断出本设备不允许建立临时通道,如果否,则判断出本设备允许建立临时通道。
[0170]优选地,本发明中,当所述网络设备为叶子节点设备,且本设备上不存在阻塞端口时,所述第一协商单元如果判断出本设备不允许建立临时通道,进一步将不允许建立临时通道通知给发起所述通告的叶子节点设备;
[0171]当所述网络设备为根桥设备时,所述第二协商单元如果判断出本设备不允许建立临时通道,进一步将不允许建立临时通道通知给发起所述通告的叶子节点设备;
[0172]当所述网络设备为叶子节点设备,且本设备上存在阻塞端口时,所述第一协商单元进一步接收不允许建立临时通道的通知,重新在所述环形网络中发起协商临时通道的通告,该重新发起的通告携带了为所述临时通道重新生成的VLAN标识。
[0173]优选地,本发明中,所述第一监控单元对本设备上的根端口进行报文流量监控包括:每隔单位时间对经由本设备上根端口转发的报文流量进行记录;利用当前单位时间记录的报文流量和上一个单位时间记录的报文流量计算当前单位时间下所述根端口的速率;判断所述速率是否大于第一设定阈值,如果是,则将本设备上根端口对应的计数器加1,如果否,在所述速率小于第二设定阈值时,则将本设备上根端口对应的计数器减I ;所述第一设定阈值大于或等于第二设定阈值;
[0174]监控到根端口满足端口拥塞条件包括:监控根端口当前对应的计数器,如果该计数器取值大于第一设定值,则确认根端口满足端口拥塞条件;
[0175]监控到根端口满足端口空闲条件包括:监控根端口当前对应的计数器,如果该计数器取值小于第二设定值,则确认根端口满足端口空闲条件;所述第一设定值大于第二设定值;
[0176]所述第二监控单元对本设备上每一指定端口进行报文流量监控包括:针对本设备上每一指定端口,每隔单位时间记录经由该指定端口转发的报文流量;利用当前单位时间记录的经由该指定端口转发的报文流量和上一个单位时间记录的经由该指定端口转发的报文流量计算当前单位时间下该指定端口的速率;判断所述速率是否大于第三设定阈值,如果是,则将该指定端口对应的计数器加1,如果否,在所述速率小于第四设定阈值,则将该指定端口对应的计数器减I ;所述第三设定阈值大于或等于第四设定阈值;
[0177]所述监控到指定端口满足端口拥塞条件包括:监控指定端口当前对应的计数器,如果该计数器取值大于第三设定值,确认指定端口满足端口拥塞条件;
[0178]所述监控到指定端口满足端口空闲条件包括:监控指定端口当前对应的计数器,如果该计数器取值小于第四设定值,则确认指定端口满足端口空闲条件;所述第三设定值大于或等于第四设定值。
[0179]优选地,本发明中,所述第一分担处理单元启用临时通道和根端口一起分担原本经由根端口转发的报文包括:
[0180]对原本经由根端口转发的广播报文、组播报文、以及未知单播报文,通过该根端口转发;对其他类型的报文,执行以下处理:对报文携带的报文特征参数进行哈希运算得到哈希结果,如果依据哈希结果确定出是通过临时通道转发,则在该报文上携带本设备的设备标识以及临时通道的标识并通过临时通道转发,如果依据哈希结果确定出是通过根端口转发,则通过该根端口转发该报文。
[0181]所述第二分担处理单元启用临时通道和指定端口一起分担原本经由指定端口转发的报文包括:
[0182]对原本经由该指定端口转发的广播报文、组播报文、以及未知单播报文,通过该指定端口转发;
[0183]对其他类型的报文,执行以下处理:对报文携带的报文属性参数进行哈希运算得到哈希结果,所述报文属性参数为报文携带的五元组中的至少一个;如果依据哈希结果确定出是通过临时通道转发,则在该报文上携带本设备的设备标识以及临时通道的标识并通过临时通道转发,如果依据哈希结果确定出是通过指定端口转发,则通过该指定端口转发该报文。
[0184]优选地,本发明中,如图7所示,当所述网络设备为叶子节点设备时,进一步包括:第一转发处理单元;
[0185]第一转发处理单元,用于接收到携带设备标识和临时通道标识报文时,
[0186]如果该报文携带的设备标识为本设备自身的设备标识,则丢弃该接收到的报文,如果该报文携带的设备标识不为本设备自身的设备标识,则判断本设备学习到该报文目的MAC地址的端口是否为除以下端口之外的其他端口:
[0187]本设备上根端口和指定端口,或者本设备上根端口和阻塞端口 ;
[0188]如果是,则剥去报文携带的设备标识和临时通道标识,通过学习到该报文目的MAC地址的端口转发该报文,如果否,在本设备通过根端口收到该报文时,通过本设备上的指定端口转发该报文,在本设备通过指定端口收到该报文时,通过本设备上的根端口转发该报文;
[0189]当所述网络设备为根桥设备时,进一步包括:第二转发处理单元;
[0190]第二转发处理单元,用于通过一个指定端口接收到携带设备标识和临时通道标识的报文时,
[0191]如果该报文携带的设备标识为本设备自身的设备标识,丢弃接收到的报文;
[0192]如果该报文携带的设备标识不为本设备自身的设备标识,则判断本设备学习到该报文目的MAC地址的端口是否为除本设备上指定端口之外的端口,如果是,则剥去报文携带的设备标识和临时通道标识,通过学习到该报文目的MAC地址的端口转发该报文,如果否,通过本设备上其他指定端口转发该报文。
[0193]优选地,本发明中,当所述网络设备为叶子节点设备,且本设备上存在阻塞端口时,第一协商单元将本设备上存在的阻塞端口加入至所述临时通道判定为临时通道协商完成;
[0194]当所述网络设备为叶子节点设备,且本设备上存在阻塞端口时,第一协商单元进一步在完成临时通道协商后,定时在所述环形网络中发出心跳报文,以维护所述临时通道;
[0195]当所述网络设备为叶子节点设备,且本设备上不存在阻塞端口时,第一协商单元将首次收到存在阻塞端口的叶子节点设备发送的心跳报文判定为临时通道协商完成;
[0196]当所述网络设备为根桥设备时,第二协商单元将首次收到存在阻塞端口的叶子节点设备发送的心跳报文判定为临时通道协商完成;
[0197]当所述网络设备为叶子节点设备,且本设备上不存在阻塞端口时,第一协商单元进一步每隔设定时间检测是否接收到存在阻塞端口的叶子节点设备发出的心跳报文,如果否,则将本设备上已加入至临时通道的根端口和指定端口从临时通道退出;
[0198]当所述网络设备为根桥设备时,第二协商单元进一步每隔设定时间检测是否接收到存在阻塞端口的叶子节点设备发出的心跳报文,如果否,则将本设备上已加入至临时通道的根端口和指定端口从临时通道退出。
[0199]至此,完成图7所示的设备结构描述。
[0200]本发明还提供了对应图7所示网络设备的硬件结构描述。
[0201]参见图8,图8为本发明实施例提供的网络设备的硬件结构图。如图8所示,该网络设备可包括:
[0202]存储器,用于当所述网络设备为叶子节点设备时,存放第一协商单元、第一监控单元、第一分担处理单元;以及,用于当所述网络设备为根桥设备时,存放第二协商单元、第二监控单元、第二分担处理单元;
[0203]CPU,用于当所述网络设备为叶子节点设备时,存放第一协商单元、第一监控单元、第一分担处理单元运行的程序;以及,用于当所述网络设备为根桥设备时,存放第二协商单元、第二监控单元、第二分担处理单元运行的程序。
[0204]其中,第一协商单元、第一监控单元、第一分担处理单元运行的程序分别如上所述的第一协商单元、第一监控单元、第一分担处理单元执行的操作所述,这里不再赘述;
[0205]第二协商单元、第二监控单元、第二分担处理单元运行的程序分别如上所述的第二协商单元、第二监控单元、第二分担处理单元执行的操作所述,这里不再赘述。
[0206]至此,完成图8所示的设备硬件结构描述。
[0207]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种防止链路拥塞的方法,其特征在于,该方法应用于环形网络中的网络设备,所述网络设备为叶子节点设备或者为根桥设备,该方法包括: 当所述网络设备为叶子节点设备时, 如果本设备上存在阻塞端口,则在所述环形网络中发起协商临时通道的通告,接收所述环形网络中根桥设备以及其他叶子节点设备发送的允许建立临时通道的通知时,将本设备上存在的所述阻塞端口加入至所述临时通道,所述阻塞端口在临时通道中被允许转发数据报文;如果本设备上不存在阻塞端口,则接收所述通告,并判断本设备是否允许建立临时通道,如果是,将本设备上的根端口和指定端口一起加入至临时通道,并将允许建立临时通道的通知给发起所述通告的叶子节点设备; 在完成临时通道协商后,对本设备上的根端口进行报文流量监控,在监控到根端口满足端口拥塞条件时,启用临时通道和根端口一起分担原本经由该根端口转发的报文,以避免根端口出现拥塞; 当所述网络设备为根桥设备时, 接收所述环形网络中存在阻塞端口的叶子节点设备发起的协商临时通道的通告,判断本设备是否允许建立临时通道,如果是,将本设备上的所有指定端口加入至临时通道,并将允许建立临时通道通知给发起所述通告的叶子节点设备; 当完成临时通道协商后,对本设备上每一指定端口进行报文流量监控;在监控到指定端口满足端口拥塞条件时,启用临时通道和该指定端口一起分担原本经由该指定端口转发的报文,以避免该指定端口出现拥塞。
2.根据权利要求1所述的方法,其特征在于,当所述网络设备为叶子节点设备时,该方法进一步包括: 在监控到根端口满足端口空闲条件时,如果当前已启用临时通道与该根端口一起分担原本经由该根端口转发的报文,则将经由临时通道转发的报文切换至该根端口转发; 当所述网络设备为根桥设备时,该方法进一步包括: 在监控到指定端口满足端口空闲条件时,若当前已启用临时通道与该指定端口一起分担原本经由该指定端口转发的报文,则将经由临时通道转发的报文切换至该指定端口转发。
3.根据权利要求1所述的方法,其特征在于,当所述网络设备为叶子节点设备,且本设备上存在阻塞端口时,本设备发起的通告携带了本设备为所述临时通道生成的虚拟局域网VLAN标识; 当所述网络设备为叶子节点设备,且本设备上不存在阻塞端口时,或者,当所述网络设备为根桥设备时,判断本设备是否允许建立临时通道包括: 判断接收的通告携带的VLAN标识是否与本设备已存在的VLAN标识冲突,如果是,则判断出本设备不允许建立临时通道,如果否,则判断出本设备允许建立临时通道。
4.根据权利要求1所述的方法,其特征在于,当所述网络设备为叶子节点设备,且本设备上不存在阻塞端口时,或者,当所述网络设备为根桥设备时,如果判断出本设备不允许建立临时通道,该方法进一步包括:将不允许建立临时通道通知给发起所述通告的叶子节点设备; 当所述网络设备为叶子节点设备,且本设备上存在阻塞端口时,该方法进一步包括:接收不允许建立临时通道的通知,重新在所述环形网络中发起协商临时通道的通告,该重新发起的通告携带了为所述临时通道重新生成的VLAN标识。
5.根据权利要求2所述的方法,其特征在于,当所述网络设备为叶子节点设备时,所述对本设备上的根端口进行报文流量监控包括:每隔单位时间对经由本设备上根端口转发的报文流量进行记录;利用当前单位时间记录的报文流量和上一个单位时间记录的报文流量计算当前单位时间下所述根端口的速率;判断所述速率是否大于第一设定阈值,如果是,则将本设备上根端口对应的计数器加1,如果否,在所述速率小于第二设定阈值时,则将本设备上根端口对应的计数器减I ;所述第一设定阈值大于或等于第二设定阈值; 监控到根端口满足端口拥塞条件包括:监控根端口当前对应的计数器,如果该计数器取值大于第一设定值,则确认根端口满足端口拥塞条件; 监控到根端口满足端口空闲条件包括:监控根端口当前对应的计数器,如果该计数器取值小于第二设定值,则确认根端口满足端口空闲条件;所述第一设定值大于第二设定值; 当所述网络设备为根桥设备时,所述对本设备上每一指定端口进行报文流量监控包括:针对本设备上每一指定端口,每隔单位时间记录经由该指定端口转发的报文流量;利用当前单位时间记录的经由该指定端口转发的报文流量和上一个单位时间记录的经由该指定端口转发的报文流量计算当前单位时间下该指定端口的速率;判断所述速率是否大于第三设定阈值,如果是,则将该指定端口对应的计数器加1,如果否,在所述速率小于第四设定阈值,则将该指定端口对应的计数器减I ;所述第三设定阈值大于或等于第四设定阈值; 所述监控到指定端口满足端口拥塞条件包括:监控指定端口当前对应的计数器,如果该计数器取值大于第三设定值,确认指定端口满足端口拥塞条件; 所述监控到指定端口满足端口空闲条件包括:监控指定端口当前对应的计数器,如果该计数器取值小于第四设定值,则确认指定端口满足端口空闲条件;所述第三设定值大于或等于第四设定值。
6.根据权利要求1所述的方法,其特征在于,当所述网络设备为叶子节点设备时,所述启用临时通道和根端口一起分担原本经由根端口转发的报文包括: 对原本经由根端口转发的广播报文、组播报文、以及未知单播报文,通过该根端口转发;对其他类型的报文,执行以下处理:对报文携带的报文特征参数进行哈希运算得到哈希结果,如果依据哈希结果确定出是通过临时通道转发,则在该报文上携带本设备的设备标识以及临时通道的标识并通过临时通道转发,如果依据哈希结果确定出是通过根端口转发,则通过该根端口转发该报文。 当所述网络设备为根桥设备时,所述启用临时通道和指定端口一起分担原本经由指定端口转发的报文包括: 对原本经由该指定端口转发的广播报文、组播报文、以及未知单播报文,通过该指定端口转发; 对其他类型的报文,执行以下处理:对报文携带的报文属性参数进行哈希运算得到哈希结果,所述报文属性参数为报文携带的五元组中的至少一个;如果依据哈希结果确定出是通过临时通道转发,则在该报文上携带本设备的设备标识以及临时通道的标识并通过临时通道转发,如果依据哈希结果确定出是通过指定端口转发,则通过该指定端口转发该报 文。
7.根据权利要求6所述的方法,其特征在于,当所述网络设备为叶子节点设备时,该方法进一步包括: 接收到携带设备标识和临时通道标识报文时, 如果该报文携带的设备标识为本设备自身的设备标识,则丢弃该接收到的报文,如果该报文携带的设备标识不为本设备自身的设备标识,则判断本设备学习到该报文目的MAC地址的端口是否为除以下端口之外的其他端口: 本设备上根端口和指定端口,或者本设备上根端口和阻塞端口 ; 如果是,则剥去报文携带的设备标识和临时通道标识,通过学习到该报文目的MAC地址的端口转发该报文,如果否,在本设备通过根端口收到该报文时,通过本设备上的指定端口转发该报文,在本设备通过指定端口收到该报文时,通过本设备上的根端口转发该报文; 当所述网络设备为根桥设备时,该方法进一步包括: 通过一个指定端口接收到携带设备标识和临时通道标识的报文时, 如果该报文携带的设备标识为本设备自身的设备标识,丢弃接收到的报文; 如果该报文携带的设备标识不为本设备自身的设备标识,则判断本设备学习到该报文目的MAC地址的端口是否为除本设备上指定端口之外的端口,如果是,则剥去报文携带的设备标识和临时通道标识,通过学习到该报文目的MAC地址的端口转发该报文,如果否,通过本设备上其他指定端口转发该报文。
8.根据权利要求1所述的方法,其特征在于,当所述网络设备为叶子节点设备,且本设备上存在阻塞端口时,将本设备上存在的阻塞端口加入至所述临时通道判定为临时通道协商完成; 当所述网络设备为叶子节点设备,且本设备上存在阻塞端口时,该方法进一步包括:在完成临时通道协商后,定时在所述环形网络中发出心跳报文,以维护所述临时通道; 当所述网络设备为叶子节点设备,且本设备上不存在阻塞端口时,或者,当所述网络设备为根桥设备时,将首次收到存在阻塞端口的叶子节点设备发送的心跳报文判定为临时通道协商完成; 当所述网络设备为叶子节点设备,且本设备上不存在阻塞端口时,或者,当所述网络设备为根桥设备时,该方法进一步包括:每隔设定时间检测是否接收到存在阻塞端口的叶子节点设备发出的心跳报文,如果否,则将本设备上已加入至临时通道的根端口和指定端口从临时通道退出。
9.一种防止链路拥塞的设备,其特征在于,该设备应用于环形网络中的网络设备,当所述网络设备为叶子节点设备时,包括:第一协商单元、第一监控单元、第一分担处理单元; 第一协商单元,用于在本设备上存在阻塞端口时,在所述环形网络中发起协商临时通道的通告,接收所述环形网络中根桥设备以及其他叶子节点设备发送的允许建立临时通道的通知时,将本设备上存在的所述阻塞端口加入至所述临时通道,所述阻塞端口在临时通道中被允许转发数据报文;以及 用于在本设备上不存在阻塞端口时,接收所述通告,并判断本设备是否允许建立临时通道,如果是,将本设备上的根端口和指定端口一起加入至临时通道,并将允许建立临时通道的通知给发起所述通告的叶子节点设备; 第一监控单元,用于在完成临时通道协商后,对本设备上的根端口进行报文流量监控; 第一分担处理单元,用于在所述第一监控单元监控到根端口满足端口拥塞条件时,启用临时通道和根端口一起分担原本经由该根端口转发的报文,以避免根端口出现拥塞; 当所述网络设备为根桥设备时,包括:第二协商单元、第二监控单元、第二分担处理单元; 第二协商单元,用于接收所述环形网络中存在阻塞端口的叶子节点设备发起的协商临时通道的通告,判断本设备是否允许建立临时通道,如果是,将本设备上的所有指定端口加入至临时通道,并将允许建立临时通道通知给发起所述通告的叶子节点设备; 第二监控单元,用于当完成临时通道协商后,对本设备上每一指定端口进行报文流量监控; 第二分担处理单元,用于在所述第二监控单元监控到指定端口满足端口拥塞条件时,启用临时通道和该指定端口一起分担原本经由该指定端口转发的报文,以避免该指定端口出现拥塞。
10.根据权利要求9所述的设备,其特征在于,当所述网络设备为叶子节点设备时,所述第一分担处理单元进一步在所述第一监控单元监控到根端口满足端口空闲条件时,如果当前已启用临时通道与该根端口一起分担原本经由该根端口转发的报文,则将经由临时通道转发的报文切换至该根端口转发; 当所述网络设备为根桥设备时,所述第二分担处理单元进一步在所述第二监控单元监控到指定端口满足端口空闲条件时,若当前已启用临时通道与该指定端口一起分担原本经由该指定端口转发的报文,则将经由临时通道转发的报文切换至该指定端口转发。
11.根据权利要求9所述的设备,其特征在于,当所述网络设备为叶子节点设备,且本设备上存在阻塞端口时,发起的通告携带了本设备为所述临时通道生成的虚拟局域网VLAN标识; 当所述网络设备为叶子节点设备,且本设备上不存在阻塞端口时,或者,当所述网络设备为根桥设备时,判断本设备是否允许建立临时通道包括: 判断接收的通告携带的VLAN标识是否与本设备已存在的VLAN标识冲突,如果是,则判断出本设备不允许建立临时通道,如果否,则判断出本设备允许建立临时通道。
12.根据权利要求9所述的设备,其特征在于,当所述网络设备为叶子节点设备,且本设备上不存在阻塞端口时,所述第一协商单元如果判断出本设备不允许建立临时通道,进一步将不允许建立临时通道通知给发起所述通告的叶子节点设备; 当所述网络设备为根桥设备时,所述第二协商单元如果判断出本设备不允许建立临时通道,进一步将不允许建立临时通道通知给发起所述通告的叶子节点设备; 当所述网络设备为叶子节点设备,且本设备上存在阻塞端口时,所述第一协商单元进一步接收不允许建立临时通道的通知,重新在所述环形网络中发起协商临时通道的通告,该重新发起的通告携带了为所述临时通道重新生成的VLAN标识。
13.根据权利要求10所述的设备,其特征在于,所述第一监控单元对本设备上的根端口进行报文流量监控包括:每隔单位时间对经由本设备上根端口转发的报文流量进行记录;利用当前单位时间记录的报文流量和上一个单位时间记录的报文流量计算当前单位时间下所述根端口的速率;判断所述速率是否大于第一设定阈值,如果是,则将本设备上根端口对应的计数器加1,如果否,在所述速率小于第二设定阈值时,则将本设备上根端口对应的计数器减I ;所述第一设定阈值大于或等于第二设定阈值; 监控到根端口满足端口拥塞条件包括:监控根端口当前对应的计数器,如果该计数器取值大于第一设定值,则确认根端口满足端口拥塞条件; 监控到根端口满足端口空闲条件包括:监控根端口当前对应的计数器,如果该计数器取值小于第二设定值,则确认根端口满足端口空闲条件;所述第一设定值大于第二设定值; 所述第二监控单元对本设备上每一指定端口进行报文流量监控包括:针对本设备上每一指定端口,每隔单位时间记录经由该指定端口转发的报文流量;利用当前单位时间记录的经由该指定端口转发的报文流量和上一个单位时间记录的经由该指定端口转发的报文流量计算当前单位时间下该指定端口的速率;判断所述速率是否大于第三设定阈值,如果是,则将该指定端口对应的计数器加1,如果否,在所述速率小于第四设定阈值,则将该指定端口对应的计数器减I ;所述第三设定阈值大于或等于第四设定阈值; 所述监控到指定端口满足端口拥塞条件包括:监控指定端口当前对应的计数器,如果该计数器取值大于第三设定值,确认指定端口满足端口拥塞条件; 所述监控到指定端口满足端口空闲条件包括:监控指定端口当前对应的计数器,如果该计数器取值小于第四设定值,则确认指定端口满足端口空闲条件;所述第三设定值大于或等于第四设定值。
14.根据权利要求9所述的设备,其特征在于,所述第一分担处理单元启用临时通道和根端口一起分担原本经由根端口转发的报文包括: 对原本经由根端口转发的广播报文、组播报文、以及未知单播报文,通过该根端口转发;对其他类型的报文,执行以下处理:对报文携带的报文特征参数进行哈希运算得到哈希结果,如果依据哈希结果确定出是通过临时通道转发,则在该报文上携带本设备的设备标识以及临时通道的标识并通过临时通道转发,如果依据哈希结果确定出是通过根端口转发,则通过该根端口转发该报文。 所述第二分担处理单元启用临时通道和指定端口一起分担原本经由指定端口转发的报文包括: 对原本经由该指定端口转发的广播报文、组播报文、以及未知单播报文,通过该指定端口转发; 对其他类型的报文,执行以下处理:对报文携带的报文属性参数进行哈希运算得到哈希结果,所述报文属性参数为报文携带的五元组中的至少一个;如果依据哈希结果确定出是通过临时通道转发,则在该报文上携带本设备的设备标识以及临时通道的标识并通过临时通道转发,如果依据哈希结果确定出是通过指定端口转发,则通过该指定端口转发该报文。
15.根据权利要求13所述的设备,其特征在于,当所述网络设备为叶子节点设备时,进一步包括:第一转发处理单元; 第一转发处理单元,用于接收到携带设备标识和临时通道标识报文时, 如果该报文携带的设备标识为本设备自身的设备标识,则丢弃该接收到的报文,如果该报文携带的设备标识不为本设备自身的设备标识,则判断本设备学习到该报文目的MAC地址的端口是否为除以下端口之外的其他端口: 本设备上根端口和指定端口,或者本设备上根端口和阻塞端口 ; 如果是,则剥去报文携带的设备标识和临时通道标识,通过学习到该报文目的MAC地址的端口转发该报文,如果否,在本设备通过根端口收到该报文时,通过本设备上的指定端口转发该报文,在本设备通过指定端口收到该报文时,通过本设备上的根端口转发该报文; 当所述网络设备为根桥设备时,进一步包括:第二转发处理单元; 第二转发处理单元,用于通过一个指定端口接收到携带设备标识和临时通道标识的报文时, 如果该报文携带的设备标识为本设备自身的设备标识,丢弃接收到的报文; 如果该报文携带的设备标识不为本设备自身的设备标识,则判断本设备学习到该报文目的MAC地址的端口是否为除本设备上指定端口之外的端口,如果是,则剥去报文携带的设备标识和临时通道标识,通过学习到该报文目的MAC地址的端口转发该报文,如果否,通过本设备上其他指定端口转发该报文。
16.根据权利要求9所述的设备,其特征在于,当所述网络设备为叶子节点设备,且本设备上存在阻塞端口时,第一协商单元将本设备上存在的阻塞端口加入至所述临时通道判定为临时通道协商完成; 当所述网络设备为叶子节点设备,且本设备上存在阻塞端口时,第一协商单元进一步在完成临时通道协商后,定时在所述环形网络中发出心跳报文,以维护所述临时通道; 当所述网络设备为叶子节点设备,且本设备上不存在阻塞端口时,第一协商单元将首次收到存在阻塞端口的叶子节点设备发送的心跳报文判定为临时通道协商完成; 当所述网络设备为根桥设备时,第二协商单元将首次收到存在阻塞端口的叶子节点设备发送的心跳报文判定为临时通道协商完成; 当所述网络设备为叶子节点设备,且本设备上不存在阻塞端口时,第一协商单元进一步每隔设定时间检测是否接收到存在阻塞端口的叶子节点设备发出的心跳报文,如果否,则将本设备上已加入至临时通道的根端口和指定端口从临时通道退出; 当所述网络设备为根桥设备时,第二协商单元进一步每隔设定时间检测是否接收到存在阻塞端口的叶子节点设备发出的心跳报文,如果否,则将本设备上已加入至临时通道的根端口和指定端口从临时通道退出。
【文档编号】H04L12/801GK104243334SQ201410502641
【公开日】2014年12月24日 申请日期:2014年9月26日 优先权日:2014年9月26日
【发明者】唐小虎, 王祝勋 申请人:杭州华三通信技术有限公司