一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于QUIC优化MQTT的方法与流程

2021-12-15 01:34:00 来源:中国专利 TAG:

一种基于quic优化mqtt的方法
技术领域
1.本发明涉及物联网通信技术领域,是一种基于quic优化mqtt的方法。


背景技术:

2.mqtt(message queuing telemetry transport)是一种发布/订阅式的“轻量级”消息协议,具有低开销,低带宽占用的特性,可以用极少的内存和带宽的为连接远程设备提供实时可靠的消息服务。
3.quic(quick udp internet connection)是谷歌制定的一种基于udp的低时延的互联网传输层协议。由于其建立在udp之上,使得相对于tcp之上等其他协议,quic的可定制和优化的空间更大。
4.mqtt协议是目前物联网应用最广泛的协议之一,而大部分mqtt程序运行在tcp协议上,tcp协议在连接开销、传输延迟和连接迁移方面存在不足,使用quic协议对mqtt协议优化,可以弥补上述的不足,提高mqtt的性能。


技术实现要素:

5.本发明的目的在于利用quic及其特性优化mqtt,解决在现有的物联网传输中tcp存在连接延迟大、传输延迟高、以及弱网及移动场景下性能表现差等问题,本发明提供了一种基于quic优化mqtt的方法,本发明提供了以下技术方案:
6.一种基于quic优化mqtt的方法,包括以下步骤:
7.步骤1:采用quic的0

rtt特性优化mqtt的连接过程;
8.步骤2:采用quic的无队头阻塞的多路复用特性优化mqtt的数据传输过程;
9.步骤3:采用quic的连接迁移特性优化mqtt适应移动场景的能力。
10.优选地,所述步骤1具体为:
11.mqtt客户端与mqtt代理服务器端初始化quic 0

rtt模块;
12.通过mqtt客户端发起quic连接请求,建立quic连接信息;mqtt代理服务端解析信息,并将0

rtt相关密钥信息发送到mqtt客户端;mqtt客户端和mqtt代理服务器端保存0

rtt信息,在重连时使用0

rtt连接;
13.mqtt客户端重新发送quic 0

rtt连接请求,与mqtt代理服务器建立0

rtt连接;
14.在mqtt客户端发起quic 0

rtt连接请求的同时,利用quic的0

rtt数据包发送mqtt的连接报文;
15.在mqtt客户端发送mqtt 0

rtt连接报文的同时,利用quic的0

rtt数据包发送mqtt的后续控制报文。
16.优选地,采用0

rtt连接的前提为quic客户端曾与quic服务器建立连接,并且quic客户端存储quic服务器端的相关密钥信息,且上述密钥信息仍然有效;
17.quic的ietf版本使用tlsv1.3建立加密的连接以及完成报文的加解密,在使用0

rtt连接时,quic客户端和quic服务器端使用专用的0

rtt密钥,在使用0

rtt密钥时客户端
发送的所有报文,都属于0

rtt连接过程中传输的报文,所采用0

rtt传输的报文范围为使用0

rtt密钥的所有报文。
18.优选地,所述步骤2具体为:
19.mqtt客户端和mqtt代理服务器端初始化quic传输模块,包括确定流最大数量限制;
20.mqtt客户端根据现有的报文数量和主题数,建立流的数量,其中流的数量不超出流最大数量的限制;
21.对于新的主题,mqtt服务器端根据mqtt客户端传输内容动态创建流;
22.对于同一主题需要传输多个报文信息,创建多个新的流,多个流并行传输报文;报文消息之间需要没有时间的关联性,即报文的传输顺序不存在依赖,每个主题至少通过一个流传输;流根据传输的内容动态管理,动态创建或关闭传输流。
23.优选地,mqtt客户端与mqtt服务器端完成quic连接的建立,此时quic客户端和quic服务器端使用密钥forword_secure进行数据传输;并且quic客户端和quic服务器至少存在一个quic流用于数据的传输;
24.mqtt客户端根据订阅的主题数和报文数动态创建quic流,其中每个流只用于传输一个主题的相关报文;mqtt客户端或代理服务端传输的每个主题,至少通过一个流进行传输;mqtt客户端创建的quic流数量不应当超于quic每条连接支持的最大流数量,设定quic流的阈值,mqtt客户端创建的quic流数量不应当超出阈值;
25.mqtt客户端和mqtt代理服务器端的数据流需要动态管理,当一个主题传输的报文数量超过某个阈值时,将该主题传输报文分组,并根据分组情况创建对应数量的流,通过流多路传输分组后的报文;mqtt客户端和服务器应当具有动态管理流的功能,当报文内容增加时,需要动态创建数据流;当流长时间不使用后,需要动态关闭数据流。
26.优选地,所述步骤3具体为:
27.mqtt客户端或mqtt代理服务器初始化quic连接迁移模块;当mqtt客户端的ip地址或端口发生变化时,此时mqtt的客户端向mqtt的代理服务器发送新的ip地址和端口号,mqtt代理服务器的quic连接迁移模块更新客户端的ip地址和端口号信息,完成连接迁移过程;
28.当mqtt代理服务器的ip地址或端口发生变化时,此时mqtt代理服务器向mqtt的客户端发送新的ip地址和端口号;mqtt客户端的quic连接迁移模块更新代理服务器的ip地址和端口号信息,完成连接迁移过程;
29.当mqtt客户端或mqtt代理服务器使用连接迁移特性时,不需要断开quic连接,网络传输性能不存在降低。
30.优选地,当mqtt客户端或mqtt服务器有一方ip地址或端口改变时,使用quic的连接迁移特性,在不中断连接和数据传输的情况下,完成连接迁移的过程;
31.当mqtt客户端ip地址或端口改变,此时连接不会中断,mqtt客户端使用quic的连接迁移方法,并且给定新的ip地址或端口;
32.quic客户端获取中给定的ip地址和端口,调整quic连接,建立新的数据传输结构,客户端发送包含非探测帧的包,将连接迁移到新的地址;
33.客户端在新路径启动路径验证,验证新路径的可达性,客户端发送包含path_
challenge帧的探测包,path_challenge帧里面包含一个不可预测的随机值;
34.服务端接收发送的path_challenge包,在path_response帧里面包含前一步path_challenge接收到的随机值,响应探测包;
35.客户端接收到服务端的path_response,验证payload里面的值是否正确;服务端需要使用路径验证,验证客户端对其新ip地址的所有权;
36.连接迁移的过程完成,mqtt客户端和mqtt服务器端继续进行数据的传输。
37.优选地,当mqtt客户端和mqtt服务器已经通过quic建立过连接,并且quic客户端已经存储quic服务器端相关密钥信息,密钥信息仍然有效;
38.mqtt客户端重新与相同的mqtt服务器,通过quic建立连接;quic客户端可以取出在保存的密钥信息,并且利用0

rtt密钥发起quic的0

rtt连接;
39.在建立连接的同时,mqtt客户端利用quic的0

rtt报文传输mqtt的connect报文,建立mqtt连接;
40.在建立连接的同时,mqtt客户端利用quic的0

rtt报文传输后续的控制报文。
41.本发明具有以下有益效果:
42.本发明的mqtt客户端重新建立连接的时间与现有技术相比,可以缩短75%的连接时间。当网络较弱或其他异常情况时,mqtt客户端和mqtt代理服务器会频繁掉线,需要重新建立连接。使用mqtt 0

rtt优化可以显著降低重连的延迟。mqtt的传输延迟降低,在弱网环境下,性能提升效果更明显。
43.mqtt客户端与mqtt代理服务器的并发传输能力得到增强。mqtt客户端和mqtt代理服务器可以并发传输更多的会话,当其中一个会话发生丢包时,不会影响其他的会话传输。对于同一个会话,mqtt数据传输数据的延迟降低。
44.mqtt客户端和mqtt服务器适应移动场景的能力得到增强,即当网络发生切换时,mqtt客户端和mqtt服务器的ip地址或端口变化,传输速率不会有明显下降的情况,不需要断开网络连接。
附图说明
45.图1为0

rtt连接的时序图;
46.图2为多路复用示例图;
47.图3为连接迁移示例图;
48.图4为quic接口图。
具体实施方式
49.以下结合具体实施例,对本发明进行了详细说明。
50.具体实施例一:
51.根据图1至图4所示,本发明提供一种基于quic优化mqtt的方法,一种基于quic优化mqtt的方法,包括以下步骤:
52.步骤1:采用quic的0

rtt特性优化mqtt的连接过程;
53.所述步骤1具体为:
54.mqtt客户端与mqtt代理服务器端初始化quic 0

rtt模块;
55.通过mqtt客户端发起quic连接请求,建立quic连接信息;mqtt代理服务端解析信息,并将0

rtt相关密钥信息发送到mqtt客户端;mqtt客户端和mqtt代理服务器端保存0

rtt信息,在重连时使用0

rtt连接;
56.mqtt客户端重新发送quic 0

rtt连接请求,与mqtt代理服务器建立0

rtt连接;
57.在mqtt客户端发起quic 0

rtt连接请求的同时,利用quic的0

rtt数据包发送mqtt的连接报文;
58.在mqtt客户端发送mqtt 0

rtt连接报文的同时,利用quic的0

rtt数据包发送mqtt的后续控制报文。
59.mqtt客户端和mqtt服务器端需要具有持久化存储的能力。
60.quic客户端和quic服务器需要支持0

rtt连接和数据传输。
61.mqtt客户端和mqtt服务器端需要支持quic连接以及数据传输。
62.quic客户端和quic服务器端需要使用相同的quic版本建立连接和传输数据,否则quic需要进行协议协商,不能在该次数据传输中进行0

rtt连接和数据传输。
63.采用0

rtt连接的前提为quic客户端曾与quic服务器建立连接,并且quic客户端存储quic服务器端的相关密钥信息,且上述密钥信息仍然有效;
64.quic的ietf版本使用tlsv1.3建立加密的连接以及完成报文的加解密,在使用0

rtt连接时,quic客户端和quic服务器端使用专用的0

rtt密钥,在使用0

rtt密钥时客户端发送的所有报文,都属于0

rtt连接过程中传输的报文,所采用0

rtt传输的报文范围为使用0

rtt密钥的所有报文。
65.当mqtt客户端和mqtt服务器已经通过quic建立过连接,并且quic客户端已经存储quic服务器端相关密钥信息,密钥信息仍然有效;
66.mqtt客户端重新与相同的mqtt服务器,通过quic建立连接;quic客户端可以取出在保存的密钥信息,并且利用0

rtt密钥发起quic的0

rtt连接;
67.在建立连接的同时,mqtt客户端利用quic的0

rtt报文传输mqtt的connect报文,建立mqtt连接;
68.在建立连接的同时,mqtt客户端利用quic的0

rtt报文传输后续的控制报文。
69.步骤2:采用quic的无队头阻塞的多路复用特性优化mqtt的数据传输过程;
70.优选地,所述步骤2具体为:
71.mqtt客户端和mqtt代理服务器端初始化quic传输模块,包括确定流最大数量限制;
72.mqtt客户端根据现有的报文数量和主题数,建立流的数量,其中流的数量不超出流最大数量的限制;
73.对于新的主题,mqtt服务器端根据mqtt客户端传输内容动态创建流;
74.对于同一主题需要传输多个报文信息,创建多个新的流,多个流并行传输报文;报文消息之间需要没有时间的关联性,即报文的传输顺序不存在依赖,每个主题至少通过一个流传输;流根据传输的内容动态管理,动态创建或关闭传输流。
75.在mqtt客户端和mqtt服务器使用多路复用,mqtt客户端与mqtt服务器端完成quic连接的建立,此时quic客户端和quic服务器端使用密钥forword_secure进行数据传输;并且quic客户端和quic服务器至少存在一个quic流用于数据的传输;
76.mqtt客户端根据订阅的主题数和报文数动态创建quic流,其中每个流只用于传输一个主题的相关报文;mqtt客户端或代理服务端传输的每个主题,至少通过一个流进行传输;mqtt客户端创建的quic流数量不应当超于quic每条连接支持的最大流数量,设定quic流的阈值,mqtt客户端创建的quic流数量不应当超出阈值;
77.mqtt客户端和mqtt代理服务器端的数据流需要动态管理,当一个主题传输的报文数量超过某个阈值时,将该主题传输报文分组,并根据分组情况创建对应数量的流,通过流多路传输分组后的报文;mqtt客户端和服务器应当具有动态管理流的功能,当报文内容增加时,需要动态创建数据流;当流长时间不使用后,需要动态关闭数据流。
78.步骤3:采用quic的连接迁移特性优化mqtt适应移动场景的能力。
79.所述步骤3具体为:
80.mqtt客户端或mqtt代理服务器初始化quic连接迁移模块;当mqtt客户端的ip地址或端口发生变化时,此时mqtt的客户端向mqtt的代理服务器发送新的ip地址和端口号,mqtt代理服务器的quic连接迁移模块更新客户端的ip地址和端口号信息,完成连接迁移过程;
81.当mqtt代理服务器的ip地址或端口发生变化时,此时mqtt代理服务器向mqtt的客户端发送新的ip地址和端口号;mqtt客户端的quic连接迁移模块更新代理服务器的ip地址和端口号信息,完成连接迁移过程;
82.当mqtt客户端或mqtt代理服务器使用连接迁移特性时,不需要断开quic连接,网络传输性能不存在降低。
83.在mqtt客户端和mqtt服务器使用连接迁移,当mqtt客户端或mqtt服务器有一方ip地址或端口改变时,使用quic的连接迁移特性,在不中断连接和数据传输的情况下,完成连接迁移的过程;
84.当mqtt客户端ip地址或端口改变,此时连接不会中断,mqtt客户端使用quic的连接迁移方法,并且给定新的ip地址或端口;
85.quic客户端获取中给定的ip地址和端口,调整quic连接,建立新的数据传输结构,客户端发送包含非探测帧的包,将连接迁移到新的地址;
86.客户端在新路径启动路径验证,验证新路径的可达性,客户端发送包含path_challenge帧的探测包,path_challenge帧里面包含一个不可预测的随机值;
87.服务端接收发送的path_challenge包,在path_response帧里面包含前一步path_challenge接收到的随机值,响应探测包;
88.客户端接收到服务端的path_response,验证payload里面的值是否正确;服务端需要使用路径验证,验证客户端对其新ip地址的所有权;
89.连接迁移的过程完成,mqtt客户端和mqtt服务器端继续进行数据的传输。
90.以上所述仅是一种基于quic优化mqtt的方法的优选实施方式,一种基于quic优化mqtt的方法的保护范围并不仅局限于上述实施例,凡属于该思路下的技术方案均属于本发明的保护范围。应当指出,对于本领域的技术人员来说,在不脱离本发明原理前提下的若干改进和变化,这些改进和变化也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献