Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于mDNS进行服务宣告和服务发现的方法、装置和计算机可读存储介质 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

摘要:本发明提供了一种在局域网和广域网内基于mDNS进行服务宣告和服务发现的方法,其中在局域网内基于mDNS进行服务宣告的方法包括:局域网内的第一应用产生mDNS报文,其中所述mDNS报文含有所宣告的服务的简要信息;第一应用在所述局域网内发送所述mDNS报文;第一应用从局域网内对所宣告的服务感兴趣的至少一个第二应用接收对所宣告的服务的查询;以及第一应用响应于接收到所述查询,产生并向第二应用发送响应报文,其中所述响应报文含有所宣告的服务的详细信息。

主权项:1.一种在局域网内基于mDNS进行服务宣告的方法,所述方法包括:局域网内的第一应用产生mDNS报文,其中所述mDNS报文含有所宣告的服务的简要信息;第一应用在所述局域网内发送所述mDNS报文;第一应用从至少一个第二应用接收所述第二应用响应于所述mDNS报文而做出的对所宣告的服务的查询,其中所述第二应用是局域网内对所宣告的服务感兴趣的应用;以及第一应用响应于接收到所述查询,产生并向所述第二应用发送响应报文,其中所述响应报文含有所宣告的服务的详细信息。

全文数据:基于mDNS进行服务宣告和服务发现的方法技术领域[0001]本公开涉及物联网,具体地,涉及一种基于mDNS进行服务宣告和服务发现的方法。背景技术[0002]随着物联网和智能家居的不断发展,越来越多的智能设备被更多的家庭使用,例如,智能灯、智能扫地机器人、智能洗衣机等。在使用过程中,用户可以通过诸如手机的控制设备来查看并控制这些智能设备。[0003]然而,如果希望发现网络内的智能设备,则可以指定新的发现报文,但是这种方式扩展性不强,且设备之间无法进行彼此识别。[0004]目前主要通过采用零配置联网协议bonjour来解决上述问题。bonjour是基于组播域名服务mdns的开放性零设置网络标准。使用bonjour的设备在网络中自动传播它们自己的服务信息并聆听其他设备的服务信息。因此,bonjour通过mdns能够使局域网中的服务在没有网络管理员的情况下很容易被找到,并且能够自动传播它们自己的服务信息并监听其他设备的服务信息。这种方案尽管在服务的角度上能够实现宣告和发现,但无法在app角度上实现宣告和发现,且仅限于在局域网内。[0005]鉴于此,本公开在于提供一种从app角度上基于mdns进行服务宣告和服务发现的方法,以便实现局域网和同账号体系下广域网app间的服务宣告和服务发现。发明内容[0006]有鉴于此,本发明实施例提供了一种基于mDNS进行服务宣告和服务发现的方法,其中所述方法可以从应用的角度上在局域网和广域网内执行服务宣告和服务发现,从而实现在局域网和同账号体系下广域网的应用间进行服务宣告和服务发现。[0007]根据本发明的示例实施例,提供了一种在局域网内基于mDNS进行服务宣告的方法,所述方法可以包括:局域网内的第一应用产生mDNS报文,其中所述mDNS报文含有所宣告的服务的简要信息;第一应用在所述局域网内发送所述mDNS报文;第一应用从局域网内对所宣告的服务感兴趣的至少一个第二应用接收对所宣告的服务的查询;以及第一应用响应于接收到所述查询,产生并向第二应用发送响应报文,其中所述响应报文含有所宣告的服务的详细信息。[0008]在一个实施例中,发送所述mDNS报文可以包括:利用组播地址和端口,通过组播来发送所述mDNS报文。[0009]在一个实施例中,发送所述mDNS报文可以包括:使用用户数据报协议UDP来发送所述mDr^报文。[0010]在一个实施例中,所述简要信息可以放在mDNS报文的answer部分中。[0011]在一个实施例中,所述查询可以是通过单播从第二应用向第一应用发送的。[0012]根据本发明的示例实施例,提供了一种在广域网中基于mDNS进行服务宣告的方法,所述方法可以包括:广域网内的第一应用产生mDNS报文,其中所述mDNS报文含有所宣告的服务的简要信息;第一应用经由所连接的云端在所述广域网内发送所述mDNS报文;第一应用经由所述云端从广域网内对所宣告的服务感兴趣的至少一个第二应用接收对所宣告的服务的查询;以及第一应用响应于接收到所述查询,产生响应报文并经由云端向第二应用发送所述响应报文,其中所述响应报文含有所宣告的服务的详细信息。[0013]在一个实施例中,使用传输控制协议TCP来发送所述mDNS报文、接收对所宣告的服务的查询以及发送所述响应报文。[0014]根据本发明的示例实施例,提供了一种基于mDNS进行服务发现的方法,所述方法可以包括:第一应用产生用于服务发现的mDNS报文,其中所述mDNS报文包括所需服务的信息;第一应用发送所述mDNS报文;以及第一应用接收来自提供所述所需服务的至少一个第二应用的响应报文。[0015]在一个实施例中,发送所述mDNS报文可以包括:在第一应用所在的局域网内,通过mDNS组播在所述局域网内发送所述mDNS报文;以及响应于在所述局域网内未找到所需服务,通过使用传输控制协议TCP将所述mDNS报文发送到所连接的云端,并经由所述云端向广域网内的其他应用发送所述mDNS报文。[0016]在一个实施例中,所述接收来自提供所述所需服务的至少一个第二应用的响应报文可以包括:响应于确定所述至少一个第二应用是第一应用所在局域网内的应用,通过单播接收来自所述至少一个第二应用的响应报文;以及响应于确定所述至少一个第二应用不是所述局域网内的应用,通过使用TCP经由所连接的云端接收来自所述至少一个第二应用的响应报文。[0017]在一个实施例中,所述mDNS报文仅可以包括question部分。附图说明[0018]以下结合附图,将更清楚本发明的示例实施例的上述和其它方面、特征以及优点,附图中:[0019]图Ia示出了根据本发明示例实施例的在局域网内基于mDNS进行服务宣告的方法的流程图;[0020]图Ib示出了根据本发明示例实施例的在局域网内基于mDNS进行服务宣告的方法的信号图;[0021]图2a示出了根据本发明示例实施例的在广域网内基于mDNS进行服务宣告的方法的流程图;[0022]图2b示出了根据本发明示例实施例的在广域网内基于mDNS进行服务宣告的方法的信号图;[0023]图3示出了根据本发明示例实施例的基于mDNS进行服务发现的方法的流程图;[0024]图4示出了根据本发明示例实施例的在局域网内基于mDNS进行服务发现的方法的信号图;以及[0025]图5示出了根据本发明示例实施例的在广域网内基于mDNS进行服务发现的方法的信号图。具体实施方式[0026]下面结合附图,对本发明的实施例提供的基于mDNS进行服务宣告和服务发现的方法的具体实施方式进行详细说明。[0027]应注意,为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。[0028]根据本发明示例实施例的服务宣告和发现是在设备入网后,从应用的角度出发对服务进行宣告和发现的。服务宣告以及发现协议是基于mDNSRFC6762的,且使用因特网编号管理局(IANA分配的组播IP和端口号,例如如下表所示。[0029]表1W〇31]~下文将参考图Ia和Ib来详细描述在局域网内基于mDNS进行服务宣告的方法。具体_地,图Ia示出了根据本发明示例实施例的在局域网内基于mDNS进行服务宣告的方法的流程图。图Ib示出了根据本发明示例实施例的在局域网内基于mDNS进行服务宣告的方法的信号图。[0032]如图Ia所示,在局域网内基于mDNS进行服务宣告的方法可以包括:在步骤SI10,局域网内的第一应用例如,应用A产生mDNS报文,其中所述mDNS报文含有所宣告的服务的简要信息。在一个实施例中,所述简要信息可以包括以下至少一项:宣告信号的名称、应用的标识、信号序号以及服务名称等。在步骤S120,第一应用在所述局域网内发送所述mDNS报文。接着,在步骤S130,第一应用从局域网内对所宣告的服务感兴趣的至少一个第二应用接收对所宣告的服务的查询。最后,在步骤S140,第一应用响应于接收到所述查询,产生并向第二应用发送响应报文,其中所述响应报文含有所宣告的服务的详细信息。[0033]图Ib描述了根据本发明的在局域网内基于mDNS进行服务宣告的方法的一种具体实现方式。如图Ib所示,首先在操作100产生含有简要信息的mDNS报文。进一步地,可以通过将服务宣告的简要信息放在mDNS报文的answer部分中。更进一步地,可以将服务宣告的简要信息放在mDNS报文的answer部分type=null的rdata中。然后,在操作105,应用A可以发送所产生的mDNS报文,例如,利用组播地址和端口将所述mDNS报文组播发送到局域网中。备选地,应用A可以使用用户数据报协议UDP来发送所述mDNS报文。此时,如果局域网中的应用(例如,应用B对应用A所宣告的服务感兴趣,则可以查询所述服务。即,在操作110,局域网中的应用B可以向应用A查询所述宣告数据。具体地,应用B可以通过单播mDNS来向应用A查询所宣告的服务。然后在操作115,应用A可以响应于接收到查询,产生并向对应的应用B发送含有所宣告的服务的详细信息的响应报文。在一个实施例中,响应报文可以包括服务的IP地址及其所在应用和设备的属性信息。应注意,以上描述中,以对服务感兴趣的应用为单个应用为例说明了根据本发明的方法,然而本发明不限于此,所述对服务感兴趣的应用可以是更多个应用。[0034]下面将结合图2a和2b来描述根据本发明示例实施例的在广域网中基于mDNS进行服务宣告的方法。图2a示出了根据本发明示例实施例的在广域网内基于mDNS进行服务宣告的方法的流程图;且图2b示出了根据本发明示例实施例的在广域网内基于mDNS进行服务宣告的方法的信号图。[0035]如图2a所示,根据本发明示例实施例的在广域网中基于mDNS进行服务宣告的方法借助云端通过传输控制协议TCP来转发报文,其他步骤与图Ia所示的在局域网中进行服务宣告的步骤相似。具体地,在步骤S210,广域网内的第一应用(例如,应用A产生mDNS报文,其中所述mDNS报文含有所宣告的服务的简要信息。在步骤S220,第一应用经由所连接的云端在所述广域网内发送所述mDNS报文。接着,在步骤S230,第一应用经由所述云端从广域网内对所宣告的服务感兴趣的至少一个第二应用(例如,应用C接收对所宣告的服务的查询。最后,在步骤S240,第一应用响应于接收到所述查询,产生响应报文并经由云端向第二应用发送所述响应报文,其中所述响应报文含有所宣告的服务的详细信息。[0036]图2b示出了与图2a相对应的在广域网中基于mDNS进行服务宣告的方法的信号图。可以看出,在广域网中基于mDNS进行服务宣告的方法与在局域网中基于mDNS进行服务宣告的方法相似,因此将不再此进行赘述。然而,二者的不同之处在于通过使用TCP的传输方式经由云端来转发报文,即,使用TCP来发送所述mDNS报文、接收对所宣告的服务的查询以及发送所述响应报文。也就是说,发送用于服务宣告的mDNS报文的步骤S220可以实现为以下操作:应用A经由TCP向与之相连的云端发送mDNS报文操作205-1以及云端经由TCP向广域网内的至少一个应用例如,应用C发送该mDNS报文操作205-2。另外,接收第二应用对所宣告的服务的查询的步骤(S230可以实现为以下操作:应用C经由TCP向云端发送查询操作210-1且云端经由TCP向应用A发送查询(操作210-2。此外,产生并发送响应报文的步骤S240可以实现为以下操作:应用A经由TCP向云端发送响应操作215-1且云端经由TCP将响应发送至应用C操作215-2。当然,本领域技术人员应认识到,本发明不限于此,且除了TCP的传输方式之外,还可以使用其他传输协议。[0037]以上描述了在局域网和广域网中基于mDNS进行服务宣告的方法。根据本发明的示例实施例,所述方法可以在局域网和同一账号体系的广域网之间实现服务宣告,从而改善了用户便利性。[0038]接下来,参考图3-5具体描述根据本发明示例实施例的基于mDNS进行服务发现的方法。图3示出了该方法的流程图。具体地,如图3所示,在步骤S310,第一应用例如,应用B产生用于服务发现的mDNS报文,其中所述mDNS报文包括所需服务的信息。具体地,所述mDNS报文可以仅包括question部分。更具体地,所述mDNS报文仅包括question部分,name为服务名(例如,com.joylink.airCondition,class为IInternet,type为0Null。接着,在步骤S320,第一应用发送所述mDNS报文。进一步地,发送所述mDNS报文可以包括:在第一应用所在的局域网内,通过mDNS组播在所述局域网内发送所述mDNS报文;以及响应于在所述局域网内未找到所需服务,通过使用TCP将所述mDNS报文发送到所连接的云端,并经由所述云端向广域网内的其他应用发送所述mDNS报文。最后,在步骤S330,第一应用接收来自提供所述所需服务的至少一个第二应用(例如,应用A的响应报文。进一步地,接收来自提供所述所需服务的至少一个第二应用的响应报文可以包括:响应于确定所述至少一个第二应用是第一应用所在局域网内的应用,通过单播接收来自所述至少一个第二应用的响应报文;以及响应于确定所述至少一个第二应用不是所述局域网内的应用,通过使用TCP经由所连接的云端接收来自所述至少一个第二应用的响应报文。[0039]下面详述在局域网内基于rnDNS进行服务发现的方法。图4示出了根据本发明示例实施例的在局域网内基于mDNS进行服务发现的方法的信号图。具体地,假设应用A和应用B处于同一局域网内,且应用A是服务提供者,而应用B是服务消费者。开始时,应用B可能处于等待状态。在应用B等待20ms-120ms之间的随机时间后,在操作400,应用B可以产生一个发现报文。如上所述,该发现报文可以仅包括question部分。随后,在操作405,应用B在其所述的局域网内通过mDNS组播发送所述发现报文。然后,在步骤操作410,该局域网内提供所述应用B所需服务的应用(例如,应用A可以向应用B单播回复响应报文。例如,在查询com.joylink.light服务的情况下,将返回该服务的IP地址、服务端口号、传输类型、是否支持多点会话等信息。[0040]通过图4所述的方法可以在局域网内执行服务发现。然而,当在局域网内没有找到感兴趣的服务时,还可以将本发明的方法进一步应用于广域网以便在广域网内执行服务发现。[0041]下面将结合图5描述在广域网内基于mDNS进行服务发现的方法。图5示出了根据本发明示例实施例的在广域网内基于mDNS进行服务发现的方法的信号图。[0042]如图5所示,应用A和应用D同在广域网内,应用A是服务提供者且应用D是服务消费者。当应用D未在其所属的局域网内找到所需服务时,执行图5的流程。具体地,应用D通过使用TCP传输方式,经由所连接的云端转发并接收报文。该构思与图2a和2b所示地在广域网内基于mDNS进行服务宣告的方法相似。在操作500,应用D响应于在所属局域网内未找到所需服务,将发现报文经由TCP传输方式发送给所连接的云端操作505-1,所述云端同样经由TCP传输方式将该发现报文发送给其他应用操作505-2,这两个操作一同构成了发送发现报文的操作。此时,广域网内存放有应用D的所需服务的应用(S卩,应用A,服务提供者对所述发现报文进行响应,经由TCP传输方式将响应报文发送给所述云端操作510-1,所述云端再经由TCP传输方式将所述响应报文发送给应用D操作510-2,这两个操作一同构成了接收响应报文的操作。当然,本领域技术人员同样应认识到,本发明不限于此,且除了TCP的传输方式之外,还可以使用其他传输协议。[0043]综上所述,本发明提供了一种基于mDNS进行服务发现的方法,其中所述方法可以在局域网和同一账号体系的广域网之间实现服务发现,从而改善了用户便利性。[0044]以上方案仅是示出本发明构思的一个具体实现方案,本发明不限于上述实现方案。可以省略或跳过上述实现方案中的一部分处理,而不脱离本发明的精神和范围。[0045]前面的方法可以通过多种计算机装置以可执的程序命令形式实现并记录在计算机可读记录介质中。在这种情况下,计算机可读记录介质可以包括单独的程序命令、数据文件、数据结构或其组合。同时,记录在记录介质中的程序命令可以专门设计或配置用于本发明,或是计算机软件领域的技术人员已知应用的。计算机可读记录介质包括例如硬盘、软盘或磁带等磁性介质、例如压缩盘只读存储器CD-ROM或数字通用盘DVD等光学介质、例如光磁软盘的磁光介质以及例如存储和执行程序命令的ROM、RAM、闪存等硬件装置。此外,程序命令包括编译器形成的机器语言代码和计算机通过使用解释程序可执行的高级语言。前面的硬件装置可以配置成作为至少一个软件模块操作以执行本发明的操作,并且逆向操作也是一样的。[0046]尽管以特定顺序示出并描述了本文方法的操作,然而可以改变每个方法的操作的顺序,使得可以以相反顺序执行特定操作或使得可以至少部分地与其它操作同时来执行特定操作。此外,本发明不限于上述示例实施例,它可以在不脱离本公开的精神和范围的前提下,包括一个或多个其他部件或操作,或省略一个或多个其他部件或操作。[0047]以上已经结合本发明的优选实施例示出了本发明,但是本领域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以对本发明进行各种修改、替换和改变。因此,本发明不应由上述实施例来限定,而应由所附权利要求及其等价物来限定。

权利要求:1.一种在局域网内基于mDNS进行服务宣告的方法,所述方法包括:局域网内的第一应用产生mDNS报文,其中所述mDNS报文含有所宣告的服务的简要信息;第一应用在所述局域网内发送所述mDNS报文;第一应用从局域网内对所宣告的服务感兴趣的至少一个第二应用接收对所宣告的服务的查询;以及第一应用响应于接收到所述查询,产生并向第二应用发送响应报文,其中所述响应报文含有所宣告的服务的详细信息。2.根据权利要求1所述的方法,其中发送所述mDNS报文包括:利用组播地址和端口,通过组播来发送所述mDNS报文。3.根据权利要求1所述的方法,其中发送所述mDNS报文包括:使用用户数据报协议UDP来发送所述mDNS报文。4.根据权利要求1所述的方法,其中所述简要信息放在mDNS报文的answer部分中。5.根据权利要求1所述的方法,其中所述查询是通过单播从第二应用向第一应用发送的。6.—种在广域网中基于mDNS进行服务宣告的方法,所述方法包括:广域网内的第一应用产生mDNS报文,其中所述mDNS报文含有所宣告的服务的简要信息;第一应用经由所连接的云端在所述广域网内发送所述mDNS报文;第一应用经由所述云端从广域网内对所宣告的服务感兴趣的至少一个第二应用接收对所宣告的服务的查询;以及第一应用响应于接收到所述查询,产生响应报文并经由云端向第二应用发送所述响应报文,其中所述响应报文含有所宣告的服务的详细信息。7.根据权利要求6所述的方法,其中使用传输控制协议TCP来发送所述mDNS报文、接收对所宣告的服务的查询以及发送所述响应报文。8.—种基于mDNS进行服务发现的方法,所述方法包括:第一应用产生用于服务发现的mDNS报文,其中所述mDNS报文包括所需服务的信息;第一应用发送所述mDNS报文;以及第一应用接收来自提供所述所需服务的至少一个第二应用的响应报文。9.根据权利要求8所述的方法,其中发送所述mDNS报文包括:在第一应用所在的局域网内,通过mDNS组播在所述局域网内发送所述mDNS报文;以及响应于在所述局域网内未找到所需服务,通过使用传输控制协议TCP将所述mDNS报文发送到所连接的云端,并经由所述云端向广域网内的其他应用发送所述mDNS报文。10.根据权利要求8所述的方法,其中接收来自提供所述所需服务的至少一个第二应用的响应报文包括:响应于确定所述至少一个第二应用是第一应用所在局域网内的应用,通过单播接收来自所述至少一个第二应用的响应报文;以及响应于确定所述至少一个第二应用不是所述局域网内的应用,通过使用TCP经由所连接的云端接收来自所述至少一个第二应用的响应报文。11.根据权利要求8所述的方法,其中所述mDNS报文仅包括question部分。

百度查询: 北京京东尚科信息技术有限公司 北京京东世纪贸易有限公司 基于mDNS进行服务宣告和服务发现的方法、装置和计算机可读存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。