当前位置: 首页 > 科技观察

MQTTQoS设计:车联网平台消息传输质量保障

时间:2023-03-19 14:34:20 科技观察

前言车联网场景会产生海量数据。这些数据可以作为车辆诊断的依据,保证车辆安全稳定运行;它还可以与手机等基础设施相连,以提供更好的驾驶体验。国家和行业也相继出台了《汽车驾驶自动化分级》、《国家车联网产业标准体系建设指南》、《车联网信息服务数据安全技术要求》等相关政策文件,对车联网的数据传输提出了更高的要求。通信的安全、稳定、可靠一直是车联网永恒的话题,因此一套完整的数据传输保障解决方案也是车联网业务中不可忽视的一环。MQTT协议中的QoS级别是当今车联网行业数据通信协议的首选。MQTT协议规定了服务质量(QualityofService,简称QoS)。QoS保证了不同网络环境下消息传递的可靠性,可以作为车联网场景下保证消息可靠传输的首要实现技术。MQTT设计了??3个QoS等级:(1)QoS0消息最多投递一次,如果此时MQTT客户端不可用,消息将丢失。Sender(可能是Publisher或Broker)发送消息后,不再关心是否已经发送给对方,也不设置任何重传机制。(2)QoS1条消息至少传递1次。包含一个简单的重传机制,Sender发送消息后等待接收者的ACK,如果没有收到ACK则重发消息。这种模式可以保证消息至少到达一次,但不能保证消息会重复。(3)QoS2消息只发送一次。设计了重发和重复消息发现机制,保证消息到达对方并且严格只到达一次。车联网场景下的消息QoS设计首先需要明确,QoS级别越高,消息交互越复杂,系统资源消耗越大,因此QoS级别越高越好。应用程序可以根据自己的网络场景和业务需求选择合适的QoS等级。根据车联网信息服务相关数据的属性和特点,我们可以将其分为六类:基础属性数据、车辆工业控制数据、环境感知数据、车辆控制数据、应用服务数据和用户个人数据。信息。那么在不同车联网场景下如何选择MQTTQoS等级呢?(1)QoS0可以在以下几种情况下选择,在可以接受偶尔的消息丢失的场景下可以选择QoS0。车联网提供的与娱乐相关的多媒体服务,如天气预报等数据。还有一些与车辆相关的服务数据,如车辆历史行驶数据、历史驾驶操作数据等的上报。(2)在下列情况下可以选择QoS1。在车联网的大部分场景下,选择QoS1,实现了系统资源性能、消息实时性和可靠性的优化。QoS1广泛应用于车辆控制报文、行车报告数据(包括新能源国家标准和企业标准)、交通安全控制数据以及与交通安全和道路安全相关的预警数据。(3)以下情况可选择QoS2。对于不能容忍消息丢失、不想接收重复消息、对数据完整性和时效性要求高的场景,可以选择QoS2。QoS2在车联网场景的应用并不多。虽然它可以增加消息的可靠性,但也大大增加了资源消耗和消息延迟。QoS2主要应用于银行、消防、航空等对数据完整性和时效性要求高的行业。一些主机厂会选择使用QoS2来进行行车报警和车辆充电桩计费消息。特别提醒:需要注意的是,MQTT发布订阅操作中的QoS代表的含义不同。发布时的QoS表示发送给MQTT服务器的消息使用的QoS级别,订阅时的QoS表示MQTTBroker向自己转发消息时可以使用。的最大QoS等级。需要保证发送和订阅的QoS一致,才能保证最终接收到的消息是固定的QoS等级,否则会出现消费降级。例如:A发送的消息QoS为2,B订阅的消息QoS为1,则最终接收到的消息QoS为1。EMQX基于QoS等级的消息传输保证为了更好的保证车联网过程中人-车-路-网-云之间数据传输的安全性和可靠性,同时提高消息吞吐效率,降低网络波动的影响,云原生在充分适应QoS信令交互的基础上,分布式物联网消息服务器EMQX还设计了飞行窗口、消息队列、消息全链路跟踪、消息离线存储等功能,提高消息可靠性。飞行窗口的设计可以允许多个未确认的QoS1和QoS2消息同时存在于网络链路上,消息队列可以满足消息中超过飞行窗口时进一步存储消息的要求链接,以满足客户端离线时未接收消息或未确认数据消息的存储需求。飞行窗口还有upgrade_qos参数,实现基于订阅的QoS强制升级等功能,可以实现QoS级别的一致性,保证消费不会降级。此外,EMQX还可以提供按区域限制业务访问实现不同QoS等级、数据桥接QoS管理、MQTT-SN协议QoS管理等能力,为车联网中的可靠消息传输提供有力保障设想。下载体验:https://www.emqx.com/zh/try?product=enterprise结语通过本文可以看出MQTT协议的QoS特性对于互联网消息数据的安全传输意义重大车辆场景。EMQX作为一款全面支持MQTT协议标准的云原生分布式消息服务器,在产品设计上充分利用MQTT协议的特性和优势,为物联网平台和应用构建提供可靠的数据连接、移动、处理和集成。