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+超低功耗】教程

审核编辑 黄宇

今天的分享就到这里了

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2909

    文章

    44595

    浏览量

    372983
  • 服务器
    +关注

    关注

    12

    文章

    9138

    浏览量

    85368
收藏 人收藏

    评论

    相关推荐

    NTP服务器联网中的应用

    随着联网(IoT)威廉希尔官方网站 的飞速发展,越来越多的设备被连接到互联网上,这些设备需要精确的时间同步来保证数据的准确性和一致性。网络时间协议(NTP)服务器
    的头像 发表于 12-18 15:16 219次阅读

    独立服务器与云服务器的区别

    随着互联网威廉希尔官方网站 的飞速发展,企业对于服务器的需求日益增加,而服务器市场也随之出现了多种类型的产品,其中最常见的是独立服务器和云服务器。这两种
    的头像 发表于 10-12 14:34 261次阅读

    【教程】配置NE2-D11串口服务器接入Modbus联网平台

    一案例简介本案例将通过配置NE2-D11串口服务器接入Modbus联网平台,使得Modbus联网平台能采集ModbusRTU设备的DI状
    的头像 发表于 09-27 08:07 455次阅读
    【教程】配置NE2-D11串口<b class='flag-5'>服务器</b>接入Modbus<b class='flag-5'>物</b><b class='flag-5'>联网</b>平台

    大带宽服务器的作用是什么

    大带宽服务器在现代互联网应用中扮演着至关重要的角色,其作用主要体现在以下几个方面,rak小编为您整理发布大带宽服务器的作用是什么。
    的头像 发表于 09-26 10:01 168次阅读

    服务器是虚拟威廉希尔官方网站 吗

    服务器是现代信息威廉希尔官方网站 领域的一个重要组成部分,它利用了虚拟化威廉希尔官方网站 ,为用户提供了一种基于互联网的计算服务。不同于传统的物理服务器,云服务器提供
    的头像 发表于 09-13 10:17 282次阅读

    洛杉物理服务器怎么样?

    洛杉矶作为美国科技和互联网的重要中心,物理服务器的质量通常非常高,可以提供卓越的性能、强大的安全性、多样的配置选项和专业的服务支持。以下是对洛杉物理服务器的详细介绍。
    的头像 发表于 08-16 09:58 213次阅读

    请问DCTCP与DCUDP 的登录数据包和心跳数据包与服务器端是如何交互的?

    DCTCP与DCUDP的登录数据包和心跳数据包与服务器端是如何交互的?
    发表于 07-25 06:37

    联网MQTT broker服务器的设置步骤

    本项目使用machinechat的 JEDIOne 联网数据管理软件在树莓派4上设置了一个联网MQTTbroker 服务器
    的头像 发表于 07-11 10:36 1940次阅读
    <b class='flag-5'>物</b><b class='flag-5'>联网</b>MQTT broker<b class='flag-5'>服务器</b>的设置步骤

    服务器和虚拟服务器的区别是什么

    服务器和虚拟服务器是两种常见的服务器类型,它们在很多方面有相似之处,但也有一些关键的区别。本文将详细介绍云服务器和虚拟服务器的区别,包括它
    的头像 发表于 07-02 09:48 786次阅读

    云存储服务器怎么配置

    云存储服务器配置是一个复杂的过程,涉及到硬件、软件、网络等多个方面。 云存储服务器配置概述 云存储是一种基于互联网的存储方式,用户可以通过网络访问存储在远程服务器上的数据。云存储
    的头像 发表于 07-02 09:15 859次阅读

    服务器托管公司

    联网的快速发展,使得网站成为了企业展示自己的重要平台。而为了让网站能够正常运行,稳定的服务器托管服务就显得尤为重要。在选择服务器托管服务
    的头像 发表于 03-06 14:06 748次阅读

    linux服务器和windows服务器

    Linux服务器和Windows服务器是目前应用最广泛的两种服务器操作系统。两者各有优劣,也适用于不同的应用场景。本文将 对Linux服务器和Windows
    发表于 02-22 15:46

    独立服务器和云服务器的区别

    独立服务器和云服务器的区别是很多用户在选择服务器时要做的课程,那么独立服务器和云服务器的区别有哪些呢?
    的头像 发表于 01-17 10:58 851次阅读

    站群服务器和大宽带服务器选哪个好

    站群服务器和大宽带服务器是两种不同类型的服务器,各有其特点和适用场景。小编为您整理了站群服务器和大宽带服务器的用途和对比情况。
    的头像 发表于 01-05 09:52 394次阅读

    什么是web服务器?如何选择服务器配置?

    Web服务器是一种软件或硬件设备,用于托管和提供网页内容。它接收客户端(如浏览)发送的HTTP请求,并返回相应的网页内容或其他资源,以实现更高的性能和可靠性。它是网站和应用程序在互联网上构建和交付
    的头像 发表于 01-03 15:25 1093次阅读