一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种二层网络环路检测定位方法与流程

2022-04-25 00:57:39 来源:中国专利 TAG:


1.本发明涉及通信技术领域,尤其是一种二层网络环路检测定位方法。


背景技术:

2.二层网络中出现环路,会导致转发设备对广播、组播以及未知单播等报文进行重复发送,占用大量网络带宽,造成网络资源浪费甚至网络瘫痪。为了能够及时发现二层网络中的环路,避免对整个网络造成严重影响,需要提供一种环路检测技术,而常见的就是生成树协议,该协议通过一定的算法将环网变成无环的树型网络,从而避免报文在网络中重复发送,但生成树协议无法部署在对cpu性能要求低且无协议的交换机设备上。除生成树协议外,目前已有的其他环路检测技术虽然能够检测到环路现象,但较少考虑如何定位环路的成环点并自动破除环路,而且也未考虑在多芯片的转发设备上如何进行检测,以及如何减少检测报文的转发次数降低网络带宽消耗。
3.另一方面,环路检测的基本原理就是转发设备周期性地发送环路检测报文,并检测其是否返回本设备(不要求收、发端口为同一端口),以确认是否存在环路;若某端口收到了由设备发出的环路检测报文,则认定该端口所在链路存在环路。同时设备将向用户上报信息,并使端口置于受控状态,尽量减小环路对整网的影响。若设备存在多个转发芯片,还需要判断收发端口是否在同一转发芯片才能确定是否存在环路,并且因环路存在检测报文会在网络中重复广播,所以当转发次数超过一定值时需要丢弃,避免增加不必要的网络带宽。
4.为了解决上述问题,本发明提供了一种二层网络环路检测定位方法,不仅支持在多芯片转发设备上定位成环点、阻断环路,还能够减少检测报文对整个网络的转发压力。


技术实现要素:

5.为了实现二层网络环路检测定位,本发明提供了提出了一种二层网络环路检测定位方法,通过周期性发送私有的环路检测报文,根据私有环路检测报文中的发送端口信息以及smac进行环路判断并阻断流程,不仅支持在多芯片转发设备上定位成环点、阻断环路,还能够减少检测报文对整个网络的转发压力。
6.为实现上述目的,本发明采用如下的技术方案。
7.在本发明实施例中,提出了一种二层网络环路检测定位方法,该方法包括如下步骤:
8.s1周期性发送私有环路检测报文,所述私有报文携带发送端口信息;
9.s2设备接收到私有环路检测报文之后,根据私有报文中的smac和发送端口信息,进行环路判断并确定block端口阻断流程;
10.s3在bfc周期内,所述block端口均未收到环路检测报文,则将该端口状态置为forward转发状态;
11.s4在rlc周期内,等到rlt计时器结束,有block端口的提示用户环路解除,block端
口为成环点,无block端口提示用户无环。
12.进一步的,所述私有报文新增了tpid类型、发送端口信息以及总发送次数tft。
13.进一步的,所述发送端口信息包括端口类型、端口逻辑id、芯片id。
14.进一步的,设备接收到私有环路检测报文之后,判断smac是否等于local mac并且发送端口所属芯片id是否等于接收端口芯片id,若是,则认为是环路。
15.进一步的,设备若判断不是环路,则tft字段加1,判断是否超过mft,是则丢弃,否则继续转发。
16.进一步的,设备若判断是环路,进一步根据发送端口和接收端口状态进行判断,确定block端口。
17.进一步的,新接入的链路导致环路,其端口自然成为block端口,作为成环点。
18.进一步的,若在rlc周期内任一非block端口收到本芯片发出的检测报文,那么rlt都需要重新计时;否则等到计时器结束,即表示整个环路检测结束,那么有block端口的提示用户环路解除,block端口为成环点,无block端口提示用户无环。
19.在本发明实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述特殊终端的接入方法。
20.在本发明实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行特殊终端的接入方法的计算机程序。
21.本发明的有益效果在于,针对现有的通信系统中存在的问题,提供一种二层网络环路检测定位方法,不仅支持在多芯片转发设备上定位成环点、阻断环路,还能够减少检测报文对整个网络的转发压力。
附图说明
22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
23.图1为本发明实现流程示意图;
24.图2为本发明设计的私有检测报文的报文格式示意图;
25.图3为本发明携带vlan的私有检测报文的报文格式示意图;
26.图4为本发明实施例一的检测环路并确定成环点流程示意图;
27.图5为本发明实施例一的启动恢复转发流程示意图;
28.图6为本发明实施例一的环路破除流程示意图。
具体实施方式
29.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。以下实施用例仅用于更加清楚地说明本发明的系统方法及技术方案,而不能以此来限制本技术的保护范围。
30.根据本发明的实施方式,提出了一种二层网络环路检测定位方法,通过周期性发
送私有的环路检测报文,根据私有环路检测报文中的发送端口信息以及smac进行环路判断并阻断流程,不仅支持在多芯片转发设备上定位成环点、阻断环路,还能够减少检测报文对整个网络的转发压力。
31.下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
32.图1是一种二层网络环路检测定位方法的处理流程示意图。如图1所示,该方法包括如下步骤:
33.s1周期性发送私有环路检测报文,所述私有报文携带发送端口信息;
34.进一步的,所述私有报文新增了tpid类型、发送端口信息以及总发送次数tft。
35.进一步的,所述发送端口信息包括端口类型、端口逻辑id、芯片id。
36.s2设备接收到私有环路检测报文之后,根据私有报文中的smac和发送端口信息,进行环路判断并确定block端口阻断流程;
37.进一步的,设备接收到私有环路检测报文之后,判断smac是否等于local mac并且发送端口所属芯片id是否等于接收端口芯片id,若是,则认为是环路。
38.进一步的,设备若判断不是环路,则tft字段加1,判断是否超过mft,是则丢弃,否则继续转发。
39.进一步的,设备若判断是环路,进一步根据发送端口和接收端口状态进行判断,确定block端口。
40.进一步的,新接入的链路导致环路,其端口自然成为block口,作为成环点。
41.s3在bfc周期内,所述block端口均未收到环路检测报文,则将该端口状态置为forward转发状态;
42.s4在rlc周期内,等到rlt计时器结束,有block端口的提示用户环路解除,block端口为成环点,无block端口提示用户无环。
43.本优选实施用例中,若在rlc周期内任一非block端口收到本芯片发出的检测报文,那么rlt都需要重新计时;否则等到计时器结束,即表示整个环路检测结束,那么有block端口的提示用户环路解除,block端口为成环点,无block端口提示用户无环。
44.需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
45.为了对上述一种二层网络环路检测定位方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
46.实施例一:
47.一种二层网络环路检测定位方法,具体实施步骤如下:
48.步骤一:发送私有环路检测报文
49.当开启环路检测功能后,交换机等转发设备需要按照优先级随机等待不同的时间,再启动私有检测报文的发送定时器,定时器每n周期从该设备的所有link up的端口依次构造私有的环路检测报文,并将报文下发硬件转发至网络。
50.本方法设计的私有检测报文的格式见附图2,携带vlan tag的报文格式见附图3,
其中,通过tpid(tag protocal id,标签协议标识)字段确定为私有环路检测报文,private_attribute字段包括发送端口所属芯片id(tx_mod_id)、发送端口类型(tx_port_type)、发送端口id(tx_port_id)和总转发次数(tft),其发送端口类型可以确定发送报文是否需要携带vlan tag,端口所属芯片id可区分多芯片场景,总转发次数字段用于减少报文重复转发次数。
51.在本实施例中,所发送的私有检测报文需要携带dmac=0xffffff,smac=本设备mac,tpid=0x9119,private_attribute字段中携带发送端口的端口类型、端口逻辑id、芯片id、tft等信息方便检测,若发送端口为trunk口类型,则发送检测报文需要携带允许的vlan(virtual local area network,虚拟局域网)信息。
52.步骤二:检测环路并确定成环点阻断流程
53.本流程是对网络拓扑是否存在环路进行判断,能够识别网络典型的环路:tx-rx光纤自环、下挂网络环路、自身网络环路等,并且能够阻塞端口破除环路,流程见附图4,具体流描述如下:
54.1、当端口接收到环路检测报文后上送报文,解析上报报文携带的参数信息:smac、发送端口id(tx_port)、发送端口类型、发送端口所属芯片id、tft(总发送次数);通过smac和芯片id可确定是否为本设备上本芯片发出的报文,tft用于决定此报文是否丢弃。
55.2、判断smac是否等于local mac(本设备的mac地址)并且发送端口所属芯片id是否等于接收端口芯片id,即是否是本机上同一芯片发出的报文,不是,则tft字段加1,判断是否超过mft(最大发送次数),若超过mft则丢弃,否则继续转发;
56.3、是,即存在环路,则进一步判断tx_port(发送端口)是否等于rx_port(接收端口),即是否收发同一个端口,是同一端口则给出提示:可能是tx-rx光纤自环或下挂网络环路;
57.4、不是同一端口,则判断rx_port是否block,若接收端口已经block且又收到了报文,则需要继续block,且重新开始恢复流程,即此block端口的恢复转发计数器bft(back to forwarding timer,恢复forwarding计时器)清零;
58.5、若rx_port未block,但tx_port已block,即发送端口优先block后,接收口不需要block,则不作处理;
59.6、否则,发送端口和接收端口均未block,则需要将接收端口置为block,启动恢复转发流程。
60.步骤三:恢复转发流程
61.上述检测环路并阻断的流程中步骤6中会触发启动block端口的恢复转发流程,具体流程见附图5,详细描述如下:
62.1、所述block端口的bft计时器先置零;
63.2、若在bfc(back to forwarding cycle,恢复forwarding周期,发送周期m倍数)周期内,所述block端口均未收到环路检测报文,则将该端口状态置为forward转发状态;
64.3、否则bft重新计时,仍然处于阻塞状态,继续检测是否接收到报文。
65.步骤四:环路破除流程
66.初始时解除计时器rlt(remove to loop timer,环路解除计时器)清零,若在rlc(remove to loop cycle,环路解除周期,发送周期l倍数)周期内任一非block端口收到本
芯片发出的检测报文,那么rlt都需要重新计时;否则等到rlt计时器结束,即表示整个环路检测结束,那么有block端口的提示用户环路解除,block端口为成环点,无block端口提示用户无环,流程见附图6。
67.rlt在整个检测流程开启时启动;步骤三会影响rlt的取值,因为端口是forward(转发)或block(阻塞)状态会影响芯片是否能收到自己发出的报文,进而会影响rlt是否清零还是继续计时。
68.具体实施时,步骤1-3只能确定本来网络就存在环路的,可以把block端口当作成环点,但当网络拓扑新增链路时,此链路确定为成环点,而现有检测技术较少关注到这种新增出现环路的情况,那么可根据新增链路的特性,端口从link down到link up,使其bfc(back to forwarding cycle,恢复forwarding周期,发送周期倍数)延长随机值,若新接入的链路导致环路,其端口一定比其他链路上的端口恢复转发的慢,自然成为block口,作为成环点。
69.本发明的有益效果在于,针对现有的通信系统中存在的问题,提供一种二层网络环路检测定位方法,通过周期性发送私有的环路检测报文,根据私有环路检测报文中的发送端口信息以及smac进行环路判断并阻断流程,不仅支持在多芯片转发设备上定位成环点、阻断环路,还能够减少检测报文对整个网络的转发压力。
70.本发明申请人结合说明书附图对本发明的实施用例做了详细的说明与描述,以上实施用例仅为本发明的优选实施方案,详尽的说明只是为了帮助读者更好地理解本发明精神,而并非对本发明保护范围的限制,相反,任何基于本发明的发明精神所作的任何改进或修饰都应当落在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献