最后更新:2021-11-12 02:11:24 手机定位技术交流文章
IoT网络需要标准协议,对小型装置最有希望的两个是MQTT和CoAP。
MQTT 和 CoAP :
开放标准;
HTTP更适合一个有限的环境;
提供异步传输机制;
在IP上运行;
有很多种实现
MQTT是一种更灵活的转解解模式,其功能类似于二进制数据的管道,而CoAP是一个面向网络的结构。
IBM为光 M2M 通信创建了一个分布/订阅信息协议,这是目前开放的标准。
客户/服务器结构,其中每个客户(又称代理商)通过TCP与服务器连接。
MQTT是一个以信息为导向的协议,每条信息包含独特的数据收集,对代理人透明。
每条信息都发送到一个名为主题的单一地址, 客户可以订阅任何多个主题。 每一个订阅主题的客户都会收到所有发送到该主题的信息。 例如, 考虑一个包含中间代理和三个客户的基本网络 。
客户A和客户B与代理人建立了TCP联系,客户B和客户C同意温度主题。

随后,客户A发布了22.5的温度主题值。 委托人向所有用户客户发送通知。

MQTT客户端可使用分配/订阅模式进行一对一、一对一和一对一的通信。
MQTT中的主题按等级排列,类似于文件系统(例如,在登记订阅时,允许使用通配符,但不公布,允许客户看到整个等级。
通配符 + 匹配任何单个目录名称, # 匹配任何多个目录名称 。
例如,主题厨房/+/温度匹配厨房/foo/温度,但不匹配厨房/foo/温度。
厨房/厨房/壁/巴/温度相当于厨房/壁脊/压缩机/valve1/温度,厨房/#相当于厨房/壁脊/压缩机/valve1/温度。
服务质量分为三个层次:触发和遗忘、至少一次传输、一次传输。
如果它们被断开并通过代理传输, MQTT 客户端可以注册一个典型的遗嘱信息。 当设备被拔出时, 这些信息可用于向订阅者发送信号 。
MQTT 允许在代理服务器上存储耐久性信息, 客户在发布该信息时可能需要这些信息。 仅保留最新的持久性消息。 当客户订阅主题时, 任何持续性信息都会提供给客户 。
MQTT 代理器与信件队列不同, 无法将信件留在服务器内 。
MQTT代理机构可能需要用户名和密码,可通过SSL/TLS保护隐私,确保TCP连接。
虽然MQTT的用意是轻量级的,但设备有限的有两个缺点。
每个 MQTT 客户端必须支持 TCP, 并且必须随时与代理商连接, 这在软件包大量下降或资源有限的情况下可能会引起关注 。
MQTT 主题名称通常是一个很长的字符串, 使得 802. 152.4 不切实际 。
通过定义 MQTT UDP 地图和在主题名称索引中添加代理支持, MQTT-SN 协议克服了这些关切。
IETTF核心(有限资源环境)小组制定的限制性应用协议。
CoAP是一项与HTTP相似的文本产出协议,但与HTTP不同的是,CAAP是用于限制设备。
CoAP数据包比HTTP TCP流小得多,经常用于保护外地空间和将字符串映射转换成整数,数据包简单易建,可以原地处理,而不必在受限制的设备中花费额外的内存。
CoAP 使用 UDP 而不是 TCP 操作。 客户通过未连接的数据报告与服务器连接, 以便在应用程序仓库内重新传输和重新排列。 没有 TCP, 它可能能够将小型微处理器的所有 IP 地址联网, 而 CoAP 支持 UDP 广播和多频播送地址 。
CoAP协议遵循客户/服务器模式,客户向服务器发送请求,服务器响应,客户可以访问Get、PUT、POST和DELETE资源。
CoAP用于通过简单的代理与HTTP、RESTFLY网络进行通信。
由于《共同行动计划》是数据驱动的,因此可将其用于短信系统或其他以群体为基础的通信协议。
如果请求和答复被标为可识别或未确认,接收方必须使用ACK软件包确认信息。
未经确认的信息被激活并很快被遗忘。
和HTTP一样,CoAP提供内容咨询;客户使用“接受”选项表示对资源的偏好,服务器对Fontent-Type选项的答复告诉客户他们已经收到什么。 与HTTP一样,它允许客户独立于服务器独立成长,在不损及对方的情况下添加新的表达式。
CoAP请求也许会使用查询字符串形式如?a=b&c=d,这些可以用于给客户端提供搜索、分页与其他特性。
由于COAP以UDP而不是TCP为基础,SSL/TLS不能用来提供安全。 DTLS数据报告级别安全提供与TLS相同的保证方法,但目标数据转移高于UDP。 DTLS具有能力的COAP设备通常支持RSA、AES或ECC、AES。
当在 CoAP Get 请求上设置观察标记时, 服务器在第一个文档被传输后继续反应 。 这样服务器就可以将状态更新移动到客户端 。 双方的结尾将导致观察取消 。
服务端资源列表(附必要的元数据)在 /.. " 知识/核心 " 中。链接的形式是应用程序/链接格式介质,使客户能够发现哪些资源是可获得的,哪些是介质形式。
传感器(或)向客户提供资源,使其能够进入或修改计算机辅助操作委员会传感器的传感器状态。
虽然CoAP传感器是服务器,但它们必须能够接受数据包。 NAT必须令人满意地运行。 之后,设备可以像LWM2M那样,首先发出请求,允许路由器与两者都相关。 虽然CoAP传感器不需要IPV6, 但这是设备直接线路上最方便用户的IP环境。
MQTT和CoAP都作为IoT协议很有帮助,但是它们之间差别很大。
MQTT是一个多至多电视协议,用于通过中间代理商在不同客户之间传递信息,使生产者和消费者脱钩,使代理商能够选择途径,通过提供这些途径复制信息。 虽然MQTT可以保持一定的可持续性,但理想的做法是充当实时数据通信总线。
CoAP一般是一种点对点协议,用于在客户与服务器之间提供状况信息,它支持观测资源,但CoAP更适合传输模型而不是事件。
MQTT 客户端与 TCP 建立了很长的连接, 这通常表明一切都很好, CoAP 客户端和服务器发送和接收 UDP 数据包。 隧道或港口中继器可以在NAT 环境中用于 CoAP 或 LWM2M, 设备可以配置为前端连接 。
MQTT并不提供电文类型标签或其他信息,以协助客户理解MQTT信息可用于任何目的,但所有客户都必须知道最新数据格式,以便进行通信。 另一方面,CoAP为内容咨询和发现提供内在支持,使设备能够相互识别,找到数据交流的方法。
每项协定都有利弊,选择以具体用途为基础。
本文由 在线网速测试 整理编辑,转载请注明出处。