关于工业物联网的五大灵魂拷问,MQTT+SSL+JSON概念全贯通

关于工业物联网的五大灵魂拷问,MQTT+SSL+JSON概念全贯通,第1张

问题1:工业物联网是什么?

简单来说,就是物联网在工业控制上的具体应用。

问题2:SSL/TLS是什么?

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种 安全协议 。TLS与SSL在传输层对网络连接进行加密。大部分互联网登录都是用的SSL/TLS,可以去网易邮箱>Copyright © 1999-2020, CSDNNET, All Rights Reserved
搜索博文/帖子/用户
登录
zhangbijun1230
关注
IOT(25)---Iot都有哪些协议 转载
2018-05-15 08:42:16
1点赞

zhangbijun1230
码龄12年
关注
Iot都有哪些协议
协议对Iot而言尤其重要,可你知道Iot都有哪些协议?收好本文干货
在物联网协议中,我们一般分为两大类,一类是传输协议,一类是通信协议。传输协议一般负责子网内设备间的组网及通信;通信协议则主要是运行在传统互联网TCP/IP协议之上的设备通讯协议,负责设备通过互联网进行数据交换及通信。那么物联网都有哪些通信协议呢?
协议对Iot而言尤其重要,可你知道Iot都有哪些协议?收好本文干货
物联网七大通信协议
一、REST/>

  MQTT 协议 是基于发布/订阅模式的物联网通信协议,凭借简单易实现、支持 QoS、报文小等特点,占据了物联网协议的半壁江山。
  常用于 IOT 物联网和一些需要服务端主动通知客户端的场景。

1 导入依赖

2 创建 MqttHelper 辅助类,设置回调监听

3 连接 MQTT

  连接成功或失败,以及中途的连接掉线,会触发 OnMqttStatusChangeListener 回调

4 MQTT 连接状态监听

5 MQTT 收发消息监听

  onSubMessage 订阅的消息回调,因为存在订阅多个 topic 的情况,所以回调能知道是来自哪个 Topic 的消息;
  onPubMessage 发布的消息回调,用于确认发布的消息是否发送成功。

6 MQTT 订阅 Topic

  需要在 MQTT 连接成功后才能订阅 topic,否则订阅 Topic 不成功,收不到对应消息

7 MQTT 取消订阅 Topic

8 MQTT 发布消息

9 MQTT 断开连接

10 通知设置
  由于 MQTT 启动了一个 Service,而 Android 80 以上对于后台 Service 限制时长 5 秒;所以将 MqttService 绑定到 Notification 上成为了一个前台通知;通知的标题和内容显示可以在 stringsxml 中设置,对应属性如下:

  Android 80 及以上开启前台服务绑定到通知,80 以下默认不启用,可将 mqtt_foreground_notification_low_26 设为 true,将 80 以下设备也开启前台通知服务

  创建 MQTT 实例时需要传送参数 MqttOptions,下面将介绍下部分参数;

1 Topic
  MQTT 是一种发布/订阅的消息协议, 通过设定的主题 Topic,
发布者向 Topic 发送的 payload 负载消息会经过服务器, 转发到所有订阅
该 Topic 的订阅者
   通配符 : 假想移动端消息推送场景,有的系统消息是全体用户接收,有的消息是 Android 或 iOS 设备接收, 又或者是某些消息具体推送到用户,当然, 对应的多种类型消息可以通过多订阅几个对应的 Topic 解决,也可以使用通配符;
  通配符有两个, " + " 和 " # ", 与正斜杠 " / " 组合使用;加号只能表示一级Topic, 井号可以表示任意层级 Topic; 例如: 订阅 Topic为 " System/+ ", 发布者发布的 Topic 可以是 System、System/Android、System/iOS; 但是不能是 System/iOS/123, 而订阅的 Topic 如果是" System/# " 则可以收到;
   注意,只有订阅的 Topic 才可以使用 通配符, 发布和遗嘱的 Topic 不能包含通配符

2 ClientID
  发布者和订阅者都是属于客户端, 客户端与服务端建立连接之后,发送的第一个报文消息必须是 Connect 消息,而 Connect 的消息载荷中必须包含 clientID 客户端唯一标识;
  如果两个客户端的 clientID 一样, 则服务端记录第一个客户端连接之后再收到第二个客户端连接请求,则会向一个客户端发送 Disconnect 报文断开连接, 并连接第二个客户端, 而如果此时设置了自动重连, 第一个客户端再次连接,服务端又断开与第二个的连接, 连上第一个客户端, 如此将导致两个客户端不断的被挤掉重连
  注意: clientID 使用的字符最好是 大小写字母和数字, 长度最好限制在[1, 23] 之间;

3 遗嘱消息
  可选参数, 客户端没有主动向服务端发起 disconnect 断开连接消息,然而服务端检测到和客户端之间的连接已断开, 此时服务端将该客户端设置的遗嘱消息发送出去
  应用场景: 客户端因网络等情况掉线之后, 可以及时通知到所有订阅该遗嘱 Topic 的客户端;
  遗嘱 Topic 中不能存在通配符

4 Session
  客户端和服务端之间建立的会话状态, 一般用于消息保存, 如果设置清除 Session,则每次客户端和服务端建立连接会创建一个新的会话,之前连接中的消息不能恢复,
  而设置不清除会话, 对应发布者发送的 qos 为 1和2 的消息,还未被订阅者接收确认,则需要保存在会话中, 以便订阅者下次连接可以恢复这些消息;
  注意: Session 存储的消息是保存在内容中的, 所以如果不是重要的消息,最好是设置清除 Session, 或者设置 qos = 0;

5 心跳包
  标识客户端传输一次控制报文到下一次传输之间允许的空闲时间;在这段时间内,如果客户端没有其他任何报文发送,必须发送一个 PINGREQ 报文到服务器,而如果服务端在 15 倍心跳时间内没有收到客户端消息,则会主动断开客户端的连接,发送其遗嘱消息给所有订阅者。而服务端收到 PINGREQ 报文之后,立即返回 PINGRESP 报文给客户端
  心跳时间单位为秒,占用2个字节,最大 2^16 - 1 = 65535秒(18小时12分钟15秒),设置为 0 表示不使用心跳机制; 心跳时间一般设置为几分钟或几十秒即可,时间短点可以更快的发出遗嘱消息通知掉线,但是时间短会增加消息频率,影响服务端并发; 微信长连接为 300 秒,而三大运营商貌似也有个连接时间最小的为 5 分钟。

6 qos
  服务质量等级 qos 对应两部分,一是客户端到服务端发送的消息, 一是服务端到客户端订阅的消息; 从发布者到订阅者实际 qos 为两段路中 qos 最小的。
  qos 可选值 0(最多交付一次)、1(最少交付一次)、2(正好交付一次);
   qos = 0 :接收方不发送响应,发送方不进行重试;发送方只管发一次,不管是否发成功,也不管接收方是否成功接收,适用于不重要的数据传输;
   qos = 1 :确保消息至少有一次到达接收方,发送方向接收方发送消息,需要等待接收方返回应答消息,如果发送方在一定时间之内没有收到应答,发送方继续下一次消息发送,直到收到应答消息,删除本地消息缓存,不再发送;所以接收方可能收到1-n次消息;适用于需要收到所有消息,客户端可以处理重复消息。
   qos = 2 :确保消息只一次到达接收方,发送方和接收方之间消息处理流程最复杂;
   Mqtt Qos 深度解读 MQTT协议QoS2 准确一次送达的实现

7 payload 负载消息
  字节流类型, 是 MQTT 通信传输的真实数据

8 保留消息
  发布消息时设置, 对应参数 retain, 服务端将保留对应 Topic 最新的一条消息记录; 保留消息的作用是每次客户端连接上线都会收到其 Topic 的最后一条保留消息, 所以可能存在网络不稳定,频繁掉线重连,每次重连重复收到保留消息;
   可以向对应的 Topic 发送一条 空消息,用于清除保留消息。

MQTT 服务搭建 Apache Apollo 服务器 搭建 MQTT 服务
Github 仓库
mqtt 协议

1、TCP应用

(1)FTP:文件传输协议;

(2)SSH:安全登录、文件传送(SCP)和端口重定向;

(3)Telnet:不安全的文本传送;

(4)SMTP:简单邮件传输协议Simple Mail Transfer Protocol (E-mail);

(5)>

2、UDP应用

(1)流媒体

采用TCP,一旦发生丢包,TCP会将后续包缓存起来,等前面的包重传并接收到后再继续发送,延迟会越来越大。基于UDP的协议如WebRTC是极佳的选择。

(2)实时游戏

对实时要求较为严格的情况下,采用自定义的可靠UDP协议,比如Enet、RakNet(用户有sony online game、minecraft)等,自定义重传策略,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成的影响。

采用UDP的经典游戏如FPS游戏Quake、CS,著名的游戏引擎Unity3D采用的也是RakNet。

(3)物联网

2014年google旗下的Nest建立Thread Group,推出了物联网通信协议Thread,完善物联网通信。

全球将近50%的人都在使用互联网,人们不断的追求更快、更好的服务,一切都在变化,在越来越多的领域,UDP将会抢占TCP的主导地位。

(4)QQ 文件传输、QQ语音、QQ视频

对于网络通讯质量要求不高的情况下,要求网络通讯速度能尽量快捷方便,就可以使用UDP技术。

Long Term Evolution Category 1(长期演进技术类别1)即LTE CAT 1 是一种众所周知的LTE标准,广泛应用于全球物联网通信行业。由3GPP(第三代合作伙伴计划)(第8版)在2008年推出以用于物联网,自推出以来一直保持显著增长。LTE Cat 1 因其广泛的覆盖范围和低成本优势而广受欢迎。LTE Cat 1 专为功能繁杂的物联网应用而设计,目前被认可为不可或缺的连接技术。LTE CAT 1 使用技术优越并可全球部署的动态系统,在全球范围内提供最佳的物联网解决方案。换而言之,LTE CAT 1 可以被称为LTE 物联网的特定变体,它使物联网网络更加智能。
LTE CAT 1的特点

• 中速LTE 标准

• 专为物联网和M2M 通信而设计

• 满足足够的上、下行数据速度

• 适用于带宽密集型物联网应用

• 超强的建筑穿透力

• 低延迟(50至100ms)

• 更高的数据传输效率

• 上行(5Mb/s)和下行(10Mb/s)

• 向下兼容3G 和2G

• 优化后的功耗延长电池寿命周期(最多5年)

• 支持低功耗的待机和睡眠模式

• 支持全双工FDD/TDD 和VoLTE(LTE语音服务)

• 室内覆盖

• 语音支持

• 移动支持

• 远程控制设备

• 超低成本

• 使用简捷

LTE CAT 1的应用

LTE CAT 1 应用于多种领域

• 自动化/交通:帮助监测车辆和各种参数、诊断信息、里程、位置、发动机使用情况、车队管理、电动滑板车等

• 安全:视频监控、交通摄像头、传输高质量视频、家庭监控、低端/基于云的摄像头、支持LTE 语音

• 移动医疗警报系统,门诊监测,预测性维护。适用于自动取款机、自动贩卖机、智能电网、资产跟踪、电表、无线支付、智能可穿戴设备。通过蜂窝网络一键通话。

LTE CAT M/LTEM/eMTC

众所周知,2017年3GPP 推出的LTE CAT M/LTEM/eMTC(第13版,这里“M”代表机器)是定义低成本机器类通信协议或简单的LTEM 协议,主要用于增强机器间的通信,这项技术相对较新,正处于发展阶段,专门为机对机通信和物联网设计使用。在实际运用中,为支持更高吞吐量设备的移动性而设计,并提供:

• 低延迟(10-15微秒)

• 上行和下行1Mbps

• 支持VoLTE

• 电池寿命长达10年

它还用于物联网平台设备。

这两种技术都被证明是物联网和M2M 通信的最佳选择。根据使用情况和覆盖率,用户可以自行选择。此外,在计算各种参数时,这两种技术都有各自优势,如Quectelcom收集的数据所示:
CAT 1 和CAT M 基础数据

LTE CAT 1 和CAT M 的对比

目 前 , Z e p h y r 的 通 用 A P I 允 许 R T O S 支 持 蓝 牙 、 低 功 耗 蓝 牙 、 I E E E 8 0 2 1 5 4 、 6 L o W P A N 、 W i F i 、 有 线 等 通 信 网 络 , U A R T 、 G P I O 、 S P I 、 I 2 C 等 无 线 电 输 入 / 输 出 ( I / O ) 端 口 。 Z e p h y r 还 将 支 持 第 三 方 库 、 应 用 及 方 案 , 并 计 划 扩 展 兼 容 库 以 支 持 不 同 的 通 信 标 准 、 电 路 板 和 I / O 端 口 。 工 程 师 可 根 据 设 计 需 求 和 限 制 来 添 加 或 从 定 制 R T O S 中 移 除 支 持 的 组 件 , 完 成 R T O S 解 决 方 案 后 , 还 可 以 在 其 他 物 联 网 设 备 上 使 用 。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/10682759.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存