CN110622485A - Mqtt网络中的主题处理 - Google Patents
Mqtt网络中的主题处理 Download PDFInfo
- Publication number
- CN110622485A CN110622485A CN201780090815.5A CN201780090815A CN110622485A CN 110622485 A CN110622485 A CN 110622485A CN 201780090815 A CN201780090815 A CN 201780090815A CN 110622485 A CN110622485 A CN 110622485A
- Authority
- CN
- China
- Prior art keywords
- mqtt
- client node
- prefix
- topic
- mqtt client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
- H04L61/5014—Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/26—Network addressing or numbering for mobility support
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
- H04W80/04—Network layer protocols, e.g. mobile IP [Internet Protocol]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer And Data Communications (AREA)
Abstract
提出了一种用于使用主题前缀来配置MQTT客户端节点的机制。该方法由MQTT客户端节点执行。该方法包括向DHCP服务器发送对配置的请求。该方法包括从DHCP服务器接收响应。该响应包括配置信息和至少一个前缀字符串,该前缀字符串定义主题前缀,该主题前缀与主题一起要由MQTT客户端节点在发布关于该主题的数据时使用。
Description
技术领域
本文提出的实施例涉及一种用主题前缀来配置MQTT客户端节点的方法、MQTT客户端节点、计算机程序和计算机程序产品。本文提出的其他实施例涉及一种用主题前缀来配置MQTT客户端节点的方法、DHCP服务器、计算机程序和计算机程序产品。本文提出的其他实施例涉及一种验证MQTT客户端节点的发布权的方法、MQTT代理节点、计算机程序和计算机程序产品。
背景技术
物联网(IoT)通常被称为物理智能对象的网络,该物理智能对象例如是无需人类交互即可与其他传感器、设备或服务器交换信息的传感器。这样,这些设备有时被称为机器到机器(M2M)设备。IoT中的服务的一些示例包括汽车或家庭中的内置传感器、心脏监测植入物或智能恒温器系统。在引入IoT之后,已经开发了许多新协议,包括轻量级机器到机器协议(LWM2M)和受限应用协议(CoAP),它们都是轻量级的紧凑型应用协议。
M2M设备可以使用无线或有线技术与其他M2M设备和系统进行通信。关于无线技术,M2M设备可以支持诸如蓝牙、Wi-Fi和Zigbee之类的短距离通信技术。他们还可以支持长距离无线电技术,然而,与短距离通信相比,这通常消耗更多的功率。
消息队列遥测传输(MQTT)协议是基于发布/订阅通信模型的轻量级IoT协议。可以是发布者或订阅者的MQTT客户端通过代理彼此通信。代理托管一组“主题”,客户端可以发布和订阅这些主题。发送给(发布至)主题的所有数据都传递给订阅同一主题的所有客户端。在使用MQTT的通信网络中,客户端通常使用预先配置的地址信息(例如,统一资源标识符(URI))向MQTT代理注册。URI可以由用户或运营商通过本地设备接口来进行配置。备选地,可以在MQTT客户端的制造期间将URI作为硬编码值提供。MQTT客户端可以在网关或M2M设备中运行。
对特定主题的特定数据感兴趣的订户向MQTT代理注册主题。充当发布者的MQTT客户端注册/创建主题,充当订阅者的MQTT客户端注册特定的现有主题。一般而言,主题可以用MQTT服务或设备运营商定义的分层字符串来表示。在操作之前,希望发布有关特定主题的数据的每个MQTT客户端都应知晓MQTT客户端针对该主题发布主题特定数据所应使用的对应分层字符串。
然而,由于没有标准指南来保证唯一性,因此不能保证MQTT网络中主题的唯一性。在同一MQTT网络中,使用同一MQTT代理,不同的MQ TT客户端可能会意外地使用同一主题来发布数据,从而导致无效操作。在这种情况下,订阅者可能会收到错误的数据,而发布者可能会更改不应更改的数据。因此,网络或设备运营商必须注意MQTT网络上的主题名称空间,以便主题标识在MQTT网络上是唯一的。这种手动操作容易出错并且成本很高。
因此,仍然需要改进对MQTT网络中主题的处理。
发明内容
本文的实施例的目的在于提供对MQTT网络中的主题的高效处理,消除或至少减少上述问题。
根据第一方面,提出了一种用于使用主题前缀来配置MQTT客户端节点的方法。所述方法由所述MQTT客户端节点执行。所述方法包括向DHCP服务器发送对配置的请求。所述方法包括从所述DHCP服务器接收响应。该响应包括配置信息和至少一个前缀字符串,该前缀字符串定义主题前缀,该主题前缀与主题一起要由MQTT客户端节点在发布关于该主题的数据时使用。
根据第二方面,提出了一种使用主题前缀来配置MQTT客户端节点的MQTT客户端节点。所述MQTT客户端节点包括处理电路。所述处理电路被配置为使所述MQTT客户端节点向DHCP服务器发送对配置的请求。所述处理电路被配置为使所述MQTT客户端节点从所述DHCP服务器接收响应。该响应包括配置信息和至少一个前缀字符串,该前缀字符串定义主题前缀,该主题前缀与主题一起要由MQTT客户端节点在发布关于该主题的数据时使用。
根据第三方面,提出了一种使用主题前缀来配置MQTT客户端节点的MQTT客户端节点。所述MQTT客户端节点包括处理电路和存储介质。所述存储介质存储指令,当所述指令由所述处理电路执行时,使所述MQTT客户端节点执行操作或步骤。所述操作或步骤使所述MQTT客户端节点向DHCP服务器发送对配置的请求。所述操作或步骤使所述MQTT客户端节点从所述DHCP服务器接收响应。该响应包括配置信息和至少一个前缀字符串,该前缀字符串定义主题前缀,该主题前缀与主题一起要由MQTT客户端节点在发布关于该主题的数据时使用。
根据第四方面,提出了一种使用主题前缀来配置MQTT客户端节点的MQTT客户端节点。所述MQTT客户端节点包括发送模块,所述发送模块被配置为向DHCP服务器发送对配置的请求。所述MQTT客户端节点包括接收模块,所述接收模块被配置为从所述DHCP服务器接收响应。该响应包括配置信息和至少一个前缀字符串,该前缀字符串定义主题前缀,该主题前缀与主题一起要由MQTT客户端节点在发布关于该主题的数据时使用。
根据第五方面,提出了一种使用主题前缀来配置MQTT客户端节点的计算机程序。所述计算机程序包括计算机程序代码,当所述计算机程序代码在MQTT客户端节点的处理电路上运行时,使所述MQTT客户端节点执行根据第一方面的方法。
根据第六方面,提出了一种使用主题前缀来配置MQTT客户端节点的方法。所述方法由DHCP服务器执行。所述方法包括从所述MQTT客户端节点接收对配置的请求。所述方法包括向所述MQTT客户端节点发送响应。所述响应至少包括被分配给所述MQTT客户端节点的配置数据和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与所述主题一起要由所述MQTT客户端节点在发布关于主题的数据时使用。
根据第七方面,提出了一种使用主题前缀来配置MQTT客户端节点的DHCP服务器。所述DHCP服务器包括处理电路。所述处理电路被配置为使所述DHCP服务器从所述MQTT客户端节点接收对配置的请求。所述处理电路被配置为使所述DHCP服务器向所述MQTT客户端节点发送响应。所述响应至少包括被分配给所述MQTT客户端节点的配置数据和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与所述主题一起要由所述MQTT客户端节点在发布关于主题的数据时使用。
根据第八方面,提出了一种使用主题前缀来配置MQTT客户端节点的DHCP服务器。所述DHCP服务器包括处理电路和存储介质。所述存储介质存储指令,所述指令在由所述处理电路执行时使得所述DHCP服务器执行操作或步骤。所述操作或步骤使所述DHCP服务器从所述MQTT客户端节点接收对配置的请求。所述操作或步骤使所述DHCP服务器向所述MQTT客户端节点发送响应。所述响应至少包括被分配给所述MQTT客户端节点的配置数据和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与所述主题一起要由所述MQTT客户端节点在发布关于主题的数据时使用。
根据第九方面,提出了一种使用主题前缀来配置MQTT客户端节点的DHCP服务器。所述DHCP服务器包括接收模块,所述接收模块被配置为从所述MQTT客户端节点接收对配置的请求。所述DHCP服务器包括发送模块,所述发送模块被配置为向所述MQTT客户端节点发送响应。所述响应至少包括被分配给所述MQTT客户端节点的配置数据和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与所述主题一起要由所述MQTT客户端节点在发布关于主题的数据时使用。
根据第十方面,提出了一种使用主题前缀来配置MQTT客户端节点的计算机程序。所述计算机程序包括计算机程序代码,当所述计算机程序代码在DHCP服务器的处理电路上运行时使所述DHCP服务器执行根据第六方面的方法。
有利地,这些方法、这些MQTT客户端节点、这些DHCP服务器以及这些计算机程序提供了对MQTT网络中的主题的高效处理,从而消除了或至少减少了上述问题。
有利的是,这些方法、这些MQTT客户端节点、这些DHCP服务器以及这些计算机程序还通过重新使用和调整网络基础结构配置机制来配置主题名称空间,从而防止主题的名称空间冲突。
根据第十一方面,提出了一种验证发布权的方法。所述方法由MQTT代理节点执行。所述方法包括从MQTT客户端节点接收对发布关于主题的数据的请求。所述请求包括前缀字符串。所述方法包括验证所述前缀字符串以及所述MQTT客户端节点的标识,以便验证是否允许所述MQTT客户端节点发布关于所述主题的数据。
根据第十二方面,提出了一种验证MQTT客户端节点的发布权的MQTT代理节点。所述MQTT代理节点包括处理电路。所述处理电路被配置为使所述MQTT代理节点从MQTT客户端节点接收对发布关于主题的数据的请求。所述请求包括前缀字符串。所述处理电路被配置为使所述MQTT代理节点验证所述前缀字符串以及所述MQTT客户端节点的标识,以便验证是否允许所述MQTT客户端节点发布关于所述主题的数据。
根据第十三方面,提出了一种验证MQTT客户端节点的发布权的MQTT代理节点。所述MQTT代理节点包括处理电路和存储介质。所述存储介质存储指令,当所述指令由所述处理电路执行时,使所述MQTT代理节点执行操作或步骤。所述操作或步骤使所述MQTT代理节点从MQTT客户端节点接收对发布关于主题的数据的请求。所述请求包括前缀字符串。所述操作或步骤使所述MQTT代理节点验证所述前缀字符串以及所述MQTT客户端节点的标识,以便验证是否允许所述MQTT客户端节点发布关于所述主题的数据。
根据第十四方面,提出了一种验证MQTT客户端节点的发布权的MQTT代理节点。所述MQTT代理节点包括接收模块,所述接收模块被配置为从MQTT客户端节点接收对发布关于主题的数据的请求。所述请求包括前缀字符串。所述MQTT代理节点包括验证模块,所述验证模块被配置为验证所述前缀字符串以及所述MQTT客户端节点的标识,以便验证是否允许所述MQTT客户端节点发布关于所述主题的数据。
根据第十五方面,提出了一种验证MQTT客户端节点的发布权的计算机程序,所述计算机程序包括计算机程序代码,当所述计算机程序代码在MQTT代理节点的处理电路上运行时,使所述MQTT代理节点执行根据第十一方面所述的方法。
有利地,这些方法、这些MQTT代理节点以及此计算机程序提供了对恶意MQTT客户端节点的高效检测。
有利地,这些方法、这些MQTT代理节点以及此计算机程序防止恶意MQTT客户端节点发布数据。
根据第十六方面,提供了一种计算机程序产品,包括根据第五方面、第十方面和第十五方面中的至少一项所述的计算机程序,以及存储有所述计算机程序的计算机可读存储介质。所述计算机可读存储介质可以是非暂时性计算机可读存储介质。
应当注意,在适当的情况下,可以将第一、第二、第三、第四、第五、第六、第七、第八、第九、第十、第十一、第十二、第十三、第十四、第十五和第十六方面的任何特征应用于任何其它方面。根据以下详细公开、所附从属权利要求以及附图,所附实施例的其他目的、特征和优点将变得显而易见。
通常,除非本文另有明确定义,否则权利要求中使用的所有术语根据其在技术领域中的通常含义来解释。除非另有明确说明,否则对“一/一个/所述元件、设备、组件、装置、模块、步骤等”的所有引用应被开放地解释为指代元件、设备、组件、装置、模块、步骤等的至少一个实例。除非明确说明,否则本文公开的任何方法的步骤不必以所公开的确切顺序来执行。
附图说明
现在参考附图以示例方式描述本发明构思,在附图中:
图1是示出了根据实施例的通信网络的示意图;
图2、图3和图4是根据实施例的方法的流程图;
图5和图7是根据实施例的数据结构的示意图;
图6和图8是根据实施例的信令图;
图9是示出了根据实施例的MQTT客户端节点的功能单元的示意图;
图10是示出了根据实施例的MQTT客户端节点的功能模块的示意图;
图11是示出了根据实施例的DHCP服务器的功能单元的示意图;
图12是示出了根据实施例的DHCP服务器的功能模块的示意图;
图13是示出了根据实施例的MQTT代理节点的功能单元的示意图;
图14是示出了根据实施例的MQTT代理节点的功能模块的示意图;以及
图15示出了根据实施例的包括计算机可读装置的计算机程序产品的一个示例。
具体实施方式
现在将在下文参考其中示出发明构思的特定实施例的附图来更全面地描述发明构思。然而,本发明构思可以按照多种不同形式来体现,并且不应当被看做是限制于在本文中阐述的实施例;相反,作为示例来提供这些实施例,使得本公开将会全面和完整,并且将会向本领域技术人员完全传达发明构思的范围。在说明书全文中,相似的标记指代相似的元件。由虚线示出的任何步骤或特征应当被视为可选的。
本文使用的术语M2M设备应理解为被配置为或可配置为与另一设备、服务器或系统进行通信而无需人类交互的任何设备。M2M设备可以例如是针对光、压力、温度、振动的传感器或致动器。M2M设备可以形成诸如车辆、设备(包括冰箱、冰柜或中央供暖设备)或用户设备(例如,移动电话、膝上型计算机、智能电话、无线通信设备)之类的装置的一部分。
本文使用的术语网关是充当另一网络入口的网络点或节点。它控制往返于为其充当网关的网络的业务。网关可以被认为具有交换机和路由器的功能,这是因为它(路由器)知道将数据的给定分组导向何处,并且它(交换机)为给定分组提供进出网关的实际路径。
在一些方面,接收互联网协议地址的前缀的客户端可以被认为是网关。网关配置互联网协议地址并将其分配给形成其本地网络一部分的M2M设备。网关还接收统一资源标识符以及互联网协议地址的前缀,并将统一资源标识符转发给M2M设备。
本文公开的一些实施例使用动态主机配置协议(DHCP)。DHCP是一种互联网应用协议,它使用客户端/服务器模型在主机之间进行通信。DHCP在用户数据报协议(UDP)传输协议上执行。它提供了一种自动配置链路间主机互联网协议地址的机制,提供了用于自动注册和接收域名系统主机名称的参数,以及提供了在协议中指定附加配置选项的机制。
图1是示出了可以应用本文提出的实施例的通信网络100的示意图。网关120和MQTT客户端节点200形成本地网络110的一部分。网关120被配置为与DHCP服务器300、MQTT代理节点400和MQTT服务运营商节点140进行通信。MQTT代理节点400可以可选地是本地网络110的一部分,并且可以可选地包括MQTT客户端节点200。
如上所述,关注MQTT网络上的主题名称空间以使主题标识在MQTT网络上唯一的现有机制易于出错,而且成本很高。
因此,本文公开的实施例涉及用主题前缀来配置MQTT客户端节点200的机制。为了获得这样的机制,提供了MQTT客户端节点200、由MQTT客户端节点200执行的方法,以及包括例如计算机程序形式的代码在内的计算机程序产品,所述代码当在MQTT客户端节点200的处理电路上执行时,使MQTT客户端节点200执行所述方法。为了获得这种机制,还提供了DHCP服务器300、由DHCP服务器300执行的方法,以及包括例如计算机程序形式的代码在内的计算机程序产品,所述代码当在DHCP服务器300的处理电路上执行时,使DHCP服务器300执行所述方法。图2是示出了由MQTT客户端节点200执行的使用主题前缀来配置MQTT客户端节点200的方法的实施例的流程图。图3是示出了由DHCP服务器300执行的使用主题前缀来配置MQTT客户端节点200的方法的实施例的流程图。
本文公开的实施例还涉及实施允许MQTT客户端节点200在特定主题下发布的机制。因此还提供了一种MQTT代理节点400、由MQTT代理节点400执行的方法、以及包括例如计算机程序形式的代码在内的计算机程序产品,所述代码当在MQTT代理节点400的处理电路上运行时,使MQTT代理节点400执行所述方法。图4是示出由MQTT代理节点400执行的用于验证MQTT客户端节点200的发布权的方法的实施例的流程图。这些方法有利地作为计算机程序来提供。
概括而言,MQTT服务运营商节点140使用MQTT主题信息来配置DHCP服务器300,DHCP服务器300服务于具有MQTT客户端200的通信网络100。如果通信网络100仅包括使用根据本文公开的实施例的机制的实体、节点、设备和功能,则可以使用DHCP来管理整个主题空间。否则,MQTT服务运营商节点140可以针对DHCP管理的主题名称空间选择特定的根前缀。MQTT服务运营商节点140还可以选择将不同的设备媒体访问控制(MAC)地址映射到不同的主题前缀。MQTT服务运营商节点140还可以选择为每个新的MQTT客户端200配置特定的前缀。MAC地址的加密哈希函数可用于针对每个发布者生成唯一的前缀。
现在参考图2,图2示出了根据实施例由MQTT客户端节点200执行的、使用主题前缀来配置MQTT客户端节点200的方法。
假设MQTT客户端节点200需要配置,因此被配置为执行步骤S102:
S102:MQTT客户端节点200向DHCP服务器300发送对配置的请求。该配置可以被视为网络配置或主机配置,而不仅限于网络访问配置。
DHCP服务器300通过向MQTT客户端节点200发送响应来响应该请求。本文公开的实施例中的至少一些实施例基于在DHCP和DHCP版本6(DHCPv6)中引入配置选项,该配置选项将在请求配置时被传递给MQTT客户端200。因此,MQTT客户端节点200被配置为执行步骤S104:
S104:MQTT客户端节点200从DHCP服务器300接收响应。该响应包括配置信息。该响应还包括至少一个前缀字符串。该至少一个前缀字符串是配置选项的一部分。该至少一个前缀字符串定义主题前缀,所述主题前缀与主题一起要由MQTT客户端节点200在发布关于主题的数据时使用。
因此,当充当发布者时,MQTT客户端节点200将使用至少一个前缀字符串,作为MQTT客户端节点200发布关于其数据的主题的前缀。由此,DHCP服务器300能够集中管理主题名称空间并防止名称空间冲突。
现在将公开与MQTT客户端节点200执行的使用主题前缀来配置MQTT客户端节点200的更多细节有关的实施例。
可以有不同的方式来提供至少一个前缀字符串。根据实施例,在MQTT协议主题前缀(MQTT_TOPIC_PREFIX)数据结构中提供至少一个前缀字符串中的每个前缀字符串。
在一些方面,MQTT客户端节点200向MQTT代理节点400注册,以便发布或订阅关于一个或多个主题的数据。因此,根据实施例,MQTT客户端节点200被配置为执行(可选的)步骤S106:
S106:MQTT客户端节点200向MQTT代理节点400注册对至少关于所述主题的数据进行发布和订阅中的至少一项。
然后,MQTT客户端节点200使用接收到的主题前缀中的一个主题前缀作为发布关于其数据的主题的前缀。因此,根据实施例,MQTT客户端节点200被配置为执行(可选的)步骤S108:
S108:MQTT客户端节点200使用前缀字符串作为主题的前缀向MQTT代理节点400发布关于主题的数据。
前缀字符串的唯一性可能有不同方面。
根据一些方面,前缀字符串对于每个MQTT客户端节点200是唯一的。即,根据实施例,前缀字符串对于所有MQTT客户端节点中已经向MQTT代理节点400注册的MQTT客户端节点200是唯一的。在一些方面,DHCP服务器300保证唯一性。
一个或多个应用可以在每个MQTT客户端节点200上运行。应用的示例是数据收集和报告功能,例如当MQTT客户端节点200在M2M设备上运行时。因此,这些应用中的每个应用都可以请求发布或订阅一个或多个主题的数据。因此,根据一些方面,前缀字符串对于每个这样的应用都是唯一的。即,根据实施例,针对在要发布关于主题的数据或订阅关于主题的数据的MQTT客户端节点200上运行的每个应用,接收唯一的前缀字符串。
每个M2M设备可以具有一个或多个用户。每个用户可以对关于主题中的一个或多个主题的数据感兴趣。因此,根据一些方面,前缀字符串对于在其上运行MQTT客户端节点200的M2M设备的每个用户都是唯一的。即,根据实施例,针对MQTT客户端节点200的每个用户接收唯一的前缀字符串。
可以有不同类型的前缀。
在一些方面,前缀具有两个部分:一个是实际前缀,另一个用于标识应用。因此,根据实施例,前缀字符串包括用于标识应用或用户的部分。
在一些方面,存在应用的单独标识。因此,根据实施例,与前缀字符串分开地提供应用或用户的标识。
在一些方面,前缀是MQTT客户端节点200的MAC地址的加密哈希。因此,根据实施例,至少一个前缀字符串中的每个前缀字符串是MQTT客户端节点200的MAC地址的加密哈希。当两个或更多个MQTT客户端节点200共享相同的M2M设备(其中MAC地址因此属于M2M设备)时,MQTT客户端节点200可以使用作为主题前缀和应用标识的组合的前缀。
可以有不同类型的请求消息和响应消息。通常,可以在DHCP请求消息中发送请求,并且可以在DHCP响应消息中接收响应。请求消息和响应消息的类型可以取决于DHCP服务器300的类型。
特别地,在DHCP服务器300是DHCPv6服务器的实施例中,可以在DHCPv6征询消息中发送请求,并且可以在DHCPv6通告消息中接收响应。
此外,在DHCP服务器300是DHCPv4服务器的实施例中,可以在DHCPv4发现消息中发送请求,并且可以在DHCPv4提供消息中接收响应。这里要注意的是,通常被简单地表示为DHCPv4服务器的在本公开中被表示为DHCPv4服务器,以将其与DHCPv6服务器区分开。此外,在本公开中,术语DHCP服务器(不带任何后缀)用于表示可以实现DHCPv4服务器、DHCPv6服务器或DHCPv4和DHCPv6服务器两者的功能的服务器。
现在参考图3,图3示出了根据实施例由DHCP服务器300执行的、使用主题前缀来配置MQTT客户端节点200的方法。
如上所述,在步骤S102中,MQTT客户端节点200向DHCP服务器300请求配置。因此,DHCP服务器300被配置为执行步骤S204:
S204:DHCP服务器300从MQTT客户端节点200接收对配置的请求。
如上所述,DHCP服务器300响应该请求,因此被配置为执行步骤S206:
S206:DHCP服务器300将响应发送给MQTT客户端节点200。该响应至少包括被分配给MQTT客户端节点200的配置数据以及至少一个前缀字符串,该前缀字符串定义主题前缀,所述主题前缀与所述主题一起要由MQTT客户端节点200在发布关于主题的数据时使用。
现在将公开与DHCP服务器300执行的、使用主题前缀来配置MQTT客户端节点200的更多细节有关的实施例。
如上所公开的,根据实施例,在MQTT协议主题前缀(MQTT_TOPIC_PREFIX)数据结构中提供至少一个前缀字符串中的每个前缀字符串。
在一些方面,MQTT服务运营商节点140使用主题信息来配置DHCP服务器300。因此,根据实施例,从主题前缀集合中选择主题前缀,并且DHCP服务器300被配置为执行(可选的)步骤S202:
S202:DHCP服务器300从MQTT服务运营商节点140接收信息。该信息与主题前缀集合有关。
在一些方面,该信息包括前缀字符串和其他信息(如果有的话),DHCP服务器300或MQTT客户端节点200可能需要所述其他信息以将前缀映射到特定的MQTT客户端节点或应用或M2M设备。
在一些方面,DHCP服务器300维护前缀字符串的列表。因此,根据实施例,DHCP服务器300被配置为执行(可选的)步骤S208:
S208:DHCP服务器300将至少一个前缀字符串存储在前缀字符串列表中。该至少一个前缀字符串被映射到MQTT客户端节点200的标识。
这可以保证主题前缀和MQTT客户端节点之间的唯一映射。
前缀字符串的唯一性的不同方面已在上面公开,并且同样适用于与DHCP服务器300有关的实施例。因此,根据实施例,MQTT客户端节点200是MQTT客户端节点集合中与MQTT代理节点400相关联的一部分,并且前缀字符串对于该MQTT客户端节点集合中的所有MQTT客户端节点当中的MQTT客户端节点200是唯一的。根据另一个实施例,针对要发布关于主题的数据或订阅关于主题的数据的MQTT客户端节点200上运行的每个应用,发送唯一的前缀字符串。根据又一个实施例,针对MQTT客户端节点200的每个用户,发送唯一的前缀字符串。
前缀类型的不同方面已经在上面公开,并且同样适用于与DHCP服务器300有关的实施例。因此,根据实施例,前缀字符串包括用于标识应用或用户的部分。根据另一个实施例,与前缀字符串分开地提供应用或用户的标识。
上面已经公开了请求消息和响应消息的类型的不同方面,并且同样适用于与DHCP服务器300有关的实施例。可以在DHCP请求消息中接收该请求,并且可以在DHCP响应消息中发送该响应。此外,根据其中DH CP服务器300是DHCPv6服务器的实施例,可以在DHCPv6征询消息中接收请求,并且可以在DHCPv6通告消息中发送响应。此外,在DHCP服务器300是DHCPv4服务器的实施例中,可以在DHCPv4发现消息中接收请求,并且可以在DHCPv4提供消息中发送响应。
图5示意性地示出了根据其中DHCP服务器300是DHCPv6服务器的实施例的来自DHCP服务器300的响应(如步骤S104、S206中的响应)的数据结构500。
现在将参考图6的信令图详细地公开基于以上公开的其中DHCP服务器300是DHCPv6服务器的实施例中的至少一些实施例,使用主题前缀来配置MQTT客户端节点200的第一特定实施例。
一般而言,MQTT客户端节点200向上游DHCPv6服务器300发送用于获取网络地址的请求。
S401:MQTT客户端节点200将DHCPv6征询消息(“DHCPv6 SOLICIT”)发送给保存的多播地址以发现DHCP服务器300。
DHCPv6服务器300自动将IPv6地址分配给MQTT客户端节点200。作为该消息交换的一部分,MQTT客户端节点200接收被称为MQTT_主题_前缀(MQTT_TOPIC_PREFIX)的选项。
S402:DHCP服务器300用包括MQTT_TOPIC_PREFIX的DHCPv6通告消息(“DHCPv6ADVERTISE”)来进行响应。
如果存在要委托给MQTT客户端节点200的一个以上的主题前缀,则DHCP服务器300可以添加MQTT_TOPIC_PREFIX的多于一个的实例。
S403:如果DHCP也用于状态性IPv6地址分配,则MQTT客户端节点200向DHCP服务器300发送DHCPv6请求消息(“DHCPv6 REQUEST”)以请求IP地址分配。
S404:DHCP服务器300用DHCPv6应答消息(“DHCPv6 REPLY”)以IP地址分配信息向MQTT客户端节点200进行响应。
一旦完成了主题前缀委托,MQTT客户端节点200便将自己注册到MQTT代理节点400。MQTT客户端节点200使用接收到的主题前缀之一作为它向其发布数据的每个主题的前缀。
S405:MQTT客户端节点200将MQTT连接消息(“MQTT CONNECT”)发送给MQTT代理节点400,以向MQTT代理节点400注册。
S406:在成功注册的情况下,MQTT代理节点400用MQTT连接确认消息(“MQTTCONACK”)响应MQTT客户端节点200。
S407:MQTT客户端节点200请求发布关于特定主题的数据,并且向MQTT代理节点400发送消息(“MQTT PUBLISH”),其中该消息包括MQTT_TOPIC_PREFIX、MQTT主题(“TOPIC”)以及要发布的数据。
图7示意性地示出了根据其中DHCP服务器300是DHCPv4服务器的实施例的来自DHCP服务器300的响应(如步骤S104、S206中的响应)的数据结构700。
现在将参考图8的信令图详细地公开基于以上公开的其中DHCP服务器300是DHCPv4服务器的实施例中的至少一些实施例,使用主题前缀来配置MQTT客户端节点200的第二特定实施例。
一般而言,MQTT客户端节点200向上游DHCPv4服务器300发送用于获取网络地址的请求。
S501:MQTT客户端节点200发送DHCP发现消息(“DHCP DISCOVER”)以找到DHCP服务器300。
DHCP服务器300自动向MQTT客户端节点200分配IPv4地址。作为该消息交换的一部分,MQTT客户端节点200接收被称为MQTT_TOPIC_PREFIX的选项。
S502:DHCP服务器400以包括MQTT_TOPIC_PREFIX的DHCP通告消息(“DHCP OFFER”)来进行响应。
如果存在要委托给MQTT客户端节点200的多于一个的主题前缀,则DHCP服务器300可以添加MQTT_TOPIC_PRIFIX的多于一个的实例。
S503:MQTT客户端节点200向DHCP服务器300发送DHCP请求消息(“DHCP REQUEST”)以请求IP地址分配。
S504:DHCP服务器300用DHCP确认(“DHCP ACK”)消息以IP地址分配信息向MQTT客户端节点200进行响应,以确认MQTT客户端节点200的IP地址分配。
一旦完成了主题前缀委托,MQTT客户端节点200便将自己注册到MQTT代理节点400。MQTT客户端节点200使用接收到的主题前缀之一作为它向其发布数据的每个主题的前缀。
S505:MQTT客户端节点200将MQTT连接消息(“DHCP CONNECT”)发送给MQTT代理节点400,以向MQTT代理节点400注册。
S506:在成功注册的情况下,MQTT代理节点400用MQTT连接确认消息(“DHCPCONACK”)对MQTT客户端节点200进行响应。
S507:MQTT客户端节点200请求发布关于特定主题的数据,并且向MQTT代理节点400发送消息(“MQTT PUBLISH”),其中该消息包括MQ TT_TOPIC_PREFIX、MQTT主题(“TOPIC”)以及要发布的数据。
图7示意性地示出了根据其中DHCP服务器300是DHCPv4服务器的实施例的来自DHCP服务器300的响应(如步骤S104、S206中的响应)的数据结构700。
现在参考图4,图4示出了根据实施例的由MQTT代理节点400执行的用于验证MQTT客户端节点200的发布权的方法。
希望发布关于主题的数据的任何MQTT客户端节点都与MQTT代理节点400联系。因此,MQTT代理节点400被配置为执行步骤S302:
S302:MQTT代理节点400从MQTT客户端节点200接收对发布关于主题的数据的请求。该请求包括前缀字符串。
可以是,MQTT客户端节点200已经执行了向MQTT代理节点400的有效注册(如在步骤S106中),并且MQTT客户端节点200已经从DHCP服务器300接收了正确的配置信息和至少一个前缀字符串(如在步骤S104、S206中)。在一些方面,MQTT代理节点400可以因此对照客户端标识来验证主题前缀,以确定是否有任何恶意MQTT客户端节点正在尝试使用为其他有效MQTT客户端节点服务的前缀来发布数据。因此,MQTT代理节点400被配置为执行步骤S304:
S304:MQTT代理节点400验证前缀字符串以及MQTT客户端节点200的标识,以验证是否允许MQTT客户端节点200发布关于该主题的数据。
现在将公开与MQTT代理节点400执行的验证MQTT客户端节点200的发布权的更多细节有关的实施例。
该MAC地址可以用作MQTT客户端节点200的标识。
根据实施例,由于MQTT客户端节点200未能成功向MQTT代理节点400注册,因此不允许MQTT客户端节点200发布关于该主题的数据。即,在MQTT客户端节点200尚未向MQTT代理节点400执行任何有效注册(如在步骤S106中)的情况下。
MQTT代理节点400可以拒绝来自恶意MQTT客户端节点的发布。具体地,根据实施例,当不允许MQTT客户端节点200发布关于主题的数据时,MQTT代理节点400被配置为执行(可选的)步骤S306:
S306:MQTT代理节点400拒绝对数据的发布。
此外,可以触发动作以防止来自相同客户端标识的进一步注册。因此,根据实施例,当不允许MQTT客户端节点200发布关于主题的数据时,MQTT代理节点400被配置为执行(可选的)步骤S308:
S308:MQTT代理节点400阻止MQTT客户端节点200进一步尝试向MQTT代理节点400注册。
如果DHCP服务器300和MQTT代理节点400在公共网络节点上运行(如图1中的虚线所示),则对恶意客户端的检测就变得特别容易,这是因为DHCP服务器300和MQTT代理节点400两者的功能可以共享同一数据库,以确认MQTT客户端节点是否被授权发布关于特定主题的数据。如果DHCP服务器300和MQTT代理节点400在不同的网络节点上运行,则可以用MQTT客户端节点标识和主题前缀之间的相同映射来配置这两个网络节点。
图9以多个功能单元的形式示意性地示出了根据实施例的MQTT客户端节点200的组件。使用能够执行计算机程序产品1510a(如图15中)(例如,具有存储介质230的形式)中存储的软件指令的合适的中央处理单元(CPU)、多处理器、微控制器、数字信号处理器(DSP)等中的一种或多种的任意组合来提供处理单元210。处理电路210还可以被提供为至少一个专用集成电路(ASIC)或现场可编程门阵列(FPGA)。
具体地,处理电路210被配置为使MQTT客户端节点200执行如上所述的操作或步骤S102-S108的集合。例如,存储介质230可以存储该操作集合,并且处理电路210可以被配置为从存储介质230获取该操作集合,以使MQTT客户端节点200执行该操作集合。该操作集合可以被提供为可执行指令的集合。因此,处理电路210由此被布置成执行如本文公开的方法。
存储介质230还可以包括持久性存储设备,例如,其可以是磁存储器、光存储器、固态存储器或甚至是远程安装的存储器中的任何单个存储器或任何组合。
MQTT客户端节点200还可以包括与图1的通信网络100的其他实体、节点、功能和设备进行通信的通信接口220。因此,通信接口220可以包括一个或多个发送器和接收器,该发送器和接收器包括模拟和数字组件。
处理电路210例如通过向通信接口220和存储介质230发送数据和控制信号、通过从通信接口220接收数据和报告,以及通过从存储介质230中获取数据和指令来控制MQTT客户端节点200的总体操作。省略MQTT客户端节点200的其他组件以及相关功能以不使本文提出的概念模糊。
图10以多个功能模块的形式示意性地示出了根据实施例的MQTT客户端节点200的组件。图10的MQTT客户端节点200包括多个功能模块:被配置为执行步骤S102的发送模块210a和被配置为执行步骤S104的接收模块210b。图10的MQTT客户端节点200还可以包括多个可选的功能模块,例如被配置为执行步骤S106的注册模块210d以及被配置为执行步骤S108的发布模块210d中的任何一个。一般地,每个功能模块210a-210d可以以硬件或软件实现。优选地,一个或多个或所有功能模块210a-210d可以由可能与通信接口220和存储介质230协作的处理电路210来实现。因此,处理电路210可以被布置成从存储介质230获取由功能模块210a-210d提供的指令,并且执行这些指令,从而执行如本文所公开的MQTT客户端节点200的任何步骤。
图11以多个功能单元的形式示意性地示出了根据实施例的DHCP服务器300的组件。使用能够执行计算机程序产品1510b(如图15中)(例如,具有存储介质330的形式)中存储的软件指令的合适的中央处理单元(CPU)、多处理器、微控制器、数字信号处理器(DSP)等中的一种或多种的任意组合来提供处理单元310。处理电路310还可以被提供为至少一个专用集成电路(ASIC)或现场可编程门阵列(FPGA)。
具体地,处理电路310被配置为使得DHCP服务器300执行如上所公开的操作或步骤的集合S202-S208。例如,存储介质330可以存储该操作集合,并且处理电路310可以被配置为从存储介质330获取该操作集合,以使DHCP服务器300执行该操作集合。该操作集合可以被提供为可执行指令的集合。因此,处理电路310由此被布置成执行如本文公开的方法。
存储介质330还可以包括持久性存储设备,例如,其可以是磁存储器、光存储器、固态存储器或甚至是远程安装的存储器中的任何单个存储器或任何组合。
DHCP服务器300还可以包括用于与图1的通信网络100的其他实体、节点、功能和设备进行通信的通信接口320。因此,通信接口320可以包括一个或多个发送器和接收器,该发送器和接收器包括模拟和数字组件。
处理电路310例如通过向通信接口320和存储介质330发送数据和控制信号、通过从通信接口320接收数据和报告、以及通过从存储介质330中获取数据和指令来控制DHCP服务器300的总体操作。省略了DHCP服务器300的其他组件以及有关功能以不使本文提出的概念模糊。
图12以多个功能模块的形式示意性地示出了根据实施例的DHCP服务器300的组件。图12的DHCP服务器300包括多个功能模块:被配置为执行步骤S204的接收模块310b和被配置为执行步骤S206的发送模块310c。图12的DHCP服务器300还可以包括多个可选的功能模块,例如被配置为执行步骤S202的接收模块310a以及被配置为执行步骤S208的存储模块310d中的任何一个。一般而言,每个功能模块310a至310d可以在硬件或在软件中实现。优选地,一个或多个或所有功能模块310a-310d可以由可能与通信接口320和存储介质330协作的处理电路310来实现。因此,处理电路310可以被布置成从存储介质330获取由功能模块310a-310d提供的指令,并且执行这些指令,从而执行如本文所公开的DHCP服务器300的任何步骤。
图13以多个功能单元的形式示意性地示出了根据实施例的MQTT代理节点400的组件。使用能够执行计算机程序产品1510c(如图15中)(例如,具有存储介质430的形式)中存储的软件指令的合适的中央处理单元(CPU)、多处理器、微控制器、数字信号处理器(DSP)等中的一种或多种的任意组合来提供处理单元410。处理电路410还可以被提供为至少一个专用集成电路(ASIC)或现场可编程门阵列(FPGA)。
具体地,处理电路410被配置为使MQTT代理节点400执行如上所述的操作或步骤的集合S302-S308。例如,存储介质430可以存储该操作集合,并且处理电路410可以被配置为从存储介质430获取该操作集合,以使MQTT代理节点400执行该操作集合。该操作集合可以被提供为可执行指令的集合。因此,处理电路410由此被布置成执行如本文公开的方法。
存储介质430还可以包括持久性存储设备,例如,其可以是磁存储器、光存储器、固态存储器或甚至是远程安装的存储器中的任何单个存储器或任何组合。
MQTT代理节点400还可以包括用于与图1的通信网络100的其他实体、节点、功能和设备进行通信的通信接口420。因此,通信接口420可以包括一个或多个发送器和接收器,该发送器和接收器包括模拟和数字组件。
处理电路410例如通过向通信接口420和存储介质430发送数据和控制信号、通过从通信接口420接收数据和报告,以及通过从存储介质430中获取数据和指令来控制MQTT代理节点400的总体操作。省略MQTT代理节点400的其他组件以及相关功能以不使本文提出的概念模糊。
图14以多个功能模块的形式示意性地示出了根据实施例的MQTT代理节点400的组件。图14的MQTT代理节点400包括多个功能模块:被配置为执行步骤S302的接收模块410a和被配置为执行步骤S304的验证模块410b。图14的MQTT代理节点400还可以包括多个可选的功能模块,例如被配置为执行步骤S306的拒绝模块410c以及被配置为执行步骤S308的阻止模块410d中的任何一个。一般地,每个功能模块410a-410d可以以硬件或软件实现。优选地,一个或多个或所有功能模块410a-410d可以由可能与通信接口420和存储介质430协作的处理电路410来实现。因此,处理电路410可以被布置成从存储介质430获取由功能模块410a-410d提供的指令,并且执行这些指令,从而执行如本文所公开的MQTT代理节点400的任何步骤。
MQTT客户端节点200、DHCP服务器300和MQTT代理节点400中的每个都可以被提供为相应的独立设备或作为至少一个其他设备的一部分。备选地,网关200的功能可以分布在至少两个设备或节点之间。该至少两个节点或设备可以是同一网络部分(例如,本地网络110)的一部分,或者可以散布在至少两个这种网络部分之间。因此,由MQTT客户端节点200、DHCP服务器300和MQTT代理节点400执行的指令的第一部分可以在相应的第一设备中执行,并且由MQTT客户端节点200、DHCP服务器300和MQTT代理节点400执行的指令的第二部分可以在相应的第二设备中执行;本文公开的实施例不限于可以在其上执行由MQTT客户端节点200、DHCP服务器300和MQTT代理节点400执行的指令的任何特定数量的设备。因此,根据本文公开的实施例的方法适于由驻留在云计算环境中的MQTT客户端节点200、DHCP服务器300和/或MQTT代理节点400来执行。因此,尽管在图9、图11、图13中示出了单个处理电路210、310,但是处理电路210、310、410可以分布在多个设备或节点中。这同样适用于图10、图12和图14的功能模块210a-210d、310a-310d、410a-410d以及图15的计算机程序1520a、1520b、1520c(见下文)。
图15示出了包括计算机可读装置1530在内的计算机程序产品1510a、1510b、1510c的一个示例。在该计算机可读装置1530上,可以存储计算机程序1520a,该计算机程序1520a可以使处理电路210和在操作上耦合到处理电路210的实体和设备(例如,通信接口220和存储介质230)执行根据本文描述的实施例的方法。因此,计算机程序1520a和/或计算机程序产品1510a可以提供用于执行本文公开的MQTT客户端节点200的任何步骤的手段。在该计算机可读装置1530上,可以存储计算机程序1520b,该计算机程序1520b可以使处理电路310和在操作上耦合到处理电路310的实体和设备(例如,通信接口320和存储介质330)执行根据本文描述的实施例的方法。因此,计算机程序1520b和/或计算机程序产品1510b可以提供用于执行本文公开的DHCP服务器300的任何步骤的装置。在该计算机可读装置1530上,可以存储计算机程序1520c,该计算机程序1520c可以使处理电路410和在操作上耦合到处理电路410的实体和设备(例如,通信接口420和存储介质430)执行根据本文描述的实施例的方法。因此,计算机程序1520c和/或计算机程序产品1510c可以提供用于执行本文所公开的MQTT代理节点400的任何步骤的装置。
在图15的示例中,计算机程序产品1510a、1510b、1510c被示为光盘,诸如CD(压缩盘)或DVD(数字多功能盘)或蓝光盘。计算机程序产品1510a、1510b、1510c也可以体现为存储器,例如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、或电子可擦除可编程只读存储器(EEPROM),并且更具体地作为外部存储器中的设备的非易失性存储介质,例如USB(通用串行总线)存储器,或者闪存,例如高密度闪存。因此,尽管计算机程序1520a、1520b、1520c这里被示意性地示为所描述的光盘上的轨道,计算机程序1520a、1520b、1520c可以用适于计算机程序产品1510a、1510b、1510c的任意方式进行存储。
以上已经参考一些实施例主要地描述了本发明构思。然而,本领域技术人员容易理解的是,上面公开的实施例之外的其它实施例在由所附专利权利要求所限定的本发明构思的范围之内同样是可能的。
Claims (45)
1.一种使用主题前缀来配置消息队列遥测传输MQTT客户端节点(200)的方法,所述方法由所述MQTT客户端节点(200)执行,所述方法包括:
向动态主机配置协议DHCP服务器(300)发送(S102)对配置的请求;以及
从所述DHCP服务器(300)接收(S104)响应,所述响应包括配置信息和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与主题一起要由所述MQTT客户端节点(200)在发布关于所述主题的数据时使用。
2.根据权利要求1所述的方法,其中,所述至少一个前缀字符串中的每个前缀字符串是在MQTT协议主题前缀MQTT_TOPIC_PREFIX数据结构中提供的。
3.根据前述权利要求中任一项所述的方法,还包括:
针对至少关于所述主题的数据进行发布和订阅中的至少一项,向MQTT代理节点(400)注册(S106)。
4.根据权利要求3所述的方法,还包括:
使用所述前缀字符串作为对所述主题的前缀,将关于所述主题的数据发布(S108)到所述MQTT代理节点(400)。
5.根据权利要求3或4所述的方法,其中,所述前缀字符串对于所有MQTT客户端节点当中已经向所述MQTT代理节点(400)注册的所述MQTT客户端节点(200)是唯一的。
6.根据前述权利要求中任一项所述的方法,其中,唯一的前缀字符串是针对在要发布关于所述主题的数据或订阅关于所述主题的数据的所述MQTT客户端节点(200)上运行的每个应用来接收的。
7.根据前述权利要求中任一项所述的方法,其中,唯一的前缀字符串是针对所述MQTT客户端节点(200)的每个用户来接收的。
8.根据权利要求6或7所述的方法,其中,所述前缀字符串包括标识应用或用户的部分。
9.根据权利要求6或7所述的方法,其中,应用或用户的标识是与所述前缀字符串分开提供的。
10.根据前述权利要求中任一项所述的方法,其中,所述至少一个前缀字符串中的每个前缀字符串是所述MQTT客户端节点(200)的媒体访问控制MAC地址的加密哈希。
11.根据前述权利要求中任一项所述的方法,其中,所述DHCP服务器(300)是第六版互联网协议DHCP服务器(300),DHCPv6服务器,其中,所述请求是在DHCPv6征询消息中发送的,并且其中,所述响应是在DHCPv6通告消息中接收的。
12.根据权利要求1至10中任一项所述的方法,其中,所述DHCP服务器(300)是第四版互联网协议DHCP服务器(300),DHCPv4服务器,其中,所述请求是在DHCPv4发现消息中发送的,并且其中,所述响应是在DHCPv4提供消息中接收的。
13.根据前述权利要求中任一项所述的方法,其中,所述请求是在DHCP请求消息中发送的,并且其中,所述响应是在DHCP响应消息中接收的。
14.一种使用主题前缀来配置消息队列遥测传输MQTT客户端节点(200)的方法,所述方法由动态主机配置协议DHCP服务器(300)执行,所述方法包括:
从所述MQTT客户端节点(200)接收(S204)对配置的请求;以及
向所述MQTT客户端节点(200)发送(S206)响应,所述响应至少包括被分配给所述MQTT客户端节点(200)的配置数据和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与主题一起要由所述MQTT客户端节点(200)在发布关于所述主题的数据时使用。
15.根据权利要求14所述的方法,其中,所述至少一个前缀字符串中的每个前缀字符串是在MQTT协议主题前缀MQTT_TOPIC_PREFIX数据结构中提供的。
16.根据权利要求14或15所述的方法,其中,所述主题前缀是从主题前缀集合中选择的,所述方法还包括:
从MQTT服务运营商节点(140)接收(S202)信息,所述信息与所述主题前缀集合有关。
17.根据权利要求14至16中任一项所述的方法,还包括:
在前缀字符串列表中存储(S208)所述至少一个前缀字符串,其中,所述至少一个前缀字符串被映射到所述MQTT客户端节点(200)的标识。
18.根据权利要求14至17中任一项所述的方法,其中,所述MQTT客户端节点(200)是MQTT客户端节点集合中与MQTT代理节点(400)相关联的一部分,并且其中,所述前缀字符串对于所述MQTT客户端节点集合中的所有MQTT客户端节点当中的所述MQTT客户端节点(200)是唯一的。
19.根据权利要求14至18中任一项所述的方法,其中,唯一的前缀字符串是针对在要发布关于所述主题的数据或订阅关于所述主题的数据的所述MQTT客户端节点(200)上运行的每个应用来发送的。
20.根据权利要求14至19中任一项所述的方法,其中,唯一的前缀字符串是针对所述MQTT客户端节点(200)的每个用户来发送的。
21.根据权利要求19或20所述的方法,其中,所述前缀字符串包括标识应用或用户的部分。
22.根据权利要求19或20所述的方法,其中,应用或用户的标识是与所述前缀字符串分开提供的。
23.根据权利要求14至22中任一项所述的方法,其中,所述DHCP服务器(300)是第六版互联网协议DHCP服务器(300),DHCPv6服务器,其中,所述请求是在DHCPv6征询消息中接收的,并且其中,所述响应是在DHCPv6通告消息中发送的。
24.根据权利要求14至22中任一项所述的方法,其中,所述DHCP服务器(300)是第四版互联网协议DHCP服务器(300),DHCPv4服务器,其中,所述请求是在DHCPv4发现消息中接收的,并且其中,所述响应是在DHCPv4提供消息中发送的。
25.根据权利要求14至24中任一项所述的方法,其中,所述请求是在DHCP请求消息中接收的,并且其中,所述响应是在DHCP响应消息中发送的。
26.一种验证消息队列遥测传输MQTT客户端节点(200)的发布权的方法,所述方法由MQTT代理节点(400)执行,所述方法包括:
从MQTT客户端节点(200)接收(S302)发布关于主题的数据的请求,所述请求包括前缀字符串;以及
验证(S304)所述前缀字符串以及所述MQTT客户端节点(200)的标识,以便验证是否允许所述MQTT客户端节点(200)发布关于所述主题的数据。
27.根据权利要求26所述的方法,其中,由于所述MQTT客户端节点(200)未能成功向所述MQTT代理节点(400)注册,因此不允许所述MQTT客户端节点(200)发布关于所述主题的数据。
28.根据权利要求26或27所述的方法,还包括当不允许所述MQTT客户端节点(200)发布关于所述主题的数据时:
拒绝(S306)对所述数据的发布。
29.根据权利要求26、27或28所述的方法,还包括当不允许所述MQTT客户端节点(200)发布关于所述主题的数据时:
阻止(S308)所述MQTT客户端节点(200)进一步尝试向所述MQTT代理节点(400)注册。
30.一种消息队列遥测传输MQTT客户端节点(200),用于使用主题前缀来配置所述MQTT客户端节点(200),所述MQTT客户端节点(200)包括处理电路(210),所述处理电路被配置为使所述MQTT客户端节点(200)执行以下操作:
向动态主机配置协议DHCP服务器(300)发送对配置的请求;以及
从所述DHCP服务器(300)接收响应,所述响应包括配置信息和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与主题一起要由所述MQTT客户端节点(200)在发布关于所述主题的数据时使用。
31.一种消息队列遥测传输MQTT客户端节点(200),用于使用主题前缀来配置所述MQTT客户端节点(200),所述MQTT客户端节点(200)包括:
处理电路(210);以及
存储指令的存储介质(230),所述指令在由所述处理电路(210)执行时使所述MQTT客户端节点(200)执行以下操作:
向动态主机配置协议DHCP服务器(300)发送对配置的请求;以及
从所述DHCP服务器(300)接收响应,所述响应包括配置信息和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与主题一起要由所述MQTT客户端节点(200)在发布关于所述主题的数据时使用。
32.一种消息队列遥测传输MQTT客户端节点(200),用于使用主题前缀来配置所述MQTT客户端节点(200),所述MQTT客户端节点(200)包括:
发送模块(210a),被配置为向动态主机配置协议DHCP服务器(300)发送对配置的请求;以及
接收模块(210b),被配置为从所述DHCP服务器(300)接收响应,所述响应包括配置信息和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与主题一起要由所述MQTT客户端节点(200)在发布关于所述主题的数据时使用。
33.根据权利要求30、31或32中任一项所述的MQTT客户端节点(200),还被配置为执行根据权利要求2至13中任一项所述的方法。
34.一种动态主机配置协议DHCP服务器(300),用于使用主题前缀来配置消息队列遥测传输MQTT客户端节点(200),所述DHCP服务器(300)包括处理电路(310),所述处理电路被配置为使所述DHCP服务器(300)执行以下操作:
从所述MQTT客户端节点(200)接收对配置的请求;以及
向所述MQTT客户端节点(200)发送响应,所述响应至少包括被分配给所述MQTT客户端节点(200)的配置数据和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与主题一起要由所述MQTT客户端节点(200)在发布关于所述主题的数据时使用。
35.一种动态主机配置协议DHCP服务器(300),用于使用主题前缀来配置消息队列遥测传输MQTT客户端节点(200),所述DHCP服务器(300)包括:
处理电路(310);以及
存储指令的存储介质(330),当所述指令由所述处理电路(310)执行时,使所述DHCP服务器(300)执行如下操作:
从所述MQTT客户端节点(200)接收对配置的请求;以及
向所述MQTT客户端节点(200)发送响应,所述响应至少包括被分配给所述MQTT客户端节点(200)的配置数据和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与主题一起要由所述MQTT客户端节点(200)在发布关于所述主题的数据时使用。
36.一种动态主机配置协议DHCP服务器(300),用于使用主题前缀来配置消息队列遥测传输MQTT客户端节点(200),所述DHCP服务器(300)包括:
接收模块(310a),被配置为从所述MQTT客户端节点(200)接收对配置的请求;以及
发送模块(310b),被配置为向所述MQTT客户端节点(200)发送响应,所述响应至少包括被分配给所述MQTT客户端节点(200)的配置数据和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与主题一起要由所述MQTT客户端节点(200)在发布关于所述主题的数据时使用。
37.根据权利要求34、35或36中任一项所述的DHCP服务器(300),还被配置为执行根据权利要求15至25中任一项所述的方法。
38.一种消息队列遥测传输MQTT代理节点(400),用于验证MQTT客户端节点(200)的发布权,所述MQTT代理节点(400)包括处理电路(410),所述处理电路被配置为使所述MQTT代理节点(400)执行如下操作:
从MQTT客户端节点(200)接收发布关于主题的数据的请求,所述请求包括前缀字符串;以及
验证所述前缀字符串以及所述MQTT客户端节点(200)的标识,以便验证是否允许所述MQTT客户端节点(200)发布关于所述主题的数据。
39.一种消息队列遥测传输MQTT代理节点(400),用于验证MQTT客户端节点(200)的发布权,所述MQTT代理节点(400)包括:
处理电路(410);以及
存储指令的存储介质(430),当所述指令由所述处理电路(410)执行时使所述MQTT代理节点(400)执行以下操作:
从MQTT客户端节点(200)接收发布关于主题的数据的请求,所述请求包括前缀字符串;以及
验证所述前缀字符串以及所述MQTT客户端节点(200)的标识,以便验证是否允许所述MQTT客户端节点(200)发布关于所述主题的数据。
40.一种消息队列遥测传输MQTT代理节点(400),用于验证MQTT客户端节点(200)的发布权,所述MQTT代理节点(400)包括:
接收模块(410a),被配置为从MQTT客户端节点(200)接收发布关于主题的数据的请求,所述请求包括前缀字符串;以及
验证模块(410b),被配置为验证所述前缀字符串以及所述MQTT客户端节点(200)的标识,以便验证是否允许所述MQTT客户端节点(200)发布关于所述主题的数据。
41.根据权利要求38、39或40中任一项所述的MQTT代理节点(400),还被配置为执行根据权利要求27至29中任一项所述的方法。
42.一种使用主题前缀来配置消息队列遥测传输MQTT客户端节点(200)的计算机程序(1520a),所述计算机程序包括计算机代码,当所述计算机代码在所述MQTT客户端节点(200)的处理电路(210)上运行时使得所述MQTT客户端节点(200)执行以下操作:
向动态主机配置协议DHCP服务器(300)发送(S102)对配置的请求;以及
从所述DHCP服务器(300)接收(S104)响应,所述响应包括配置信息和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与主题一起要由所述MQTT客户端节点(200)在发布关于所述主题的数据时使用。
43.一种使用主题前缀来配置消息队列遥测传输MQTT客户端节点(200)的计算机程序(1520b),所述计算机程序包括计算机代码,当所述计算机代码在动态主机配置协议DHCP服务器(300)的处理电路(310)上运行时,使得所述DHCP服务器(300)执行以下操作:
从所述MQTT客户端节点(200)接收(S204)对配置的请求;以及
向所述MQTT客户端节点(200)发送(S206)响应,所述响应至少包括被分配给所述MQTT客户端节点(200)的配置数据和至少一个前缀字符串,所述前缀字符串定义主题前缀,所述主题前缀与主题一起要由所述MQTT客户端节点(200)在发布关于所述主题的数据时使用。
44.一种验证消息队列遥测传输MQTT客户端节点(200)的发布权的计算机程序(1520c),所述计算机程序包括计算机代码,当所述计算机代码在MQTT代理节点(400)的处理电路(410)上运行时,使所述MQTT代理节点(400)执行以下操作:
从MQTT客户端节点(200)接收(S302)发布关于主题的数据的请求,所述请求包括前缀字符串;以及
验证(S304)所述前缀字符串以及所述MQTT客户端节点(200)的标识,以便验证是否允许所述MQTT客户端节点(200)发布关于所述主题的数据。
45.一种计算机程序产品(1510a、1510b、1510c),包括根据权利要求42、43和44中至少一项所述的计算机程序(1520a、1520b、1520c)和存储所述计算机程序的计算机可读存储介质(1530)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2017/061595 WO2018210401A1 (en) | 2017-05-15 | 2017-05-15 | Topic handling in mqtt networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110622485A true CN110622485A (zh) | 2019-12-27 |
CN110622485B CN110622485B (zh) | 2021-12-24 |
Family
ID=59009659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780090815.5A Active CN110622485B (zh) | 2017-05-15 | 2017-05-15 | Mqtt网络中的主题处理的方法和节点 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3625952B1 (zh) |
CN (1) | CN110622485B (zh) |
MX (1) | MX2019013281A (zh) |
WO (1) | WO2018210401A1 (zh) |
ZA (1) | ZA201907276B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111683125A (zh) * | 2020-05-26 | 2020-09-18 | 国电南瑞南京控制系统有限公司 | 基于mqtt协议的新型融合终端营配信息共享方法及系统 |
CN112039882A (zh) * | 2020-08-31 | 2020-12-04 | 广州鲁邦通物联网科技有限公司 | 一种消息传输处理方法、系统、设备及存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111355756B (zh) * | 2018-12-21 | 2022-08-05 | 航天科工惯性技术有限公司 | 一种基于mqtt协议的gnss接收机数据通讯方法 |
US11834060B2 (en) | 2020-03-31 | 2023-12-05 | Denso International America, Inc. | System and method for managing vehicle subscriptions |
CN112422544B (zh) * | 2020-11-09 | 2023-06-30 | 深圳市华昊软件有限公司 | 基于mqtt通讯协议的机房设备信息监控系统 |
CN113704358A (zh) * | 2021-09-02 | 2021-11-26 | 湖南麒麟信安科技股份有限公司 | 分布式任务协同处理方法、装置和计算机设备 |
CN115242805B (zh) * | 2022-06-11 | 2024-04-19 | 北京网聚云联科技有限公司 | 基于gossip的分布式MQTT消息传递方法、传递系统及存储介质 |
CN116436970B (zh) * | 2022-06-29 | 2023-12-12 | 上海铁路通信有限公司 | 一种基于mqtt协议的多客户端多串口通信方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101984636A (zh) * | 2010-10-25 | 2011-03-09 | 华为技术有限公司 | 一种前缀分配方法、装置和系统 |
CN105099882A (zh) * | 2015-07-09 | 2015-11-25 | 杭州电子科技大学 | 一种基于mqtt的云推送方法和系统 |
US20160196131A1 (en) * | 2014-07-07 | 2016-07-07 | Symphony Teleca Corporation | Remote Embedded Device Update Platform Apparatuses, Methods and Systems |
CN106130882A (zh) * | 2016-07-13 | 2016-11-16 | 北京百度网讯科技有限公司 | 用于传输消息的方法和装置 |
US20160337181A1 (en) * | 2015-05-11 | 2016-11-17 | Verisign, Inc. | Identifying trusted configuration information to perform service discovery |
CN106385410A (zh) * | 2016-09-08 | 2017-02-08 | 四川长虹电器股份有限公司 | 基于mqtt的智能家电设备控制系统 |
CN106412101A (zh) * | 2016-10-28 | 2017-02-15 | 浪潮软件集团有限公司 | 一种基于mqtt协议的面向用户的消息推送的方法 |
EP3151481A1 (en) * | 2015-09-30 | 2017-04-05 | Ricoh Company, Ltd. | Communication terminal, communication system, and output method |
CN106657130A (zh) * | 2017-01-09 | 2017-05-10 | 上海浦东软件园汇智软件发展有限公司 | 一种基于mqtt的访问认证的方法及设备 |
-
2017
- 2017-05-15 WO PCT/EP2017/061595 patent/WO2018210401A1/en unknown
- 2017-05-15 MX MX2019013281A patent/MX2019013281A/es unknown
- 2017-05-15 CN CN201780090815.5A patent/CN110622485B/zh active Active
- 2017-05-15 EP EP17727816.5A patent/EP3625952B1/en active Active
-
2019
- 2019-11-01 ZA ZA2019/07276A patent/ZA201907276B/en unknown
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101984636A (zh) * | 2010-10-25 | 2011-03-09 | 华为技术有限公司 | 一种前缀分配方法、装置和系统 |
US20160196131A1 (en) * | 2014-07-07 | 2016-07-07 | Symphony Teleca Corporation | Remote Embedded Device Update Platform Apparatuses, Methods and Systems |
US20160337181A1 (en) * | 2015-05-11 | 2016-11-17 | Verisign, Inc. | Identifying trusted configuration information to perform service discovery |
CN105099882A (zh) * | 2015-07-09 | 2015-11-25 | 杭州电子科技大学 | 一种基于mqtt的云推送方法和系统 |
EP3151481A1 (en) * | 2015-09-30 | 2017-04-05 | Ricoh Company, Ltd. | Communication terminal, communication system, and output method |
CN106130882A (zh) * | 2016-07-13 | 2016-11-16 | 北京百度网讯科技有限公司 | 用于传输消息的方法和装置 |
CN106385410A (zh) * | 2016-09-08 | 2017-02-08 | 四川长虹电器股份有限公司 | 基于mqtt的智能家电设备控制系统 |
CN106412101A (zh) * | 2016-10-28 | 2017-02-15 | 浪潮软件集团有限公司 | 一种基于mqtt协议的面向用户的消息推送的方法 |
CN106657130A (zh) * | 2017-01-09 | 2017-05-10 | 上海浦东软件园汇智软件发展有限公司 | 一种基于mqtt的访问认证的方法及设备 |
Non-Patent Citations (2)
Title |
---|
AUGUSTO MORALES DOMINGUEZ: "An Extended Topic-Based Pub/Sub Broker for Cooperative Mobile Services", 《IEEE》 * |
JORGE OLIVEIRA E SÁ: "Internet of Things: An Evolution of Development and Research area topics", 《ADVANCES IN SCIENCE, TECHNOLOGY AND ENGINEERING SYSTEMS》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111683125A (zh) * | 2020-05-26 | 2020-09-18 | 国电南瑞南京控制系统有限公司 | 基于mqtt协议的新型融合终端营配信息共享方法及系统 |
CN111683125B (zh) * | 2020-05-26 | 2023-10-31 | 国电南瑞南京控制系统有限公司 | 基于mqtt协议的新型融合终端营配信息共享方法及系统 |
CN112039882A (zh) * | 2020-08-31 | 2020-12-04 | 广州鲁邦通物联网科技有限公司 | 一种消息传输处理方法、系统、设备及存储介质 |
CN112039882B (zh) * | 2020-08-31 | 2023-04-07 | 广州鲁邦通物联网科技股份有限公司 | 一种消息传输处理方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3625952A1 (en) | 2020-03-25 |
CN110622485B (zh) | 2021-12-24 |
US20200112539A1 (en) | 2020-04-09 |
EP3625952B1 (en) | 2020-09-16 |
MX2019013281A (es) | 2020-02-05 |
WO2018210401A1 (en) | 2018-11-22 |
ZA201907276B (en) | 2021-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110622485B (zh) | Mqtt网络中的主题处理的方法和节点 | |
CN108886538B (zh) | 用于配置m2m装置的方法和设备 | |
US10965640B2 (en) | Configuration of an M2M device | |
EP3202121B1 (en) | Dynamic generation of unique identifiers in a system of connected things | |
KR101793204B1 (ko) | M2m 네트워크에 있어서의 리소스 및 속성 관리 | |
US10554731B2 (en) | Server initiated remote device registration | |
US10863422B2 (en) | Mechanisms for ad hoc service discovery | |
US11438427B2 (en) | Discovery of resources in a local network | |
CN107113299B (zh) | 向设备的租用的分配 | |
US10862853B2 (en) | Method and apparatus for automatic geoaware access point provisioning | |
Lee et al. | A framework for DNS naming services for Internet-of-Things devices | |
CN108141481B (zh) | 6LoWPAN路由器 | |
KR101937388B1 (ko) | Dns 명칭 설정 방법 및 이를 위한 장치 | |
US10194469B2 (en) | Enabling different device triggering aspects in a machine to machine communication system | |
Lee et al. | DNS name autoconfiguration for IoT home devices | |
US12010091B2 (en) | Topic handling in MQTT networks | |
KR20190049873A (ko) | 다중 인터페이스 노드에 대한 서비스 계층 지원 | |
US20230421444A1 (en) | System and method for over the air commissioning of devices communicating over a communication network | |
US20180287995A1 (en) | Technique for managing an address in a local area network | |
Herrero et al. | Resource Identification and Management | |
CN114503532A (zh) | 用于识别在具有物联网网络用户的网络中的网络服务的方法 | |
WO2014079500A1 (en) | Address allocation for m2m communications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |