雙向轉發檢測的實現方法及裝置的製作方法
2023-04-26 15:41:21 3
專利名稱:雙向轉發檢測的實現方法及裝置的製作方法
技術領域:
本發明涉及通信領域,具體而言,涉及一種雙向轉發檢測的實現方法及裝置。
背景技術:
隨著電信網絡向ALL-IP(全IP)網絡的演進,傳統的網際網路需要轉型為多業務的 電信級IP承載網。為了獲得進一步的發展和成熟,電信級的網絡必須具有99. 999%的高可 靠性、業務流量快速切換的能力以及強壯性。即作為ALL-IP網絡的IP承載網,在提供互聯 網接入業務時,必須要提供99. 99%的高可靠性;在承載語音業務、交互式數位電視(IPTV) 和虛擬專用網(VPN,Virtual PrivateNetwork)業務時,要提供99. 999%的高可靠性,同時 還要為基於會話類的業務提供快速路徑倒換機制。因此,高可靠性已成為必然需求。為了保護關鍵應用,網絡中通常會設計有一定的冗餘備份鏈路,網絡發生故障時 就要求網絡設備能夠快速檢測出故障並將流量切換至備份鏈路以加快網絡收斂速度。目前 有些鏈路(如POS (PacketOver SONET/SDH,S0NET/SDH上的分組))通過硬體檢測機制來實 現快速故障檢測,而某些鏈路(如乙太網鏈路)卻不具備這樣的檢測機制。此時,應用就需 要依靠上層協議自身的機制來進行故障檢測,上層協議的檢測時間都在1秒以上,這樣的 故障檢測時間對某些應用來說是不能容忍的。某些路由協議如0SPF(0pen ShortestPath First,開放式最短路徑優先)、IS_IS(Intermediate System tolntermediate System Routing Protocol,中間系統到中間系統的路由選擇協議)雖然有Fast Hello功能來加快 故障檢測速度,但是檢測時間也只能達到1秒的精度,而且Fast Hello功能只是針對本協 議的,無法為其它協議提供快速故障檢測。當數據速率達到吉比特時,故障感應時間長代表著大量數據的丟失,並且不允許 路由協議的節點沒有辦法檢測鏈路的狀態。同時,在現有的IP網絡中並不具備秒以下的間 歇性故障修復功能,而傳統路由架構在對實時應用(如語音)進行準確故障檢測方面的能 力有限。伴隨著VoIPdP語音)應用的激增,實現快速網絡故障檢測和修復越發顯得必要。BFD (Bidirectional Forwarding Detection,雙向轉發檢測)協議的出現,為上述 問題提出了一種解決方案。BFD能夠在系統之間任何類型的通道上進行故障檢測,這些通道 包括直接的物理鏈路、虛電路、隧道、MPLS (Multi-Protocol Label Switching,多協議標籤 交換)LSP(Label Switching Path,標記交換路徑)、多跳路由通道,以及非直接的通道。同 時,正是由於BFD具有實現故障檢測簡單、單一性的優點,因此BFD能夠專注於轉發故障的 快速檢測,幫助網絡以良好QoS (服務質量)實現語音、視頻及其它點播業務的傳輸,從而幫 助服務提供商基於IP網的實現,為客戶提供所需的高可靠性、高適用性VoIP及其它實時業 務。BFD可以被看成是一種簡單的HELLO報文協議,在很多相關的領域,它非常像眾所 周知的路由協議中的偵測部分。一對系統在互相建立的鏈路間周期地發送BFD報文,如果 一個系統在一段時間內沒有接收到對方發過來的BFD報文,那麼就說明在這兩個系統間的 雙向路徑出現了問題,從而引起通訊失效。但在有些情況下,系統為了減少開銷,可以停止發送周期性的BFD的報文。如圖1所示,BFD協議的基本工作原理如下1) BFD會話創建的初始處於DOWN狀 態,發送控制報文(BFD D0MN)到對端;2)處於DOWN狀態下的BFD會話,接收對端發來的控 制報文(BFDD0MN),狀態切換為INIT ;3)處於INIT狀態下的BFD會話收到對端發來的控制 報文BFD INIT後,狀態切換為UP ;4) BFD會話UP後,協商好雙方檢測/發送時間間隔,按照 協商的時間間隔進行報文的收發;5)當處於UP狀態下的BFD會話在檢測時長內沒有收到 對端的控制報文,檢測失效,狀態切換為DOWN,並通知上層應用。每一條通訊路徑都對應生成一個BFD Session (BFD會話),並且在這兩個系統間 傳輸數據協議的BFD報文。每個系統都會評估自己的發送和接收BFD報文的速率,並用自己 的估算出的速率和對端的系統進行協商,並達成最終使用的BFD檢測報文的發送速率。為 了適應一些特殊的情況,這些針對自己系統的收發報文能力的估算將會被實時地更新。這 樣的設計允許一個快速的系統和一個相對緩慢的系統共享同一個物理鏈路,並且能使快速 的系統加快偵測速度,相反能使相對緩慢的系統最大化地發揮出自己的檢測能力。BFD報文在兩個系統之間進行傳遞,一般採用點對點的單播的方式進行。BFD報文 不管被任何協議封裝都是適合傳輸媒介和網絡使用的。BFD可以運行在多層面的系統中。 任何特殊內容的BFD報文都會被進行相應的封裝。如上所述,BFD會話通常會通過發送P(Poll)報文進行協商參數,收到F(Final)報 文後結束協商流程。當設備收到P報文後,需要立即回送F報文,同時開啟定時發送和超時 檢測;另一端收到F報文後,結束參數協商流程,同樣開啟定時發送和超時檢測。在異步模式下,由於檢測的位置是在對端,所以對端計算檢測時間時需要用到本 端的檢測倍數,公式如下鏈路檢測時間間隔=接收的遠端檢測倍數XMAX(本端的收包間隔,接收的發包 間隔)在此過程中,收到P報文開啟超時檢測的設備(如圖1中的設備A)會比收到F報 文開啟檢測的設備(如圖1中的設備B)提前一段時間進行檢測,這個時間差就是F報文在 設備間傳輸的時間。在BFD發送檢測周期都比較大的情況下,這個時間差並不會影響BFD 的正常超時檢測流程;但是,隨著網絡可靠性要求的提高,倒換保護需要在50ms內完成,進 而要求BFD的發送檢測周期越來越小,甚至達到發送周期3. 33ms。在這種情況下,F報文 在設備間傳遞的時間就不能被忽略了,因為兩端設備開啟超時檢測的時間具有一定的時間 差,如圖1所示,當設備A收到BFD P報文開始超時檢測後,此時可能由於設備B尚未收到 BFD F報文而尚未發送BFD檢測報文,因此,設備A接收不到設備B發送的BFD檢測報文,從 而會做出鏈路故障的錯誤判斷。綜上,由於相關技術中兩端設備開啟超時檢測的時間具有一定的時間差,從而會 導致鏈路狀態的錯誤檢測,如BFD會話狀態機剛切換到UP狀態就直接檢測到鏈路異常,而 錯誤檢測還會產生路由協議振蕩等問題。
發明內容
本發明的主要目的在於提供一種雙向轉發檢測的實現方法及裝置,以解決上述問題。
根據本發明的一個方面,提供了一種雙向轉發檢測BFD的實現方法,包括第一裝置接收到第二裝置發送的參數協商P報文;所述第一裝置回復參數協商確認F報文,並同時 開始計時;若超過預設時間未收到所述第二裝置發送的BFD檢測報文,則啟動鏈路檢測,向 所述第二裝置發送BFD檢測報文。根據本發明的另一方面,提供了一種雙向轉發檢測BFD的實現裝置,包括接收模 塊,用於接收對端裝置發送的參數協商P報文;發送模塊,用於回復參數協商確認F報文,並 同時向所述對端裝置發送BFD檢測報文;計時模塊,用於在所述發送模塊回復所述F報文的 同時開始計時;檢測模塊,用於在超過預設時間未收到所述對端裝置發送的BFD檢測報文 時,啟動鏈路檢測。根據本發明的另一方面,提供了一種雙向轉發檢測BFD的實現裝置,包括接收模 塊,用於接收對端裝置發送的參數協商確認F報文;計時模塊,用於在接收到所述F報文後 開始計時;發送模塊,用於在開始計時的同時向所述對端裝置發送BFD檢測報文;檢測模 塊,用於在超過預設時間未接收到所述對端裝置發送的所述BFD檢測報文時,啟動鏈路檢 測。通過本發明,由於裝置接收到P報文後,不會立即開始鏈路檢測(即超時檢測), 而是通過計時等待一段時間,若超時還未收到對端發送的BFD檢測報文才開始進行鏈路檢 測,解決了相關技術中由於裝置收到P報文後立即開始鏈路檢測使得兩端裝置開啟超時檢 測的時間具有一定的時間差,從而導致鏈路狀態的錯誤檢測的問題,進而通過提供一種緩 衝機制使得接收到P報文的裝置延後開始鏈路檢測的時間,從而提高了 BFD對於鏈路狀態 檢測的準確度,能夠更好地適應網絡高可靠性的要求。
此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發 明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在附圖中圖1是根據相關技術的BFD會話狀態機的狀態切換示意圖;圖2是根據本發明實施例一的雙向轉發檢測的實現方法的流程圖;圖3是根據本發明實施例二的雙向轉發檢測的應用場景示意圖;圖4是根據本發明實施例二的雙向轉發檢測的實現方法的流程圖;圖5是根據本發明實施例三的雙向轉發檢測的應用場景示意圖;圖6是根據本發明實施例的雙向轉發檢測的實現裝置的結構示意圖。
具體實施例方式下文中將參考附圖並結合實施例來詳細說明本發明。需要說明的是,在不衝突的 情況下,本申請中的實施例及實施例中的特徵可以相互組合。在電信級的網絡中,各種通信設備(或裝置)之間需要通過鏈路檢測機制來快速 檢測出故障並將流量切換至備份設備以適應對於網絡高可靠性的要求。BFD協議是目前實 現鏈路故障檢測的一種重要的協議。第一裝置和第二裝置之間通過BFD進行鏈路故障檢 測。第一實施例
圖2是根據本發明實施例一的雙向轉發檢測的實現方法的流程圖,包括以下步驟步驟S202,第一裝置接收到第二裝置發送的P (參數協商)報文;步驟S204,第一裝置回復F(參數協商確認)報文,並同時開始計時;步驟S206,超過預設時間未收到第二裝置發送的BFD檢測報文,則啟動鏈路檢測, 向第二裝置發送BFD檢測報文。在該實施例中,由於設備接收到P報文後,不會立即開始鏈路檢測(即超時檢測), 而是通過計時等待一段時間,若超時還未收到對端發送的BFD檢測報文才開始進行鏈路檢 測解決了相關技術中由於設備收到P報文後立即開始鏈路檢測使得兩端設備開啟超時檢 測的時間具有一定的時間差,從而導致鏈路狀態的錯誤檢測的問題。使用該實施例通過提 供一種緩衝機制使得接收到P報文的設備延後開始鏈路檢測的時間,從而提高了 BFD對於 鏈路狀態檢測的準確度,能夠更好地適應網絡高可靠性的要求。其中,第一裝置進行計時可以通過開啟一個定時器,如稱為等待首包定時器(WFT) 進行計時。啟動鏈路檢測是通過開啟鏈路檢測定時器來進行鏈路檢測。在該實施例中,如果超時仍未收到對端發送來的BFD檢測報文就無需再等待可以 開始進行鏈路檢測。優選地,在上述的方法中,還包括若在超過預設時間前接收到第二裝置發送的 BFD檢測報文,則停止計時並同時啟動鏈路檢測,向第二裝置發送BFD檢測報文。由於接收 到第二裝置發送來的BFD檢測報文說明第二裝置已經接收到F報文並開始進行鏈路檢測, 這樣,第一裝置此時開始進行鏈路檢測就不會導致鏈路狀態的錯誤判斷。該優選實施例提供了在接收到P報文時開始計時的情況下,裝置啟動鏈路檢測的 另一種具體實施方案。優選地,在上述的方法中,還包括第二裝置接收第一裝置發送的F報文;開始計 時,同時向第一裝置發送BFD檢測報文;若超過預設時間未接收到第一裝置發送的BFD檢測 報文,則啟動鏈路檢測。該優選實施例提供了當裝置接收到的是F報文時,結束參數協商流程並開始計時 (如開啟等待首包定時器(WFT))的具體實施方案。在該優選實施例中,兩端裝置均進行計 時,可以進一步避免鏈路狀態的錯誤檢測。優選地,在上述的方法中,還包括若在超過預設時間前接收到第一裝置發送的 BFD檢測報文,則停止計時並同時啟動鏈路檢測。該優選實施例提供了在接收到F報文也開始計時的情況下,第二裝置進行鏈路檢 測的另一種具體實施方案。其中,上述的預設時間是指F報文從第一裝置傳輸到第二裝置所需的時間。具體地,第一裝置和/或第二裝置進行計時是通過開啟一個等待首包定時器,該等待首包定時 器的計時時間應不小於正常狀態下F報文在兩端裝置之間的傳輸時間。能夠確保在鏈路狀 態正常的情況下,第一裝置不會在第二裝置未接收到F報文之前就超時並啟動鏈路檢測。上述的優選實施例中BFD會話收到P報文或F報文後,並不立即開啟超時檢測定 時器(即鏈路檢測定時器)進行鏈路檢測,而是先開啟等待首包定時器(即上述的開始計 時);如果在等待首包定時器的計時時間內收到對端發送的BFD檢測報文,則立即開啟鏈路檢測定時器;否則等待首包定時器超時後開啟鏈路檢測定時器進行鏈路檢測。上述優選實 施例的BFD的實現方法具有避免因為錯誤檢測導致的路由協議震蕩、鏈路雙向轉發檢測更 穩定可靠等優點。
第二實施例某運營商的兩臺路由器A和路由器B之間建立OSPF鄰居,由於路由器A和路由器 B間承載的業務的重要性,需要對路由器A和路由器B之間的鏈路異常狀況進行快速檢測和 切換以保證業務的可靠性,於是在路由器A和路由器B間配置、建立BFD會話以進行雙向轉 發檢測。如圖3所示為某運營商路由器A和路由器B的組網圖,首先在路由器A和路由器 B上配置OSPF協議,某個時刻OSPF鄰居發現並建立鄰居關係;OSPF協議通知BFD建立對應 OSPF鏈路的BFD會話;BFD會話通過發送/接收報文進行狀態機切換;當接收到P/F報文協 商完鏈路檢測定時器的時間參數後,BFD開始進行鏈路快速檢測。針對圖3的雙向轉發檢測的實現方法的流程如圖4所示,包括以下步驟步驟S402,首先需要在設備(路由器A和路由器B)上配置BFD的等待首包定時器 的時間間隔參數;步驟S404,設備判斷收到對端發送的BFD報文是P報文還是F報文,若是P報文, 則轉入步驟S406,若是F報文,則轉入步驟S408 ;步驟S406,直接回復F報文,同時計算鏈路檢測定時器時間間隔參數;步驟S408,結束參數協商流程,計算鏈路檢測定時器的時間間隔參數;步驟S410,針對收到P、F報文的情況,啟動等待首包定時器、以及向對端發送BFD 檢測報文;步驟S412,判斷在等待首包定時器進行計時的過程中是否如果收到對端發送來的 BFD檢測報文,若是,則轉入步驟S416,若否,則轉入步驟S414 ;步驟S414,在等待首包定時器超時時,啟動鏈路檢測定時器;步驟S416,立即啟動鏈路檢測定時器。第三實施例某運營商在其骨幹網中建立偽線(Pseudo wire)來承載端到端的用戶流量,由於 用戶對於流量的可靠性提出了較高要求,運營商在端點間部署BFD檢測來加快鏈路異常的 發現和切換。如圖5所示為運營商骨幹網的示意圖。首先,在路由器A和路由器B之間配置、建 立偽線來仿真承載用戶端到端的流量,某個時刻偽線建立正常並開始轉發用戶流量;偽線 協議通知BFD協議建立針對該偽線的BFD會話;BFD會話通過發送/接收報文進行狀態機切 換;當接收到P/F報文協商完鏈路檢測定時器的時間參數後,BFD開始進行鏈路快速檢測。其實施步驟如下步驟1,路由器A和路由器B間配置建立偽線用於仿真承載用戶端到端的流量;步驟2,偽線建立並能夠正常轉發用戶流量;偽線協議通知BFD協議建立針對當前 偽線的BFD會話;步驟3,BFD協議發送/接收BFD報文,同時進行BFD會話的狀態機切換;步驟4,BFD協議收到P/F報文,BFD會話開始鏈路快速檢測。
具體地,在步驟4中路由器A和路由器B採用上述實施例的方法進行BFD檢測。圖6是根據本發明實施例的雙向轉發檢測的實現裝置的結構示意圖,該實現裝置 包括接收模塊10,用於接收對端裝置發送的P (參數協商)報文;發送模塊20,用於回復F(參數協商確認)報文,並同時向對端裝置發送BFD檢測 報文;計時模塊30,用於在發送模塊回復F報文的同時開始計時;檢測模塊40,用於在超過預設時間未收到對端裝置發送的BFD檢測報文時,啟動 鏈路檢測。其中,計時模塊30還用於當在超過預設時間前接收到對端裝置發送的BFD檢測報 文時,停止計時;檢測模塊40還用於在停止計時的同時啟動鏈路檢測。或者,該實現裝置包括接收模塊10,用於接收對端裝置發送的F報文;計時模塊30,用於在接收到F報文後開始計時;發送模塊20,用於在開始計時的同時向對端裝置發送BFD檢測報文;檢測模塊40,用於在超過預設時間未接收到對端裝置發送的BFD檢測報文時,啟 動鏈路檢測。其中,計時模塊30還用於當在超過預設時間前接收到對端裝置發送的BFD檢測報 文時,停止計時;檢測模塊40還用於在停止計時的同時啟動鏈路檢測。其中,上述的預設時間是指F報文傳輸到對端裝置所需的時間。從以上的描述中,可以看出,本發明實現了如下技術效果(1)通過提供一種緩衝機制使得接收到P報文的設備延後開始鏈路檢測的時間, 從而提高了 BFD對於鏈路狀態檢測的準確度,能夠更好地適應網絡高可靠性的要求;(2)具有避免因為錯誤檢測導致的路由協議震蕩、鏈路雙向轉發檢測更穩定可靠 等優點。顯然,本領域的技術人員應該明白,上述的本發明的各模塊或各步驟可以用通用 的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成 的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲 在存儲裝置中由計算裝置來執行,並且在某些情況下,可以以不同於此處的順序執行所示 出或描述的步驟,或者將它們分別製作成各個集成電路模塊,或者將它們中的多個模塊或 步驟製作成單個集成電路模塊來實現。這樣,本發明不限制於任何特定的硬體和軟體結合。 以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技 術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修 改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
一種雙向轉發檢測BFD的實現方法,其特徵在於,包括第一裝置接收到第二裝置發送的參數協商P報文;所述第一裝置回復參數協商確認F報文,並同時開始計時;若超過預設時間未收到所述第二裝置發送的BFD檢測報文,則啟動鏈路檢測,向所述第二裝置發送BFD檢測報文。
2.根據權利要求1所述的方法,其特徵在於,還包括若在超過所述預設時間前接收到所述第二裝置發送的BFD檢測報文,則停止計時並同 時啟動鏈路檢測,向所述第二裝置發送BFD檢測報文。
3.根據權利要求1所述的方法,其特徵在於,還包括 所述第二裝置接收所述第一裝置發送的所述F報文; 開始計時,同時向所述第一裝置發送所述BFD檢測報文;若超過預設時間未接收到所述第一裝置發送的所述BFD檢測報文,則啟動鏈路檢測。
4.根據權利要求3所述的方法,其特徵在於,還包括若在超過所述預設時間前接收到所述第一裝置發送的所述BFD檢測報文,則停止計時 並同時啟動鏈路檢測。
5.根據權利要求1所述的方法,其特徵在於,所述預設時間是指所述F報文從所述第一 裝置傳輸到所述第二裝置所需的時間。
6.一種雙向轉發檢測BFD的實現裝置,其特徵在於,包括 接收模塊,用於接收對端裝置發送的參數協商P報文;發送模塊,用於回復參數協商確認F報文,並同時向所述對端裝置發送BFD檢測報文; 計時模塊,用於在所述發送模塊回復所述F報文的同時開始計時; 檢測模塊,用於在超過預設時間未收到所述對端裝置發送的BFD檢測報文時,啟動鏈 路檢測。
7.根據權利要求6所述的實現裝置,其特徵在於,所述計時模塊,還用於當在超過所述預設時間前接收到所述對端裝置發送的BFD檢測 報文時,停止計時;所述檢測模塊,還用於在所述停止計時的同時啟動鏈路檢測。
8.一種雙向轉發檢測BFD的實現裝置,其特徵在於,包括 接收模塊,用於接收對端裝置發送的參數協商確認F報文; 計時模塊,用於在接收到所述F報文後開始計時;發送模塊,用於在開始計時的同時向所述對端裝置發送BFD檢測報文; 檢測模塊,用於在超過預設時間未接收到所述對端裝置發送的所述BFD檢測報文時, 啟動鏈路檢測。
9.根據權利要求8所述的實現裝置,其特徵在於,所述計時模塊,還用於當在超過所述預設時間前接收到所述對端裝置發送的所述BFD 檢測報文時,停止計時;所述檢測模塊,還用於在所述停止計時的同時啟動鏈路檢測。
10.根據權利要求8所述的實現裝置,其特徵在於,所述預設時間是指所述F報文傳輸 到所述對端裝置所需的時間。
全文摘要
本發明公開了一種雙向轉發檢測的實現方法及裝置,其中,該方法,包括第一裝置接收到第二裝置發送的參數協商P報文;所述第一裝置回復參數協商確認F報文,並同時開始計時;若超過預設時間未收到所述第二裝置發送的BFD檢測報文,則啟動鏈路檢測,向所述第二裝置發送BFD檢測報文。本發明提高了BFD對於鏈路狀態檢測的準確度,能夠更好地適應網絡高可靠性的要求。
文檔編號H04L12/56GK101808022SQ20101015590
公開日2010年8月18日 申請日期2010年4月22日 優先權日2010年4月22日
發明者張磊, 韋紅波 申請人:中興通訊股份有限公司