STM32云平台连接培训20180814

MQTT基于TCP,发布订阅模式,一对多,多对一,TCP需要client主动建立connect,server发送connectack

CoAP基于UDP,请求/应答模式,数据量也相对HTTP要小

HTTP基于TCP,请求应答模式,数据量较大

MQTT协议

  • Message Queuing Telemetry Transport消息队列遥测传输
  • 轻量级协议
  • 服务器/客户端模式,桩-Cloud-手机,桩和手机不直接通信,Cloud为数据转发,叫Broker
  • 发布/订阅,Publish/Subscribe, 端端不直接指定通信,而是通过主题Topic,一端只会像server发布主题,另一端只会订阅主题,如温度
  • Publish/Puback, Subscribe/Suback
  • Example, 典型的Connect/Connack控制报文,Publish/Puback控制报文,Subscribe/Suback控制报文
  • 开源:服务器Mosquito, 客户端Paho,百度云/阿里云的SDK就是运行于MCU的客户端,也参考了Paho,在Paho基础上又封装了一层

名词解释

  • Qos:服务质量等级
  • Clean session: 持久会话的概念,0为服务器保存之前的消息,1为服务器会丢掉消息,缓存的概念
  • Retain: 保留消息
  • Willxxx: 遗嘱消息:发生异常时,通知其他客户端

结构图

帧格式1 

帧格式2

MQTT通信

MQTT和TLS

建立TLS,设备端认证服务器,服务器认证设备端。前者常用,服务器生成根证书,设备端需要放置证书,通过证书来验证服务器的连接信息。通过TCP建立连接的消息都是通过TLS加密。

过程

建立TCP->握手加密->非对称到对称的过程->产生对称加密密钥->客户端先sayhello,支持xxxx, 随机数1->服务器sayhello,支持xxx,随机数2->证书发给客户端->客户端使用根证书验证服务器的证书->验证通过,从证书中拿到公钥,生成随机数3->利用公钥+3个随机数,生成对称密钥。

猜你喜欢

转载自www.cnblogs.com/aaronLinux/p/9473112.html