以太网双归链路保护中的报文发送方法和装置 【技术领域】
本发明涉及以太网双归链路保护切换技术,尤其涉及一种以太网双归链路保护中的报文发送方法和装置。
背景技术
双归组网是目前常用的组网技术之一,这种组网技术能够通过链路故障情况下主备链路的切换来提高网络的可靠性。正常情况下,流量通过主用链路,当主用链路发生故障时,将流量保护切换到备用链路,以此在功能上实现数据的冗余备份,在性能上提高网络传输的可靠性。
在实际应用中,由于双归链路发生保护切换后,网络中各个设备的媒体访问控制(MAC,Media Access Control)地址表项将不再适用;因此,为将保护切换的收敛时间控制在50毫秒(ms)之内,网络中配置了保护组的交换节点将通过链路保护切换后新的转发端口,向其上游交换节点发送Flush报文,通知上游交换节点进行MAC地址表项的更新,并启动定时周期为T的定时器等待上游交换节点的确认消息,即Flush ACK报文。如图1所示,为现有技术中以太网双归链路的示意图,S1为配置了以太网双归链路保护组的网络交换节点,Link 1和Link 2分别代表主用链路和备用链路,并分别对应S1的主端口和从端口。正常情况下,流量通过Link 1从S1主端口转发到网络交换节点S2;当S1检测到主端口或者主用链路发生故障时,立即启用保护组的保护切换机制,将流量切换到S1从端口及其对应的Link 2上,通过从端口和Link 2向上游交换节点发送Flush报文,通知上游交换节点进行MAC地址表项的更新,并启动定时周期为T的定时器进行计时;上游交换节点收到Flush报文后,更新自身MAC地址表项,转发该Flush报文,并向S1返回表示确认的Flush ACK报文。
实际应用中存在这样的情况:如果配置了保护组的交换节点在未收到来自上游交换节点的Flush ACK报文之前,定时器超时,则配置了保护组的交换节点继续对Flush报文进行重传,直到收到合法的F1ush ACK报文,然后关闭定时器。关于报文丢失导致定时器超时的具体处理流程,如图2和图3所示。图2为Flush报文丢失情况的处理流程示意图,该处理流程主要包括以下步骤:
步骤201,配置了保护组的交换节点S1执行保护切换,向其上游交换节点S4/S5发送Flush报文,并启动定时周期为T的定时器,等待上游交换节点返回Flush ACK报文。
步骤202,定时器超时,S1没有收到Flush ACK报文,则S1重新发送Flush报文。
步骤203,如果S1始终无法收到Flush ACK报文,则以T为周期向其上游交换节点持续发送Flush报文;直到S1收到来自其上游交换节点的合法FlushACK报文,才停止发送Flush报文,并关闭定时器。
图3为Flush ACK报文丢失情况的处理流程示意图,该处理流程主要包括以下步骤:
步骤301,配置了保护组的交换节点S1执行保护切换,向其上游交换节点S4/S5发送Flush报文,并启动定时周期为T的定时器,等待上游交换节点返回Flush ACK报文。
步骤302,上游交换节点收到来自S1的Flush报文后,进行MAC地址表项更新,并向S1返回Flush ACK报文,但是Flush ACK报文丢失未能到达S1。
步骤303,定时器超时,S1没有收到Flush ACK报文,则S1重新发送Flush报文。
步骤304,上游交换节点收到来自S1的Flush报文后,再次更新MAC地址表项,并向S1返回Flush ACK报文,但是Flush ACK报文丢失依然未能到达S1。
步骤305,如果S1始终无法收到Flush ACK报文,则以T为周期向其上游交换节点持续发送Flush报文。
步骤306,上游交换节点根据不断接收到的Flush报文,不断更新MAC地址表项,并向S1返回Flush ACK报文。
由上述图2、图3所示的处理流程可以看出,在这种机制下,如果Flush报文或Flush ACK报文一旦丢失,或者上游交换节点未配置返回Flush ACK报文的机制,导致配置了保护组的交换节点始终无法接收到合法的Flush ACK报文,则配置了保护组的交换节点将周期性的持续发送Flush报文,每发送一次Flush报文,将引发一次全网震荡,如此将导致网络的稳定性严重恶化。
【发明内容】
有鉴于此,本发明的主要目的在于提供一种以太网双归链路保护中的报文发送方法和装置,在确保以太网双归链路快速保护切换的前提下,提高网络的稳定性。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种以太网双归链路保护中的报文发送方法,包括:
在执行保护切换时,向上游交换节点发送Flush报文,启动定时器等待FlushACK报文,并启动重传计数器记录所述Flush报文的重发次数;
在判断所述定时器超时之前若收到来自所述上游交换节点的Flush ACK报文,则关闭定时器,将重传计数器清零;
在判断所述Flush报文的重发次数达到设置的最大允许发送次数时,停止所述Flush报文的重发,并关闭定时器,将重传计数器清零。
在所述执行保护切换时,该方法进一步包括:设置定时器、重传计数器和最大允许发送次数。
所述最大允许发送次数不超过最长媒体访问控制MAC地址老化时间除以定时器周期所得的值。
所述重传计数器的初始值为0。
所述方法进一步包括:如果在所述定时器超时之前,未收到来自所述上游交换节点地Flush ACK报文,则对所述Flush报文进行重发,重启定时器,并将重传计数器加1。
如果在关闭定时器并将重传计数器清零之后,收到来自所述上游交换节点的Flush ACK报文,则对所述Flush ACK报文进行丢弃处理。
本发明还提供了一种以太网双归链路保护中的报文发送装置,包括:
报文发送单元,用于在执行保护切换时,向上游交换节点发送Flush报文;
定时器,连接所述报文发送单元,用于在发送所述Flush报文时进行计时;
重传计数器,连接所述报文发送单元,用于记录所述Flush报文的重发次数;
重发控制单元,连接所述重传计数器和报文发送单元,用于在判断所述Flush报文的重发次数达到设置的最大允许发送次数时,停止所述Flush报文的重发,并关闭定时器,将重传计数器清零。
所述装置进一步包括:设置单元,连接所述定时器和重传计数器,用于设置定时器、重传计数器和最大允许发送次数。
本发明所提供的一种以太网双归链路保护中的报文发送方法和装置,为限制Flush报文的无限次重传,在配置了保护组的交换节点上设置发送Flush报文的最大允许发送次数,而设置的最大允许发送次数通常不应超过最长MAC地址老化时间除以定时器T所得的值;通过设置的最大允许发送次数,控制Flush报文有限次发送,并将Flush报文的发送周期尽量限制在MAC地址老化之前,这样即使Flush报文始终无法成功发送,也会因MAC地址的老化而自动更新,如此在保证以太网双归链路快速保护切换的前提下,能够有效防止持续发送Flush报文导致的网络不断刷新,降低由于发送Flush报文引发的全网震荡次数,从而大大提高网络的稳定性。
【附图说明】
图1为现有技术中以太网双归链路的示意图;
图2为现有技术中Flush报文丢失情况的处理流程图;
图3为现有技术中Flush ACK报文丢失情况的处理流程图;
图4为本发明中一种以太网双归链路保护中的报文发送方法的流程图;
图5为本发明实施例的报文发送方法的流程图;
图6为本发明一种以太网双归链路保护中的报文发送装置的组成结构示意图。
【具体实施方式】
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
本发明所提供的一种以太网双归链路保护中的报文发送方法,如图4所示,该方法主要包括以下步骤:
步骤401,以太网双归链路中配置了保护组的交换节点上设置重传计数器和最大允许发送次数,重传计数器的初始值默认为N=0。
需要指出的是,最大允许发送次数可以根据实际需要进行灵活设置,而通常设置最大允许发送次数不应超过最长MAC地址老化时间除以定时器周期T所得的值,因为交换节点每经历一次MAC地址老化时间,都会因MAC地址老化而自动更新MAC地址表项。如果设置的最大允许发送次数超过最长MAC地址老化时间除以定时器周期T所得的值,那么由于链路故障等原因造成Flush报文不断重发,并且当Flush报文重发所经历的时间超过了最长MAC地址老化时间时,由于Flush报文的重发次数还未达到设置的最大允许发送次数,因此Flush报文会仍然持续重发;可想而知,交换节点在经历了MAC地址老化时间后,已经自动更新了MAC地址表项,因此,在经历了最长MAC地址老化时间后,交换节点的MAC地址表项已经得到了更新,再继续重发Flush报文已经没有任何意义。
步骤402,配置了保护组的交换节点在执行保护切换时,向其上游交换节点发送Flush报文,并启动定时器开始计时,重传计数器的N值自动加1。
配置了保护组的交换节点发送Flush报文,同时启动定时器开始计时,并等待上游交换节点返回的Flush ACK报文。定时器的周期为T,即发送Flush报文后等待T的时间,如果没有收到上游交换节点返回的Flush ACK报文,则判定本次Flush报文发送失败。重传计数器的N值在每发送一次Flush报文后,自动加1,例如:配置了保护组的交换节点第一次发送Flush报文时,重传计数器的N值为1,第二次发送相同的Flush报文时,重传计数器的N值变更为2,依次类推。
步骤403,判断重传计数器的N值是否达到设置的最大允许发送次数,如果达到,则执行步骤405;否则,执行步骤404。
实际应用中,如果设置的最大允许发送次数恰好为最长MAC地址老化时间除以定时器周期T所得的值,则将重传计数器的N值与设置的最大允许发送次数进行比较时,如果N值达到或超出了最大允许发送次数,则表明进行Flush报文重传的时间已经达到或超过了最长MAC地址老化时间,继续执行步骤405;如果N值还未达到最大允许发送次数,则表明进行Flush报文重传的时间还未达到最长MAC地址老化时间,执行步骤404。
步骤404,判断定时器超时前是否收到来自上游交换节点的合法的FlushACK报文,如果是,则执行步骤405;否则,返回执行步骤402。
如果配置了保护组的交换节点在发送Flush报文等待的时间达到定时器周期T,但还未收到来自上游交换节点的合法的Flush ACK报文,则执行步骤405;如果等待的时间未达到定时器周期T即收到来自上游交换节点的合法的FlushACK报文,则返回执行步骤402,重新发送相同的Flush报文,并重新计时,而且重传计数器的N值自动加1。
步骤405,关闭定时器,将重传计数器的N值清零,并结束整个流程。
当步骤403中判断重传计数器的N值达到设置的最大允许发送次数时,或者步骤404中在定时器超时前收到合法的Flush ACK报文时,执行步骤405,关闭定时器,并将重传计数器的N值清零,结束整个流程。
由上述的方法分析可知,本发明根据实际需要灵活设置Flush报文的最大允许发送次数,从而控制Flush报文的有限次发送,在保证以太网双归链路快速保护切换的前提下,避免了由于持续发送Flush报文导致网络不断刷新的情况发生,降低了由于发送Flush报文引发的全网震荡次数,从而大大提高网络的稳定性。
下面结合图1所示的以太网双归链路,以Flush ACK报文丢失的情况为例,对上述的报文发送方法进一步详细阐述。如图5所示,图5为本发明实施例的报文发送方法的流程图,图中配置了保护组的交换节点S1上设置了定时器、重传计数器和最大允许发送次数,重传计数器的初始值默认为N=0,定时器的周期为T。该方法主要包括以下步骤:
步骤501,配置了保护组的交换节点S1执行保护切换,向其上游交换节点S4/S5发送Flush报文,并启动定时器等待上游交换节点返回的Flush ACK报文,重传计数器的N值加1。
步骤502,上游交换节点收到Flush报文后,进行MAC地址表项更新,并向S1返回表示确认的Flush ACK报文,但是Flush ACK报文丢失未能到达S1。
步骤503,定时器超时,S1没有收到Flush ACK报文,则重新发送Flush报文,定时器重新计时,重传计数器的N值加1。
步骤504,上游交换节点收到Flush报文后,进行MAC地址表项更新,并向S1返回Flush ACK报文,但是Flush ACK报文丢失仍未能到达S1。
步骤505,定时器再次超时,S1仍没有收到FlushACK报文,则继续重发Flush报文,重传计数器的N值加1,但此时N值已经达到设置的最大允许发送次数,S1关闭定时器,并将重传计数器的N值清零。
步骤506,上游交换节点收到Flush报文后,进行MAC地址表项更新,并向S1返回Flush ACK报文。
需要指出的是,在步骤505之后,S1不再继续等待来自上游交换节点的Flush ACK报文,即使收到Flush ACK报文也做丢弃处理。另外,在这个过程中,如果因Flush报文丢失而不能进行上游交换节点的MAC地址表项更新,则关闭定时器后也会因MAC地址老化进行自动更新。
为实现上述本发明的以太网双归链路保护中的报文发送方法,本发明中还提供了一种以太网双归链路保护中的报文发送装置,如图6所示,该装置主要包括:设置单元10、报文发送单元20、定时器30、重传计数器40和重发控制单元50。其中,设置单元10,用于设置定时器30、重传计数器40和最大允许发送次数。报文发送单元20,用于在执行保护切换时,向上游交换节点发送Flush报文。定时器30,连接设置单元10和报文发送单元20,用于在发送Flush报文时进行计时。重传计数器40,连接设置单元10和报文发送单元20,用于记录Flush报文的重发次数。重发控制单元50,连接重传计数器40和报文发送单元20,用于在判断Flush报文的重发次数达到设置的最大允许发送次数时,停止Flush报文的重发,并通知定时器30关闭,通知重传计数器40执行清零操作。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。