專利名稱:雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)方法、裝置及網(wǎng)絡(luò)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤指一種適用于多會話的雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)方法、裝置及網(wǎng)絡(luò)設(shè)備。
背景技術(shù):
雙向轉(zhuǎn)發(fā)檢測(Bidirectional Forwarding Detection, BFD)提供一種輕負(fù)荷、 持續(xù)時間短的網(wǎng)絡(luò)故障檢測,以便出現(xiàn)故障時可以更快的建立起替代通道或倒換到其他鏈路。BFD檢測的原理是待檢測鏈路的兩設(shè)備之間周期性的向?qū)Χ税l(fā)送?;顖笪模z測對端發(fā)送的?;顖笪?,當(dāng)連續(xù)丟失設(shè)定數(shù)量的對端發(fā)送的報文時,認(rèn)為鏈路發(fā)生故障,并通過路由協(xié)議撤銷相應(yīng)的路由,到達(dá)切換到備份鏈路的目的。現(xiàn)有技術(shù)中,使用BFD對會話連通性進(jìn)行檢測的一個系統(tǒng)架構(gòu)如圖1所示,該系統(tǒng)包括與省行設(shè)備連接的市行設(shè)備;市行設(shè)備中的下聯(lián)路由器,下邊可以連接若干網(wǎng)點(diǎn)的
上聯(lián)路由器。如圖1所示的,例如下聯(lián)路由器RJ-C和RJ-D下邊分別連接RJ-I........
和RJ-N等若干網(wǎng)點(diǎn)的上聯(lián)路由器。為了保證網(wǎng)點(diǎn)業(yè)務(wù)正常運(yùn)行,各網(wǎng)點(diǎn)一般都通過兩條互為備份的鏈路連接到市行下聯(lián)路由器上。主線路帶寬一般較備份鏈路帶寬大,在主線路出現(xiàn)異常的情況下,能夠?qū)⑥D(zhuǎn)發(fā)路徑快速地切換到備份線路,在主線路恢復(fù)時,轉(zhuǎn)發(fā)路徑能夠切換回主線路,從而可以利用主線路的高帶寬。如圖1所示,全市銀行網(wǎng)點(diǎn)的上聯(lián)路由器通過IOM的多業(yè)務(wù)傳送平臺 (Multi-Service Transfer Platform, MSTP)線路和 2M 幀中繼(Frame Relay, FR)線路連接市行的下聯(lián)RJ-C和RJ-D路由器。其中,MSTP線路作為主(Master)轉(zhuǎn)發(fā)路徑,而FR線路作為備(Backup)轉(zhuǎn)發(fā)路徑。網(wǎng)點(diǎn)上聯(lián)路由器與市行下聯(lián)路由器之間運(yùn)行BFD協(xié)議檢測 MSTP鏈路,當(dāng)BFD檢測到鏈路故障,通過路由協(xié)議撤銷MSTP線路上的路由,從而達(dá)到切換到備份鏈路的目的。為了能快速檢測鏈路的故障并進(jìn)行切換,目前一般采用BFD與路由協(xié)議聯(lián)動,BFD 是毫秒級別的協(xié)議,能快速檢測到鏈路的故障并進(jìn)行鏈路切換,使客戶業(yè)務(wù)中斷時間最小。 對于網(wǎng)點(diǎn)路由器,其BFD會話僅1路。而對于市行下聯(lián)路由器,其網(wǎng)點(diǎn)達(dá)到數(shù)百個,其BFD 會話數(shù)也是數(shù)百個。為了及時準(zhǔn)確探測鏈路有效性,傳統(tǒng)方法是啟動一高優(yōu)先級定時器,每 IOms遍歷檢測一次BFD會話,判斷當(dāng)前會話是否需要向?qū)Χ税l(fā)送?;顖笪囊约案鶕?jù)是否接收到對端發(fā)送的?;顖笪拇_定會話是否超時,超時即認(rèn)為鏈路故障。這種方式需要將BFD會話信息存儲在一個較大的數(shù)組中,每路會話占用數(shù)據(jù)一個元素的空間。如圖2所示,即為現(xiàn)有技術(shù)中BFD會話信息的示意圖,其中,MAX_SESSION_SIZE 為數(shù)組的最大容量,CURRENT_SESSION_SUE為實(shí)際存在的會話數(shù)量。定時器每個周期需要對所有會話輪詢一次,逐一進(jìn)行是否需要發(fā)送保活報文和會話是否超時,這樣對于市行下聯(lián)路由器而言,由于連接的網(wǎng)點(diǎn)路由器很多,為了能夠準(zhǔn)確的探測鏈路,在每次定時器到期時需要遍歷的會話比較多。從而導(dǎo)致存在如下問題(1)由于高優(yōu)先級的定時器任務(wù)啟動時會優(yōu)先被處理,且該高優(yōu)先級的定時器任務(wù)遍歷的會話很多,每次遍歷所有會話會占用大量的CPU資源,同時會導(dǎo)致其他優(yōu)先級相對較低的業(yè)務(wù)報文或BFD報文丟失。(2)下聯(lián)路由器上BFD會話可能存在同步,即向?qū)Χ税l(fā)送?;顖笪暮徒邮諏Χ税l(fā)送的?;顖笪耐瑫r進(jìn)行,大量會話同時發(fā)生BFD會話同步時,會導(dǎo)致流量突發(fā),可能導(dǎo)致 BFD丟失報文或者業(yè)務(wù)報文丟失。其中,業(yè)務(wù)報文的丟失,會導(dǎo)致數(shù)據(jù)重傳,網(wǎng)絡(luò)更加擁塞;BFD報文的丟棄會導(dǎo)致 BFD震蕩,從而導(dǎo)致誤判鏈路故障,使鏈路頻繁發(fā)生切換,因此,現(xiàn)有的BFD檢測實(shí)現(xiàn)方法會導(dǎo)致路由器轉(zhuǎn)發(fā)性能降低,對于業(yè)務(wù)實(shí)時性要求較高的業(yè)務(wù),轉(zhuǎn)發(fā)性能低、鏈路頻繁發(fā)生切換是不能容忍的。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)方法、裝置及網(wǎng)絡(luò)設(shè)備,用以解決現(xiàn)有技術(shù)中存在定時對多會話進(jìn)行BFD檢測時占用大量CPU資源且會導(dǎo)致的路由器轉(zhuǎn)發(fā)性能降低的問題。一種雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)方法,包括將需要進(jìn)行雙向轉(zhuǎn)發(fā)檢測的多個會話劃分為設(shè)定數(shù)量的會話組,按照設(shè)定的輪詢周期輪詢各個會話分組;針對當(dāng)前輪詢的會話分組中的每個會話執(zhí)行下列步驟向所述會話的對端設(shè)備發(fā)送?;顖笪?,以及判斷在設(shè)定的檢測周期內(nèi)是否接收到對端設(shè)備發(fā)送的?;顖笪?;當(dāng)判斷為否時,確定所述會話存在連通性故障;否則確定所述會話不存在連通性故障。一種雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)裝置,包括分組模塊,用于將需要進(jìn)行雙向轉(zhuǎn)發(fā)檢測的多個會話劃分為設(shè)定數(shù)量的會話組;輪詢模塊,用于按照設(shè)定的輪詢周期輪詢各個會話分組;檢測模塊,用于針對當(dāng)前輪詢的會話分組中的每個會話執(zhí)行下列步驟向所述會話的對端設(shè)備發(fā)送?;顖笪?,以及判斷在設(shè)定的檢測周期內(nèi)是否接收到對端設(shè)備發(fā)送的保活報文;當(dāng)判斷為否時,確定所述會話存在連通性故障;否則確定所述會話不存在連通性故障。一種網(wǎng)絡(luò)設(shè)備,包括上述的雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)裝置。本發(fā)明有益效果如下本發(fā)明實(shí)施例提供的雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)方法、裝置及網(wǎng)絡(luò)設(shè)備,將需要進(jìn)行雙向轉(zhuǎn)發(fā)檢測的多個會話劃分為設(shè)定數(shù)量的會話組,按照設(shè)定的輪詢周期輪詢各個會話分組; 針對當(dāng)前輪詢的會話分組中的每個會話,進(jìn)行雙向轉(zhuǎn)發(fā)檢測確定是否存在連通性故障,該方法不用同時輪詢所有會話,也不用針對每個會話進(jìn)行是否需要發(fā)送?;顖笪牡呐袛啵窃诙〞r器到期即可執(zhí)行發(fā)送?;顖笪慕o對端設(shè)備的步驟,該方法實(shí)現(xiàn)對所有會話報文檢測的同時能夠減少調(diào)用的會話的數(shù)量和次數(shù),從而減少了 CPU占用量,提高了系統(tǒng)轉(zhuǎn)發(fā)性能;減少了數(shù)據(jù)丟失和丟棄的可能性,從而避免了誤判鏈路故障所導(dǎo)致的鏈路頻繁切換現(xiàn)象,能夠很好的滿足實(shí)時業(yè)務(wù)的使用要求。
圖1為現(xiàn)有技術(shù)中使用BFD機(jī)制的網(wǎng)絡(luò)系統(tǒng)架構(gòu)圖;圖2為現(xiàn)有技術(shù)中BFD會話信息示意圖;圖3為本發(fā)明實(shí)施例中雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)方法的流程圖;圖4為本發(fā)明實(shí)施例中BFD會話信息示意圖;圖5為本發(fā)明實(shí)施例中雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式針對現(xiàn)有技術(shù)中雙向轉(zhuǎn)發(fā)檢測機(jī)制會導(dǎo)致系統(tǒng)轉(zhuǎn)發(fā)性能降低,影響數(shù)據(jù)報文的發(fā)送,導(dǎo)致發(fā)送延時或丟棄的問題,本發(fā)明實(shí)施例提供一種雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)方法,將多個會話進(jìn)行分組,每次對一組會話進(jìn)行檢測,依次輪詢各組實(shí)現(xiàn)對多會話的雙向轉(zhuǎn)發(fā)檢測。該方法流程如圖3所示,包括如下步驟步驟Sll 將需要進(jìn)行雙向轉(zhuǎn)發(fā)檢測的多個會話劃分為設(shè)定數(shù)量的會話組。當(dāng)有新會話建立時,將新建立的會話分配至預(yù)先建立的設(shè)定數(shù)量的會話分組中的一個選定的會話分組中。優(yōu)選的,會話分組的選定根據(jù)新建立的會話的會話標(biāo)識號確定。優(yōu)選的,為了獲取較優(yōu)的檢測效果,可以根據(jù)向?qū)Χ嗽O(shè)備發(fā)送?;顖笪牡陌l(fā)送周期設(shè)定會話分組的數(shù)量和輪詢周期,使得在一個?;顖笪陌l(fā)送周期內(nèi)可以分別輪詢各會話分組一次。例如根據(jù)BFD會話的特征,每一路會話間隔50ms需要發(fā)送一個?;顖笪膩頇z測其連通性。為了每一路會話能及時發(fā)送報文,系統(tǒng)啟動一定時器,每間隔IOms調(diào)用一次BFD 處理函數(shù),用于識別每一路會話是否需要發(fā)送?;顖笪募敖邮諏Χ税l(fā)送的?;顖笪氖欠窠邮粘瑫r。對于所有會話而言,50ms內(nèi)只需要發(fā)送一個?;顖笪募皺z測一次接收超時。對于 IOms的定時器而言,50ms內(nèi)會檢測所有會話5次,每次需要遍歷所有會話找出需要發(fā)送?;顖笪牡臅挘瑢?dǎo)致CPU資源浪費(fèi)。如果直接使用50ms間隔的定時器則會導(dǎo)致所有會話狀態(tài)同步,導(dǎo)致CPU及系統(tǒng)其它資源消耗出現(xiàn)突發(fā)而導(dǎo)致系統(tǒng)不穩(wěn)定。因此本發(fā)明中基于BFD 檢測的這一特征,將所有待檢測的BFD會話分為5個組,定時器使用IOms間隔的定時器,每次定時器超時時僅處理一組,而設(shè)置該組中所有會話恰好均是需要發(fā)送?;顖笪牡模恍枰贆z測是否需要發(fā)送?;顖笪?,而其它未處理的組認(rèn)為都是未達(dá)到發(fā)送要求的,無需進(jìn)
行判斷浪費(fèi)資源。對于每一組會話,其處理時間為_50+0^-1)*101^^ = 0,1,2......,表
示輪詢次數(shù);=l,2,3,4,5,x代表組號),這樣每一組會話處理間隔時間恰好是一個會話需要發(fā)送一次?;顖笪牡臅r間長度50ms。如圖4所示,即為將多個會話劃分為5組的BFD信息示意圖,以圖所示的系統(tǒng)為例,該系統(tǒng)中RJ-C下聯(lián)360 (N = 360)個網(wǎng)點(diǎn),RJ-C與360網(wǎng)點(diǎn)的路由器啟動BFD檢測各自的鏈路。對于RJ-C,其需要同時建立360路會話,為了對這360路會話進(jìn)行有效地BFD檢測,
同時避免其震蕩,將其分為如圖4所示的五組Groupl........GroUp5,每個會話隨機(jī)的
分入一個會話組中,其中MAX_GR0UP_SESSI0N_SIZE為每個會話組所支持的會話的最大數(shù)量,CURRENT_SESSION_SIZE為當(dāng)前會話組中包含的會話數(shù)量,取值范圍為1至MAX_GR0UP_ SESSI0N_SIZE。優(yōu)選的,會話分組的選定根據(jù)新建立的會話的會話標(biāo)識號確定時,具體可以是網(wǎng)
5點(diǎn)路由器RJ-N啟動后,RJ-C建立與之對應(yīng)的BFD會話BFD N,BFDN可以是獲取的一個隨機(jī)值,作為會話標(biāo)識號,根據(jù)算法group = (random% 5+1)獲取一個組。其中random^ 5表示取N除以5之后余數(shù)。例如確定出group為3,將BFD N添加至Group3這一會話組中的一個空閑空間,并將改組⑶RRENT_SESSION_SIZE加1。如果該組中實(shí)際的會話數(shù)已經(jīng)達(dá)到 MAX_GR0UP_SESSI0N_SIZE,則檢查下一組即第4組中是否存在空閑空間存儲該會話,依次類推,直到找到空閑空間為止。此外,也可以通過其他算法實(shí)現(xiàn)根據(jù)會話標(biāo)識號選取一個會話分組,例如=Hash算法等。當(dāng)然根據(jù)會話標(biāo)識號選定會話分組只是一種可選的方式,實(shí)際上也可以隨機(jī)的選擇任何一個會話分組或按照輪詢的順序依次選擇各會話分組添加會話,例如第一次添加到
Groupl,第二次添加到GroUp2,......等等,只要選擇的會話分組中的會話數(shù)未達(dá)到最大
值 MAX_GR0UP_SESSI0N_SIZE 即可。上述是以分為五組為例進(jìn)行說明的,實(shí)際應(yīng)用中可以在滿足每一組會話處理間隔時間恰好是一個會話需要發(fā)送一次保活報文的時間長度的條件下,合理的分為若干組。BFD會話建立之后啟動快速檢測,將該路BFD會話隨機(jī)分配至某一會話組。如果某一會話組中的會話達(dá)到該會話組的容量最大值,則將其分入下一組,直至找到合適的有空閑空間的會話組,將會話添加到查找到的會話組,存儲該會話的信息。步驟S12 按照設(shè)定的輪詢周期輪詢各個會話分組。根據(jù)向?qū)Χ嗽O(shè)備發(fā)送?;顖笪牡陌l(fā)送周期確定會話分組的數(shù)量和設(shè)定輪詢周期。 一般使得會話分組的數(shù)量和設(shè)定的輪詢周期的乘積等于向?qū)Χ嗽O(shè)備發(fā)送?;顖笪牡陌l(fā)送周期,可以獲得最佳的輪詢效果。沿用上邊的例子,當(dāng)系統(tǒng)啟動第一路BFD會話時,定時器開始運(yùn)行。每次定時器時間到達(dá)之后,系統(tǒng)調(diào)用BFD會話處理函數(shù),根據(jù)當(dāng)前狀態(tài)處理個會話組中的一組會話,并記錄會話組的組序號,定時器下輪循環(huán)時處理下一個會話組中的一組會話。即定時器啟動時 (即Oms時)處理第一組會話(即會話組Group 1中的會話),在第一個IOms到達(dá)時(即
IOms時)處理第二組會話(即會話組Group 2中的會話),......在第四個IOms到達(dá)時
(即40ms時)處理第五組會話(即會話組Group 5中的會話);在在第五個IOms到達(dá)時 (即50ms時)又從第一組會話開始。每組會話處理的時間間隔恰好為50毫秒,達(dá)到其50ms 發(fā)送報文及檢測丟包的需求。當(dāng)會話分組的數(shù)量和設(shè)定的輪詢周期的乘積不等于向?qū)Χ嗽O(shè)備發(fā)送?;顖笪牡陌l(fā)送周期時,也是可以實(shí)現(xiàn)輪詢的。例如在50ms的?;顖笪陌l(fā)送周期內(nèi),每隔8ms輪詢一個會話分組,當(dāng)輪詢完5個會話分組后,等待下一個50ms的到來,這種方式不像會話分組的數(shù)量和設(shè)定的輪詢周期的乘積等于向?qū)Χ嗽O(shè)備發(fā)送保活報文的發(fā)送周期,可以獲得最佳的輪詢效果。但也能夠解決現(xiàn)有技術(shù)中定時對多會話進(jìn)行BFD檢測時占用大量CPU資源且會導(dǎo)致的路由器轉(zhuǎn)發(fā)性能降低的問題。步驟S13 針對當(dāng)前輪詢的會話分組中的每個會話執(zhí)行下列步驟。這樣每次輪詢一個會話分組,每次定時器到期只處理一個會話分組中的各個會話,并認(rèn)為這些會話需要同時發(fā)送?;顖笪?。步驟S14 向當(dāng)前輪詢的會話分組中的會話的對端設(shè)備發(fā)送?;顖笪?。步驟S15 判斷在設(shè)定的檢測周期內(nèi)是否接收到該會話的對端設(shè)備發(fā)送的?;顖?br>
當(dāng)判斷為是時,執(zhí)行步驟S16 ;否則,執(zhí)行步驟S17。根據(jù)對端設(shè)備發(fā)送?;顖笪牡陌l(fā)送周期設(shè)定檢測周期,其中,檢測周期為對端設(shè)備發(fā)送?;顖笪牡陌l(fā)送周期的設(shè)定倍數(shù)。一般可以設(shè)置檢測周期為對端設(shè)備發(fā)送?;顖笪牡陌l(fā)送周期的3倍,即連續(xù)三次不能接收到對端發(fā)送的保活報文,認(rèn)為該會話故障。步驟S16 確定該會話不存在連通性故障。若在檢測周期內(nèi)能接收到對端發(fā)送的保活報文,認(rèn)為該會話存在連通性良好,不存在故障。步驟S17 確定該會話存在連通性故障。若在檢測周期內(nèi)未能接收到對端發(fā)送的?;顖笪?,即會話接收超時,認(rèn)為該會話存在連通性故障。優(yōu)選的,上述步驟S17確定所述會話存在連通性故障之后,還包括步驟S18 將存在連通性故障的會話從所在的會話分組中刪除。當(dāng)某一路BFD會話超時需要將該會話從會話分組中刪除。步驟S19 調(diào)整會話分組中其他會話的在會話分組中的位置,使其他會話在會話分組中的位置連續(xù)。優(yōu)選的,當(dāng)某一路BFD會話超時需要將該會話從會話分組中刪除時,在對應(yīng)會話組中留下空缺。為了保持會話組中會話記錄的連續(xù)行,將該組中最后一個會話移動到該刪除了的會話的位置處,使每組BFD會話處理連續(xù)的空間中,避免定時器處理空會話,浪費(fèi) CPU。當(dāng)然也可以不采取將該組中最后一個會話移動到該刪除了的會話的位置處,而采取將刪除的會話之后的會話順次前提的方式,實(shí)現(xiàn)使其他會話在會話分組中的位置連續(xù), 這種方式移動的會話數(shù)量相對較多。以圖4所示的各會話組為例,其中,Group 1這一會話組中第二路會話BFDX被檢測到存在鏈路連通性故障,此時該會話不再需要發(fā)送?;顖笪募皺z測接收對端發(fā)送的?;顖笪氖欠癯瑫r,需要刪除該會話在會話組中的信息。然后,將該會話占用的空間給該會話組中最后一路會話,即會話BFD Y占用,并將該組中⑶RRENT_SESSION_SIZE減1,會話BFD Y 所占用空間恢復(fù)初始化。對于上述360路會話被分為5個組的情況,每個組中實(shí)際會話數(shù)記錄在該組對應(yīng) ⑶RRENT_SESSION_SIZE中,其所有會話被存儲中連續(xù)的空間中,每次定時器到達(dá)只需要依次從該數(shù)組前面連續(xù)的空間中讀取信息進(jìn)行發(fā)送報文,減少不必要的判斷。降低對CPU的
使用率。基于本發(fā)明實(shí)施例提供的雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)方法,本發(fā)明實(shí)施例還提供一種雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)裝置,該裝置可以設(shè)置在任何需要對多會話進(jìn)行雙向轉(zhuǎn)發(fā)檢測的網(wǎng)絡(luò)設(shè)備中,該裝置的結(jié)構(gòu)如圖5所示,包括分組模塊10、輪詢模塊20和檢測模塊30。分組模塊10,用于將需要進(jìn)行雙向轉(zhuǎn)發(fā)檢測的多個會話劃分為設(shè)定數(shù)量的會話組。優(yōu)選的,上述分組模塊10,具體用于當(dāng)有新會話建立時,將新建立的會話分配至預(yù)先建立的設(shè)定數(shù)量的會話分組中的一個選定的會話分組中,其中,會話分組的選定根據(jù)新建立的會話的會話標(biāo)識號確定。輪詢模塊20,用于按照設(shè)定的輪詢周期輪詢各個會話分組。檢測模塊30,用于針對當(dāng)前輪詢的會話分組中的每個會話執(zhí)行下列步驟向會話的對端設(shè)備發(fā)送保活報文,以及判斷在設(shè)定的檢測周期內(nèi)是否接收到對端設(shè)備發(fā)送的保活報文;當(dāng)判斷為否時,確定該會話存在連通性故障;否則確定該會話不存在連通性故障。優(yōu)選的,上述檢測模塊30,還用于確定會話存在連通性故障之后,將存在連通性故障的會話從所在的會話分組中刪除,并調(diào)整會話分組中其他會話的在會話分組中的位置,使其他會話在會話分組中的位置連續(xù)。優(yōu)選的,上述雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)裝置,還包括設(shè)置模塊40,用于根據(jù)對端設(shè)備發(fā)送的?;顖笪陌l(fā)送周期設(shè)定檢測周期,其中,檢測周期為對端設(shè)備發(fā)送的?;顖笪陌l(fā)送周期的設(shè)定倍數(shù)。優(yōu)選的,上述設(shè)置模塊40,還用于根據(jù)向?qū)Χ嗽O(shè)備發(fā)送?;顖笪牡陌l(fā)送周期設(shè)定會話分組的數(shù)量和輪詢周期,其中,會話分組的數(shù)量與輪詢周期的乘積等于向?qū)Χ嗽O(shè)備發(fā)送?;顖笪牡陌l(fā)送周期?;诒景l(fā)明實(shí)施例提供的雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)方法,本發(fā)明實(shí)施例還提供一種網(wǎng)絡(luò)設(shè)備,包括上述的雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)裝置。其中網(wǎng)絡(luò)設(shè)備可以包括路由器、交換機(jī)等。本發(fā)明實(shí)施例提供的上述雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)方法及裝置,通過對多會話進(jìn)行分組輪詢檢測,這種分組檢測,每次只輪詢一個組內(nèi)的會話即可,避免了頻繁輪詢所有的會話, 在不影響B(tài)FD檢測功能的同時,將對CPU的使用率降低到最少。同時,可以避免多路會話的 BFD檢測收發(fā)同步導(dǎo)致的流量突發(fā),避免會話狀態(tài)同步帶來的鏈路誤判所導(dǎo)致的鏈路抖動, 也減少了對低優(yōu)先級的業(yè)務(wù)報文的影響,減少了數(shù)據(jù)丟失和業(yè)務(wù)中斷的可能性。上述方法對于具有眾多下聯(lián)設(shè)備(如圖1中各網(wǎng)點(diǎn)的上聯(lián)路由器)的匯聚設(shè)備 (如圖1中市行的下聯(lián)路由器),在轉(zhuǎn)發(fā)性能提高方面的效果是十分明顯的,通過對BFD會話進(jìn)行分組平滑處理,即可以快速檢測到會話的鏈路故障,及時切換到備份鏈路,又可以減少業(yè)務(wù)中斷,避免數(shù)據(jù)的丟失。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)方法,其特征在于,包括將需要進(jìn)行雙向轉(zhuǎn)發(fā)檢測的多個會話劃分為設(shè)定數(shù)量的會話組,按照設(shè)定的輪詢周期輪詢各個會話分組;針對當(dāng)前輪詢的會話分組中的每個會話執(zhí)行下列步驟向所述會話的對端設(shè)備發(fā)送?;顖笪?,以及判斷在設(shè)定的檢測周期內(nèi)是否接收到對端設(shè)備發(fā)送的?;顖笪模划?dāng)判斷為否時,確定所述會話存在連通性故障;否則確定所述會話不存在連通性故障。
2.如權(quán)利要求1所述的方法,其特征在于,所述將需要進(jìn)行雙向轉(zhuǎn)發(fā)檢測的多個會話劃分為設(shè)定數(shù)量的會話組,具體包括當(dāng)有新會話建立時,將新建立的會話分配至預(yù)先建立的設(shè)定數(shù)量的會話分組中的一個選定的會話分組中,其中,會話分組的選定根據(jù)新建立的會話的會話標(biāo)識號確定。
3.如權(quán)利要求1所述的方法,其特征在于,根據(jù)對端設(shè)備發(fā)送的保活報文發(fā)送周期設(shè)定檢測周期,所述檢測周期為所述發(fā)送周期的設(shè)定倍數(shù)。
4.如權(quán)利要求1所述的方法,其特征在于,根據(jù)向?qū)Χ嗽O(shè)備發(fā)送?;顖笪牡陌l(fā)送周期設(shè)定所述會話分組的數(shù)量和輪詢周期,其中,所述會話分組的數(shù)量與輪詢周期的乘積等于所述發(fā)送周期。
5.如權(quán)利要求1-4任一所述的方法,其特征在于,確定所述會話存在連通性故障之后, 還包括將存在連通性故障的所述會話從所在的會話分組中刪除,并調(diào)整會話分組中其他會話在會話分組中的位置連續(xù)。
6.一種雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)裝置,其特征在于,包括分組模塊,用于將需要進(jìn)行雙向轉(zhuǎn)發(fā)檢測的多個會話劃分為設(shè)定數(shù)量的會話組;輪詢模塊,用于按照設(shè)定的輪詢周期輪詢各個會話分組;檢測模塊,用于針對當(dāng)前輪詢的會話分組中的每個會話執(zhí)行下列步驟向所述會話的對端設(shè)備發(fā)送?;顖笪?,以及判斷在設(shè)定的檢測周期內(nèi)是否接收到對端設(shè)備發(fā)送的保活報文;當(dāng)判斷為否時,確定所述會話存在連通性故障;否則確定所述會話不存在連通性故障。
7.如權(quán)利要求6所述的裝置,其特征在于,所述分組模塊,具體用于當(dāng)有新會話建立時,將新建立的會話分配至預(yù)先建立的設(shè)定數(shù)量的會話分組中的一個選定的會話分組中, 其中,會話分組的選定根據(jù)新建立的會話的會話標(biāo)識號確定。
8.如權(quán)利要求6所述的裝置,其特征在于,還包括設(shè)置模塊,用于根據(jù)對端設(shè)備發(fā)送的?;顖笪陌l(fā)送周期設(shè)定檢測周期,所述檢測周期為所述發(fā)送周期的設(shè)定倍數(shù)。
9.如權(quán)利要求6所述的裝置,其特征在于,還包括設(shè)置模塊,用于根據(jù)向?qū)Χ嗽O(shè)備發(fā)送?;顖笪牡陌l(fā)送周期設(shè)定所述會話分組的數(shù)量和輪詢周期,其中,所述會話分組的數(shù)量與輪詢周期的乘積等于所述發(fā)送周期。
10.如權(quán)利要求6-9任一所述的裝置,其特征在于,所述檢測模塊,還用于確定所述會話存在連通性故障之后,將存在連通性故障的所述會話從所在的會話分組中刪除,并調(diào)整會話分組中其他會話的在會話分組中的位置,使其他會話在會話分組中的位置連續(xù)。
11.一種網(wǎng)絡(luò)設(shè)備,其特征在于,包括如權(quán)利要求6-10任一所述的雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)裝置ο
全文摘要
本發(fā)明公開了一種雙向轉(zhuǎn)發(fā)檢測實(shí)現(xiàn)方法、裝置及網(wǎng)絡(luò)設(shè)備,該方法包括將需要進(jìn)行雙向轉(zhuǎn)發(fā)檢測的多個會話劃分為設(shè)定數(shù)量的會話組,按照設(shè)定的輪詢周期輪詢各個會話分組;針對當(dāng)前輪詢的會話分組中的每個會話執(zhí)行下列步驟向所述會話的對端設(shè)備發(fā)送?;顖笪?,以及判斷在設(shè)定的檢測周期內(nèi)是否接收到對端設(shè)備發(fā)送的?;顖笪?;當(dāng)判斷為否時,確定所述會話存在連通性故障;否則確定所述會話不存在連通性故障。該方法不用同時輪詢所有會話,減少了CPU占用量,提高了系統(tǒng)轉(zhuǎn)發(fā)性能。
文檔編號H04L12/26GK102347855SQ20111020734
公開日2012年2月8日 申請日期2011年7月21日 優(yōu)先權(quán)日2011年7月21日
發(fā)明者羅俊鑫 申請人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司