心跳是網絡通信中的一種數據,特殊點在于定時發送,形似心跳而得名。一般來說,當客戶端連接到服務端之后,為了確保了解到連接的狀態真實性,或者為了防止某些網絡在長時間沒有數據傳輸時自動斷開,服務端也會定時的發送一條數據。心跳技術在網絡世界里發揮了巨大作用,每個網絡動態協議都會用到心跳,利用心跳檢測確保狀態機的狀態,當心跳出現問題時,及時進行協議狀態切換,感知到網絡變化。當然,心跳檢測的作用不僅僅在于此,本文將展開進行詳細討論。
心跳檢測在數據中心網絡里應用非常廣泛。首先,幾乎所有的動態協議都離不開心跳檢測,比如:OSPF動態路由協議要使用心跳檢測來維持鄰居關系,當連續幾個心跳間隔時間收不到對端鄰居發過來的Hello報文時,OSPF鄰居狀態就要進行切換;STP環網協議要使用心跳檢測來維護端口角色關系,當因環路通過STP協議將部分端口阻塞時,當連續收不到STP BPDU報文時,STP協議會將阻塞端口放開,還有DLDP、BGP、VRRP等等,只要有狀態機的協議都需要用到心跳檢測。其次,在數據中心網絡層面,采用心跳對網絡轉發狀態進行監控。比如:在整個網絡中部署PING工具,或者通過網管軟件對所有網絡設備可達性進行檢測。這些心跳檢測多是通過周期性地發送PING或者Tracert報文判斷網絡可達性,如果發現不可達執行相應的動作,或是網絡切換,或是業務層面的切換甚至是數據中心之間的切換。有時也可以用TCP報文或者UDP報文進行檢測,雖然心跳檢測報文內容不同,目的都一樣,就是為了及時發現網絡異常,執行相應的應對策略。第三,在網絡設備內部為了維持一些功能的正常也使用了心跳檢測,通過心跳檢測判斷設備內部功能運行狀態。比如:堆疊環境中采用的MAD檢測,這個MAD協議通過與BFD、LACP、ARP動態協議聯動,達到監控堆疊環境正常與否的目的,這些動態協議會通過心跳檢測維持相應的鄰居狀態,MAD協議也通過這些心跳檢測實現堆疊環境的監控;在框式的交換機或路由器中,在板卡之間也通過周期性的發送心跳檢測,判斷板卡是否在位,當發現板卡沒有回應時,就要考慮將板卡進行隔離,以便及時消除板卡故障對業務造成的長時間影響,類似的心跳檢測應用還有很多。由此可見,心跳檢測在網絡設備內部和網絡中使用都非常廣泛,是一種使用頻率最高的最為實用的技術。
心跳檢測技術很簡單,這也是其使用最為廣泛的原因。心跳檢測的構成元素有幾個:通過定時器確定發包間隔,根據定時器周期性發送心跳報文。根據協議特點確定檢測超時的時長,即在超時時間內沒有收到心跳檢測報文,即認為狀態發生變化。簡單講就是發包間隔和發包次數,再利用心跳報文完成檢測。在實際應用中,不同協議和應用對時間的要求有不同要求,這就使得不同協議使用心跳檢測的發包間隔和次數并不同,有些協議心跳間隔達到毫秒級,而有的協議心跳間隔有分鐘級,有的協議心跳連續發送三個報文即認為超時,而有的協議心跳要連續發送十幾個才認為超時。很多時候發包間隔和發包次數都是可以手工調整,要根據實際網絡情況,配置適合自己網絡的數值,這時往往需要豐富的網絡經驗,采用將參數設置適當,這對于網絡穩定性非常關鍵。比如:在一個復雜的網絡環境中,將OSPF的Hello心跳設置為1秒發送一次,3秒超時也許就不是一個合適參數,這樣當網絡稍有動蕩時,OSPF就會發生震蕩,引起路由的震蕩,對業務造成影響,此時可以適當將OSPF的心跳時間調長,提升OSPF協議穩定性。另外,心跳檢測使用的定時器的精度也影響到檢測的準確性,一般網絡設備采用的都是軟件定時器,這個定時器是通過設備內部的時鐘主頻計算得來的,這個時間精度是有誤差的,一般的網絡設備運行一年的時間偏差可能達到十幾個小時,這樣依賴時鐘的定時器就會有誤差,從而影響到心跳超時的判斷,在設定心跳檢測超時時間時也要考慮這個因素,以免心跳監測出現誤判。心跳檢測在發現異常時直到狀態發生變化時需要時間,這個時間長短雖然是可以設置的,但如果設置的過短容易引起誤判。而且,即便再短,實際上網絡已經出現了異常,比如STP心跳檢測發現環路已經消除,需要將阻塞端口放開,這個需要超時時間,在這段時間內網絡業務是有影響的,所以在心跳檢測超時時間還未到的這段時間里,網絡業務是會受到影響的,所以心跳檢測是一種有損技術,影響的大小與超時設置有關。
心跳檢測技術簡單實用,在傳統的數據中心網絡中已經使用的極其頻繁和廣泛,心跳檢測技術也是實現數據中心容災備份的基礎。利用心跳檢測作為數據中心容災監控手段,當出現超時的時候,及時啟動容災的備份數據中心運行,避免業務長時間受到影響。快速、準確,高效的心跳檢測是實現數據中心網絡穩定的基礎,通過對不同物理位置故障節點的檢測并采取有效的措施,以保障數據中心的正常運作與用戶業務的連續性。隨著云計算、大數據、虛擬化的應用,數據中心網絡也變得異常復雜,通過簡單心跳檢測判斷有時過于武斷,出錯的可能性增大,所以新一代數據中心心跳檢測技術也引入了神經網絡、模擬綜合判斷等方法,利用這些新技術綜合判斷,增加心跳檢測判斷的準確性。