一种堆叠链路防丢包方法、装置及堆叠交换机的制作方法

文档序号:7892518阅读:316来源:国知局
专利名称:一种堆叠链路防丢包方法、装置及堆叠交换机的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种堆叠链路防丢包方法、装置及堆叠交换机。
背景技术
堆叠交换机指的是将多台普通交换机通过专用的或者非专用的线缆(可以称为堆叠线缆)连接起来,虚拟为一台交换机进行管理的方式。堆叠交换机成员(每台普通交换机)间的每条高速堆叠线缆(堆叠链路)上都运行有链路检测协议。当链路检测协议检测到某条堆叠链路正常连通时,链路两端的堆叠交换机成员通过这条堆叠链路传输数据包。两台堆叠交换机成员间有多条堆叠链路时,这两台堆叠交换机成员之间的数据包在多条堆叠链路间实现流量平衡。如果其中一条堆叠链路断开,会将这条堆叠链路上的数据流量切换到其他堆叠链路上,但链路检测协议需要一定时间才能检测到堆叠链路断开, 由此会导致堆叠交换机发生丢包。在正常情况下,堆叠链路断开一般发生在用户插拔或者配置堆叠链路的过程中, 这时发生一定程度的丢包是用户可以接受的。但是,在堆叠链路的线缆存在硬件故障时,可能发生频繁的堆叠链路连接、断开的循环(即抖动)。在抖动发生时,由于堆叠链路的数据流在堆叠链路上反复切换,将导致大量丢包。因此,在多条堆叠链路存在时,需要禁止将数据流切换到正在抖动的堆叠链路上,以避免发生大量丢包。为了避免由于堆叠链路抖动造成的大量丢包,现有技术中一般的做法是给定一个固定的时间窗长度T,如果在该时间窗范围内一条堆叠链路发生的断开次数小于n(n> =D,则认为该堆叠链路不存在抖动,允许将堆叠数据流量切换到该条堆叠链路上,否则, 认为该堆叠链路存在抖动,不允许将堆叠数据流量切换到该条堆叠链路上。而这种方法的缺点在于,如果定义的时间窗长度太短,堆叠链路两次断开的时间间隔长度可能大于时间窗长度,导致抖动识别失效,仍有可能将堆叠数据流量切换到发生抖动的堆叠链路,造成大量丢包。如果定义的时间窗长度太长,对于新加入的堆叠链路,需要长时间的等待判定该堆叠链路没有发生抖动之后,才能将堆叠数据流量切换到该条堆叠链路上,导致新加入的堆叠链路无法迅速分担流量。

发明内容
本发明实施例提供一种堆叠链路防丢包方法、装置及堆叠交换机,用于解决现有的防丢包方法由于时间窗长度固定,定义的时间窗长度太短会导致无法有效防止丢包,以及定义的时间窗长度太长会导致新加入的堆叠链路无法迅速分担流量的问题。一种堆叠链路防丢包方法,所述方法包括确定防抖时间窗长度,并检测堆叠链路连接,所述防抖时间窗长度用于确定堆叠链路是否发生抖动;针对任意一条堆叠链路,从检测到该堆叠链路连接开始计时,若确定出的防抖时间窗长度到达之前,该堆叠链路发生断开,确定该堆叠链路发生抖动,不允许将堆叠数据流量切换到该条堆叠链路上,并保持防抖时间窗长度不变;若确定出的防抖时间窗长度到达时,该堆叠链路未发生断开,确定该堆叠链路没有发生抖动,允许将堆叠数据流量切换到该条堆叠链路上,并在该堆叠链路从本次连接后首次断开时,确定该堆叠链路从连接到断开的时间间隔长度,利用该时间间隔长度更新防抖时间窗长度;并,在确定系统处于运行状态时,继续执行确定防抖时间窗长度,并检测堆叠链路连接的操作;其中,系统首次起机时,初始配置的防抖时间窗长度不大于设定的门限时长。一种堆叠链路防丢包装置,所述装置包括确定单元,用于确定防抖时间窗长度,并检测堆叠链路连接,所述防抖时间窗长度用于确定堆叠链路是否发生抖动,其中,系统首次起机时,初始配置的防抖时间窗长度不大于设定的门限时长;更新单元,用于在确定单元检测到一条堆叠链路连接时,从检测到该堆叠链路连接开始计时,若确定出的防抖时间窗长度到达之前,该堆叠链路发生断开,确定该堆叠链路发生抖动,不允许将堆叠数据流量切换到该条堆叠链路上,并保持防抖时间窗长度不变;若确定出的防抖时间窗长度到达时,该堆叠链路未发生断开,确定该堆叠链路没有发生抖动, 允许将堆叠数据流量切换到该条堆叠链路上,并在该堆叠链路从本次连接后首次断开时, 确定该堆叠链路从连接到断开的时间间隔长度,利用该时间间隔长度更新防抖时间窗长度;循环单元,用于在确定系统处于运行状态、且确定更新单元执行完毕操作时,触发确定单元。一种堆叠交换机,包括如上所述的堆叠链路防丢包装置。根据本发明实施例提供的方案,初始配置较小的防抖时间窗长度,并不断检测堆叠链路每次从连接到断开的时间间隔长度,在该时间间隔长度大于防抖时间窗长度时,利用该时间间隔长度来更新(增大)防抖时间窗长度,从而可以利用不断更新的防抖时间窗长度来检测堆叠链路是否发生抖动,确定是否允许将堆叠数据流量切换到该条堆叠链路上。相对于现有技术提供的固定时间窗长度的方案,本发明提供的利用自动调整的防抖时间窗长度来识别抖动的方案,由于可以通过自动更新不断增大防抖时间窗长度,可以有效解决定义的时间窗长度太短会无法有效识别抖动,导致无法有效防止丢包的问题,且由于防抖时间窗长度从小到大动态增长来确定堆叠链路是否发生抖动,还可以有效解决定义的时间窗长度太长会导致新加入的堆叠链路无法迅速分担流量的问题。


图I为本发明实施例一提供的堆叠链路防丢包方法的步骤流程图;图2为本发明实施例二提供的堆叠链路防丢包方法的步骤流程图;图3为本发明实施例三提供的堆叠链路防丢包装置的结构示意图。
具体实施例方式本发明实施例引入时间窗的自动调整机制。可以从一个较小的初始的防抖时间窗长度开始,系统不断测量端口连接到断开的时间间隔长度,并利用测量出的时间间隔长度来不断增大防抖时间窗长度。若堆叠链路连接后,在自动调整的防抖时间窗长度内发生了一次断开,则认为该堆叠链路发生了抖动,可以禁止将堆叠数据流量切换到该条堆叠链路上,达到既能防丢包又减少新加入链路的收敛时间的效果。下面结合说明书附图和实施例对本发明方案进行说明。实施例一、本发明实施例一提供一种堆叠链路防丢包方法,该方法的步骤流程如图I所示, 包括步骤101、进行初始配置。本步骤包括,配置防抖时间窗长度。防抖时间窗长度用于确定堆叠链路是否发生抖动。在本实施例中,若堆叠链路连接(UP,是指该堆叠链路物理连接上,两端的端口上电, 使得该堆叠链路处在可以通信的状态)后,在防抖时间窗长度内发生了一次断开(DOWN), 则认为该堆叠链路发生了抖动,可以禁止将堆叠数据流量切换到该条堆叠链路上。本实施例提供的方案中,为了防止新加入的堆叠链路需要长时间的等待判定该堆叠链路是否发生抖动,导致新加入的堆叠链路即使没有发生抖动,也无法迅速分担流量的问题,可以初始配置一个较小的防抖时间窗长度,后续可以利用确定出的大于该防抖时间窗长度的、堆叠链路从连接到断开的时间间隔长度来对防抖时间窗长度进行更新。因此在本步骤中可以设定,初始配置的防抖时间窗长度不大于设定的门限时长。 该门限时长可以为I 3秒,当然,该门限时长也可以设置为其他值,如4秒。配置的防抖时间窗长度可以保存在系统的配置文件中,后续可以从配置文件中确定防抖时间窗长度, 并对该配置文件中的防抖时间窗长度进行更新。当然,配置的防抖时间窗长度也可以保存在堆叠链路防丢包装置中。实际上,本步骤是一个可选步骤,存在于系统(该系统可以理解为堆叠交换机)首次起机时,此时,针对该系统尚未进行防抖时间窗长度的配置,因此,可以通过本步骤进行初始配置。若系统不是首次起机,则可以理解为针对该系统已经进行防抖时间窗长度的配置,无需执行本步骤。步骤102、确定防抖时间窗长度,并检测堆叠链路连接。系统首次起机时,在首次检测堆叠链路连接(UP)之前,确定出的防抖时间窗长度即为初始配置的防抖时间窗长度。而在系统首次起机、非首次检测堆叠链路连接或系统非首次起机时,确定出的防抖时间窗长度为更新后的防抖时间窗长度,当然,更新后的防抖时间窗长度可能仍然为初始配置的防抖时间窗长度。步骤103、对防抖时间窗长度进行更新以及流量切换。在本步骤中,可以针对任意一条堆叠链路,从检测到该堆叠链路连接开始计时,若确定出的防抖时间窗长度到达之前,该堆叠链路发生断开(DOWN),确定该堆叠链路发生抖动,不允许将堆叠数据流量切换到该条堆叠链路上,并保持防抖时间窗长度不变;若确定出的防抖时间窗长度到达时,该堆叠链路未发生断开,确定该堆叠链路没有发生抖动,允许将堆叠数据流量切换到该条堆叠链路上,并在该堆叠链路从本次连接后首次断开时,确定该堆叠链路从连接到断开的时间间隔长度,利用该时间间隔长度更新防抖时间窗长度。在本步骤中,可以利用并行处理方式对防抖时间窗长度进行更新。并行处理方式可以理解为在检测到一条堆叠链路连接后,利用该堆叠链路对防抖时间窗长度进行更新,若在利用该堆叠链路对防抖时间窗长度更新过程中,如果检测到其他堆叠链路连接,可以并行利用其他堆叠链路对防抖时间窗长度进行更新;或者可以理解为在同时检测到多条堆叠链路连接后,并行利用检测到连接的每条堆叠链路对防抖时间窗长度进行更新。因此在利用一条堆叠链路从连接到断开的时间间隔长度更新防抖时间窗长度时,非常可能此时的防抖时间窗长度已经不是在检测到该堆叠链路连接之前确定出的防抖时间窗长度,此时可以重新确定防抖时间窗长度,并在确定该时间间隔长度大于重新确定出的防抖时间窗长度时,利用该时间间隔长度更新防抖时间窗长度,否则,保持防抖时间窗长度不变。例如,在检测到一条堆叠链路连接之前确定出的防抖时间窗长度为5s,而在利用该堆叠链路从连接到断开的时间间隔长度,如6s更新防抖时间窗长度时,非常可能此时的防抖时间窗长度已经被其他堆叠链路从连接到断开的时间间隔长度更新为7s,则此时无需对防抖时间窗长度进行更新,应保持7s不变。为了排除人为插拔造成的堆叠链路断开,更好的识别发生抖动的堆叠链路,使得由于人为插拔造成堆叠链路断开、未发生链路抖动的堆叠链路仍可以正常承载数据流量, 进一步的,还可以在确定堆叠链路从连接到断开的时间间隔长度不大于设定时长时,利用该时间间隔长度更新防抖时间窗长度。该设定时长可以设定为4 6分钟,当然,该设定时长也可以设置为其他值,如3分钟。步骤104、判断系统运行状态。可以判断系统运行状态,在步骤103执行完毕之后,如果确定系统在运行过程中, 可以继续跳转执行步骤102,从而实现防抖时间窗长度的不断更新,如果确定系统停止运行,可以结束本流程。并可以将系统停止运行时,更新得到的防抖时间窗长度作为下次系统起机时的防抖时间窗长度。本实施例各步骤的执行主体可以为堆叠链路防丢包装置。下面通过实施例二对本发明实施例一的方案进行说明。具体的,实施例二中的步骤主要针对利用一条堆叠链路对防抖时间窗长度进行更新为例进行说明。该实施例中,可以假设初始配置的防抖时间窗长度为I秒,并可以写入系统配置文件。系统首次起机时, 将I秒作为防抖时间窗长度t。以后每次调整防抖时间窗长度t,都更新到配置文件中。系统再次起机时,就用配置文件中记录的更新后的防抖时间窗长度作为当前的防抖时间窗长度,继续计算。本实施例中以系统首次起机为例进行说明。在该实施例中,可以设定最大的防抖时间窗长度(设定时长)为5分钟,凡是超过这个防抖时间窗长度的,可以认为是人为拔插,而不是硬件故障造成的抖动。实施例二、本发明实施例二提供一种堆叠链路防丢包方法,该方法的步骤流程如图2所示, 包括步骤201、进行初始配置。系统首次起机时,配置文件中不存在对防抖时间窗长度的配置。系统自动配置防抖时间窗长度t为Is。即在堆叠链路建立连接,进入连接(UP)状态(此处的连接状态是指该堆叠链路物理连接上,两端的端口上电,该堆叠链路所处的可以通信的状态)以后,等待超过Is时间以后,如果该堆叠链路一直保持UP状态,认为该堆叠链路是稳定的,将其加入堆叠链路组中,所述堆叠链路组可以理解为确定没有发生抖动,允许将堆叠数据流量切换到的堆叠链路的集合。步骤202、确定防抖时间窗长度,并检测堆叠链路连接。在本步骤中,可以通过读取配置文件确定防抖时间窗长度。在本实施例中,首次检测堆叠链路连接之前,确定出的防抖时间窗长度即为初始配置的Is。且不论是首次检测堆叠链路连接之前,还是非首次检测堆叠链路连接时,确定出的防抖时间窗长度均可以用t 表不。步骤203、对防抖时间窗长度进行更新以及流量切换。系统运行过程中,检测到某条堆叠链路连接。记录下该堆叠链路的连接时间t0,并可以启动该堆叠链路的防抖定时器,该定时器到期时间设定为t。如果在定时器到期前,在该堆叠链路上发生了链路断开事件,则停止防抖定时器, 并维持防抖时间窗长度t不变。此时,确定该堆叠链路发生抖动,不允许将堆叠数据流量切换到该条堆叠链路上。并可以跳转执行步骤204。定时器到期时,在该堆叠链路上没有发生链路断开事件,则认为该堆叠链路是稳定的,将该堆叠链路加入堆叠链路组中。同时继续等待链路断开事件该堆叠链路上发生链路断开事件时,记录下该堆叠链路断开的时间tl。从而可以得到从该堆叠链路连接到该堆叠链路断开的时间间隔时长t’ =ti-to。如果t’是一个不小于5min的值,认为是人为拔插造成的堆叠链路断开,保持防抖时间窗长度t不变,并执行步骤204 ;如果t’不大于5min,则使用t’的值更新t的值,具体的,此时可以再次读取配置文件确定当前的防抖时间窗长度t,并可以在t’的值大于当前的防抖时间窗长度t时,使用t’的值更新配置文件中当前的防抖时间窗长度t的值,作为新的防抖时间窗长度,记录在配置文件中,并执行步骤204。步骤204、确定系统运行状态。在本实施例中,在系统运行过程中,步骤202和步骤203不断的循环执行,以不断更新防抖时间窗长度。即在步骤203执行完毕之后,如果确定系统在运行过程中,可以继续跳转执行步骤202,如果确定系统停止运行,可以结束本流程。并可以将系统停止运行时,更新得到的防抖时间窗长度作为下次系统起机时的防抖时间窗长度。当然,如果用户通过更换硬件解决了堆叠链路的抖动问题,可以通过配置命令直接清除系统学习到的防抖时间窗长度,即将防抖时间窗长度初始化为初始配置值,以便开始下一轮防抖时间窗长度的调整过程。根据本发明实施例一和实施例二提供的方案,通过自动调整防抖时间窗长度,简化了用户配置,提供了更好的使用体验,达到根据系统状态动态调整防抖时间窗长度的目的。且克服了固定长度防抖时间窗在配置的防抖时间窗太短时,引起链路反复震荡,以及配置的防抖时间窗太长时,链路收敛慢的弊端。且在本发明实施例一和实施例二提供的方案的基础上,可以对防抖时间窗长度调整方法进行改进,如使用神经网络等学习方式进行防抖时间窗长度调整。另外,本发明实施例一和实施例二提供的方案不仅可以应用于堆叠链路防抖环境下,还可以应用在一般的链路防抖环境下。与本发明实施例一和实施例二基于同一发明构思,提供以下的装置和堆叠交换机。实施例三、
本发明实施例三提供一种堆叠链路防丢包装置,该装置的结构可以如图3所示, 包括确定单元11用于确定防抖时间窗长度,并检测堆叠链路连接,所述防抖时间窗长度用于确定堆叠链路是否发生抖动,其中,系统首次起机时,初始配置的防抖时间窗长度不大于设定的门限时长;更新单元12用于在确定单元检测到一条堆叠链路连接时,从检测到该堆叠链路连接开始计时,若确定出的防抖时间窗长度到达之前,该堆叠链路发生断开,确定该堆叠链路发生抖动,不允许将堆叠数据流量切换到该条堆叠链路上,并保持防抖时间窗长度不变;若确定出的防抖时间窗长度到达时,该堆叠链路未发生断开,确定该堆叠链路没有发生抖动,允许将堆叠数据流量切换到该条堆叠链路上,并在该堆叠链路从本次连接后首次断开时,确定该堆叠链路从连接到断开的时间间隔长度,利用该时间间隔长度更新防抖时间窗长度;循环单元13用于在确定系统处于运行状态、且更新单元执行完毕操作后,触发确定单元。更新单元12具体用于重新确定防抖时间窗长度,在确定时间间隔长度大于重新确定出的防抖时间窗长度时,利用时间间隔长度更新防抖时间窗长度,否则,保持防抖时间窗长度不变。更新单元12具体用于确定时间间隔长度不大于设定时长时,利用时间间隔长度更新防抖时间窗长度。实施例三提供的堆叠链路防丢包装置可以集成在堆叠交换机中,即堆叠交换机中可以包括所述堆叠链路防丢包装置的各功能模块并实现相应的功能。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种堆叠链路防丢包方法,其特征在于,所述方法包括确定防抖时间窗长度,并检测堆叠链路连接,所述防抖时间窗长度用于确定堆叠链路是否发生抖动;针对任意一条堆叠链路,从检测到该堆叠链路连接开始计时,若确定出的防抖时间窗长度到达之前,该堆叠链路发生断开,确定该堆叠链路发生抖动,不允许将堆叠数据流量切换到该条堆叠链路上,并保持防抖时间窗长度不变;若确定出的防抖时间窗长度到达时,该堆叠链路未发生断开,确定该堆叠链路没有发生抖动,允许将堆叠数据流量切换到该条堆叠链路上,并在该堆叠链路从本次连接后首次断开时,确定该堆叠链路从连接到断开的时间间隔长度,利用该时间间隔长度更新防抖时间窗长度;并,在确定系统处于运行状态时,继续执行确定防抖时间窗长度,并检测堆叠链路连接的操作;其中,系统首次起机时,初始配置的防抖时间窗长度不大于设定的门限时长。
2.如权利要求I所述的方法,其特征在于,利用该时间间隔长度更新防抖时间窗长度, 具体包括重新确定防抖时间窗长度;在确定该时间间隔长度大于重新确定出的防抖时间窗长度时,利用该时间间隔长度更新防抖时间窗长度,否则,保持防抖时间窗长度不变。
3.如权利要求I或2所述的方法,其特征在于,所述门限时长为I 3秒。
4.如权利要求I或2所述的方法,其特征在于,利用该时间间隔长度更新防抖时间窗长度,具体包括确定该时间间隔长度不大于设定时长时,利用该时间间隔长度更新防抖时间窗长度。
5.如权利要求4所述的方法,其特征在于,所述设定时长为4 6分钟。
6.一种堆叠链路防丢包装置,其特征在于,所述装置包括确定单元,用于确定防抖时间窗长度,并检测堆叠链路连接,所述防抖时间窗长度用于确定堆叠链路是否发生抖动,其中,系统首次起机时,初始配置的防抖时间窗长度不大于设定的门限时长;更新单元,用于在确定单元检测到一条堆叠链路连接时,从检测到该堆叠链路连接开始计时,若确定出的防抖时间窗长度到达之前,该堆叠链路发生断开,确定该堆叠链路发生抖动,不允许将堆叠数据流量切换到该条堆叠链路上,并保持防抖时间窗长度不变;若确定出的防抖时间窗长度到达时,该堆叠链路未发生断开,确定该堆叠链路没有发生抖动,允许将堆叠数据流量切换到该条堆叠链路上,并在该堆叠链路从本次连接后首次断开时,确定该堆叠链路从连接到断开的时间间隔长度,利用该时间间隔长度更新防抖时间窗长度;循环单元,用于在确定系统处于运行状态、且确定更新单元执行完毕操作后,触发确定单元。
7.如权利要求6所述的装置,其特征在于,更新单元,具体用于重新确定防抖时间窗长度,在确定时间间隔长度大于重新确定出的防抖时间窗长度时,利用时间间隔长度更新防抖时间窗长度,否则,保持防抖时间窗长度不变。
8.如权利要求6所述的装置,其特征在于,更新单元,具体用于确定时间间隔长度不大于设定时长时,利用时间间隔长度更新防抖时间窗长度。
9.一种堆叠交换机,其特征在于,所述堆叠交换机包括如权利要求6 8任一所述的装置。
全文摘要
本发明实施例提供一种堆叠链路防丢包方法、装置及堆叠交换机,包括初始配置较小的防抖时间窗长度,并不断检测堆叠链路每次从连接到断开的时间间隔长度,在该时间间隔长度大于防抖时间窗长度时,利用该时间间隔长度来更新(增大)防抖时间窗长度,从而可以利用不断更新的防抖时间窗长度来检测堆叠链路是否发生抖动,确定是否允许将堆叠数据流量切换到该条堆叠链路上。由于可以通过自动更新不断增大防抖时间窗长度,可以解决时间窗长度太短无法有效防止丢包的问题,且由于防抖时间窗长度从小到大动态增长来确定堆叠链路是否发生抖动,还可以解决时间窗长度太长导致新加入的堆叠链路收敛慢的问题。
文档编号H04L12/56GK102594710SQ20121008577
公开日2012年7月18日 申请日期2012年3月28日 优先权日2012年3月28日
发明者俞寿华 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1