那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

玩轉物聯網 洞悉服務器心跳!

青山老竹農 ? 來源:jf_82863998 ? 作者:jf_82863998 ? 2024-12-05 09:05 ? 次閱讀

本次我要說的是玩轉物聯網,洞悉服務器的心跳,所謂的心跳包就是(探測性的)數據包,之所以叫心跳包是因為:它像心跳一樣每隔固定時間發一次,以此來告訴服務器,這個客戶端還活著。

事實上這是為了保持長連接,至于這個包的內容,是沒有什么特別規定的,不過一般都是很小的包,或者只包含包頭的一個空包。

最大的作用就一句話,就是告訴服務器:
我還活著,別給我踢下線了。

01.為什么需要心跳?

4G物聯網設備受限于自身工作環境的影響,極有可能發生網絡不穩定的情況。

例如:
人多的環境中,為了保證人聯網的及時性,物聯網設備的通訊優先級會被運營商調低,極有可能出現多個物聯網設備互相競爭4G通訊通道,或者與手機等人聯網設備競爭網絡通道的情況。

再比如:
野外環境下,本身就人煙罕至的地方,運營商基站覆蓋弱。

又或者
半夜運營商降低基站發射功率來省電,或者半夜進行基站的維護。

還有可能:
服務器遇到特殊情況進行維護升級,沒有及時通知物聯網設備,導致設備一直進行重連/數據重傳等操作,耗盡了物聯網卡的流量。

以上等等諸如此類的意外情況,都會使本來正常環境下能聯網的4G物聯網設備,突然斷網,導致服務器長期收不到模組發過來的數據或者模組收不到服務器發過來的數據,進而導致數據延遲、丟失,最終導致用戶資產受損。

所以在客戶端/服務器設計之初,都會設計一個心跳機制,用來處理服務器/網絡異常的情況。

▼ 4G模組心跳設置 ▼

如果使用AT固件:

可以參考如下指令設置心跳:

1)AT+CIPTKA

2)AT^HEARTCONFIG

具體的參數參考的AT指令集,可以設置心跳內容、心跳周期等。

如果使用LuatOS固件:

可以使用socket.config接口

接口參數設置詳見:
https://wiki.luatos.com/api/socket.html

也可以使用sys.timerLoopStart函數:
創建一個定時器,進行心跳包的傳輸。

02.推薦的心跳間隔

一般來說,人聯網的設備,對實時性要求較高,所以一般人聯網的設備,根據實際業務的實時性不同,一般心跳間隔時間也從5秒~40秒不等。

物聯網設備的實時性要求大多數都不是很高,所以一般來說1分鐘/2分鐘/3分鐘/5分鐘也就夠用了,可以根據真實的使用場景,以及服務器能夠承載的冗余鏈路數量決定具體的心跳間隔。

如果你使用的是阿里云/騰訊云等可靠的物聯網平臺,也可以適當拉長自己的心跳周期。例如:阿里云物聯網平臺推薦的心跳為300秒以上,最長為1200秒。

值得一提的是,心跳間隔時間越短,同等時間內,模組耗電越多。為了節約流量和省電,對大多數物聯網設備來說,并不是真的會在用戶設定的心跳間隔時間時給服務器發送心跳——真正發送心跳包的間隔時間,往往是用戶設置的1.5倍時長,這是心跳機制決定的。

03.如果不用心跳,服務器怎么設計

一般來說,用戶使用的是TCP協議或者基于TCP的MQTT這種長連接協議。

如果客戶對功耗比較看重,既希望能保持長連接,又不希望在沒有數傳的時候發送心跳數據導致功耗上升,可以與服務器進行協商,將定時的數據報文,當作應用層心跳報文。

如果上下兩包數據接收時間小于設置的應用層心跳時間,則在下一包數據收到以后,檢測心跳周期的定時器事件重置。注意:此種方式僅限于數傳間隔較小(15分鐘內)的情況。

當然,如果對數據傳輸的完整性不做嚴格要求,也可以將自己通訊協議改為UDP。

04.不用心跳方式的弊端

TCP協議層是有默認兩小時的心跳機制,但是這會造成服務器有時需要處理大量的TCP冗余鏈接,所以一般服務器都會和客戶端協商,啟用應用層心跳。

如果沒有服務器心跳,4G模組和4G基站之間也是需要一個心跳機制的——因為4G模組不是直接跟服務器連接的,而是通過NAT(即網絡地址轉換)與服務器連接,NAT就是網絡地址轉換。

NAT會維護一個映射表,這個映射表會定時檢查。如果10分鐘內這路socket跟服務器沒任何數據往來,就會回收這路的地址,10分鐘后應用上再發數據就找不到路由地址了,也就是常說的和服務器斷開了鏈接;如果10分鐘內有數據更新,計時器會重新置為10分鐘。

如果不需要和模組保持長連接,且不怎么需要和服務器進行交互,半小時甚至更久:

那么可以考慮使用HTTP等鏈接方式,或者參考4G模組【PSM+超低功耗】教程

審核編輯 黃宇

今天的分享就到這里了

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 物聯網
    +關注

    關注

    2913

    文章

    44931

    瀏覽量

    377065
  • 服務器
    +關注

    關注

    12

    文章

    9306

    瀏覽量

    86069
收藏 人收藏

    評論

    相關推薦

    串口服務器在能源聯網數據采集中的應用技術參數介紹#

    摘要 ? ?隨著聯網技術的快速發展,各種傳統設備的聯網需求愈發迫切。串口服務器作為一種橋接傳統串口設備與現代網絡的關鍵設備,在工業控制、智能電網、交通運輸等域發揮了重要作用。本文以安
    的頭像 發表于 01-15 13:46 ?64次閱讀
    串口<b class='flag-5'>服務器</b>在能源<b class='flag-5'>物</b><b class='flag-5'>聯網</b>數據采集中的應用技術參數介紹#

    采用華為云 Flexus 云服務器 X 實例部署 MQTT 服務器完成設備上云

    一、前言 1.1 開發需求 這篇文章講解: 采用華為云最新推出的 Flexus 云服務器 X 實例 EMQX 服務器,搭建 MQTT 服務器,完成設備上云,實現
    的頭像 發表于 12-26 18:12 ?237次閱讀
    采用華為云 Flexus 云<b class='flag-5'>服務器</b> X 實例部署 MQTT <b class='flag-5'>服務器</b>完成設備上云

    NTP服務器聯網中的應用

    隨著聯網(IoT)技術的飛速發展,越來越多的設備被連接到互聯網上,這些設備需要精確的時間同步來保證數據的準確性和一致性。網絡時間協議(NTP)服務器
    的頭像 發表于 12-18 15:16 ?316次閱讀

    獨立服務器與云服務器的區別

    隨著互聯網技術的飛速發展,企業對于服務器的需求日益增加,而服務器市場也隨之出現了多種類型的產品,其中最常見的是獨立服務器和云服務器。這兩種
    的頭像 發表于 10-12 14:34 ?337次閱讀

    【教程】配置NE2-D11串口服務器接入Modbus聯網平臺

    一案例簡介本案例將通過配置NE2-D11串口服務器接入Modbus聯網平臺,使得Modbus聯網平臺能采集ModbusRTU設備的DI狀
    的頭像 發表于 09-27 08:07 ?526次閱讀
    【教程】配置NE2-D11串口<b class='flag-5'>服務器</b>接入Modbus<b class='flag-5'>物</b><b class='flag-5'>聯網</b>平臺

    大帶寬服務器的作用是什么

    大帶寬服務器在現代互聯網應用中扮演著至關重要的角色,其作用主要體現在以下幾個方面,rak小編為您整理發布大帶寬服務器的作用是什么。
    的頭像 發表于 09-26 10:01 ?205次閱讀

    服務器是虛擬技術嗎

    服務器是現代信息技術領域的一個重要組成部分,它利用了虛擬化技術,為用戶提供了一種基于互聯網的計算服務。不同于傳統的物理服務器,云服務器提供
    的頭像 發表于 09-13 10:17 ?368次閱讀

    洛杉物理服務器怎么樣?

    洛杉磯作為美國科技和互聯網的重要中心,物理服務器的質量通常非常高,可以提供卓越的性能、強大的安全性、多樣的配置選項和專業的服務支持。以下是對洛杉物理服務器的詳細介紹。
    的頭像 發表于 08-16 09:58 ?259次閱讀

    請問DCTCP與DCUDP 的登錄數據包和心跳數據包與服務器端是如何交互的?

    DCTCP與DCUDP的登錄數據包和心跳數據包與服務器端是如何交互的?
    發表于 07-25 06:37

    聯網MQTT broker服務器的設置步驟

    本項目使用machinechat的 JEDIOne 聯網數據管理軟件在樹莓派4上設置了一個聯網MQTTbroker 服務器
    的頭像 發表于 07-11 10:36 ?2028次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯網</b>MQTT broker<b class='flag-5'>服務器</b>的設置步驟

    服務器和虛擬服務器的區別是什么

    服務器和虛擬服務器是兩種常見的服務器類型,它們在很多方面有相似之處,但也有一些關鍵的區別。本文將詳細介紹云服務器和虛擬服務器的區別,包括它
    的頭像 發表于 07-02 09:48 ?926次閱讀

    云存儲服務器怎么配置

    云存儲服務器配置是一個復雜的過程,涉及到硬件、軟件、網絡等多個方面。 云存儲服務器配置概述 云存儲是一種基于互聯網的存儲方式,用戶可以通過網絡訪問存儲在遠程服務器上的數據。云存儲
    的頭像 發表于 07-02 09:15 ?1026次閱讀

    服務器托管公司

    聯網的快速發展,使得網站成為了企業展示自己的重要平臺。而為了讓網站能夠正常運行,穩定的服務器托管服務就顯得尤為重要。在選擇服務器托管服務
    的頭像 發表于 03-06 14:06 ?824次閱讀

    服務器遠程不上服務器怎么辦?服務器無法遠程的原因是什么?

    運營商。 2.服務器網絡問題 解決辦法:通過路由圖來確定是哪里的線路出現丟包,聯系服務器商切換線路。 二、服務器問題 服務器帶寬跑滿、服務器
    發表于 02-27 16:21

    linux服務器和windows服務器

    Linux服務器和Windows服務器是目前應用最廣泛的兩種服務器操作系統。兩者各有優劣,也適用于不同的應用場景。本文將 對Linux服務器和Windows
    發表于 02-22 15:46
    香港百家乐赌场娱乐网规则| 百家乐官网3式打法微笑心法| 永利高足球平台| 百家乐赌博游戏平台| 百家乐官网庄闲排| 永宁县| 真人游戏试玩| 百家乐赌具哪里最好| 百家乐官网变牌桌| 淄博市| 大发888 博彩| 百家乐赌博代理合作| 蓝盾百家乐官网代理| 大发888安装包| 做生意 风水| 百家乐官网好多假网站| 大发888官网授权网 | 百家乐官网赌博程序| 大发888怎么下载安装| 亚洲百家乐论坛| 潘多拉百家乐官网的玩法技巧和规则| 皇冠投注平台| 大发888手机客户端| 现金百家乐官网代理| 新巴尔虎左旗| 新葡京娱乐城官网| 威尼斯人娱乐城平台打不开| 百家乐太阳城娱乐城| 中骏百家乐官网的玩法技巧和规则 | 金地太阳城二手房| 百家乐明灯| 做生意招财小窍门| 木棉百家乐官网的玩法技巧和规则 | 免费棋牌游戏| 全讯网是什么| 网页百家乐的玩法技巧和规则| 百家乐是如何骗人的| A8百家乐官网的玩法技巧和规则| 百家乐官网专打单跳投注法| 大发888在线娱乐城| 百家乐庄闲的几率|