一种MQTT协议仿真方法及仿真设备技术

技术编号:26606113 阅读:35 留言:0更新日期:2020-12-04 21:30
本发明专利技术提供了一种MQTT协议仿真方法及仿真设备,仿真设备设有用户空间和网络适配器,方法包括:仿真设备获取仿真测试的序列化命令,并为多个MQTT客户端实例配置所述序列化命令,控制多个MQTT客户端实例使用用户空间的仿真协议栈对序列化命令进行打包,得到仿真报文,将仿真报文传输给网络适配器,并由网络适配器发送给MQTT服务端进行仿真测试。仿真设备在进行仿真测试时,由于可以直接通过用户空间中的仿真协议栈对序列化命令进行打包得到仿真报文,无需将序列化命令通过内核空间的系统协议栈进行打包,可以提高仿真测试的效率,同时MQTT客户端实例数量也不受内核空间的限制,能够实现大批量的MQTT客户端实例的仿真测试。

【技术实现步骤摘要】
一种MQTT协议仿真方法及仿真设备
本专利技术涉及仿真
,尤其涉及一种MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输)协议仿真方法及仿真设备。
技术介绍
目前测试MQTT服务端(Broker,也称代理)主要有两种方式,一种是使用真实的MQTT客户端(Client)与服务端对接;另一种是使用MQTT服务端配套的MQTT客户端与MQTT服务端仿真对接测试。其中采用第一种方式时,由于需要使用大量的IoT(TheInternetofThings,物联网)实体设备接入网络,造成组网复杂、成本高;而采用第二种方式时,由于仿真客户端基于操作系统的协议栈实现的,在仿真过程中需要读取内核空间中的协议栈,由此会给CPU带来额外时间消耗,降低了仿真客户端的数据吞吐能力。
技术实现思路
本专利技术提供了一种MQTT协议仿真方法及仿真设备,可以提高仿真效率,降低仿真成本。第一方面,本专利技术提供了一种MQTT协议仿真方法,仿真设备设有用户空间和网络适配器;所述方法包括:所述仿真设备获取仿真测试的序列化命令,并为多个MQTT客户端实例配置所述序列化命令;所述仿真设备控制所述多个MQTT客户端实例使用所述用户空间的仿真协议栈对所述序列化命令进行打包,得到仿真报文;所述仿真设备控制所述多个MQTT客户端实例将所述仿真报文传输给所述网络适配器,并由所述网络适配器发送给MQTT服务端进行仿真测试。上述技术方案中,仿真设备在进行仿真测试时,由于可以直接通过用户空间中的仿真协议栈对序列化命令进行打包得到的仿真报文,无需将序列化命令通过内核空间的系统协议栈进行打包,可以提高仿真测试的效率,同时MQTT客户端实例数量也不受内核空间的限制,能够实现大批量的MQTT客户端实例的仿真测试。可选的,所述方法还包括:所述仿真设备控制所述网络适配器接收所述MQTT服务端发送的MQTT报文;所述MQTT报文包括MQTT客户端实例ID;所述仿真设备控制所述网络适配器根据所述MQTT客户端实例ID将所述MQTT报文传输至所述MQTT客户端实例ID对应的MQTT客户端实例;所述仿真设备控制所述MQTT客户端实例ID对应的MQTT客户端实例使用所述用户空间的仿真协议栈对所述MQTT报文进行解析得到测试响应数据。可选的,所述仿真设备控制所述多个MQTT客户端实例将所述仿真报文传输给所述网络适配器,包括:所述仿真设备控制所述多个MQTT客户端实例使用DMA(DirectMemoryAccess,直接存储器访问)技术将所述仿真报文传输给所述网络适配器;所述仿真设备控制所述网络适配器根据所述MQTT客户端实例ID将所述MQTT报文传输至所述MQTT客户端实例ID对应的MQTT客户端实例,包括:所述仿真设备控制所述网络适配器根据所述MQTT客户端实例ID使用所述DMA技术将所述MQTT报文传输至所述MQTT客户端实例ID对应的MQTT客户端实例。可选的,所述方法还包括:所述仿真设备获取仿真流量模型;所述仿真设备根据所述仿真流量模型为所述多个MQTT客户端实例配置仿真测试的仿真指标;所述仿真指标包括单位时间内MQTT客户端实例发起的新建连接速率、断开连接速率以及仿真周期内的连接并发量。可选的,所述序列化命令包括但不限于以下仿真行为:客户端上线、客户端发布主题、客户端发起订阅、客户端保持在线、客户端取消订阅、客户端下线。可选的,所述多个MQTT客户端实例中的任一MQTT客户端实例包括仿真发布者和仿真订阅者;所述MQTT客户端实例为仿真发布者时,所述序列化命令包括客户端上线、客户端发布主题、客户端保持在线、客户端下线;所述MQTT客户端实例为仿真订阅者时,所述序列化命令包括客户端上线、客户端发起订阅、客户端保持在线、客户端取消订阅、客户端下线。第二方面,本专利技术实施例提供一种仿真设备,仿真设备设有用户空间和网络适配器;包括:所述获取单元,用于获取仿真测试的序列化命令,并为多个MQTT客户端实例配置所述序列化命令;所述处理单元,用于控制所述多个MQTT客户端实例使用所述用户空间的仿真协议栈对所述序列化命令进行打包,得到仿真报文;控制所述多个MQTT客户端实例将所述仿真报文传输给所述网络适配器,并由所述网络适配器发送给MQTT服务端进行仿真测试。可选的,所述处理单元还用于:控制所述网络适配器接收所述MQTT服务端发送的MQTT报文;所述MQTT报文包括MQTT客户端实例ID;控制所述网络适配器根据所述MQTT客户端实例ID将所述MQTT报文传输至所述MQTT客户端实例ID对应的MQTT客户端实例;控制所述MQTT客户端实例ID对应的MQTT客户端实例使用所述用户空间的仿真协议栈对所述MQTT报文进行解析得到测试响应数据。可选的,所述处理单元具体用于:控制所述多个MQTT客户端实例使用DMA技术将所述仿真报文传输给所述网络适配器;控制所述网络适配器根据所述MQTT客户端实例ID使用所述DMA技术将所述MQTT报文传输至所述MQTT客户端实例ID对应的MQTT客户端实例。可选的,所述处理单元还用于:控制所述获取单元获取仿真流量模型;根据所述仿真流量模型为所述多个MQTT客户端实例配置仿真测试的仿真指标;所述仿真指标包括单位时间内MQTT客户端实例发起的新建连接速率、断开连接速率以及仿真周期内的连接并发量。可选的,所述序列化命令包括但不限于以下仿真行为:客户端上线、客户端发布主题、客户端发起订阅、客户端保持在线、客户端取消订阅、客户端下线。可选的,所述多个MQTT客户端实例中的任一MQTT客户端实例包括仿真发布者和仿真订阅者;所述MQTT客户端实例为仿真发布者时,所述序列化命令包括客户端上线、客户端发布主题、客户端保持在线、客户端下线;所述MQTT客户端实例为仿真订阅者时,所述序列化命令包括客户端上线、客户端发起订阅、客户端保持在线、客户端取消订阅、客户端下线。第三方面,本专利技术实施例提供一种计算设备,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述MQTT协议仿真方法。第四方面,本专利技术实施例一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述MQTT协议仿真方法。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种系统架构的示意图;图2为本专利技术实施例提供的一种客户端仿真系统的本文档来自技高网...

【技术保护点】
1.一种消息队列遥测传输MQTT协议仿真方法,其特征在于,仿真设备设有用户空间和网络适配器;所述方法包括:/n所述仿真设备获取仿真测试的序列化命令,并为多个MQTT客户端实例配置所述序列化命令;/n所述仿真设备控制所述多个MQTT客户端实例使用所述用户空间的仿真协议栈对所述序列化命令进行打包,得到仿真报文;/n所述仿真设备控制所述多个MQTT客户端实例将所述仿真报文传输给所述网络适配器,并由所述网络适配器发送给MQTT服务端进行仿真测试。/n

【技术特征摘要】
1.一种消息队列遥测传输MQTT协议仿真方法,其特征在于,仿真设备设有用户空间和网络适配器;所述方法包括:
所述仿真设备获取仿真测试的序列化命令,并为多个MQTT客户端实例配置所述序列化命令;
所述仿真设备控制所述多个MQTT客户端实例使用所述用户空间的仿真协议栈对所述序列化命令进行打包,得到仿真报文;
所述仿真设备控制所述多个MQTT客户端实例将所述仿真报文传输给所述网络适配器,并由所述网络适配器发送给MQTT服务端进行仿真测试。


2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述仿真设备控制所述网络适配器接收所述MQTT服务端发送的MQTT报文;所述MQTT报文包括MQTT客户端实例ID;
所述仿真设备控制所述网络适配器根据所述MQTT客户端实例ID将所述MQTT报文传输至所述MQTT客户端实例ID对应的MQTT客户端实例;
所述仿真设备控制所述MQTT客户端实例ID对应的MQTT客户端实例使用所述用户空间的仿真协议栈对所述MQTT报文进行解析得到测试响应数据。


3.如权利要求1所述的方法,其特征在于,所述仿真设备控制所述多个MQTT客户端实例将所述仿真报文传输给所述网络适配器,包括:
所述仿真设备控制所述多个MQTT客户端实例使用直接存储器访问DMA技术将所述仿真报文传输给所述网络适配器;
所述仿真设备控制所述网络适配器根据所述MQTT客户端实例ID将所述MQTT报文传输至所述MQTT客户端实例ID对应的MQTT客户端实例,包括:
所述仿真设备控制所述网络适配器根据所述MQTT客户端实例ID使用所述DMA技术将所述MQTT报文传输至所述MQTT客户端实例ID对应的MQTT客户端实例。


4.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述仿真设备获取仿真流量模型;
所述仿真设备根据所述仿真流量模型为所述多个MQTT客户端实例配置仿真测试的仿真指标;所述仿真指标包括单位时间内MQTT客户端实例发起的新建连接速率、断开连接速率以及仿真周期内的连接并发量。


5.如权利要求1至4任一项所述的方法,其特征在于,所述序列化命令包括但不限于以下仿真行为:
客户端上线、客户端发布主题、客户端发起订阅、客户端保持在线、客户端取消订阅、客户端下线。


6.如权利要求5所述的方法,其特征在于,所述多个MQTT客户端实例中的任一MQTT客户端实例包括仿真发布者和仿真订阅者;
所述MQTT客户端实例为仿真发布者时,所述序列化命令包括客户端上线、客户端发布主题、客户端保持在线、客户端下线;
所述MQTT客户端实例为仿真订阅者时,所述序列化命令包括客户端上线、客户端发起订阅、客户端保持在线、客户端取消订阅、客户端下线。


7.一种仿真设备,其特征在于,仿真设备设有...

【专利技术属性】
技术研发人员:袁航祖立军刘国宝傅峻薛智杰
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1