心跳是網(wǎng)絡(luò)通信中的一種數(shù)據(jù),特殊點(diǎn)在于定時(shí)發(fā)送,形似心跳而得名。一般來說,當(dāng)客戶端連接到服務(wù)端之后,為了確保了解到連接的狀態(tài)真實(shí)性,或者為了防止某些網(wǎng)絡(luò)在長(zhǎng)時(shí)間沒有數(shù)據(jù)傳輸時(shí)自動(dòng)斷開,服務(wù)端也會(huì)定時(shí)的發(fā)送一條數(shù)據(jù)。心跳技術(shù)在網(wǎng)絡(luò)世界里發(fā)揮了巨大作用,每個(gè)網(wǎng)絡(luò)動(dòng)態(tài)協(xié)議都會(huì)用到心跳,利用心跳檢測(cè)確保狀態(tài)機(jī)的狀態(tài),當(dāng)心跳出現(xiàn)問題時(shí),及時(shí)進(jìn)行協(xié)議狀態(tài)切換,感知到網(wǎng)絡(luò)變化。當(dāng)然,心跳檢測(cè)的作用不僅僅在于此,本文將展開進(jìn)行詳細(xì)討論。
心跳檢測(cè)在數(shù)據(jù)中心網(wǎng)絡(luò)里應(yīng)用非常廣泛。首先,幾乎所有的動(dòng)態(tài)協(xié)議都離不開心跳檢測(cè),比如:OSPF動(dòng)態(tài)路由協(xié)議要使用心跳檢測(cè)來維持鄰居關(guān)系,當(dāng)連續(xù)幾個(gè)心跳間隔時(shí)間收不到對(duì)端鄰居發(fā)過來的Hello報(bào)文時(shí),OSPF鄰居狀態(tài)就要進(jìn)行切換;STP環(huán)網(wǎng)協(xié)議要使用心跳檢測(cè)來維護(hù)端口角色關(guān)系,當(dāng)因環(huán)路通過STP協(xié)議將部分端口阻塞時(shí),當(dāng)連續(xù)收不到STP BPDU報(bào)文時(shí),STP協(xié)議會(huì)將阻塞端口放開,還有DLDP、BGP、VRRP等等,只要有狀態(tài)機(jī)的協(xié)議都需要用到心跳檢測(cè)。其次,在數(shù)據(jù)中心網(wǎng)絡(luò)層面,美國(guó)網(wǎng)站空間 香港網(wǎng)頁(yè)寄存,采用心跳對(duì)網(wǎng)絡(luò)轉(zhuǎn)發(fā)狀態(tài)進(jìn)行監(jiān)控。比如:在整個(gè)網(wǎng)絡(luò)中部署PING工具,或者通過網(wǎng)管軟件對(duì)所有網(wǎng)絡(luò)設(shè)備可達(dá)性進(jìn)行檢測(cè)。這些心跳檢測(cè)多是通過周期性地發(fā)送PING或者Tracert報(bào)文判斷網(wǎng)絡(luò)可達(dá)性,如果發(fā)現(xiàn)不可達(dá)執(zhí)行相應(yīng)的動(dòng)作,或是網(wǎng)絡(luò)切換,或是業(yè)務(wù)層面的切換甚至是數(shù)據(jù)中心之間的切換。有時(shí)也可以用TCP報(bào)文或者UDP報(bào)文進(jìn)行檢測(cè),雖然心跳檢測(cè)報(bào)文內(nèi)容不同,目的都一樣,就是為了及時(shí)發(fā)現(xiàn)網(wǎng)絡(luò)異常,執(zhí)行相應(yīng)的應(yīng)對(duì)策略。第三,在網(wǎng)絡(luò)設(shè)備內(nèi)部為了維持一些功能的正常也使用了心跳檢測(cè),通過心跳檢測(cè)判斷設(shè)備內(nèi)部功能運(yùn)行狀態(tài)。比如:堆疊環(huán)境中采用的MAD檢測(cè),這個(gè)MAD協(xié)議通過與BFD、LACP、ARP動(dòng)態(tài)協(xié)議聯(lián)動(dòng),達(dá)到監(jiān)控堆疊環(huán)境正常與否的目的,這些動(dòng)態(tài)協(xié)議會(huì)通過心跳檢測(cè)維持相應(yīng)的鄰居狀態(tài),MAD協(xié)議也通過這些心跳檢測(cè)實(shí)現(xiàn)堆疊環(huán)境的監(jiān)控;在框式的交換機(jī)或路由器中,在板卡之間也通過周期性的發(fā)送心跳檢測(cè),判斷板卡是否在位,當(dāng)發(fā)現(xiàn)板卡沒有回應(yīng)時(shí),就要考慮將板卡進(jìn)行隔離,以便及時(shí)消除板卡故障對(duì)業(yè)務(wù)造成的長(zhǎng)時(shí)間影響,類似的心跳檢測(cè)應(yīng)用還有很多。由此可見,心跳檢測(cè)在網(wǎng)絡(luò)設(shè)備內(nèi)部和網(wǎng)絡(luò)中使用都非常廣泛,是一種使用頻率最高的最為實(shí)用的技術(shù)。
心跳檢測(cè)技術(shù)很簡(jiǎn)單,這也是其使用最為廣泛的原因。心跳檢測(cè)的構(gòu)成元素有幾個(gè):通過定時(shí)器確定發(fā)包間隔,根據(jù)定時(shí)器周期性發(fā)送心跳報(bào)文。根據(jù)協(xié)議特點(diǎn)確定檢測(cè)超時(shí)的時(shí)長(zhǎng),即在超時(shí)時(shí)間內(nèi)沒有收到心跳檢測(cè)報(bào)文,即認(rèn)為狀態(tài)發(fā)生變化。簡(jiǎn)單講就是發(fā)包間隔和發(fā)包次數(shù),再利用心跳報(bào)文完成檢測(cè)。在實(shí)際應(yīng)用中,不同協(xié)議和應(yīng)用對(duì)時(shí)間的要求有不同要求,這就使得不同協(xié)議使用心跳檢測(cè)的發(fā)包間隔和次數(shù)并不同,有些協(xié)議心跳間隔達(dá)到毫秒級(jí),而有的協(xié)議心跳間隔有分鐘級(jí),有的協(xié)議心跳連續(xù)發(fā)送三個(gè)報(bào)文即認(rèn)為超時(shí),而有的協(xié)議心跳要連續(xù)發(fā)送十幾個(gè)才認(rèn)為超時(shí)。很多時(shí)候發(fā)包間隔和發(fā)包次數(shù)都是可以手工調(diào)整,要根據(jù)實(shí)際網(wǎng)絡(luò)情況,配置適合自己網(wǎng)絡(luò)的數(shù)值,這時(shí)往往需要豐富的網(wǎng)絡(luò)經(jīng)驗(yàn),采用將參數(shù)設(shè)置適當(dāng),這對(duì)于網(wǎng)絡(luò)穩(wěn)定性非常關(guān)鍵。比如:在一個(gè)復(fù)雜的網(wǎng)絡(luò)環(huán)境中,將OSPF的Hello心跳設(shè)置為1秒發(fā)送一次,3秒超時(shí)也許就不是一個(gè)合適參數(shù),這樣當(dāng)網(wǎng)絡(luò)稍有動(dòng)蕩時(shí),OSPF就會(huì)發(fā)生震蕩,引起路由的震蕩,對(duì)業(yè)務(wù)造成影響,此時(shí)可以適當(dāng)將OSPF的心跳時(shí)間調(diào)長(zhǎng),提升OSPF協(xié)議穩(wěn)定性。另外,心跳檢測(cè)使用的定時(shí)器的精度也影響到檢測(cè)的準(zhǔn)確性,一般網(wǎng)絡(luò)設(shè)備采用的都是軟件定時(shí)器,這個(gè)定時(shí)器是通過設(shè)備內(nèi)部的時(shí)鐘主頻計(jì)算得來的,這個(gè)時(shí)間精度是有誤差的,一般的網(wǎng)絡(luò)設(shè)備運(yùn)行一年的時(shí)間偏差可能達(dá)到十幾個(gè)小時(shí),這樣依賴時(shí)鐘的定時(shí)器就會(huì)有誤差,從而影響到心跳超時(shí)的判斷,在設(shè)定心跳檢測(cè)超時(shí)時(shí)間時(shí)也要考慮這個(gè)因素,以免心跳監(jiān)測(cè)出現(xiàn)誤判。心跳檢測(cè)在發(fā)現(xiàn)異常時(shí)直到狀態(tài)發(fā)生變化時(shí)需要時(shí)間,這個(gè)時(shí)間長(zhǎng)短雖然是可以設(shè)置的,但如果設(shè)置的過短容易引起誤判。而且,九江服務(wù)器 東莞服務(wù)器,即便再短,實(shí)際上網(wǎng)絡(luò)已經(jīng)出現(xiàn)了異常,比如STP心跳檢測(cè)發(fā)現(xiàn)環(huán)路已經(jīng)消除,需要將阻塞端口放開,這個(gè)需要超時(shí)時(shí)間,在這段時(shí)間內(nèi)網(wǎng)絡(luò)業(yè)務(wù)是有影響的,所以在心跳檢測(cè)超時(shí)時(shí)間還未到的這段時(shí)間里,網(wǎng)絡(luò)業(yè)務(wù)是會(huì)受到影響的,所以心跳檢測(cè)是一種有損技術(shù),影響的大小與超時(shí)設(shè)置有關(guān)。