《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 一種新型的網(wǎng)絡(luò)層心跳探測(cè)方案

一種新型的網(wǎng)絡(luò)層心跳探測(cè)方案

2008-02-25
作者:賈 娟,汪斌強(qiáng)

摘 要:針對(duì)路由器高可用性" title="高可用性">高可用性系統(tǒng)中心跳探測(cè)模塊的常見(jiàn)問(wèn)題,提出一套新型基于網(wǎng)絡(luò)層" title="網(wǎng)絡(luò)層">網(wǎng)絡(luò)層自動(dòng)調(diào)頻的心跳探測(cè)方案。該方案采用雙心跳線,結(jié)合動(dòng)態(tài)調(diào)節(jié)探測(cè)周期的方法,并在網(wǎng)絡(luò)層中實(shí)現(xiàn)。
關(guān)鍵詞:高可用性? 心跳? 網(wǎng)絡(luò)層

?

??? 計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)成為現(xiàn)代社會(huì)生產(chǎn)和生活的基礎(chǔ)設(shè)施,而核心路由器作為網(wǎng)絡(luò)的關(guān)鍵結(jié)點(diǎn),能否保證服務(wù)的可靠性和穩(wěn)定性是一個(gè)極為重要的問(wèn)題。核心路由器一般承擔(dān)著骨干網(wǎng)的運(yùn)營(yíng),如果發(fā)生致命故障,將導(dǎo)致大面積網(wǎng)絡(luò)的癱瘓,造成的直接經(jīng)濟(jì)損失也是巨大的。
  一般的解決方法是采用雙機(jī)熱備的主從切換方式,如CISCO的HRSP協(xié)議所介紹的一種方法,由一臺(tái)active路由器和standby路由器組來(lái)承擔(dān)高可靠性。而本文討論的是核心路由器如何解決主備主控板的切換來(lái)保證高可靠性的問(wèn)題。這樣就產(chǎn)生了一個(gè)問(wèn)題,即如何設(shè)計(jì)一種及時(shí)且準(zhǔn)確的探測(cè)機(jī)制來(lái)發(fā)現(xiàn)主控板故障,這是能否實(shí)現(xiàn)主備切換的基礎(chǔ)。
? ? 本文就已有的心跳(Heartbeat)探測(cè)機(jī)制存在的優(yōu)點(diǎn)和不足進(jìn)行討論,并設(shè)計(jì)了一種基于網(wǎng)絡(luò)層的可自動(dòng)調(diào)頻心跳保障模型。
1 Heartbeat介紹
  Heartbeat網(wǎng)絡(luò)是故障發(fā)生時(shí)系統(tǒng)間的通信通道。簡(jiǎn)單地說(shuō),系統(tǒng)通過(guò)心跳網(wǎng)絡(luò)進(jìn)行周期性的問(wèn)候信息交流。系統(tǒng)在正常情況下,備用處理器發(fā)送信息詢問(wèn)主用處理器的健康狀況,主用處理器同樣發(fā)送心跳探測(cè)包來(lái)確定備用處理器是否隨時(shí)處于等待狀態(tài)。如果備用處理器在限定的周期內(nèi)未收到主用處理器的探測(cè)包,則表明主用處理器發(fā)生故障,它會(huì)自動(dòng)接管主用處理器的IP地址和各種應(yīng)用服務(wù),成為新的主用處理器。當(dāng)失效處理器恢復(fù)正常后,重新發(fā)狀態(tài)信息給新的主用處理器,要求其成為備用處理器。
  現(xiàn)有的心跳網(wǎng)絡(luò)連接方式多借助于RS232串行線路和以太網(wǎng)方式。由于心跳網(wǎng)絡(luò)相對(duì)于整個(gè)網(wǎng)絡(luò)所傳輸?shù)臄?shù)據(jù)量要小,但對(duì)其可靠性要求很高,即零丟包率,否則連續(xù)的數(shù)據(jù)丟失會(huì)引起對(duì)方處理器誤認(rèn)為其宕機(jī)。因以太網(wǎng)價(jià)格低廉、應(yīng)用廣泛、不需要特殊的電纜和硬件設(shè)備,所以通常被推薦用來(lái)實(shí)現(xiàn)心跳網(wǎng)絡(luò)。此外其他網(wǎng)絡(luò)介質(zhì)也沒(méi)有其傳輸可靠性高。對(duì)于傳輸大量數(shù)據(jù)流的情況,推薦使用快速傳輸網(wǎng)絡(luò),但是心跳數(shù)據(jù)信息相對(duì)較小,現(xiàn)有Heartbeat探測(cè)主要存在以下問(wèn)題。
  (1) 硬件問(wèn)題造成的誤判
??? 主從雙處理器的設(shè)計(jì)目的是為了避免SPOF(單點(diǎn)故障)造成停機(jī)。而心跳線同樣可以成為SPOF。當(dāng)處理器收不到對(duì)方的心跳信息時(shí),故障原因分為兩種,一種是主處理器軟硬件的故障;另一種可能是心跳線路自身的故障。對(duì)于前一種情況確實(shí)應(yīng)該觸發(fā)主備切換措施,而第二種情況可能會(huì)造成系統(tǒng)誤判而進(jìn)行主備切換,主備處理器切換必然要造成路由器短時(shí)間的異常工作,所以確定故障的原因比較困難。
 ? (2) 心跳周期難以設(shè)定
????作為判斷故障的心跳模塊自身必須可靠穩(wěn)定,所以一般設(shè)計(jì)比較簡(jiǎn)單。而心跳周期長(zhǎng)度一般采用人為設(shè)置,但是這個(gè)周期是否合理?即是否可以及時(shí)發(fā)現(xiàn)故障,且其發(fā)送探測(cè)的頻率過(guò)高又不會(huì)造成多余的系統(tǒng)負(fù)擔(dān)。以上兩個(gè)相互制約的因素都是高可用性要考慮的問(wèn)題。
??? 在實(shí)際應(yīng)用中,心跳網(wǎng)絡(luò)一般處于變化的請(qǐng)求服務(wù)中,如果系統(tǒng)采用固定心跳周期,有可能弱化系統(tǒng)的可用性;如果周期過(guò)短,處理器需要頻繁處理心跳探測(cè)數(shù)據(jù),影響了系統(tǒng)的效率;如果周期過(guò)長(zhǎng),在故障發(fā)生時(shí),從處理器可能沒(méi)有及時(shí)發(fā)現(xiàn)探測(cè)心跳未到達(dá)而延誤觸發(fā)主備切換模塊,造成的網(wǎng)絡(luò)癱瘓更與高可用性的要求背道而馳。
?? (3) 心跳鏈路" title="鏈路">鏈路采用套接字以TCP/UDP方式的傳輸機(jī)制造成較大的時(shí)延
??? 作為對(duì)實(shí)時(shí)性" title="實(shí)時(shí)性">實(shí)時(shí)性和可靠性有雙重要求的心跳鏈路,多數(shù)方案都在應(yīng)用層" title="應(yīng)用層">應(yīng)用層利用SOCKET以UDP或TCP報(bào)文方式實(shí)現(xiàn)心跳協(xié)議。其中UDP報(bào)文比TCP報(bào)文簡(jiǎn)短,正好符合心跳協(xié)議的要求。由于UDP沒(méi)有擁塞控制,所以心跳網(wǎng)絡(luò)如果出現(xiàn)擁塞,UDP會(huì)丟棄一些數(shù)據(jù)包,但不會(huì)影響處理器發(fā)送心跳的速率,同時(shí)也帶來(lái)不可靠傳輸?shù)膯?wèn)題。如果網(wǎng)絡(luò)在擁塞情況下會(huì)丟失一些數(shù)據(jù)包,這對(duì)于零丟包率的心跳檢測(cè)將造成很大影響。
  在傳輸速率問(wèn)題上,無(wú)論對(duì)于TCP還是UDP的套接字,實(shí)現(xiàn)方式都在應(yīng)用層實(shí)現(xiàn),即心跳報(bào)文要經(jīng)過(guò)傳輸層、內(nèi)核及接口,并受到應(yīng)用層任務(wù)切換的影響,這樣會(huì)導(dǎo)致切換時(shí)間長(zhǎng)達(dá)數(shù)秒,難以滿足實(shí)時(shí)性的要求。
  在可靠性問(wèn)題上,如果是單對(duì)心跳網(wǎng)絡(luò),則可以對(duì)探測(cè)包進(jìn)行編號(hào),并利用判別機(jī)制裁決。忽略收到非連續(xù)編號(hào)的數(shù)據(jù)包的情況,判斷因?yàn)樾奶W(wǎng)絡(luò)擁塞所致,而不影響心跳信任級(jí)別的周期。但如果采用雙心跳線網(wǎng)絡(luò),在兩條鏈路上同時(shí)出現(xiàn)擁塞情況的可能性較小,因而避免了由于不可靠傳輸造成的誤判。
2 自動(dòng)調(diào)頻雙心跳保障模型設(shè)計(jì)方案
????根據(jù)上述在心跳探測(cè)技術(shù)中出現(xiàn)的問(wèn)題,筆者提出一種基于網(wǎng)絡(luò)層的自動(dòng)調(diào)頻雙心跳保障方案。此方案流程如圖1,圖中的報(bào)文類(lèi)型見(jiàn)表1。

?

?

?

????在路由器啟動(dòng)后,兩塊處理器均屬于初始狀態(tài),這時(shí)尚未確定active和standby。首先僅在一條心跳線上啟動(dòng)主備協(xié)商機(jī)制。要求主備協(xié)商機(jī)制要簡(jiǎn)約,因?yàn)樵谶@里沒(méi)有必要設(shè)計(jì)復(fù)雜的算法選出主用。因而采取比較兩處理板IP地址大小的判決方法,通過(guò)互發(fā)心跳探測(cè)報(bào)文,比較IP ADDR值,較小的為主處理器,進(jìn)入active狀態(tài);較大的為備用處理器,進(jìn)入standby狀態(tài)。
????在確定了主備用地位的同時(shí),向?qū)Ψ酵ǜ孀约旱纳矸荨_@時(shí)啟動(dòng)雙心跳線,備用一方發(fā)送心跳探測(cè)報(bào)文監(jiān)控主用的工作是否正常;主用收到探測(cè)報(bào)文進(jìn)行回復(fù)。備用在工作時(shí)要根據(jù)主用發(fā)送回復(fù)的周期值,計(jì)算出系統(tǒng)最合適的心跳探測(cè)頻率,后文將詳細(xì)介紹。為了避免由于心跳線發(fā)生故障造成的誤判,如果備用只收到來(lái)自一條心跳線的回復(fù)報(bào)文,則由故障判別機(jī)制來(lái)確認(rèn)主用工作正常。
??? 報(bào)文類(lèi)型:00為主備協(xié)商報(bào)文,DATA域攜帶處理器IP地址;01為主備確定報(bào)文,DATA域攜帶裁決結(jié)果;10為心跳探測(cè)報(bào)文,standby→active,要求active給確認(rèn);11為心跳回應(yīng)報(bào)文,active→standby,告訴standby自己正常。
2.1 雙心跳網(wǎng)絡(luò)探測(cè)機(jī)制及故障辨別機(jī)制
  分別由兩個(gè)進(jìn)程各自控制兩條心跳線路上的心跳數(shù)據(jù)發(fā)送,由故障判別機(jī)制判斷處理器的工作狀態(tài)。例如,若從處理器收到來(lái)自兩條鏈路的心跳信息,則判斷主處理器為正常工作狀態(tài);若從處理器只收到一條鏈路上的心跳信息,則判斷主處理器工作正常,且心跳線故障,不觸發(fā)主備切換模塊;若從處理器未收到任意一條線路的心跳信息,則判斷主處理器失效,觸發(fā)主備切換模塊。此設(shè)計(jì)雖然增加了實(shí)現(xiàn)的復(fù)雜性,但卻解決了實(shí)際工程中接口松動(dòng)等問(wèn)題造成的系統(tǒng)誤判和不必要的消耗。雙心跳網(wǎng)絡(luò)探測(cè)機(jī)制如圖2所示。

?


??? 在功能實(shí)現(xiàn)上,故障判別機(jī)制和傳統(tǒng)定時(shí)器的作用是相同的。對(duì)于傳統(tǒng)定時(shí)器方式:在處理器未收到對(duì)方的心跳信息時(shí),啟動(dòng)定時(shí)器,在所設(shè)置的時(shí)間內(nèi)仍沒(méi)有收到信息,判斷為處理器失效,這時(shí)由于等待deadline可能已經(jīng)延誤了主備切換的時(shí)間。
??? 由于本方案采取冗余心跳網(wǎng)絡(luò),對(duì)于一條心跳鏈路來(lái)說(shuō),如果處理器未收到心跳信息,則進(jìn)入故障判別模式,詢問(wèn)另一條心跳線是否收到心跳信息;如果結(jié)果一致,則迅速啟動(dòng)主備切換。這樣可以減少不必要的等待時(shí)間,也可以避免由于線路擁塞造成的誤判。
2.2 分級(jí)的自適應(yīng)周期設(shè)計(jì)
??? 針對(duì)心跳周期難以設(shè)定的問(wèn)題,采用了一種自適應(yīng)周期的設(shè)計(jì)。其原理是:首先設(shè)定高、中、低三種心跳信任級(jí)別的周期:1s、3s、5s。心跳頻率調(diào)節(jié)原理如圖3所示,通過(guò)最近發(fā)生的N次心跳求其平均值Tr與三個(gè)級(jí)別相比較,以確定其下一階段采用的心跳頻率。這樣可以根據(jù)實(shí)際網(wǎng)絡(luò)運(yùn)行的情況實(shí)現(xiàn)高可用性。

?


2.3 基于網(wǎng)絡(luò)層的心跳傳輸機(jī)制設(shè)計(jì)
??? 由于以往的心跳傳輸基本采用TCP或UDP方式,在實(shí)現(xiàn)中必須遵從TCP/IP協(xié)議信息處理的層次流程,使實(shí)時(shí)性的要求無(wú)法保證。為了縮短處理時(shí)經(jīng)過(guò)的層次,設(shè)計(jì)了一種基于網(wǎng)絡(luò)層的心跳傳輸方式。
  心跳模塊工作層次結(jié)構(gòu)圖如圖4所示。心跳模塊與上層應(yīng)用完全分隔開(kāi),它處于鏈路層和網(wǎng)絡(luò)層。通過(guò)在鏈路層對(duì)幀頭的類(lèi)型字段的檢查,區(qū)分出心跳報(bào)文與IP報(bào)文。如果是IP報(bào)文,則送入上層協(xié)議棧;如果是心跳報(bào)文,則進(jìn)入心跳報(bào)文隊(duì)列,并觸發(fā)一個(gè)中斷,通告心跳模塊進(jìn)行處理。以往通過(guò)應(yīng)用層的心跳信息必須通過(guò)插口層再到應(yīng)用層進(jìn)行處理,這個(gè)過(guò)程要經(jīng)過(guò)路由、選徑、報(bào)文確認(rèn)等一對(duì)一地心跳傳輸中所不必要的步驟,增加了網(wǎng)絡(luò)的開(kāi)銷(xiāo),更降低了傳輸效率。

?

?


  以上設(shè)計(jì)的方案在ACR路由器的主控支撐軟件主備切換模塊中,已成為心跳探測(cè)機(jī)制工作中關(guān)鍵的一環(huán)。實(shí)踐證明,此方案不僅在發(fā)現(xiàn)故障上實(shí)現(xiàn)了最低延遲,同時(shí)將誤判率降至最低,為主備切換做好了基礎(chǔ)性工作。從而為保證系統(tǒng)可靠性提供了前提。但在實(shí)現(xiàn)時(shí)增加了系統(tǒng)的復(fù)雜性,因此如何設(shè)計(jì)一個(gè)高效、準(zhǔn)確且實(shí)用的心跳協(xié)議仍是雙機(jī)熱備系統(tǒng)設(shè)計(jì)中需認(rèn)真考慮的關(guān)鍵問(wèn)題之一。
參考文獻(xiàn)
[1]?尹康凱,王明偉,李善平.高可用性機(jī)群中多個(gè)節(jié)點(diǎn)的心跳模型研究.計(jì)算機(jī)工程,2005.
[2]?David Patterson,Aaron Brown, Pete Broadwell. Recovery??oriented computing(ROC): motivation,definition,techniques,and case STUDIES[R].Technical Report CSD-02-1175,UC Berkeley,2002.
[3]?Sameer Srivastava. Redundancy management for network?devices. 2003. IEEE
[4]?Evan Marcus,Hal Stern. 高可用性系統(tǒng)設(shè)計(jì).北京:清華大學(xué)出版社,2005.
[5]?John L H, David A P. Computer architecture: A quantitative approach[M].北京:機(jī)械工業(yè)出版社,?2002.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
日韩午夜在线播放| 日韩一级在线观看| 亚洲人成7777| 激情综合五月天| 国产视频精品免费播放| 国产精品一区二区三区四区五区| 欧美精品在线免费观看| 欧美国产日韩一区二区在线观看 | 亚洲午夜日本在线观看| 亚洲精品一区二区在线观看| 亚洲国产清纯| 91久久精品美女| 亚洲精品欧美日韩| 亚洲精品一区二区网址 | 欧美大片在线观看一区| 女人天堂亚洲aⅴ在线观看| 麻豆国产精品va在线观看不卡| 久久久久久久久久久一区| 久久久久久久一区二区三区| 久久久久久欧美| 久久精品99无色码中文字幕 | 欧美日韩ab| 欧美日韩亚洲天堂| 国产精品v亚洲精品v日韩精品 | 国内久久婷婷综合| 精品9999| 1024国产精品| 亚洲欧洲在线一区| 日韩网站在线看片你懂的| 99视频精品免费观看| 一区二区三区免费网站| 99热这里只有精品8| 亚洲午夜精品久久久久久app| 中文亚洲免费| 亚洲欧美在线aaa| 欧美一区视频在线| 亚洲黑丝一区二区| 一区二区三区国产精品| 欧美一区二区三区免费看 | 亚洲欧美国内爽妇网| 久久都是精品| 亚洲美洲欧洲综合国产一区| 中文精品视频一区二区在线观看| 亚洲欧美日本伦理| 久久男女视频| 欧美人与性动交cc0o| 国产精品久久久爽爽爽麻豆色哟哟| 国产乱码精品一区二区三区不卡| 国产综合在线视频| 亚洲人成在线观看网站高清| 亚洲一区二区高清| 亚洲高清视频一区二区| 中国女人久久久| 久久国产婷婷国产香蕉| 美女国产精品| 欧美午夜片在线观看| 国模 一区 二区 三区| 亚洲精选成人| 欧美一级久久久| 亚洲日产国产精品| 午夜精品久久久久久久99水蜜桃| 久久人人爽人人爽爽久久| 欧美日韩国产首页在线观看| 国产午夜精品一区理论片飘花| 亚洲国产日本| 亚洲自拍三区| 亚洲精品黄网在线观看| 午夜视频一区在线观看| 麻豆精品视频在线观看视频| 国产精品久久久免费| 亚洲国产精品一区二区第四页av| 亚洲一区久久久| 亚洲精品国产无天堂网2021| 久久成人资源| 欧美日韩在线三级| 亚洲第一精品久久忘忧草社区| 一区二区三区日韩精品视频| 亚洲国产精品传媒在线观看 | 欧美日韩一区二区三区视频| 很黄很黄激情成人| 亚洲永久免费av| 日韩一二三在线视频播| 久久久久久香蕉网| 国产精品久久久久久久久免费桃花| 一色屋精品视频在线观看网站| 中国av一区| 亚洲精品日韩综合观看成人91| 欧美专区亚洲专区| 欧美婷婷在线| 最新亚洲电影| 久久精品国产一区二区三| 午夜精品久久久久久久99黑人| 欧美另类久久久品| 在线观看中文字幕不卡| 羞羞答答国产精品www一本 | 精品动漫3d一区二区三区免费版| 亚洲一区二区三区免费视频| 中文国产成人精品| 欧美精品一区二| 精品51国产黑色丝袜高跟鞋| 欧美有码视频| 欧美尤物一区| 国产精品实拍| 国产精品99久久久久久人| 一本色道久久综合狠狠躁的推荐| 米奇777超碰欧美日韩亚洲| 国产片一区二区| 亚洲淫片在线视频| 亚洲欧美日韩视频二区| 欧美日韩视频在线一区二区观看视频 | 国产一区欧美| 香蕉久久夜色| 欧美一区二区网站| 国产精品美女久久久久av超清 | 亚洲国产一区二区三区在线播 | 浪潮色综合久久天堂| 红桃视频国产精品| 久久不射电影网| 久久综合色播五月| 激情婷婷亚洲| 亚洲国产精品一区二区www| 久久青青草综合| 国内成+人亚洲+欧美+综合在线| 欧美一级视频| 久久久久国产精品www| 国产网站欧美日韩免费精品在线观看| 亚洲在线成人精品| 欧美伊人久久久久久久久影院| 国产精品久久久久久影视| 亚洲视频专区在线| 亚洲欧美卡通另类91av| 国产精品一区二区在线| 欧美亚洲一区三区| 久久久久一区| 亚洲电影一级黄| 99re国产精品| 国产精品分类| 亚洲欧美日韩国产中文| 久久xxxx精品视频| 国内揄拍国内精品少妇国语| 亚洲激情视频在线播放| 欧美精品入口| 一区二区三区精品| 欧美综合国产精品久久丁香| 国产一区二区三区在线观看精品| 久久国产精品久久久| 欧美国产在线电影| 99热免费精品在线观看| 午夜视频在线观看一区二区| 国内精品久久久久久影视8| 亚洲精品国产精品国自产观看| 欧美日韩国产成人高清视频| 在线视频日韩精品| 久久国产精品久久久久久久久久| 经典三级久久| 亚洲视频欧美视频| 国产日产亚洲精品系列| 亚洲国产欧美国产综合一区| 欧美日韩国产成人高清视频| 亚洲一线二线三线久久久| 久久躁狠狠躁夜夜爽| 亚洲国产精品久久| 亚洲已满18点击进入久久| 国产亚洲欧美另类中文| 亚洲日本中文字幕| 国产精品久久久久久久久久久久久| 亚洲欧美三级在线| 嫩草国产精品入口| 亚洲亚洲精品在线观看 | 亚洲韩日在线| 午夜国产精品影院在线观看| 韩国一区电影| 一区二区三区精品视频在线观看| 国产日韩欧美在线观看| 日韩午夜在线电影| 国产日韩一区在线| 一本色道久久综合狠狠躁篇怎么玩| 国产欧美日本在线| 日韩午夜中文字幕| 国产啪精品视频| 一本久道久久综合中文字幕| 国产日韩精品久久| 一本色道久久综合精品竹菊| 国语自产精品视频在线看抢先版结局| 一本色道久久综合一区| 国产香蕉97碰碰久久人人| 99视频精品| 黄色精品一区| 午夜在线视频一区二区区别| 亚洲国产免费看| 欧美在线一二三| 日韩一级黄色大片| 久久中文精品| 亚洲一区二区视频在线| 欧美韩日高清| 久久精品首页| 国产伦精品一区二区三区免费迷| 99re这里只有精品6| 影院欧美亚洲| 欧美影院视频|