基于硬件的MQTT发布订阅方法及系统.pdf

上传人:三** 文档编号:10893285 上传时间:2021-08-26 格式:PDF 页数:9 大小:430.12KB
收藏 版权申诉 举报 下载
基于硬件的MQTT发布订阅方法及系统.pdf_第1页
第1页 / 共9页
基于硬件的MQTT发布订阅方法及系统.pdf_第2页
第2页 / 共9页
基于硬件的MQTT发布订阅方法及系统.pdf_第3页
第3页 / 共9页
文档描述:

《基于硬件的MQTT发布订阅方法及系统.pdf》由会员分享,可在线阅读,更多相关《基于硬件的MQTT发布订阅方法及系统.pdf(9页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201911188013.5 (22)申请日 2019.11.28 (71)申请人 北京宁云科技有限公司 地址 100094 北京市海淀区唐家岭村南14 幢平房1129号 (72)发明人 谢勇张继光 (74)专利代理机构 北京市领专知识产权代理有 限公司 11590 代理人 张玲王莹莹 (51)Int.Cl. H04L 12/58(2006.01) H04L 29/06(2006.01) H04L 29/08(2006.01) (54)发明名称 基于硬件的MQTT发布订阅方法及系。

2、统 (57)摘要 本发明涉及一种基于硬件的MQTT发布订阅 系统及方法, 该系统包括软件单元, 所述软件单 元包括MQTT协议模块, 所述MQTT协议模块用于完 成协议控制和订阅关系路由建立, 该系统还包括 硬件单元, 所述软件单元和硬件单元通过接口抽 象层解耦, 所述软件单元还包括硬件下发/控制 模块, 用于将订阅关系下发给所述硬件单元, 所 述硬件单元用于完成MQTT报文的复制与转发。 本 发明系统或方法中, MQTT数据报文的复制和转发 由专门硬件负责, 相比于传统方法由软件完成, 提高了处理效率和转发的确定性, 因此可以满足 于工业场景应用。 权利要求书1页 说明书5页 附图2页 CN。

3、 110891014 A 2020.03.17 CN 110891014 A 1.一种基于硬件的MQTT发布订阅系统, 包括软件单元, 所述软件单元包括MQTT协议模 块, 所述MQTT协议模块用于完成协议控制和订阅关系路由建立, 其特征在于, 还包括硬件单 元, 所述软件单元和硬件单元通过接口抽象层解耦, 所述软件单元还包括硬件下发/控制模 块, 用于将订阅关系路由下发给所述硬件单元, 所述硬件单元用于完成MQTT报文的复制与 转发。 2.根据权利要求1所述的系统, 其特征在于, 所述硬件单元包括路由映射模块、 TCP连接 嗅探模块、 MQTT报文解析模块、 MQTT报文构造模块、 MQTT。

4、报文复制模块和MQTT报文转发模 块; 其中, 路由映射模块用于依据MQTT订阅关系生成硬件路由; TCP连接嗅探模块用于提取 并保持TCP连接信息; MQTT报文解析模块用于解析MQTT报文, 提取主题和对应的发布者数 据; MQTT报文构造模块用于基于提取的主题和发布者数据构造MQTT数据报文负载; MQTT报 文复制模块用于依据硬件路由构造并复制MQTT数据报文; MQTT报文转发模块用于将构造好 的MQTT数据报文进行转发。 3.根据权利要求2所述的系统, 其特征在于, 所述硬件单元还包括拥塞控制模块, 拥塞 控制模块用于依据MQTT QoS参数指定MQTT数据报文转发优先级及带宽, 。

5、此时, 所述MQTT报 文复制模块用于依据硬件路由和转发优先级构造并复制MQTT数据报文, 所述MQTT报文转发 模块依据转发优先级策略将构造好的MQTT数据报文进行转发。 4.根据权利要求1-3任一所述的系统, 其特征在于, 所述硬件单元的实现为交换芯片、 FPGA、 ASIC、 带硬件加速的网络处理器中的任一项。 5.一种基于硬件的MQTT发布订阅方法, 其特征在于, 基于权利要求1所述的基于硬件的 MQTT发布订阅系统实现, 所述方法包括以下步骤: 由第一硬件中配置的软件单元完成协议控制和订阅关系路由建立; 由第二硬件完成MQTT报文的复制与转发。 6.根据权利要求5所述的方法, 其特征。

6、在于, 所述第二硬件完成MQTT报文的复制与转发 的过程, 包括: 调用硬件路由映射机制, 将MQTT订阅信息映射成硬件路由表; 接收到发布者提交的MQTT数据发布报文后, 解析MQTT数据发布报文, 提取Topic和对应 的publish数据; 基于提取的Topic和publish数据构造MQTT数据报文负载; 依据硬件路由、 TCP连接保持信息, 构造并复制MQTT数据报文; 将构造好的MQTT数据报文进行转发。 7.根据权利要求6所述的方法, 其特征在于, 还包括步骤: 对待转发MQTT数据报文设置 转发优先级和带宽保留策略; 所述依据硬件路由、 TCP连接保持信息, 构造并复制MQTT。

7、数据报文的步骤包括: 依据硬 件路由、 转发优先级、 TCP连接保持信息, 构造并复制MQTT数据报文; 所述将构造好的MQTT数据报文进行转发的步骤包括: 依据转发优先级策略将构造好的 MQTT数据报文进行转发。 权利要求书 1/1 页 2 CN 110891014 A 2 基于硬件的MQTT发布订阅方法及系统 技术领域 0001 本发明涉及通讯技术领域, 特别涉及一种基于硬件的MQTT发布订阅方法及系统。 背景技术 0002 MQTT(Message Queuing Telemetry Transport, 消息队列遥测传输协议), 是一种 构建于TCP协议之上的基于发布/订阅(publi。

8、sh/subscribe)模式的轻量级通讯协议, 由IBM 在1999年发布。 MQTT最大优点在于, 可以以极少的代码和有限的带宽, 为连接远程设备提供 即时可靠的消息服务。 作为一种低开销、 低带宽占用的即时通讯协议, 其在物联网、 小型设 备等方面应用广泛。 0003 MQTT协议的典型应用拓扑如图1所示。 MQTT协议有两种角色: 客户端和服务器; 在 通讯过程中, MQTT协议有三种身份: 发布者(Publish)、 代理(Broker)、 订阅者(Subscribe)。 其中, 消息的发布者和订阅者都是客户端, 消息代理是服务器, 消息发布者可以同时是订阅 者。 MQTT协议是一种。

9、即时通信协议, 不能满足确定性要求较高的工业场景。 其主要原因在 于: (1)MQTTBroker以进程或线程的形式运行于CPU中, 其协议控制和数据复制、 转发都要经 过CPU处理。 由于CPU时间片轮转和抢占机制必然会导致数据复制、 转发时延的不确定性。 (2)基于TCP协议控制的超时和重传机制同样导致数据传输时延抖动。 (3)网络的拥塞, 流量 超限导致MQTT数据报文的传输时延和抖动不能得到保障, 甚至被丢弃。 (4)MQTT协议自身的 QoS只能保证数据到达订阅者的次数, 不能保证数据达到时间的确定性。 因此, MQTT协议显 然不适用于确定性要求较高的工业场景。 发明内容 0004。

10、 本发明的目的在于改善现有技术中所存在的MQTT协议不适用于确定性要求较高 的工业场景的不足, 提供一种基于硬件的MQTT发布订阅系统及方法, 以适应于工业场景的 应用要求。 0005 为了实现上述发明目的, 本发明实施例提供了以下技术方案: 0006 一种基于硬件的MQTT发布订阅系统, 包括软件单元, 所述软件单元包括MQTT协议 模块, 所述MQTT协议模块用于完成协议控制和订阅关系路由建立, 还包括硬件单元, 所述软 件单元和硬件单元通过接口抽象层解耦, 所述软件单元还包括硬件下发/控制模块, 用于将 订阅关系路由下发给所述硬件单元, 所述硬件单元用于完成MQTT报文的复制与转发。 0。

11、007 在一个实施方案中, 所述硬件单元包括路由映射模块、 TCP连接嗅探模块、 MQTT报 文解析模块、 MQTT报文构造模块、 MQTT报文复制模块和MQTT报文转发模块; 其中, 路由映射 模块用于依据MQTT订阅关系生成硬件路由; TCP连接嗅探模块用于提取并保持TCP连接保持 信息; MQTT报文解析模块用于解析MQTT报文, 提取主题和对应的发布者数据; MQTT报文构造 模块用于基于提取的主题和发布者数据, 构造MQTT数据报文负载; MQTT报文复制模块用于 依据硬件路由构造并复制MQTT数据报文; MQTT报文转发模块用于将构造好的MQTT数据报文 进行转发。 说明书 1/5。

12、 页 3 CN 110891014 A 3 0008 在进一步完善的方案中, 所述硬件单元还包括拥塞控制模块, 拥塞控制模块用于 依据MQTT QoS参数制定MQTT数据报文转发优先级及带宽, 此时, 所述MQTT报文复制模块用 于依据硬件路由和转发优先级构造并复制MQTT数据报文, 所述MQTT报文转发模块依据转发 优先级策略将构造好的MQTT数据报文进行转发。 0009 另一方面, 本发明实施例还提供了一种基于硬件的MQTT发布订阅方法, 其特征在 于, 基于权利要求1所述的基于硬件的MQTT发布订阅系统实现, 所述方法包括以下步骤: 0010 由第一硬件中配置的软件单元完成协议控制和订阅。

13、关系路由建立; 0011 由第二硬件完成MQTT报文的复制与转发。 0012 第一硬件就是传统的CPU, 第二硬件是新增的硬件设备, 专门用于完成MQTT报文的 复制与转发, 因此相比于传统的MQTT报文发布订阅方式, 提高了处理效率和转发的确定性。 0013 在一个实施方案中, 所述第二硬件完成MQTT报文的复制与转发的过程, 包括: 0014 调用硬件路由映射机制, 将MQTT订阅信息映射成硬件路由表; 0015 接收到发布者提交的MQTT数据发布报文后, 解析MQTT数据发布报文, 提取Topic和 对应的publish数据; 0016 基于提取的Topic和publish数据构造MQT。

14、T数据报文负载; 0017 依据硬件路由、 TCP连接保持信息, 构造并复制MQTT数据报文; 0018 将构造好的MQTT数据报文进行转发。 0019 与现有技术相比, 本发明方法或系统, 具有以下优势: 0020 (1)MQTT数据报文的复制和转发由专门硬件负责, 相比于传统方法由软件完成, 提 高了处理效率和转发的确定性。 0021 (2)MQTT数据报文优先级策略和带宽由硬件保障, 无需软件协议层面的超时重传, 大大提高了MQTT数据报文的确定性。 0022 (3)MQTT协议本身不进行任何改动, 完全兼容传统MQTT协议实现方式。 0023 (4)是否采用硬件系统处理MQTT数据报文。

15、, 软件可控, 处理方式灵活。 附图说明 0024 为了更清楚地说明本发明实施例的技术方案, 下面将对实施例中所需要使用的附 图作简单地介绍, 应当理解, 以下附图仅示出了本发明的某些实施例, 因此不应被看作是对 范围的限定, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这 些附图获得其他相关的附图。 0025 图1为MQTT协议的典型应用拓扑图。 0026 图2为实施例中所述的基于硬件的MQTT发布订阅系统的结构示意框图。 0027 图3为实施例中所述的基于硬件的MQTT发布订阅方法的流程图。 0028 图4为MQTT优先级映射及转发调度流程示意图。 具体实施方式 。

16、0029 下面将结合本发明实施例中附图, 对本发明实施例中的技术方案进行清楚、 完整 地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。 通常在 此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。 因 说明书 2/5 页 4 CN 110891014 A 4 此, 以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的 范围, 而是仅仅表示本发明的选定实施例。 基于本发明的实施例, 本领域技术人员在没有做 出创造性劳动的前提下所获得的所有其他实施例, 都属于本发明保护的范围。 0030 如图2所示, 本实施例中提供的基于。

17、硬件的MQTT发布订阅系统, 包括软件单元、 硬 件单元和接口抽象层。 0031 其中, 软件单元由CPU实现, 软件单元包括MQTT协议模块和硬件下发/控制模块, MQTT协议模块和硬件下发/控制模块均以进程或线程的形式运行于CPU中。 与现有的MQTT发 布订阅系统相比, MQTT协议模块为既有模块, 硬件下发/控制模块为新增模块, 既有的MQTT 协议模块用于完成协议控制和订阅关系路由建立, 新增的硬件下发/控制模块完成订阅关 系硬件下发、 转发模式下发等功能。 MQTT协议模块和硬件下发/控制模块之间通过松耦合 API相连, 所述松耦合方式包含但不限于RESTFUL API, RPC(。

18、远程过程调用)等, 这样做的好 处是利用MQTT协议现有机制, 无需对MQTT协作进行任何改动就可以增加本方案所述功能, 实现协议兼容。 0032 接口抽象层可以将所述软件单元和硬件单元进行解耦, 解耦目的在于: (1)使得本 方法可以适配多种硬件(所述硬件包括专有硬件和通用硬件, 可以是CPU集成的或者CPU分 离的, 包含但不限于交换芯片、 FPGA、 ASIC、 带硬件加速的网络处理器等)。 (2)将传统的MQTT 软件实现作为一种无适配硬件的特例, 即使没有所述硬件单元, MQTT协议模块本身依然能 够正常工作。 0033 硬件单元的实现包含但不限于交换芯片、 FPGA、 ASIC、 。

19、带硬件加速的网络处理器 等, 硬件单元包括路由映射模块、 拥塞控制模块、 TCP连接嗅探模块、 MQTT报文解析模块、 MQTT报文构造模块、 MQTT报文复制模块和MQTT报文转发模块。 0034 其中, 路由映射模块用于依据MQTT订阅关系生成硬件路由。 拥塞控制模块用于依 据MQTT QoS参数, 采用硬件手段保障MQTT数据报文转发优先级及带宽。 TCP连接嗅探模块采 用硬件方式从代理和订阅者的TCP报文交互中提取并保持TCP连接保持信息, 如: 序列号 (sequence number)、 窗口尺寸(window size)等, 以便于进行MQTT报文构造。 MQTT报文解析 模块采。

20、用硬件方式解析MQTT, 提取主题(Topic)和对应的发布者(publish)数据。 MQTT报文 构造模块用于基于提取的Topic和publish数据, 构造MQTT数据报文负载。 MQTT报文复制模 块用于依据硬件路由和转发优先级, 构造并复制MQTT数据报文。 MQTT报文转发模块用于依 据转发优先级策略将构造好的MQTT数据报文进行转发。 0035 应用时, 上述系统集成于代理设备(如服务器)中, 扮演代理身份。 请参阅图3, 基于 上述系统实现的基于硬件的MQTT发布订阅方法, 包括以下步骤: 0036 步骤S01: 代理设备(更准确讲是上述软件部分中的MQTT协议模块)接收订阅者。

21、(客 户端)通过MQTT协议提交的订阅主题topic。 0037 步骤S02: 硬件下发/控制模块将订阅信息下发给硬件单元中的路由映射模块, 订 阅信息中包含有订阅Client-ID(客户ID)、 订阅protocol name(协议名)、 订阅IP、 订阅端口 号、 订阅Qos、 订阅Topic(主题)。 0038 步骤S03: 拥塞控制模块对待转发MQTT数据报文设置转发优先级和带宽保留策略, 以保障当网络出现拥塞时MQTT数据报文转发确定性。 0039 优先级可以依据订阅QoS设置, 带宽保留可以依据系统业务量进行估算。 说明书 3/5 页 5 CN 110891014 A 5 0040。

22、 一种基于硬件交换QoS和队列调度技术的MQTT优先级映射及转发调度的可能实现 方式如图4所示。 图4中, 纯色报文为MQTT QoS为2的数据报文, 十字纹报文为MQTT QoS为1的 数据报文, 横纹报文为MQTT QoS为0的数据报文, 斜纹为HTTP报文。 所有报文依次经过流分 类、 流整形、 拥塞避免流程。 当产生拥塞时, 对MQTT数据报文采取不丢弃策略。 入队列时按照 MQTT QoS分别进入对应队列, 即同一MQTT QoS的报文进入同一个队列。 出队列时根据队列 优先级依次进行出队列调度, 从而保证MQTT数据报文转发的确定性。 如图4中, 纯色报文优 先出列, 依次是十字纹。

23、报文、 横纹报文, 图示中斜纹报文(HTTP)由于拥塞被丢弃。 0041 步骤S04: 依据软件设置调用软件转发关断机制, 决定是否对MQTT协议软件生成的 MQTT数据报文进行转发。 该功能的作用是防止软/硬同时发送MQTT数据报文, 导致混乱。 同 时基于转发关断机制可以实现由软件转发或者由硬件转发之间的切换, 应用灵活。 0042 步骤S05: 当接收到订阅者(客户端)返回的确认MQTT报文后, 采用硬件方式提取并 保持TCP连接信息, 如: sequence number(报文序列号)、 acknowledgment number(报文确认 号)、 window size(窗口尺寸)、。

24、 flags(标识), 以用于MQTT报文构造。 同时, 需要根据CPU下发 的MQTT报文进行上述TCP连接信息的同步, 以保证TCP连接信息的准确性。 此处及后续步骤 中所谓的硬件方式是指由硬件实现, 例如专有硬件和通用硬件, 可以是CPU集成的或者CPU 分离的, 包含但不限于交换芯片、 FPGA、 ASIC、 带硬件加速的网络处理器等。 0043 步骤S06: 路由映射模块调用硬件路由映射机制, 将MQTT订阅信息映射成硬件路由 表, 路由表信息包括订阅Client-ID, 订阅protocol name, 订阅IP, 订阅端口号, 订阅Qos, 订 阅Topic。 上述映射实现方式包。

25、括但不限于L2转发, L3转发, 组播, VLAN, TSN。 0044 一种简单且可能的实现方式是硬件路由信息和MQTT订阅信息一一对应进行映射, 生成以Topic为索引的路由表示意如下: 0045 TopicClient-ID目的IP目的端口QoS TemperatureMosqsub/1799-ubuntu192.168.1.113596902 TemperatureMosqsub/2033-centos192.168.1.123688792 VoltageMosqsub/1799-ubuntu192.168.1.113587411 HumidityMosqsub/2033-centos。

26、192.168.1.123645870 0046 其中, Topic, Client-ID, 目的IP, 目的端口, QoS从MQTT协议模块获得并下发硬件 单元。 硬件单元构造MQTT数据报文时, 源IP填代理设备(如服务器)自身IP地址, 源端口号为 1883。 0047 步骤S07: 当代理设备接收到发布者提交的MQTT数据发布报文后, 采用硬件方式解 析MQTT, 用于提取Topic和对应的publish数据。 0048 步骤S08: 基于提取的Topic和publish数据, 构造MQTT数据报文负载。 0049 步骤S09: 依据硬件路由、 转发优先级、 TCP连接保持信息, 构造。

27、并复制MQTT数据报 文。 0050 步骤S10: 硬件依据转发优先级策略将构造好的MQTT数据报文进行转发。 0051 需要说明的是, 上述步骤之间, 除了明显有时序或业务逻辑的情况, 没有执行顺序 之分, 例如步骤S03-S04与其他步骤之间没有执行顺序之分, S03-S04之间也没有执行顺序 之分, 又例如步骤S05只需要执行在步骤S01之后且S08之前即可。 0052 本实施例中上述方法或系统, 具有以下优势: 说明书 4/5 页 6 CN 110891014 A 6 0053 (1)MQTT数据报文的复制和转发由专门硬件负责, 相比于传统方法由软件完成, 提 高了处理效率和转发的确定。

28、性。 0054 (2)MQTT数据报文优先级策略和带宽由硬件保障, 无需软件协议层面的超时重传, 大大提高了MQTT数据报文的确定性。 0055 (3)MQTT协议本身不进行任何改动, 完全兼容传统MQTT协议实现方式。 0056 (4)是否采用硬件系统处理MQTT数据报文, 软件可控, 处理方式灵活。 0057 以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限于此, 任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易想到变化或替换, 都应涵 盖在本发明的保护范围之内。 因此, 本发明的保护范围应所述以权利要求的保护范围为准。 说明书 5/5 页 7 CN 110891014 A 7 图1 图2 说明书附图 1/2 页 8 CN 110891014 A 8 图3 图4 说明书附图 2/2 页 9 CN 110891014 A 9 。

展开阅读全文
内容关键字: 基于 硬件 MQTT 发布 订阅 方法 系统
关于本文
本文标题:基于硬件的MQTT发布订阅方法及系统.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10893285.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1