cq9电子·(中国)官方网站

技術服務
24小時提供高效率、高質量的技術支持

TCP心跳机制的工業級dtu 长久在线

时间:2020-09-08 15:20:57來源:本站原創

  cq9电子官方网站物聯工業級dtu采用TCP心跳鏈路檢測機制、保證設備永久在線狀態,究竟TCP心跳機制是什麽?


  TCP心跳機制是什麽

  如何理解應用層的心跳?簡單來說,就是客戶端會開啓一個定時任務,定時對已經建立連接的對端應用發送請求(這裏的請求是特殊的心跳請求),服務端則需要特殊處理該請求,返回響應。如果心跳持續多次沒有收到響應,客戶端會認爲連接不可用,主動斷開連接。不同的服務治理框架對心跳,建連,斷連,拉黑的機制有不同的策略,但大多數的服務治理框架都會在應用層做心跳。

  心跳包之所以叫心跳包是因爲:它像心跳一樣每隔固定時間發一次,以此來告訴服務器,這個客戶端還活著。事實上這是爲了保持長連接,至于這個包的內容,是沒有什麽特別規定的,不過一般都是很小的包,或者只包含包頭的一個空包。

  在TCP的機制裏面,本身是存在有心跳包的機制的,也就是TCP的選項:SO_KEEPALIVE。系統默認是設置的2小時的心跳頻率。但是它檢查不到機器斷電、網線拔出、防火牆這些斷線。而且邏輯層處理斷線可能也不是那麽好處理。一般,如果只是用于保活還是可以的。

  心跳包一般來說都是在邏輯層發送空的echo包來實現的。下一個定時器,在一定時間間隔下發送一個空包給客戶端,然後客戶端反饋一個同樣的空包回來,服務器如果在一定時間內收不到客戶端發送過來的反饋包,那就只有認定說掉線了。

  其實,要判定掉線,只需要send或者recv一下,如果結果爲零,則爲掉線。但是,在長連接下,有可能很長一段時間都沒有數據往來。理論上說,這個連接是一直保持連接的,但是實際情況中,如果中間節點出現什麽故障是難以知道的。更要命的是,有的節點(防火牆)會自動把一定時間之內沒有數據交互的連接給斷掉。在這個時候,就需要我們的心跳包了,用于維持長連接,保活。

  在獲知了斷線之後,服務器邏輯可能需要做一些事情,比如斷線後的數據清理呀,重新連接呀……當然,這個自然是要由邏輯層根據需求去做了。

  cq9电子官方网站物聯工業級dtu具有多重檢測機制,運行故障自修複,確保設備永不死機,專爲無人值守環境而生;采用三級看門狗檢測機制,由CPU自帶看門狗設計、硬件電路看門狗設計,軟件看門狗設計,智能軟件喚醒和硬件斷電重啓機制,設備自動複位,保證設備正常運行;采用PPP層心跳、ICMP探測、TCP心跳鏈路檢測機制、網絡故障自動恢複、掉線重連確保設備永久在線;網絡通道與短信通道可相互切換,當TCP/UDP斷開連接時,可啓用短信發送數據;掉線重連、數據補發,傳輸穩定、可靠不丟包。

\

  總的來說,心跳包主要也就是用于長連接的保活和斷線處理。一般的應用下,判定時間在30-40秒比較不錯,如果要求高,可在6-9秒。

上一篇:DTU行業應用 下一篇:mqtt協議dtu功能優勢
计讯物联——物联网産品与行业解决方案提供商 申請樣機
相關方案Relevant Solutions
All Rights Reserved 廈門cq9电子官方网站物聯科技有限公司版權所有 閩ICP備15001895號 闽公网安备 35021102001331号
  • 【网站地图】【sitemap】