本申請涉及網絡通信技術領域,特別涉及一種基于erps協議的保護倒換方法和裝置。
背景技術:
在同一個局域網內,存在由若干個交換機組成的單以太網環,每一個交換機為一個節點。該單以太網環包括一個主節點和若干從節點,各節點均存在與相鄰節點相連的兩個端口,其中主節點上的所述兩個端口分為主端口和副端口,從節點上的所述兩個端口不區分為主副端口。在網絡正常運行時,主節點上的所述主端口為轉發狀態,所述副端口為阻塞狀態,從節點上的所述兩個端口均為轉發狀態。在環網中任一鏈路中出現故障時,主節點可以將所述副端口設置為轉發狀態,并且故障鏈路所在的兩個節點可以將故障鏈路一側的端口設置為阻塞狀態。
當故障鏈路恢復正常狀態時,原故障鏈路所在的兩個節點可以向主節點發送nr消息;其中,所述nr消息用于通知主節點和其它各從節點鏈路故障恢復的消息。當主節點從主、副端口均接收到nr報文時,觸發主節點上預設的定時器,其中,該定時器預設了定時時間。如果定時器超時,主節點可以將副端口設置為阻塞狀態,并可以從主、副端口同時發出nrrb消息;其中,所述nrrb消息用于通知各從節點故障鏈路恢復轉發狀態的消息。當原故障鏈路所在的兩個節點接收到nrrb消息時,可以將原故障鏈路一側的端口設置為轉發狀態。
然而,在現有技術中,可能會出現原故障鏈路所在的兩個節點中任一節點在主節點發出nrrb消息后無法接收到所述nrrb消息的情況。當出現這樣的情況時,在現有技術中,所述未接收到nrrb消息的節點需要等待該節點上預先設置的故障鏈路恢復轉發狀態的定時器超時時,才可以將原故障鏈路一側的端口設置為轉發狀態。
在現有技術中,由于在等待故障鏈路恢復轉發狀態的定時器超時的這段時間內,主節點的副端口處于阻塞狀態,所有經過主節點的需要轉發的數據報文只能從主端口轉發出去,然而在這段時間內,需要通過原故障鏈路轉發出去的數據報文無法通過原故障鏈路繼續轉發,從而會導致數據報文丟失數量的增加。
技術實現要素:
有鑒于此,本申請提供一種基于erps協議的保護倒換方法和裝置,應用于以太網環的主節點和任一從節點,所述以太網環為同一局域網中的單以太網環,采用本申請提供的技術方案,可以在以太網環的故障鏈路恢復時,加快以太網的收斂速度,從而減少數據報文的丟失。
具體地,本申請是通過如下技術方案實現的:
一種基于erps協議的保護倒換方法,應用于以太網環中的任一從節點,所述以太網環為同一局域網中的單以太網環,所述以太網環中包括一個主節點和若干個從節點,其中所述主節點的兩側端口中的任意一側端口在所述以太網環鏈路正常狀態時被設置為阻塞狀態,包括:
當檢測到本節點與任意一側的鄰居節點之間的目標鏈路發生故障時,通過另一側的正常鏈路向主節點,以及其它從節點發送sf消息;
當所述目標鏈路恢復正常時,通過另一側的正常鏈路向主節點發送nr消息,并將所述目標鏈路一側的第一端口設置為阻塞狀態,以及在本節點上啟動第一定時器,以使主節點接收到所述nr消息后在所述主節點上啟動第二定時器;其中,所述第一定時器與所述第二定時器的定時時長相同;
接收主節點在所述第二定時器超時時,通過兩側端口同時發送的對應于所述目標鏈路的nrrb消息,并將所述目標鏈路一側的第一端口恢復為轉發狀態;以及,
在所述第一定時器超時后,通過另一側的正常鏈路向主節點再次發送nr消息,并在接收到所述主節點再次接收到所述nr消息后立即通過兩側端口同時發出的nrrb消息時,通過所述第一端口將所述nrrb消息發送至所述目標鏈路一側的對端節點的第二端口,以觸發所述第二端口恢復為轉發狀態。
一種基于erps協議的保護倒換方法,應用于以太網環中的主節點,所述以太網環為同一局域網的單以太網環,所述以太網環中包括一個主節點和若干個從節點,其中所述主節點的兩個端口中任意一側端口在所述以太網環鏈路正常狀態時被設置為阻塞狀態,包括:
當任一從節點與任意一側的鄰居節點之間的目標鏈路發生故障時,接收所述從節點通過另一側的正常鏈路發送的sf消息;
當所述目標鏈路恢復正常時,接收所述從節點通過另一側的正常鏈路發送的nr消息,并在接收到所述nr消息后在本節點上啟動第二定時器;其中,所述第二定時器與所述從節點發送nr消息后在所述從節點上啟動的第一定時器的定時時長相同;
當所述第二定時器超時后,通過兩側端口同時發送對應于所述目標鏈路的nrrb消息,以使所述從節點將所述目標鏈路的一側的第一端口恢復為轉發狀態;以及,
接收所述從節點在所述第一定時器超時后,通過另一側的正常鏈路再次發送的nr消息,并在本節點接收到所述nr消息后立即通過兩側端口再次同時發送nrrb消息,以使所述從節點再次接收到所述nrrb消息后將所述nrrb消息發送至所述目標鏈路一側的對端節點的第二端口,以觸發所述第二端口恢復為轉發狀態。
一種基于erps協議的保護倒換裝置,應用于以太網環中的任一從節點,所述以太網環為同一局域網中的單以太網環,所述以太網環中包括一個主節點和若干個從節點,其中所述主節點的兩側端口中的任意一側端口在所述以太網環鏈路正常狀態時被設置為阻塞狀態,包括:
sf消息發送單元,用于當檢測到本節點與任意一側的鄰居節點之間的目標鏈路發生故障時,通過另一側的正常鏈路向主節點,以及其它從節點發送sf消息;
nr消息發送單元,用于當所述目標鏈路恢復正常時,通過另一側的正常鏈路向主節點發送nr消息,并將所述目標鏈路一側的第一端口設置為阻塞狀態,以及在本節點上啟動第一定時器,以使主節點接收到所述nr消息后在所述主節點上啟動第二定時器;其中,所述第一定時器與所述第二定時器的定時時長相同;
nrrb消息接收單元,用于接收主節點在所述第二定時器超時時,通過兩側端口同時發送的對應于所述目標鏈路的nrrb消息,并將所述目標鏈路一側的第一端口恢復為轉發狀態;以及,
nrrb消息發送單元,用于在所述第一定時器超時后,通過另一側的正常鏈路向主節點再次發送nr消息,并在接收到所述主節點再次接收到所述nr消息后立即通過兩側端口同時發出的nrrb消息時,通過所述第一端口將所述nrrb消息發送至所述目標鏈路一側的對端節點的第二端口,以觸發所述第二端口恢復為轉發狀態。
一種基于erps協議的保護倒換裝置,應用于以太網環中的主節點,所述以太網環為同一局域網的單以太網環,所述以太網環中包括一個主節點和若干個從節點,其中所述主節點的兩個端口中任意一側端口在所述以太網環鏈路正常狀態時被設置為阻塞狀態,包括:
sf消息接收單元,用于當任一從節點與任意一側的鄰居節點之間的目標鏈路發生故障時,接收所述從節點通過另一側的正常鏈路發送的sf消息;
nr消息接收單元,用于當所述目標鏈路恢復正常時,接收所述從節點通過另一側的正常鏈路發送的nr消息,并在接收到所述nr消息后在本節點上啟動第二定時器;其中,所述第二定時器與所述從節點發送nr消息后在所述從節點上啟動的第一定時器的定時時長相同;
nrrb消息發送單元,用于當所述第二定時器超時后,通過兩側端口同時發送對應于所述目標鏈路的nrrb消息,以使所述從節點將所述目標鏈路的一側的第一端口恢復為轉發狀態;以及,
nr消息接收單元,用于接收所述從節點在所述第一定時器超時后,通過另一側的正常鏈路再次發送的nr消息;
nrrb消息發送單元,用于在本節點接收到所述nr消息后立即通過兩側端口再次同時發送nrrb消息,以使所述從節點再次接收到所述nrrb消息后將所述nrrb消息發送至所述目標鏈路一側的對端節點的第二端口,以觸發所述第二端口恢復為轉發狀態。
由于在本申請中,所述目標鏈路所在的兩個從節點,不再檢測所述第二定時器超時后是否接收到所述主節點發送的nrrb消息,而是直接向所述主節點再次發送nr消息。由于在本申請中限定了所述目標鏈路所在的兩個節點中有一個節點可以接收到所述主節點第一次發送的nrrb消息,因此,可以接收到所述主節點第一次發送的nrrb消息的節點,可以將再次接收到的nrrb消息通過所述目標鏈路發送至對端節點。所述對端節點接收到所述nrrb消息后,可以立即將所述目標鏈路一側的端口恢復成轉發狀態。因此,可以節省現有技術中等待所述目標鏈路所在的從節點,在確定所述nrrb消息丟失后啟動的鏈路恢復轉發狀態的定時器超時的這段時間。從而,可以加快以太網環故障恢復后的收斂速度,減少數據報文的丟失。
附圖說明
圖1為本申請示例性示出的一種單以太網環的示意圖;
圖2為本申請示出的一種單以太網環出現鏈路故障的示意圖;
圖3為本申請示出的一種單以太網環鏈路故障恢復的示意圖;
圖4為本申請示出的一種單以太網環主節點恢復正常狀態的示意圖;
圖5為本申請實施例示例性示出的一種基于erps協議的保護倒換方法流程圖;
圖6為本申請實施例示例性示出的一種在第一定時器和第二定時器超時時以太網環的示意圖;
圖7為本申請實施例示例性示出的主節點再次發送nrrb消息時以太網環的示意圖;
圖8為本申請一種基于erps協議的保護倒換裝置所在從節點的一種硬件結構圖;
圖9為本申請實施例示例性示出的一種基于erps協議的保護倒換裝置;
圖10為本申請一種基于erps協議的保護倒換裝置所在主節點的一種硬件結構圖;
圖11為本申請實施例示例性示出的另一種基于erps協議的保護倒換裝置。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。
在本申請使用的術語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權利要求書中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指并包含一個或多個相關聯的列出項目的任何或所有可能組合。
應當理解,盡管在本申請可能采用術語第一、第二、第三等來描述各種信息,但這些信息不應限于這些術語。這些術語僅用來將同一類型的信息彼此區分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“響應于確定”。
請參見圖1,圖1為本申請示例性示出的一種單以太網環的示意圖。
其中,該單以太網環由若干個交換機組成,每一個交換機為一個節點。該單以太網環包括一個主節點和若干個從節點,各節點均存在兩個端口,其中主節點上的所述兩個端口分為主端口和副端口,從節點上的所述兩個端口不區分為主、副端口。
例如,如圖1所示的單以太網環包括6個交換機,分別為swa、swb、swc、swd、swe、swf。其中,swa為該單以太網環的主節點。每一個節點均存在兩個端口,分別為端口a,端口b。其中,主節點上的端口a為主端口,端口b為副端口。
在現有技術中,為了檢測該環網運行是否正常,各節點均會向相鄰節點周期性地發送ccm(continuitycheckmessage,連接性檢查消息)消息。如果本端節點向對端節點發送ccm消息后,未接收到對端節點的響應報文,則確定本端節點與對端節點之間的鏈路出現故障。如果本端節點向對端節點發送ccm消息后,接收到對端節點的響應報文,則確定本端節點與對端節點之間的鏈路運行正常。
在該環網運行正常時,主節點上的主端口設置為轉發狀態,副端口設置為阻塞狀態;其中,轉發狀態是指該節點可以通過該端口發送數據報文以及控制報文,阻塞狀態是指該節點可以通過該端口發送控制報文,但是不能發送數據報文。
請參見圖2,圖2為本申請示出的一種單以太網環出現鏈路故障的示意圖。
在該環網出現故障時,故障鏈路所在的節點可以將故障鏈路一側的端口設置為阻塞狀態,并通過另一側的正常鏈路發送sf消息;其中,所述sf消息用于通知主節點和其它各從節點鏈路出現故障的消息。
例如,如圖2所示,當節點swb和節點swc之間的鏈路出現故障時,節點swb可以將端口a設置為阻塞狀態,節點swc可以將端口b設置為阻塞狀態。然后節點swb通過端口b發送sf消息,節點swc通過端口a發送sf消息。
當主節點接收到sf消息時,可以將副端口設置為轉發狀態,保證環網各節點保持正常通信。例如,如圖2所示,當節點swa接收到sf消息時,可以將端口b設置為轉發狀態。
請參見圖3,圖3為本申請示出的一種單以太網環鏈路故障恢復的示意圖。
當故障鏈路恢復時,原故障鏈路所在的節點可以通過另一側的正常鏈路發送nr消息,并啟動預先設置的定時器。其中,原故障鏈路所在的節點上此時啟動的定時器用于判斷主節點在其節點上設置的定時器超時時發送的nrrb消息是否在發送過程中丟失。如果在原故障鏈路所在節點上的定時器超時后,所述節點未接收到主節點發送的nrrb消息,則確定所述nrrb消息在發送過程已經丟失。
當主節點接收到nr消息時,主節點可以啟動預先設置的定時器。其中,主節點上設置的該定時器用于等待原故障鏈路完全恢復穩定狀態,避免原故障鏈路間歇性故障導致主節點頻繁切換副端口的狀態。
其中,原故障鏈路所在的節點此時啟動的定時器和主節點接收到nr消息后啟動的定時器的定時時長相同。
例如,如圖3所示,當節點swb和節點swc之間的鏈路的故障恢復后,節點swb可以通過端口b發送nr消息,節點swc可以通過端口a發送nr消息,同時,節點swb和節點swc可以啟動預先設置的定時器。當節點swa接收到nr消息時,可以啟動預先設置的定時器。
請參見圖4,圖4為本申請示出的一種單以太網環主節點恢復正常狀態的示意圖。
如果主節點上預設的定時器超時,主節點可以將副端口設置為阻塞狀態,然后通過主端口和副端口同時發出nrrb消息。例如,如圖4所示,如果節點swa上預設的定時器超時,節點swa可以將端口b設置為阻塞狀態,然后可以通過端口a和端口b同時發出nrrb消息。
然而,在主節點將nrrb消息發送至原故障鏈路所在的節點的過程中,該nrrb消息可能會丟失。如果原故障鏈路所在的節點,在其節點上預設的定時器未超時時接收到nrrb消息,則確定nrrb消息未丟失。在這樣的情況下,該節點可以將原故障鏈路一側的端口設置為轉發狀態,同時,可以清除mac表項和arp(addressresolutionprotocol,地址解析協議)/nd(neighbordiacovery,鄰居發現協議)表項。
如果原故障鏈路所在的節點,在其節點上預設的定時器超時后未接收到nrrb消息,則確定nrrb消息丟失。在這樣的情況下,該節點可以啟動另外一個預先設置的鏈路恢復轉發狀態的定時器。其中,該定時器用于主動將原故障鏈路一側的端口設置轉發狀態,為了加快環網的收斂速度,該定時器所設置的定時時長通常較短。當該定時器超時時,該節點可以主動將原故障鏈路一側的端口設置為轉發狀態。例如,如圖4所示,節點swc或節點swb在發送nr消息后啟動的定時器超時后,未接收到主節點發出的nrrb消息時,可以啟動另外一個預先設置的鏈路恢復轉發狀態的定時器。
綜上所述,在現有技術中,由于在等待鏈路恢復轉發狀態的定時器超時的這段時間內,主節點的副端口處于阻塞狀態,所有經過主節點的需要轉發的數據報文只能從主端口轉發出去,然而在這段時間內,需要通過原故障鏈路轉發出去的數據報文無法通過原故障鏈路繼續轉發,從而會導致數據報文丟失數量的增加。
為了解決現有技術中的問題,本申請提出了一種基于erps協議的保護倒換的方法,應用于以太網環的主節點和任一從節點。所述以太網環為同一局域網中的單以太網環,所述以太網環中包括一個主節點和若干個從節點,其中所述主節點的兩側端口中的任意一側端口在所述以太網環鏈路正常狀態時被設置為阻塞狀態,在所述以太網環鏈路正常狀態時被設置為阻塞狀態的端口稱為副端口,另外一個被設置為轉發狀態的端口稱為主端口。
以下通過具體的實施例和示意圖對本申請提出的技術方案進行描述。
請參見圖5,圖5為本申請實施例示例性示出的一種基于erps協議的保護倒換方法流程圖。其中,當所述第二定時器超時后,所述目標鏈路所在的兩個節點中有一個節點可以接收到所述主節點發送的nrrb消息,另一個節點無法收到nrrb消息,具體執行以下步驟:
步驟501:當任一從節點檢測到本節點與任意一側的鄰居節點之間的目標鏈路發生故障時,通過另一側的正常鏈路向主節點,以及其它從節點發送sf消息;
在本申請的實施例中,以太網環中的任一節點可以周期性地向鄰居節點發送ccm消息,檢測本節點與鄰居節點之間的鏈路是否發生故障。如果本端節點向對端節點發送ccm消息后,未接收到對端節點的響應報文,則確定本端節點與對端節點之間的鏈路出現故障。如果本端節點向對端節點發送ccm消息后,接收到對端節點的響應報文,則確定本端節點與對端節點之間的鏈路運行正常。
當任一從節點檢測到本節點與任意一側的鄰居節點之間的目標鏈路發生故障時,該從節點可以通過另一側的正常鏈路向主節點和其它從節點發送sf消息。同時,該從節點可以將故障鏈路一側的端口設置為阻塞狀態。其中,所述阻塞狀態是指該節點可以通過該端口發送控制報文,但不能發送數據報文。
例如,如圖2所示,當節點swb和節點swc之間的鏈路出現故障時,節點swb可以將端口a設置為阻塞狀態,節點swc可以將端口b設置為阻塞狀態。然后節點swb通過端口b發送sf消息,節點swc通過端口a發送sf消息。
當主節點接收到sf消息時,可以將副端口設置為轉發狀態,保證環網各節點保持正常通信。例如,如圖2所示,當節點swa接收到sf消息時,可以將端口b設置為轉發狀態。
步驟502:當所述目標鏈路恢復正常時,所述從節點可以通過另一側的正常鏈路向主節點發送nr消息,并將與所述目標鏈路一側的端口設置為阻塞狀態,并在本節點上啟動第一定時器;
當任一從節點檢測到與任意一側的鄰居節點之間的目標鏈路出現故障,并將目標鏈路一側的端口設置為轉發狀態后,該節點仍然會繼續周期性地向所述目標鏈路一側的對端節點發送ccm消息,如果沒有接收到所述目標鏈路一側的對端節點返回的響應消息,此時本節點不再向主節點發送sf消息。如果接收到所述目標鏈路一側的對端節點返回的響應消息,則可以確定所述目標鏈路已經恢復正常。
在本申請的實施例中,當所述目標鏈路恢復正常時,所述從節點可以通過另一側的正常鏈路向主節點發送nr消息。然后,將所述目標鏈路一側的端口設置為阻塞狀態,并啟動所述節點上預先設置的第一定時器。
其中,所述第一定時器用于判斷主節點在其節點上設置的第二定時器超時時發送的nrrb消息是否在發送過程中丟失。如果在第一定時器超時后,所述節點未接收到主節點發送的nrrb消息,則確定所述nrrb消息在發送過程已經丟失。
步驟503:當所述目標鏈路恢復正常時,主節點接收所述目標鏈路所在的從節點發送的nr消息,并啟動本節點上預先設置的第二定時器;
在本申請示出的實施例中,當所述目標鏈路恢復正常時,所述主節點可以接收到所述目標鏈路所在的從節點發送的nr消息。所述主節點接收到所述nr消息后,可以啟動本節點上預先設置的第二定時器;其中,所述第二定時器用于等待所述目標鏈路完全恢復穩定狀態,避免所述目標鏈路間歇性故障導所述主節點頻繁切換副端口的狀態。
需要說明的是,所述第二定時器與所述第一定時器的定時時長相同。在本申請的實施例中,所述第一定時器和所述第二定時器的定時時長的大小可以根據用戶需求進行調整,對此不作具體的限定。
例如,如圖3所示,當節點swb和節點swc之間的鏈路的故障恢復后,節點swb可以通過端口b發送nr消息,節點swc可以通過端口a發送nr消息,同時,節點swb和節點swc可以啟動預先設置的第一定時器。當節點swa接收到nr消息時,可以啟動預先設置的第二定時器。
步驟504:當所述第二定時器超時后,所述第一定時器也同時超時,所述主節點將副端口設置為阻塞狀態,并通過兩側端口同時發送對應于所述目標鏈路的nrrb消息,所述目標鏈路所在的節點可以通過另一側的正常鏈路再次向所述主節點發送nr消息;其中,所述第一定時器和所述第二定時器的定時時長相同;
在本申請的實施例中,當所述第二定時器超時時,所述主節點可以將副端口設置為阻塞狀態。然后,所述主節點可以通過主、副端口同時向以太網環的各從節點發送對應于所述目標鏈路的nrrb消息。
其中,當所述第二定時器超時時,所述第一定時器同時也超時。當所述第一定時器超時時,所述目標鏈路所在的從節點可以通過另一側的正常鏈路向主節點再次發送nr消息。
然而,所述nrrb消息在發送過程中可能由于網絡中的其它因素發生丟失。
在所述主節點發送所述nrrb消息后,所述目標鏈路所在的兩個從節點中有一個節點可以接收到所述nrrb消息,另一個節點無法接收到所述nrr消息的情況下,當主節點再次接收到nr消息時,所述目標鏈路所在的兩個節點中可以接收到所述nrrb消息的從節點同時也可以接收到所述nrrb消息。
如果所述目標鏈路所在的從節點接收到所述nrrb消息,所述從節點可以將所述目標鏈路一側的端口設置為轉發狀態。如果所述目標鏈路所在的從節點沒有接收到所述nrrb消息,所述從節點可以將所述目標鏈路一側的端口保持阻塞狀態。
例如,請參見圖6,圖6為本申請實施例示例性示出的一種在第一定時器和第二定時器超時時以太網環的示意圖。
當所述第一定時器和所述第二定時器同時超時時,主節點swa可以將端口b設置為阻塞狀態,然后通過端口a和端口b同時發出nrrb消息。節點swb可以通過端口b再次向主節點swa發送nr消息,節點swc可以通過端口a再次向主節點swa發送nr消息。
假設節點swc沒有接收到所述nrrb消息,節點swb接收到了所述nrrb消息。節點swb可以將端口a設置為轉發狀態,節點swc可以將端口b保持阻塞狀態。
步驟505:當所述主節點再次接收到nr消息后,立即通過兩側端口再次同時發送nrrb消息,當所述目標鏈路所在的從節點再次接收到所述nrrb消息后,將所述nrrb消息通過所述目標鏈路發送至對端的從節點,以使對端的從節點將所述目標鏈路一側的端口恢復轉發狀態。
在本申請的實施例中,當所述主節點再次接收到所述nr消息后,所述主節點可以通過兩側的端口再次同時發送nrrb消息。其中,所述主節點第一次發送nrrb消息后,所述目標鏈路所在的兩個從節點中可以接收到所述nrrb消息的從節點,依然可以接收到所述主節點再次發送的nrrb消息;所述目標鏈路所在的兩個從節點中沒有接收到所述nrrb消息的從節點,依然不會接收到所述主節點再次發送的nrrb消息。
在所述目標鏈路所在的兩個節點中,可以接收到所述主節點第一次發送的nrrb消息的節點,再次接收到所述主節點再次發送的nrrb消息時,該從節點可以將再次接收到的nrrb消息通過所述目標鏈路發送至對端節點。
其中,當各節點從阻塞端口接收到nrrb消息時,通常會將所述nrrb消息當作數據報文,將所述nrrb消息進行丟棄。因此,在本申請的實施例中,在所述各從節點上針對所述兩個端口預先配置了與nrrb消息匹配的acl規則。當從節點從所述兩個端口的任一端口接收到nrrb消息時,所述從節點可以將該端口從阻塞狀態恢復成轉發狀態。
當所述對端節點接收到所述nrrb消息后,所述對端節點可以將所述nrrb消息與預先配置的acl規則進行匹配。當匹配成功時,所述對端節點可以將所述目標鏈路一側的端口恢復成轉發狀態。
例如,請參見圖7,圖7為本申請實施例示例性示出的主節點再次發送nrrb消息時以太網環的示意圖。
當主節點swa再次接收到nrrb消息時,主節點swa不再啟動定時器,立即通過端口a和端口b再次同時發送nrrb消息。假設節點swb可以接收到主節點swa第一次發送的nrrb消息,節點swc沒有接收到主節點swa第一次發送的nrrb消息。在這樣的情況下,節點swb可以接收到主節點swa再次發送的nrrb消息,節點swc依然不會接收到主節點swa再次發送的nrrb消息。
節點swb在接收到主節點swa再次發送的nrrb消息后,可以將所述nrrb消息通過節點swb和swc之間的鏈路發送至節點swc。節點swc可以通過端口b接收到所述nrrb消息后,然后將所述nrrb消息與預先配置的acl規則進行匹配。由于節點swc上預先針對端口a配置了與nrrb消息匹配acl規則,因此,當節點swc將接收到所述nrrb消息與該acl規則匹配時,所述nrrb消息可以匹配成功,從而節點swc可以將端口b恢復為轉發狀態。
由以上本申請提供的技術方法可見,所述方法包括:當任一從節點檢測到本節點與任意一側的鄰居節點之間的目標鏈路發生故障時,通過另一側的正常鏈路向主節點,以及其它從節點發送sf消息;當所述目標鏈路恢復正常時,所述從節點可以通過另一側的正常鏈路向主節點發送nr消息,并將與所述目標鏈路一側的端口設置為阻塞狀態,并在本節點上啟動第一定時器;
當所述目標鏈路恢復正常時,主節點接收所述鏈路所在從節點發送的nr消息,并啟動本節點上預先設置的第二定時器;當所述第二定時器超時后,所述第一定時器也同時超時,所述主節點將副端口設置為阻塞狀態,并通過兩側端口同時發送對應于所述目標鏈路的nrrb消息,所述目標鏈路所在的節點可以通過另一側的正常鏈路再次向所述主節點發送nr消息;其中,所述第一定時器和所述第二定時器的定時時長相同;
當所述主節點再次接收到nr消息后,立即通過兩側端口再次同時發送nrrb消息,當所述目標鏈路所在的從節點再次接收到所述nrrb消息后,將所述nrrb消息通過所述目標鏈路發送至對端的從節點,以使對端的從節點將所述目標鏈路一側的端口恢復轉發狀態。
由于在本申請中,所述目標鏈路所在的兩個從節點,不再檢測所述第二定時器超時后是否接收到所述主節點發送的nrrb消息,而是直接向所述主節點再次發送nr消息。由于在本申請中限定了所述目標鏈路所在的兩個節點中只有一個節點可以接收到所述主節點第一次發送的nrrb消息,因此,可以接收到所述主節點第一次發送的nrrb消息的節點,可以將再次接收到的nrrb消息通過所述目標鏈路發送至對端節點。所述對端節點接收到所述nrrb消息后,可以立即將所述目標鏈路一側的端口恢復成轉發狀態。因此,可以節省現有技術中等待所述目標鏈路所在的從節點,在確定所述nrrb消息丟失后啟動的鏈路恢復轉發狀態的定時器超時的這段時間。從而,可以加快以太網環故障恢復后的收斂速度,減少數據報文的丟失。
與前述一種基于erps協議的保護倒換方法的實施例相對應,本申請還提供了一種基于erps協議的保護倒換裝置的實施例。
本申請一種基于erps協議的保護倒換裝置的實施例可以應用在以太網環中的任一從節點上。裝置實施例可以通過軟件實現,也可以通過硬件或者軟硬件結合的方式實現。以軟件實現為例,作為一個邏輯意義上的裝置,是通過其所在從節點上的處理器將非易失性存儲器中對應的計算機程序指令讀取到內存中運行形成的。從硬件層面而言,如圖8所示,為本申請一種基于erps協議的保護倒換裝置所在從節點的一種硬件結構圖,除了圖8所示的處理器、內存、網絡接口、以及非易失性存儲器之外,實施例中裝置所在的從節點通常根據該基于erps協議的保護倒換的實際功能,還可以包括其他硬件,對此不再贅述。
請參見圖9,圖9為本申請實施例示例性示出的一種基于erps協議的保護倒換裝置,應用于以太網環中的任一從節點,所述以太網環為同一局域網中的單以太網環,所述以太網環中包括一個主節點和若干個從節點,其中所述主節點的兩側端口中的任意一側端口在所述以太網環鏈路正常狀態時被設置為阻塞狀態,所述裝置包括:sf消息發送單元910,nr消息發送單元920,nrrb消息發接收單元930,nrrb消息發送單元940。
其中,所述sf消息發送單元910,用于當檢測到本節點與任意一側的鄰居節點之間的目標鏈路發生故障時,通過另一側的正常鏈路向主節點,以及其它從節點發送sf消息;
所述nr消息發送單元920,用于當所述目標鏈路恢復正常時,通過另一側的正常鏈路向主節點發送nr消息,并將所述目標鏈路一側的第一端口設置為阻塞狀態,以及在本節點上啟動第一定時器,以使主節點接收到所述nr消息后在所述主節點上啟動第二定時器;其中,所述第一定時器與所述第二定時器的定時時長相同;
所述nrrb消息接收單元930,用于接收主節點在所述第二定時器超時時,通過兩側端口同時發送的對應于所述目標鏈路的nrrb消息,并將所述目標鏈路一側的第一端口恢復為轉發狀態;以及,
所述nrrb消息發送單元940,用于在所述第一定時器超時后,通過另一側的正常鏈路向主節點再次發送nr消息,并在接收到所述主節點再次接收到所述nr消息后立即通過兩側端口同時發出的nrrb消息時,通過所述第一端口將所述nrrb消息發送至所述目標鏈路一側的對端節點的第二端口,以觸發所述第二端口恢復為轉發狀態。
在本申請的實施例中,各節點可以檢測目標鏈路是否出現故障,以及在所述目標鏈路出現故障后,檢測所述目標鏈路是否恢復正常,所述裝置還包括:
ccm消息發送單元,用于本節點周期性向任意一側的鄰居節點發送ccm消息;以及,在將所述目標鏈路一側的第一端口設置為阻塞狀態后,本節點仍然周期性向所述目標鏈路一側的對端節點發送ccm消息;
第一確定單元,用于如果本節點未接收到所述鄰居節點發送的所述ccm消息的響應報文,確定本節點與所述鄰居節點之間的目標鏈路發生故障;
第二確定單元,用于如果本節點接收到所述鄰居節點發送的所述ccm消息的響應報文,確定本節點與所述鄰居節點之間的目標鏈路運行正常。
第三確定單元,用于如果本節點未接收到所述目標鏈路一側的對端節點發送的ccm消息的響應報文,確定所述目標鏈路未恢復正常;
第四確定單元,用于如果本節點接收到所述目標鏈路一側的對端節點發送的ccm消息的響應報文,確定所述目標鏈路恢復正常。
另外,在本申請的實施例中,所述目標鏈路所在的兩個節點中有一個節點無法接收到所述nrrb消息,所述裝置還包括:
保持單元,用于如果本節點未接收到所述主節點在所述第二定時器超時時,通過兩側端口同時發送的對應于所述目標鏈路的nrrb消息,將所述目標鏈路一側的第一端口保持阻塞狀態;
nrrb消息接收單元,還用于接收所述目標鏈路一側的對端節點在再次接收到所述主節點發送的nrrb消息后,通過所述目標鏈路一側的第二端口發送的所述nrrb消息;
匹配單元,用于將所述nrrb消息與預配置的acl規則進行匹配,并在匹配成功后將所述目標鏈路一側的第一端口恢復為轉發狀態。
與前述一種基于erps協議的保護倒換方法的實施例相對應,本申請還提供了另一種基于erps協議的保護倒換裝置的實施例。
本申請一種基于erps協議的保護倒換裝置的實施例可以應用在以太網環中的主節點上。裝置實施例可以通過軟件實現,也可以通過硬件或者軟硬件結合的方式實現。以軟件實現為例,作為一個邏輯意義上的裝置,是通過其所在主節點上的處理器將非易失性存儲器中對應的計算機程序指令讀取到內存中運行形成的。從硬件層面而言,如圖10所示,為本申請一種基于erps協議的保護倒換裝置所在主節點的一種硬件結構圖,除了圖10所示的處理器、內存、網絡接口、以及非易失性存儲器之外,實施例中裝置所在的主節點通常根據該基于erps協議的保護倒換的實際功能,還可以包括其他硬件,對此不再贅述。
請參見圖11,圖11為本申請實施例示例性示出的另一種基于erps協議的保護倒換裝置,應用于以太網環中的主節點,所述以太網環為同一局域網中的單以太網環,所述以太網環中包括一個主節點和若干個從節點,其中所述主節點的兩側端口中的任意一側端口在所述以太網環鏈路正常狀態時被設置為阻塞狀態,所述裝置包括:sf消息接收單元1110,nr消息接收單元1120,nrrb消息發送單元1130。
其中,所述sf消息接收單元1110,用于當任一從節點與任意一側的鄰居節點之間的目標鏈路發生故障時,接收所述從節點通過另一側的正常鏈路發送的sf消息;
所述nr消息接收單元1120,用于當所述目標鏈路恢復正常時,接收所述從節點通過另一側的正常鏈路發送的nr消息,并在接收到所述nr消息后在本節點上啟動第二定時器;其中,所述第二定時器與所述從節點發送nr消息后在所述從節點上啟動的第一定時器的定時時長相同;
所述nrrb消息發送單元1130,用于當所述第二定時器超時后,通過兩側端口同時發送對應于所述目標鏈路的nrrb消息,以使所述從節點將所述目標鏈路的一側的第一端口恢復為轉發狀態;以及,
所述nr消息接收單元1110,用于接收所述從節點在所述第一定時器超時后,通過另一側的正常鏈路再次發送的nr消息;
所述nrrb消息發送單元1130,用于在本節點接收到所述nr消息后立即通過兩側端口再次同時發送nrrb消息,以使所述從節點再次接收到所述nrrb消息后將所述nrrb消息發送至所述目標鏈路一側的對端節點的第二端口,以觸發所述第二端口恢復為轉發狀態。
上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對于裝置實施例而言,由于其基本對應于方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本申請方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解并實施。
以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本申請保護的范圍之內。