CN103973830A - 基于混合单播/多播dns的服务发现 - Google Patents

基于混合单播/多播dns的服务发现 Download PDF

Info

Publication number
CN103973830A
CN103973830A CN201410032842.5A CN201410032842A CN103973830A CN 103973830 A CN103973830 A CN 103973830A CN 201410032842 A CN201410032842 A CN 201410032842A CN 103973830 A CN103973830 A CN 103973830A
Authority
CN
China
Prior art keywords
dns
message
response
query messages
link
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
Application number
CN201410032842.5A
Other languages
English (en)
Other versions
CN103973830B (zh
Inventor
S·D·切希尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN103973830A publication Critical patent/CN103973830A/zh
Application granted granted Critical
Publication of CN103973830B publication Critical patent/CN103973830B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1836Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with heterogeneous network architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4541Directories for service discovery

Abstract

本文档涉及基于混合单播/多播DNS的服务发现。描述了“混合代理”,其是通过回答来自链路外主机的服务发现查询而使链路外主机能发现链路上的可用服务的网络节点。混合代理可使用“零配置”联网技术,诸如mDNS、DNS-SD和/或DNS-LLQ。作为一示例,混合代理可接收单播DNS-SD查询,在链路上发送对应的mDNS查询以获得响应于查询的信息,然后将单播DNS-SD响应发送到查询方主机。作为另一示例,混合代理可接收单播DNS-LLQ查询,将初始DNS-LLQ回答发送到查询方主机,在其链路上发送mDNS查询以获得额外信息,然后将随后的DNS-LLQ更新消息发送到查询方主机。

Description

基于混合单播/多播DNS的服务发现
相关申请
本申请在此主张2013年1月23日由发明人Stuart D.Cheshire提交的题为“HYBRID UNICAST/MULTICAST DNS-BASED SERVICEDISCOVERY”的美国临时申请No.61/757,036(律师档案号No.APL-P18361USP1)的优先权。
技术领域
本文档描述了联网技术。更特别地,本文档描述了用于使用诸如域名系统服务发现(DNS-SD)、多播域名系统(mDNS)以及DNS长寿命查询(DNS-LLQ)之类的技术,从链路外发现链路上的可用服务的方案。
背景技术
服务发现(使用DNS-SD或其他方案)可使主机查找有关由其他主机提供的服务的信息。例如,主机可以使用DNS-SD来发现提供打印服务的联网打印机,然后,通过网络经由所发现的打印机打印文档。
已经提出了跨不同网络实现服务发现的方法(例如,从因特网发现私有网络上的可用服务);然而,这些方法具有若干限制。由于服务发现越来越重要,所以改善当前的服务发现技术将是有利的。
发明内容
本文档描述了“混合代理”等等,混合代理是通过回答它从给定链路外的主机接收到的服务发现查询,使该链路外的主机能够发现该链路上的可用服务的网络节点。混合代理可以例如在路由器、无线接入点(AP)、网关、或者服务和/或以其他方式驻留在链路上的其他设备上实现。本文档还描述了其他主机设备(例如,计算机、智能电话、打印机、摄像机等)以及这些其他主机设备可如何与混合代理进行交互。
在示范性实施例中,提供了一种电子系统。该电子系统可包括:第一接收单元,配置为从查询方主机接收第一查询消息,所述第一查询消息请求关于链路上可用的服务实例的信息;第一发送单元,配置为在所述链路上发送第二查询消息;第二接收单元,配置为接收响应于所述第二查询消息的一个或多个响应性消息,其中所述一个或多个响应性消息指示所述链路上可用的服务实例;第一生成单元,配置为基于所述一个或多个响应性消息,生成响应消息,其中所述响应消息指示所述链路上可用的所述服务实例;以及第二发送单元,配置为将所述响应消息发送到所述查询方主机。
在示例中,所述第一查询消息是单播域名系统服务发现(DNS-SD)查询消息。所述DNS-SD查询消息可包括指示对关于所述链路上可用的服务的信息的请求的问题。
在示例中,所述系统还包括:第二生成单元,配置为基于所述单播DNS-SD查询消息,生成多播DNS(mDNS)查询消息。所述mDNS查询消息用作所述第二查询消息以供所述第一发送单元在所述链路上发送。
在示例中,所述响应消息是基于所述一个或多个响应性消息生成的单播DNS-SD响应消息。所述单播DNS-SD响应消息由所述第二发送单元发送到所述查询方主机。
在示例中,所述第二生成单元还包括:第二转换单元,配置为在生成所述mDNS查询消息时把所述单播DNS-SD查询消息中的全局域名转换到所述mDNS查询消息中的“.local”域名。所述第一生成单元还包括:第一转换单元,配置为在生成所述响应消息时把所述一个或多个响应性消息中的“.local”域名转换到包括在所述响应消息中的全局域名。
在另一些示例性实施例中,提供一种电子系统。该电子系统可包括:第一接收单元,配置为从查询方主机接收设立DNS长寿命查询的请求,其中所述长寿命查询请求关于链路上可用的服务的信息;第一发送单元,配置为基于数据库中储存的信息,将初始回答消息发送到所述查询方主机;第二发送单元,配置为在所述链路上发送查询消息以获得关于所述链路上可用的服务的信息;第二接收单元,配置为接收响应于所述链路上的所述查询消息的一个或多个响应性消息;第一生成单元,配置为基于所述一个或多个响应性消息,生成更新消息;以及第三发送单元,配置为将所述更新消息发送到所述查询方主机。
在示例中,所述请求是DNS-SD/DNS-LLQ初始请求消息。所述初始请求消息包括问题字段,所述问题字段指定针对关于链路上可用的服务的信息的问题。
在示例中,所述系统还可包括:识别单元,配置为从所储存的数据库识别响应于所述问题的信息;以及第二生成单元,配置为生成包括所识别的响应于所述问题的信息的DNS-SD/DNS-LLQ ACK/回答消息。所述ACK/回答消息用作所述初始回答消息以供所述第一发送单元发送到所述查询方主机。
在示例中,所述系统还可包括:第三生成单元,配置为基于所述初始请求消息中的问题,生成DNS-SD/mDNS查询消息。所述DNS-SD/mDNS查询消息用作所述查询消息以供所述第二发送单元在所述链路上发送。所述第二接收单元接收响应于所述DNS-SD/mDNS查询消息的一个或多个DNS-SD/mDNS响应消息。
在示例中,所述系统还可包括:分析单元,配置为分析所接收的所述一个或多个DNS-SD/mDNS响应消息以判断所接收的所述一个或多个DNS-SD/mDNS响应消息是否包括与所述问题匹配并且未包括在所述ACK/回答消息中的信息。如果所接收的所述一个或多个DNS-SD/mDNS响应消息包括与所述问题匹配并且未包括在所述ACK/回答消息中的信息,则所述第一生成单元生成包括与所述问题匹配并且未包括在所述ACK/回答消息中的信息的单播DNS-LLQ事件响应消息,并且所述第三发送单元将所述事件响应消息发送到所述查询方主机。
提供本发明内容以给出某些示范性实施例,从而提供对此处描述的主题的某些方面的基本理解。相应地,可以理解,上述特征只是示例,不应解释为以任何方式限制此处描述的主题的范围或思想。此处所描述的主题的其他特征、方面和优点将从下面的详细说明、附图和权利要求变得显而易见。
附图说明
图1示出了示例性网络体系架构。
图2示出了用于执行服务发现的第一示例性方法。
图3A-3B示出了用于执行服务发现的第二示例性方法。
图4示出了可用于实现此处所描述的特征的示例性电子设备。
图5示出根据本公开的示范性实施例的电子系统的功能框图。
图6示出根据本公开的另一些示范性实施例的另一电子系统的功能框图。
具体实施方式
概览
本文档描述了“混合代理”等,混合代理是使链路外的主机能够发现链路上的可用服务的网络节点。混合代理可以在路由器、无线接入点(AP)、服务器计算机、或者在链路上操作的任何其他设备上实现。
混合代理可以按如下方式向链路外的查询方主机提供关于其链路上的服务的信息:混合代理从查询方主机接收关于链路上的服务的查询;混合代理获取用于对查询作出响应的信息(例如,通过在其链路上发出mDNS查询,通过访问DNS记录的数据库/缓存,和/或通过其他方案);以及混合代理将包括响应于查询的信息的一个或多个消息发送到查询方主机。查询方主机接收到的初始查询可以被格式化为例如单播DNS-SD查询消息,包括响应信息的一个或多个消息也可以被格式化为单播DNS-SD响应消息。替代地或附加地,初始查询可以被格式化为DNS-LLQ查询,一个或多个响应消息可以包括一个或多个DNS-LLQ ACK/回答消息和/或DNS-LLQ事件响应消息。
图1示出了其中可以实现混合代理以及相关功能的示例性网络体系架构。图2和图3A-3B示出了两个示例性方法,其中混合代理向本地链路外的查询方主机提供关于本地链路的服务信息。图4示出了可用于实现混合代理功能和/或由此处所描述的其他设备/实体执行的功能的示例性电子设备。图5示出了根据一些示范性实施例的电子系统的功能框图。图6示出了根据另一些示范性实施例的另一电子系统的功能框图。
术语表
下面是本文档中使用的术语表。
链路:链路是物理层概念。使用以太网作为示例,当发送以太网广播时,接收该广播的全部主机都位于同一链路上。更具体而言,如果下列情况成立,则一组主机被视为在同一链路上:(a)当该组中的任何主机向该组中的任何其他主机发送(使用单播、多播或广播)数据包时,整个链路层数据包净荷(payload)未修改地到达;以及(b)由该组主机中的任何主机发送的广播被该组中的每一个其他主机接收到。(对于条件(a)和(b)的目的,这意味着数据包可通过诸如中继器、桥接器、集线器或交换机之类的设备并且仍被视为在同一链路上,但是如果数据包通过诸如修改IP标头的IP路由器之类的设备,则主机不在同一链路上。)在某些情况下(尽管不一定总是),链路可能正好与子网同延(即,与子网包括同一组主机)。
子网:子网是网络层概念。子网是不经过路由器,直接彼此相互可达的一组IP地址。如上所述,子网可能正好与链路同延(即,包括同一组主机),尽管情况不总是如此;例如,实践中确实会发生的是,链路可配置为包括多个子网。
DNS消息:DNS消息根据DNS技术被格式化,该技术描述于“Domain Names-Implementation and Specification”RFC等中(在本文档的提交日,可得自http://www.ietf.org/rfc/rfc1035.txt),该文献通过引用合并于此以用于各种目的,并在下文中称为“DNS协议规范”。单播DNS消息可包括表A.1所示的字段/部分。
表A.1
“答案”、“权威机构”以及“其他”部分中的信息可包括格式化为DNS资源记录的数据。“标头”部分可包括QDCOUNT字段、ANCOUNT字段、NSCOUNT字段以及ARCOUNT字段,分别指示“问题”、“答案”、“权威机构”以及“其他”部分中的问题条目/资源记录的数量。除了其他字段之外,“标头”部分还可包括查询/响应(QR)字段,其是指示消息是查询还是响应的一比特字段。
DNS查询消息:DNS查询消息是指示一个或多个问题/信息请求的DNS消息。在DNS查询消息中,“标头”字段中的QR字段可设置为零值以指示消息是查询消息。此外,消息的“问题”部分可包括一个或多个元组(tuple),每个元组构成问题条目。问题条目可包括表A.2所示的字段。
表A.2
DNS响应消息:DNS响应消息是可响应于DNS查询消息的DNS消息。在DNS响应消息中,“标头”字段中的QR字段可设置为1值以指示消息是响应消息。另外,DNS响应消息中的“答案”字段可包括一个或多个资源记录字段,其包括响应于DNS查询消息的信息。
DNS资源记录:资源记录是可用于DNS消息中的数据元素,也可被DNS服务器和其他主机用来存储DNS数据(包括在区域文件(zonefile)中)。DNS消息中的“答案”、“权威机构”以及“其他”部分可包括格式化为资源记录的数据。资源记录可包括表A.3所示的字段。
表A.3
存在若干种不同子类型的资源记录(诸如指针(PTR)资源记录、服务(SRV)资源记录、以及文本(TXT)资源记录),它们可以用于各种目的。
DNS指针(PTR)资源记录:PTR资源记录是用于指向域名空间中的位置的资源记录。在PTR资源记录中,可以使用RDATA字段来存储所指向的位置。例如,对于指向名称“server._nfs._tcp”的PTR资源记录,RDATA字段的值将被设置为“server._nfs._tcp”。
服务(SRV)资源记录:SRV资源记录是可用于指定关于域中可用的服务的信息的资源记录。在SRV资源记录中,“名称”字段可用于指示服务的标识信息,诸如服务的名称、服务所使用的协议(诸如通用数据报协议(UDP)或传输控制协议(TCP))。此外,SRV资源记录中的RDATA字段可包括表A.4所示的字段。
表A.4
文本(TXT)资源记录:TXT资源记录可用于保留描述性文本。在TXT资源记录中,描述性文本可包括在RDATA字段中。
多播域名系统(mDNS):多播DNS(mDNS)是提供对链路执行类似于DNS的操作的能力而无需常规的单播DNS服务器的技术。根据mDNS,部分DNS名称空间(“.local”顶级域(TLD))被分配为空闲,供在链路上本地使用,无需设置委托(delegation)或以其他方式配置常规DNS服务器来负责那些名称。mDNS技术的某些部分在“多播DNS”标准(RFC6762,在本文档的提交日,可得自<http://www.ietf.org/rfc/rfc6762.txt>)中说明,该文献通过引用合并于此以用于各种目的,并且在下文中称为“多播DNS协议规范”。
mDNS消息:mDNS消息是至少部分地根据多播DNS协议规范格式化的消息。特定的多播IP地址和UDP端口被分配用于mDNS消息通信:224.0.0.251用于IP版本4(IPv4)(或FF02::FB用于因特网协议(IP)版本6(IPv6)),UDP端口5353。可以使用此多播地址/端口组合来传递mDNS消息。
域名系统-服务发现(DNS-SD):DNS-SD是允许主机使用DNS查询消息来发现所希望的服务的指定实例的列表的技术。DNS-SD技术的某些部分在“基于DNS的服务发现”标准(RFC6763,在本文档的提交日,可得自<http://www.ietf.org/rfc/rfc6763.txt>)中说明,该文献通过引用合并于此以用于各种目的,并且在下文中称为“DNS-SD协议规范”。
根据DNS-SD,可以使用DNS PTR、SRV和TXT资源记录的组合来描述(以及发现)服务实例。DNS-SD查询可以查询PTR记录,对应的DNS-SD响应可以指向DNS SRV和TXT记录。
作为可以如何组织PTR、SRV和TXT资源记录的一个示例,DNS服务器(或其他主机)可以针对每个服务实例存储下列信息:
(a)SRV资源记录,其中SRV记录的“名称”字段以<实例>.<服务类型>.<域>格式(例如,“文件服务器A._nfs._tcp.example.com”)来指示服务实例的名称,并且其中RDATA中的“目标”字段指示提供服务实例的主机的域名;
(b)指向SRV记录的PTR资源记录(例如,其中“名称”字段的值是“_nfs._tcp.example.com”且RDATA字段的值是“文件服务器A._nfs._tcp.example.com”的PTR记录);以及
(c)TXT资源记录,其中“名称”字段具有与SRV资源记录中的“名称”字段相同的值,并且其中RDATA字段包括与确定服务相关的一个或多个键/值对(例如,“path=/files/nfs/shares”)。
DNS-SD查询消息:DNS-SD查询消息是至少部分地根据DNS-SD协议规范格式化的DNS查询消息。DNS-SD查询消息可以使用消息的“问题”部分的问题条目中的QNAME字段中的查询字符串来查询DNS PTR记录。查询字符串可以具有格式<服务类型>.<域>,指示查询方主机正在查找特定域(定义于<域>部分中)中特定类型(定义于<服务类型>部分中)的服务。作为示例,下列字符串指示在“example.com”域中查询“打印机”服务实例:“_printer._tcp.example.com”。(前面的示例中的<服务类型>中的“_tcp”文本指示“打印机”服务预计通过TCP可用)。表A.5示出可包括在DNS-SD查询消息中的问题条目中的值的示例。
表A.5
DNS-SD响应消息:DNS-SD响应消息是至少部分地根据DNS-SD协议规范格式化的DNS响应消息,其可响应于DNS-SD查询消息。在DNS-SD响应消息中,“答案”字段可以是DNS PTR资源记录,其中PTR资源记录中的RDATA字段使用格式<实例>.<服务类型>.<域>来指定服务实例。作为示例,下列字符串指示打印(“_printer._tcp”)服务的实例,其中实例被标记为“My Printer”,域是“example.com”:“My Printer._printer._tcp.example.com”。表A.6示出可包括在DNS-SD响应消息的“答案”部分中的示例性PTR资源记录。
表A.6
DNS长寿命查询(DNS-LLQ):DNS-LLQ是对DNS的扩展,其使查询方主机能够发出“长寿命的”问题,由此回答方主机基于当前信息提供初始回答,并且还向查询方主机通知有关DNS数据随时间的变化。DNS-LLQ技术的某些部分说明于“DNS长寿命查询”因特网草案中(在本文档的提交日,可得自http://tools.ietf.org/html/draft-sekar-dns-llq-01),该文献通过引用合并于此以用于各种目的,并且在下文中称为“DNS-LLQ协议规范”。DNS-LLQ技术的某些部分还说明于“Extension Mechanisms for DNS(EDNS0)”RFC中(在本文档的提交日,可得自http://tools.ietf.org/html/rfc2671),该文献通过引用合并于此以用于各种目的,并且在下文中称为“EDNS0协议规范”。
为了设立DNS-LLQ查询,可以使用下列四种不同子类型的DNS-LLQ消息来执行四步骤握手过程:
(a)DNS-LLQ初始请求消息,其由查询方主机发送到回答方主机,并且其发起一个或多个问题;
(b)DNS-LLQ设立质询消息,其由回答方主机响应于DNS-LLQ初始请求消息发送到查询方主机,并且其确定每个问题的唯一标识符;
(c)DNS-LLQ质询响应消息,其由查询方主机响应于DNS-LLQ设立质询消息发送到回答方主机,以指示已经接收到设立质询消息;以及
(d)DNS LLQ ACK/回答消息,其由回答方主机发送到查询方主机,以确认收到DNS-LLQ质询响应消息(由此指示完成了长寿命查询的设立),并且其还包括基于响应方主机在该时间拥有的信息的、针对问题的答案。
另外,当在长寿命查询的寿命期间应向查询方主机发送更新时(例如,当回答方主机获得了与问题匹配的新信息时),回答方主机可以使用另一类型的DNS-LLQ消息(DNS-LLQ事件响应消息)向查询方主机发送更新信息。
DNS-LLQ消息:DNS-LLQ消息是至少部分地根据DNS-LLQ协议规范和EDNS0协议规范格式化的DNS消息。在该消息中,“其他”部分可以被用来携带一个或多个选项(OPT)资源记录(也称为“伪资源记录”、“OPT伪RR”,或“OPT-RR”)。OPT资源记录可以如上表A.3所示的那样格式化;即,OPT资源记录可以包括下列字段:名称、类型、类别、TTL、RDLENGTH以及RDATA。在DNS-LLQ消息中,OPT资源记录中的RDATA字段可以包括一个或多个“LLQ元数据”条目,其每一个可包括表A.7所示的字段。
表A.7
DNS-LLQ初始请求消息:这是主机用来最初请求设立长寿命查询的DNS-LLQ消息。该消息是DNS查询消息(即,其“标头”字段中的其QR字段指示该消息是查询),并且可以在“问题”部分中包括一个或多个问题条目(如上面参考表A.2和/或表A.5所描述的那样);并且,对于每个问题条目,该消息可在其“其他”部分包括对应的DNS-LLQ元数据。在DNS-LLQ元数据条目中,LLQ-OPCODE字段被设置为LLQ-SETUP,LLQ-ID字段被设置为零。
DNS-LLQ设立质询消息:这是响应于DNS-LLQ初始请求消息发送的DNS-LLQ消息。该消息是DNS响应消息,并且可以在“问题”部分包括与来自对应的初始请求消息的问题条目相同的(或类似的)问题条目。另外,设立质询消息包括LLQ元数据条目(对于对应的初始请求消息中的每一个LLQ元数据条目,一个LLQ元数据条目),其中LLQ元数据条目中的每个LLQ-ID字段指示唯一的标识符。
DNS-LLQ质询响应消息:这是响应于DNS-LLQ设立质询消息发送的DNS-LLQ消息。该消息是DNS查询消息,可以在“问题”部分中包括与来自对应的初始请求消息的问题条目相同的(或类似的)问题条目,并且包括与在对应的设立质询消息中接收到的LLQ元数据相同的(或类似的)LLQ元数据(由此反射对应的设立质询消息中所包括的唯一的LLQ-ID)。
DNS-LLQ ACK/回答消息:这是响应于DNS-LLQ质询响应消息发送的DNS-LLQ消息。这是DNS响应消息,确认收到DNS-LLQ质询响应消息。该消息可以在“答案”部分中包括与在对应的初始请求消息中指示的问题条目的条件匹配的资源记录;换言之,该消息提供对在初始请求消息中提出的问题的初始答案(基于当前可得的信息)。
DNS-LLQ事件响应消息:这是当回答方主机获得与所确定的DNS-LLQ问题匹配的新数据时发送的DNS-LLQ消息,并且用于关于新数据对查询方主机进行更新。该消息是DNS响应消息,带有下列属性:“问题”部分可包括正在被回答的问题条目(即,最初在发起方初始请求消息中接收到的问题条目);“答案”部分可以包括与正在回答的问题条目匹配的一个或多个资源记录;以及“其他”部分中的OPT资源记录中的RDATA字段可包括LLQ元数据条目,针对正在回答的每个问题,一个LLQ元数据条目。在每个LLQ元数据条目中,LLQ-OPCODE字段设为LLQ-EVENT的值,LLQ-ID字段设为用于每个元数据条目的唯一标识符。
数据库:数据库是任何结构化的数据集合,诸如但不限于,关系型数据库、层次型数据库、面向对象型数据库、No-SQL数据库、或结构化平面文件。DNS区域文件是数据库的示例。
非暂时性计算机可读介质:诸如硬盘、光学介质(诸如CD-ROM、DVD或蓝光盘)、磁光介质、存储器设备(诸如动态随机存取存储器(DRAM)、静态RAM(SRAM)或其他类型的随机存取存储器(RAM))、寄存器、高速缓冲存储器、只读存储器(ROM)、闪存(基于例如EEPROM闪存技术或NAND闪存技术)之类的用于进行数据存储的设备,或者其他类型的用于电子数据存储的非暂时性设备。非暂时性计算机可读介质与诸如瞬时信号之类的暂时性计算机可读介质是有区别的。
图1-示例性网络体系架构
图1示出了包括服务搜索设备(SSD)130、因特网150以及私有网络140的示例性网络体系架构170。私有网络140可在单个实体(例如,公司、大学、个人或其他实体)的控制下和/或代表单个实体操作,私有网络140包括混合代理100和两个示例性主机设备(服务提供设备(SPD)A120和SPD B122)操作于其上的链路142。在图1的示例中,混合代理100可以充当路由器,为它操作于其上的链路142执行路由功能。如下文更详细地描述的那样,SSD130可以通过与混合代理100进行通信来搜索由SPD A120和SPD B122所提供的服务。
如图1所示,私有网络140还包括DNS服务器110。私有网络140中的DNS服务器110可配置成私有网络140的中央名称服务器。当请求方主机希望获得私有网络140内的主机的IP地址时,请求方主机可以通过查询DNS服务器110来这样做。在与混合代理100进行通信之前,SSD130可以获得它需要的IP地址和/或域名(或子域名),以便通过DNS服务器110与混合代理100进行通信。混合代理100操作于其上的链路142可分配有唯一的DNS域名/子域名(例如,“BuildingA.example.com”或“Fifth Floor.Building A.example.com”);在这样的实例中,由DNS服务器110存储的DNS名称服务器(NS)记录可以被用来将链路142的域名的拥有权委托给混合代理100。链路142可以是例如以太网链路或无线链路(基于诸如IEEE802.11无线联网技术之类的技术),和/或可以基于任何其他合适类型的联网技术。
SPD A120和SPD B122是提供网络服务的电子设备。SPD A120和/或SPD B122可以是例如膝上型计算机、平板计算机、服务器计算机、打印机或复印机、扫描仪、摄像机、蜂窝电话、和/或能够提供服务的任何其他类型的电子设备。SSD130可以是例如膝上型计算机、服务器计算机、平板计算机、蜂窝电话、和/或任何其他合适类型的用于搜索服务的电子设备。
当SSD130希望使用服务时,它可以通过因特网150向混合代理100发出查询。然后,混合代理100获得/生成响应于查询的信息,并通过因特网150将一个或多个响应消息发送回到SSD130。基于响应,SSD130然后可以连接到本地链路142上的设备,并执行/接收服务。例如,SSD130可以向混合代理100发送(通过因特网150)对可用的打印机服务的查询;SPD A120可以是启用网络的打印机,并且可以提供打印机服务,混合代理100可以向SSD130传输指出SPD A120提供打印机服务的一个或多个响应消息(通过因特网150);SSD130然后可以连接到SPD A120(通过因特网150)并打印文档。
混合代理100可以实施若干不同的机制以用于获取包括在发送到SSD130的响应消息中的信息。例如:
(a)混合代理100可以响应于接收到查询,生成发送到SPD A120和SPD B122的mDNS查询;混合代理100然后可以接收到来自SPD A120和SPD B122的mDNS响应,整理接收到的mDNS响应中的信息,并将对应的查询响应发送到SSD130。此处参考图2描述了此方法的一个示例。
(b)替代地或附加地,混合代理100可以实施DNS-LLQ技术,并且可以存储关于由链路142上的主机(包括SPD A120和SPD B122)所提供的服务的服务信息的数据库/缓存。(混合代理100可以通过周期性地在链路142上发送DNS-SD/mDNS查询,并将对应的响应信息存储在数据库/缓存中,来获取服务信息。替代地或附加地,SPDA120和/或SPD B122可以使用mDNS响应消息来宣告它们支持的服务(在连接到本地链路142时,周期性地,和/或当它们所提供的服务发送变化时),混合代理100可以在接收到时将此信息存储在数据库/缓存中。)响应于针对服务的DNS LLQ查询,混合代理100可以发送包括所存储/缓存的服务信息的初始响应/回答(如果有存储/缓存的信息可用的话);同时和/或基本上同时地,混合代理100还可以向SPD A120和SPD B122发送mDNS查询;在接收到来自SPD A120和/或SPD B122的响应后,混合代理100可以发送对应的DNS-LLQ更新消息。此处参考图3A-3B提供了此方案的一个示例。
如上所述,混合代理100和两个服务提供设备(SPD A120/SPD B122)可以向彼此发送mDNS消息。在本文中所描述的在链路142上传输的任何mDNS消息可以在多播地址224.0.0.251:5353/[FF02::FB]:5353上传输。
尽管图1的私有网络140被示为只包括单个链路142,但是,这样做只是为了描述方便;此处所描述的特征可以用在包括任意数量的链路的网络上(从单个链路到大量链路),每个链路(或根据需要,其某一子集)都具有其自己的混合代理实例。替代地或附加地,网络可以被配置成使用单个混合代理实例用于存在于网络中的多个链路。这样的配置可以例如使用虚拟局域网(VLAN)技术、网络上的DNS服务器中的合适的NS记录、和/或其他技术来实现。
图2-用于服务发现的方法
图2示出了用于执行服务发现的第一方法。在图2的方法中,混合代理100接收服务发现查询,在其本地链路142上发出查询以获取对服务发现查询进行响应的信息,然后提供对服务发现查询的响应。
图2的方法始于(在步骤200)SSD130向混合代理100发送单播DNS-SD查询消息。在混合代理100被分配给子域“BuildingA.example.com”且查询消息要求打印服务实例的示例中,DNS-SD查询消息可以是DNS消息,带有包括表B.1所示的值的问题条目。
表B.1
步骤202中,混合代理100生成与在步骤200中接收到的查询消息对应的DNS-SD/mDNS查询消息。这可以涉及将所接收到问题条目中的QNAME字段中的全局域名转换为用于mDNS查询的“.local”域。继续表B.1的示例,混合代理100可以生成具有包括表B.2所示的值的问题条目的mDNS查询消息。
表B.2
如表B.2所示,QNAME字段的<服务类型>部分(即,“_printer._tcp”)与表B.1中的相同,而<域>部分发生改变(从“Building A.example.com”变为“.local”)。
在步骤204中,混合代理100在其链路142上发送所生成的DNS-SD/mDNS查询消息,SPD A120和SPD B122接收该查询消息。
如下文更详细地描述的那样,混合代理100可以预期接收一个或多个对在步骤204中发送的DNS-SD/mDNS查询消息的响应。取决于实现方式,混合代理100可以预期在给定时间窗口内接收到响应,并基于在给定时间窗口内接收到的响应进行操作。为跟踪该时间窗口,混合代理100可以在步骤204中启动计时器,和/或以别的方式存储与执行步骤204的时间相关的信息。
在步骤206中,SPD A120生成并且发送响应于在步骤204中接收到的查询的DNS-SD/mDNS响应消息,混合代理100接收该响应消息。继续表B.1-B.2的示例,在SPD A120提供使用名称“PrinterA”的打印服务的情况下,此响应消息的“答案”字段中所包括的资源记录可以包括诸如表B.3所示的那些值之类的值。
表B.3
在步骤208中,SPD B122生成并且发送DNS-SD/mDNS响应消息,混合代理100接收该响应消息。此响应消息可以与上文关于步骤206提及的消息类似地生成。继续上文的示例,在SPD B122提供使用名称“PrinterB”的打印服务的情况下,在步骤208中生成/发送的DNS响应消息的“答案”字段中所包括的资源记录可以包括诸如表B.4所示的那些值之类的值。
表B.4
在步骤210中,混合代理100基于所接收到的响应于步骤202中的DNS-SD/mDNS查询的DNS-SD/mDNS响应消息(即,在步骤206和208中接收到的消息),生成单播DNS-SD响应消息。取决于实现方式,在生成单播DNS-SD响应消息之前,混合代理100可以等候,直到给定时程过期;这可以包括例如使用执行步骤204时启动的计时器,然后等到计时器过期,以分析所接收到的响应消息,并且生成对应的单播DNS-SD响应消息。
在步骤210中,混合代理100可以生成单播DNS响应消息,以便其“答案”字段包括用于每一个所接收到的DNS-SD/mDNS响应消息的资源记录。如所接收到的DNS-SD/mDNS响应消息那样,资源记录中的RDATA字段可以使用格式<实例>.<服务类型>.<域>来指定服务实例。然而,与所接收到的响应消息不同,混合代理100可以设置<域>部分以使用全局域名代替“.local”mDNS域。为此,步骤210可以包括混合代理100把来自步骤206和208的DNS-SD/mDNS消息中指示的“.local”域转换为全局域。
继续上面的表B.1-B.4的示例,混合代理100可以生成此单播DNS响应消息,以便“答案”部分包括两个资源记录(即,每一个所接收到的mDNS消息,一个记录),其包括诸如表B.5所示出的那些值之类的值。
表B.5
如表B.5所示,“名称”和RDATA字段的<域>部分从表B.3和B.4所示的那些发生变化(即,从“.local”到“BuildingA.example.com”)。
在步骤212中,混合代理100将在步骤210中生成的单播DNS-SD响应消息传输到SSD130。在步骤212中接收到单播DNS-SD响应消息后,SSD130可以执行若干不同的动作。例如,在SSD130显示用户界面的情况下,用户界面可以更新以反映所接收到的单播DNS-SD响应消息中指示的信息。继续上面的表B.1-B.5的示例,SSD130可以在其用户界面上显示可用的打印服务的列表,并且可以更新该列表,以示出在“Building A.example.com”域上有“PrinterA”和“PrinterB”服务实例可用。
在步骤214中,SSD130与混合代理100、SPD A120和/或SPD B122一起可以基于在步骤212中提供给SSD130的信息来执行一个或多个服务设立动作。作为一个示例,如果SSD130在用户界面中显示可用服务实例的列表,则用户可以提供指示用户愿意使用特定服务实例的用户输入;响应于此用户输入,SSD130可以与混合代理100进行通信,以获取与所选主机启动所选服务所需的额外配置信息(格式化为例如DNS SRV和DNS TXT记录)。继续上面的表B.1-B.5的示例,用户可以选择使用“PrinterA”服务实例来打印文档;如果这样,则SSD130可以通过向混合代理100发送合适的额外DNS查询消息来获取所需的配置信息(格式化为例如DNS SRV和DNS TXT记录)。
替代地或附加地,步骤214可以包括SSD130与混合代理100、SPD A120和/或SPD B122一起传递数据以便执行服务。再次参考上面的示例,如果SSD130获取了配置信息以启动“Printer A”服务实例,则这可以包括SSD130向SPD A120传输描述文档的信息以用于打印,并且可以包括SPD A120打印该文档。作为另一个示例,在SSD130搜索网络文件系统服务的情况下,这可以包括SSD130向SPD A120和/或SPD B122发送文件数据和/或从它们那里接收文件数据。
虽然图2示出了步骤是按特定顺序进行的,但是,这只是图2所示步骤可以如何排序的一个示例,可以使用图2所示的顺序的许多变型。另外,图2所示的在不同时间执行的步骤在某些情况下可以同时和/或以别的方式基本上同时地执行。例如,尽管图2示出了步骤208是在步骤206之后执行的,但是应理解,这些步骤可以根据任何时间关系来执行(即,任一步骤可以在另一步骤之前执行,或者它们可以同时或基本上同时地执行)。
替代地或附加地,作为上文所描述的特征的一个变型,代替SPD A120和SPD B122在步骤206和208中发送mDNS/SD响应消息,这些响应消息可以是单播DNS-SD响应消息。在这样的情况下,混合代理100可以将在步骤204中发送的DNS-SD/mDNS查询中的问题条目中的QCLASS字段中的顶部比特设置为“单播响应”比特;响应于此“单播响应”比特,SPD A120和SPD B122将把它们的响应消息格式化为单播DNS-SD响应消息。(在这些单播DNS-SD响应消息中,“.local”域将用于<实例>.<服务类型>.<域>字符串中。)
替代地或附加地,作为图2所示方法的另一变型,代替响应于接收到DNS-SD查询(在步骤200中)而发出DNS-SD/mDNS查询,混合代理100可以周期性地向SPD A120和SPD B122查询它们提供的服务,然后将关于接收到的响应的信息存储到数据库/缓存中(其可以存储为例如DNS SRV/PTR/TXT记录);然后,代替生成/发出DNS-SD/mDNS查询(如步骤202-204中所示),混合代理100可以使用数据库/缓存中存储的信息来生成单播DNS-SD响应(如上文参考步骤210所描述的那样)。
图3A-3B-用于服务发现的方法
图3A-3B示出了用于执行服务发现的第二方法。在图3A-3B的方法中,如下文更详细地描述的那样,混合代理100接收服务发现查询;响应于服务发现查询,混合代理100提供对查询的初始回答(基于可已经存储在混合代理100处的信息)。然后,混合代理100还在链路142上发出查询,并且如果链路142上的查询提供与查询匹配的信息(超越初始回答中提供的信息范围),则提供针对查询的后续回答。
在执行图3A-3B的方法之前,混合代理100可以与SPD A120和SPD B122进行通信,以设立由混合代理100存储的服务信息的数据库/缓存。此数据库/缓存可以存储关于由链路142上的主机(包括SPDA120和SPD B122)提供的服务的信息。数据库/缓存可以将此服务信息存储为DNS资源记录,包括但不限于PTR、SRV以及TXT资源记录。混合代理100可以通过周期性地在链路142上发送DNS-SD/mDNS查询,并且将从链路142上的设备(包括SPD A120和SPD B122)接收到的对应的响应信息存储在数据库/缓存中,来获取服务信息。替代地或附加地,SPD A120和/或SPD B122可以使用未经请求的mDNS响应消息来宣告它们提供的服务(在连接到本地链路142时,周期性地,和/或当它们所提供的服务发生变化时),混合代理100可以相应地更新数据库/缓存中的服务信息。替代地或附加地,混合代理100可以使用其他方案来接收和/或维护服务信息。
由混合代理100从链路142上的设备接收到的服务信息可以指示信息与“.local”域相关联。(例如,如果SPD A120使用格式<实例>.<服务类型>.<域>来宣告可用的服务实例,则<域>部分将指示域是“.local”)。如下文更详细地描述的那样,混合代理100提供对查询的响应,其中响应包括全局(不是“.local”)域名。也如下面更详细地描述的那样,取决于实现方式,混合代理100使用“.local”域来将信息存储在其数据库/缓存中,然后根据需要,转换为全局名称(即,当对特定查询作出响应时);替选地,混合代理100可以将“.local”名称替换为对应的全局名称,然后存储经过转换的带有全局名称的信息。在另一备选方案中,混合代理100可以存储包括“.local”和全局名称二者的重复的信息;和/或混合代理100可以存储其他信息以便在需要时提供全局名称。
如图3A所示,该方法包括“LLQ设立”阶段370(其包括下面详细描述的若干步骤),在该阶段,SSD130和混合代理100设立/确定LLQ问题,混合代理100基于存储在其数据库/缓存中的信息提供初始回答。
在步骤300中,如图3A所示,SSD130将单播DNS-SD/DNS-LLQ初始请求消息传输到混合代理100。此消息可以是DNS查询消息,并且可以在其“问题”部分包括一个或多个问题条目,在其“其他”字段包括一个或多个对应的DNS-LLQ元数据条目。在混合代理100被分配到子域“Building A.example.com”并且此消息要求网络文件系统(NFS)服务实例的示例中,此消息可以包括问题条目和LLQ元数据条目,这些条目包括诸如表C.1所示的那些值之类的值。
表C.1
在步骤302中,混合代理100处理所接收到的初始请求消息(来自步骤300),生成响应于所接收到的初始请求消息的单播DNS-SD/DNS-LLQ设立质询消息,并且将设立质询消息传输到SSD130。继续表C.1的示例,此消息可以包括问题条目和LLQ元数据条目,这些条目包括诸如表C.2所示出的那些值之类的值(注意,标识符“randomID123456789”是将由混合代理100生成的随机标识符)。
表C.2
在步骤304中,SSD130处理所接收到的设立质询消息(来自步骤302),生成响应于所接收到的设立质询消息的单播DNS-SD/DNS-LLQ质询响应消息,并且将质询响应消息传输到混合代理100。继续表C.1-C.2的示例,此消息可以包括问题条目和LLQ元数据条目,这些条目包括诸如表C.3所示的那些值之类的值。
表C.3
在步骤306中,混合代理100处理所接收到的质询响应消息(来自步骤304),并且生成响应于所接收到的质询响应消息的单播DNS-SD/DNS-LLQ ACK/回答消息。此步骤还可以包括混合代理100分析其数据库/缓存以判断是否数据库/缓存中的某些信息与质询响应消息中的问题(其与在步骤300的初始请求消息中接收到的问题相同)相匹配,并且相应地,利用此信息来填充ACK/回答消息。
由混合代理100在步骤306中生成的ACK/回答消息可以包括“答案”部分,关于满足质询响应中的问题条件的服务的信息可以作为PTR资源记录包括在“答案”部分中。在PTR资源记录中,“名称”和RDATA字段可以包括域名,混合代理100可以生成ACK/回答消息,以便域名是全局域名。如果混合代理100以“.local”域来存储服务信息,那么步骤306可以包括混合代理100把所存储的“.local”转换为对应的全局域名,以便包括在ACK/回答消息中。
继续表C.1-C.2的示例,混合代理100可以将信息存储在其数据库/缓存中,但是根据此示例,数据库/缓存中没有任何信息匹配来自质询响应消息中的问题。因此,混合代理100可以在步骤306中生成ACK/Answers消息,该消息提供“空白”响应(即,该响应不包括匹配的答案,标头中的ANCOUNT字段设置为零值);此ACK/回答消息可以包括诸如表C.4所示的那些值之类的值。
表C.4
在步骤308中,混合代理100将在步骤306中生成的ACK/回答消息传输到SSD130。在接收到ACK/回答消息时,SSD130可以执行若干不同的动作。例如,在SSD130显示用户界面的情况下,用户界面可以更新以反映接收到的ACK/回答消息中指出的信息。
现在参考图3B,图3A-3B的方法包括“更新”阶段380(其包括下面详细描述的若干步骤),在该阶段,混合代理100可以获得响应于在“LLQ设立”阶段370期间确定的长寿命查询的额外信息,并且可以将额外信息提供到SSD130。
在步骤312中,混合代理100可以生成并传输(在链路142上)与在步骤300中接收到的初始请求消息中的问题对应的DNS-SD/mDNS查询消息。这涉及将初始请求的问题条目中的QNAME字段中的全局域名转换为用于mDNS查询的“.local”域。继续表C.1-C.4的示例,混合代理100可以生成具有问题条目的DNS-SD/mDNS查询消息,该问题条目包括诸如表C.5所示的那些值之类的值。
表C.5
在步骤314中,SPD A120处理步骤312的DNS-SD/mDNS查询消息,生成响应于查询消息的DNS-SD/mDNS响应消息,并且传输(在链路142上)所生成的DNS-SD/mDNS响应消息。
继续表C.1-C.5的上文的示例,SPD A120可以提供使用实例名称“File Server A”的NFS服务,SPD A120可以利用带有诸如表C.6所示的那些值之类的值的PTR资源记录,来在步骤314中生成并传输DNS-SD/mDNS响应消息。
表C.6
在步骤316中,混合代理100处理步骤314的DNS-SD/mDNS响应消息,在该消息指示混合代理100应向SSD130提供LLQ更新的情况下,混合代理100可以生成用于传输到SSD130的对应的DNS-LLQ事件响应消息。此步骤可以包括下列各项:
(a)混合代理100可以比较在所接收到的DNS-SD/mDNS响应消息中接收到的信息以确定:(i)所接收到的信息是否和/或在什么程度上不同于已经存储在由混合代理100存储的数据库/缓存中的信息,在什么程度上混合代理100已经将此信息提供给SSD130(在所接收到的信息不包括新信息的情况下,混合代理100不需要向SSD130提供更新);以及(ii)接收到的信息是否和/或在什么程度上匹配在LLQ设立阶段370设立的长寿命查询中的问题(在所接收到的信息不匹配来自长寿命查询的问题的情况下,混合代理100不需要向SSD130提供更新);
(b)在混合代理100判断应向SSD130提供更新的情况下,混合代理100可以生成DNS-LLQ事件响应消息以反映匹配服务实例的添加/删除;事件响应消息可以包括“答案”部分中的标识相关服务实例的一个或多个PTR资源记录;和/或
(c)混合代理100可以生成DNS-LLQ事件响应消息,以便它包括全局域名;这可以包括以如上文参考步骤306所描述的类似方式从“.local”名称转换为全局名称。
继续上面的表C.1-C.6的示例,在混合代理100在步骤316中判断关于“File Server A”NFS实例的更新应提供给SSD130的情况下,混合代理100可以生成带有诸如表C.7所示的那些值之类的值的事件响应消息。
表C.7
在步骤318中,混合代理100将在步骤316中生成的事件响应消息传输到SSD130。在接收到事件响应消息时,SSD130可以执行若干不同的动作。例如,在SSD130显示用户界面的情况下,用户界面可以更新以反映所接收到的事件响应消息中指示的信息(以如上文参考步骤308所描述的类似的方式)。
在步骤320中,SPD B122处理步骤312的DNS-SD/mDNS查询消息,生成响应于该查询的DNS-SD/mDNS响应消息,并且传输(在链路142上)所生成的DNS-SD/mDNS响应消息。参考上面的表C.1-C.7的示例,在SPD B122提供使用实例名称“File Server B”的NFS服务的情况下,SPD B122可以在步骤320中利用带有诸如表C.8所示的那些值之类的值的PTR资源记录,生成并传输DNS-SD/mDNS响应消息。
表C.8
在步骤322和324中,混合代理100可以基于在步骤320中接收到的DNS-SD/mDNS响应消息,执行与上文参考步骤316所描述的类似的动作。
继续上面的表C.1-C.8的示例,在混合代理100在步骤322中判断关于“File Server B”NFS实例的更新应提供给SSD130的情况下,混合代理100可以生成带有诸如表C.9所示的那些值之类的值的事件响应消息。
表C.9
在步骤326中,SSD130与混合代理100、SPD A120和/或SPD B122一起可以基于在步骤310的ACK/回答消息中和/或步骤318和/或324的事件响应消息中提供给SSD130的信息,执行一个或多个动作以设立服务。例如,用户可以提供指示用户愿意使用特定服务实例的用户输入(通过由SSD130显示的用户界面);响应于此用户输入,SSD130可以与混合代理100进行通信,以获取可以被用来初始化所选服务的配置信息(格式化为例如DNS SRV和DNS TXT记录)。继续上面的表C.1-C.9的示例,用户可以选择使用“File Server B”NFS服务实例来传送文件;如果这样,则SSD130可以通过向混合代理100传输合适的DNS查询消息来获取所需的配置信息(即,DNS SRV和DNS TXT记录)。
替代地或附加地,步骤326可以包括SSD130与混合代理100、SPD A120和/或SPD B122一起传递数据,以便执行该服务。再次参考上面的示例,如果SSD130已经获取了初始化SPD B122的NFS服务的配置信息,则步骤326可以包括SSD130和SPD B122传输数据以执行一个或多个文件的传输。
虽然图3示出了步骤是按特定顺序进行的,但是,这只是图3所示的步骤可以如何排序的一个示例,可以使用图3所示的顺序的许多变型。此外,图3所示的在不同时间执行的步骤在某些情况下可以同时和/或以别的方式基本上同时地执行。作为一个示例,LLQ设立阶段370和更新阶段380可以同时和/或基本上同时地执行(以便各个阶段的每一个或任何一个步骤都在时间上相对于其他各阶段的每一个或任何一个步骤交错)。
替代地或附加地,代替SPD A120和SPD B122在步骤314和320中传输DNS-SD/mDNS响应消息,这些响应消息可以是单播DNS-SD响应消息。在这样的情况下,混合代理100可以将在步骤312中发送的DNS-SD/mDNS查询消息中的问题条目中的QCLASS字段中的顶部比特设置为“单播响应”比特,SPD A120和SPD B122将把它们的响应消息格式化为单播DNS-SD响应消息。
替代地或附加地,代替步骤326的动作在更新阶段380之后执行,与上文描述为在步骤326中执行的动作类似的动作可以只基于来自LLQ设立阶段370的步骤310的ACK/回答消息中接收/传输的信息来执行(包括更新阶段380正在进行时)。换言之,SSD130可以连接到服务提供方主机,并且只基于在LLQ设立阶段370期间接收到的信息来接收/执行服务;这可以在更新阶段380正在进行的同时执行,或者在更新阶段380完成之后执行。替代地或附加地,代替步骤326的动作在更新阶段380完成之后执行,与上文描述为在步骤326中执行的动作类似的动作可以基于下列各项中的一项或多项在更新阶段380正在进行的同时执行:(a)来自LLQ设立阶段370的步骤310的ACK/回答消息中接收/传输的信息,以及(b)在更新阶段380期间已经接收到的信息。例如,SSD130可以在接收到在更新阶段380期间将传递到SSD130的全部更新信息之前连接到服务提供方主机;即,SSD130可以在在步骤324中接收到与SPD B122相关的信息之前或基本上同时连接到SPD A120。
替代地或附加地,混合代理100可以不维持数据库/缓存,并始终在步骤306中提供“空白”响应(即,不包括匹配答案的ACK/回答消息,标头中的ANCOUNT字段设置为零值);在这样的情况下,图3A-3B的方法的其余部分将基本如上文所描述的那样执行,只是将省略上文所描述的与数据库/缓存相关的动作。
如上文所描述的那样,混合代理100可以接收两个DNS-SD/mDNS响应消息(在步骤314和320中),并且可以基于这两个DNS-SD/mDNS响应消息传输两个单独的DNS-LLQ事件响应消息(在步骤318和324中)。换言之,如图3B所示,混合代理100可以被视为一旦接收并处理每一个DNS-LLQ事件响应消息,就传输DNS-LLQ响应消息。作为一种变型,代替为每一个所接收到的DNS-SD/mDNS响应消息传输单独的DNS-LLQ事件响应消息,混合代理100可以成批地处理所接收到的DNS-SD/mDNS响应消息。这可以由混合代理100以许多不同的方式执行;作为一个示例,如果在彼此的给定时程内接收到一组两个或更多DNS-SD/mDNS响应消息,则混合代理100可以生成并传输包括与该组全部DNS-SD/mDNS响应消息相关的信息(即,“答案”的资源记录)的单个DNS-LLQ事件响应消息。替代地或附加地,混合代理100可以使用计时器,并采取与上文参考混合代理100在图2的步骤202-210中所使用的计时器所描述的动作类似的动作。
图4-用于实现所述概念的示例性硬件
图4示出了可以被用来实现此处所描述的功能的示例性计算设备400。计算设备400可以包括通过系统总线410连接在一起的网络接口402、易失性存储器404、储存器406以及处理器408。
处理器408可以是物理组件,诸如可以包括被配置为或可配置为执行数据处理以及相关动作的集成逻辑器的集成电路。处理器408可以是或者可以包括例如单核或多核处理器、常规处理器、专用处理器、数字信号处理器(DSP)、多个微处理器、与DSP核相关联的一个或多个微处理器、控制器或微控制器、一个或多个专用集成电路(ASIC)、一个或多个现场可编程门阵列(FPGA)电路或系统级芯片(SOC)。
存储器设备404可以是或者可以包括诸如RAM(诸如DRAM或SRAM)之类的设备或用于易失性或非易失性数据储存的其他类型的设备。储存设备406可以是或者可以包括硬盘、闪存、磁光介质、光学介质、或其他类型的用于非易失性数据存储的设备。
网络接口402可以是例如通信端口、有线通信IC、无线通信IC、网卡或其他类型的用于通过有线或无线网络进行通信的设备。网络接口402可以能够使用诸如以太网、光纤、微波、xDSL(数字用户线)、IEEE Wi-Fi技术(例如802.11a、802.11b、802.11g、802.11n和/或802.11ac)、无线蜂窝技术(诸如GSM/EDGE、CDMA2000、UMTS、LTE、或LTE-A)之类的技术和/或任何其他任何其他合适的有线或无线通信技术进行通信。
图4的电子设备400的实例可以被配置成执行如由SSD130执行的此处所描述的任何特征或特征的任何组合。在这样的情况下,电子设备400可以连接到显示设备(诸如LCD、LED或OLED监视器),或可以包括显示设备(诸如基于LCD或LED/OLED技术的触摸屏),和/或可以连接到和/或包括输入设备,诸如键盘、鼠标、触摸板或触摸屏。存储器设备404和/或储存设备406可以存储指令,这些指令在由处理器408执行时导致处理器408执行(需要时,与网络接口402、存储器设备404、储存设备406、显示设备、输入设备一起)由SSD130执行的上文所描述的任何特征或特征的任何组合。替代地或附加地,此处所描述的由SSD130处理和/或生成的消息中的每一个或任何一个可以由处理器408处理/生成,并可以存储在存储器设备404中;此外,此处所描述的由SSD130接收和/或传输的消息中的每一个或任何一个可以通过网络接口402接收/传输。
图4的电子设备400的实例可以被配置成执行此处所描述的由服务提供方设备(例如SPD A120或SPD B122)执行的任何特征或特征的任何组合。在这样的实例中,电子设备400可以连接到(和/或包括)显示设备,和/或可以连接到(和/或包括)输入设备。替代地或附加地,在其中电子设备400是例如打印机、摄像机或其他类型的设备的实例中,电子设备400还可以包括适合于该类型设备的额外功能性组件(例如,打印机鼓和馈纸器,或CMOS传感器和透镜)。存储器设备404和/或储存设备406可以存储指令,这些指令在由处理器408执行时导致处理器408执行(与网络接口402、存储器设备404、存储设备406、显示设备、输入设备和/或其他额外的功能性组件一起)上文所描述的由SPD A120或SPD B122执行的任何特征或特征的任何组合。替代地或附加地,此处所描述的由SPD A120或SPD B122处理和/或生成的消息中的每一个或任何一个可以由处理器408处理/生成,并可以存储在存储器设备404中;此外,此处所描述的由SPD A120或SPD B122接收和/或传输的消息中的每一个或任何一个可以通过网络接口402接收/传输。
图4的电子设备400的实例可以被配置成执行此处所描述的由混合代理100执行的任何特征或特征的任何组合。存储器设备404和/或储存设备406可以存储指令,这些指令在由处理器408执行时导致处理器408执行(需要时,与网络接口402、存储器设备404、存储设备406、显示设备、输入设备一起)上文所描述的由混合代理100执行的任何特征或特征的任何组合。替代地或附加地,此处所描述的由混合代理100处理和/或生成的消息中的每一个或任何一个可以由处理器408处理/生成,并可以存储在存储器设备404和/或储存设备406中;此外,此处所描述的由混合代理100接收和/或传输的消息中的每一个或任何一个可以通过网络接口402接收/传输。在其中电子设备400还实现路由器功能的实例中,存储器设备404和/或储存设备406可以存储用于执行路由功能的信息(诸如路由表)。替代地或附加地,处理器408和/或网络接口402可以包括用于执行路由功能的专用组件(例如,处理器408和/或网络接口402中的专用DSP硬件)。
所述概念的其他应用
尽管前述的描述包括涉及单个服务搜索设备(SSD130)和两个服务提供设备(SPD A120和SPD B122)的示例,但是这只是为了描述方便;此处所描述的特征可以与搜索服务和/或提供服务的任意数量的设备一起使用,加以必要的变更。还应理解,单个设备,使用此处所描述的技术,可以既搜索服务,又提供服务。
替代地或附加地,虽然此处参考图1-4将特征描述为使用图1的示例性体系架构170来执行,但是,此处所描述的特征可以使用任何合适的网络体系架构和/或以任何合适的计算环境来实现,加以必要的变更。例如,虽然图1-4示出了SSD130通过因特网150与混合代理100进行通信,但是,此处所描述的特征也可以(加以必要的变更)用于其中在私有网络内的第一链路上操作的服务搜索设备可以发现(和接收/执行)由该同一个私有网络内的第二链路上的设备提供的服务的实例中。在这样的实例中,服务搜索设备和混合代理之间的通信可以不经过因特网,而是可以只经过私有网络内的链路。
虽然此处参考图1-4提供了关于特定服务(即,打印服务和NFS服务)的示例,但是,此处所描述的特征可以用于任何合适类型的服务的服务发现。
虽然此处参考诸如DNS、DNS-SD、mDNS以及DNS-LLQ之类的技术提供了示例,但是,此处所描述的特征也适用于(加以必要的变更)可以用于服务发现的任何技术。例如,此处所描述的特征可以与诸如通用即插即用(UPnP)/简单服务发现协议(SSDP)、服务位置协议(SLP)、Jini/River之类的技术和/或其他技术一起使用。替代地或附加地,虽然此处描述了具体的示例性消息格式(即,带有特定字段的特定DNS/DNS-SD/mDNS/DNS-LLQ消息等等),但是,这些消息格式应该理解为是说明性的,加以必要的变更,也可以使用包括相同的、类似的数据的任何其他消息(无论是否根据DNS/DNS-SD/mDNS/DNS-LLQ技术和/或其他技术,诸如但不限于SSDP或SLP格式化)。
虽然此处以特定组合描述了特征和元件,但是,每一个特征或元件都可以单独地使用或以任何组合使用,有或者没有其他特征和元件。例如,如上文参考图1-4所描述的每一个特征或元件可以单独地使用,没有其他特征和元件,或以不同组合使用,有或者没有其他特征和元件。上文参考图1-4所描述的方法和特征的子元素可以以任何任意顺序(包括同时)按任何组合或子组合来执行。
根据本公开的某些示范性实施例,图5和6每个均示出根据本公开的原理配置的电子系统的功能框图。该电子系统的功能框图可以通过硬件、软件、或软硬件的组合来实现,以实施本公开的原理。本领域技术人员将理解,图5和6所示的功能框可以组合或分为子框以实施本公开的原理。因此,这里的描述可支持这里描述的功能框的任何可行的组合、细分或进一步定义。
参照图5,提供了根据某些示范性实施例的电子系统500。电子系统500可包括第一接收单元510、第一发送单元520、第二接收单元530、第一生成单元540和第二发送单元550。
第一接收单元510可配置为从查询方主机接收第一查询消息。该第一查询消息可以请求关于链路上可用的服务实例的信息。
在示例中,第一查询消息是单播域名系统服务发现(DNS-SD)查询消息。该单播DNS-SD查询消息可包括指示对关于所述链路上可用的服务的信息的请求的问题。
第一发送单元520可配置为在所述链路上发送第二查询消息。
在示例中,电子系统500还可包括第二生成单元560。第二生成单元560可配置为基于所述单播DNS-SD查询消息,生成多播DNS(mDNS)查询消息。该mDNS查询消息用作所述第二查询消息以供第一发送单元520在所述链路上发送。
第二接收单元530可配置为接收响应于所述第二查询消息的一个或多个响应性消息。所述一个或多个响应性消息指示所述链路上可用的服务实例。
第一生成单元540可配置为基于所述一个或多个响应性消息,生成响应消息。该响应消息可指示所述链路上可用的服务实例。然后,第二发送单元550可以将该响应消息发送到查询方主机。
在示例中,所述响应消息可以是基于所述一个或多个响应性消息生成的单播DNS-SD响应消息。该单播DNS-SD响应消息可以由第二发送单元550发送到查询方主机。
在示例中,第二生成单元560还可包括第二转换单元570。在生成所述mDNS查询消息时,第二转换单元570把单播DNS-SD查询消息中的全局域名转换到mDNS查询消息中的“.local”域名。第一生成单元540还可包括第一转换单元580。在生成所述响应消息时,第一转换单元580把所述一个或多个响应性消息中的“.local”域名转换到包括在所述响应消息中的全局域名。
现在参照图6,提供根据另一些示例性实施例的电子系统600。电子系统600可包括:第一和第二接收单元610、640;第一、第二和第三发送单元620、630、660;以及第一生成单元650。
第一接收单元610配置为从查询方主机接收设立DNS长寿命查询的请求。所述长寿命查询可请求关于链路上可用的服务的信息。
在示例中,所述请求可以是DNS-SD/DNS-LLQ初始请求消息。所述初始请求消息可以包括问题字段,该问题字段指定针对关于链路上可用的服务的信息的问题。
第一发送单元620配置为基于数据库中储存的信息,将初始回答消息发送到查询方主机。
在示例中,系统600还可包括识别单元612和第二生成单元614。识别单元612配置为从所储存的数据库识别响应于所述问题的信息。第二生成单元614配置为生成包括所识别的响应于所述问题的信息的DNS-SD/DNS-LLQ ACK/回答消息。所述ACK/回答消息可用作所述初始回答消息以供所述第一发送单元620发送到查询方主机。
第二发送单元630可配置为在所述链路上发送查询消息以获得关于所述链路上可用的服务的信息。
在示例中,系统600还可包括第三生成单元622。第三生成单元622配置为基于所述初始请求消息中的问题,生成DNS-SD/mDNS查询消息。该DNS-SD/mDNS查询消息可以用作所述查询消息以供所述第二发送单元630在所述链路上发送。
第二接收单元640配置为接收响应于所述链路上的查询消息的一个或多个响应性消息。
在示例中,第二接收单元640可接收响应于所述DNS-SD/mDNS查询消息的一个或多个DNS-SD/mDNS响应消息。
第一生成单元650配置为基于所述一个或多个响应性消息,生成更新消息。然后,第三发送单元660可以将所述更新消息发送到查询方主机。
在示例中,电子系统600还可包括分析单元642,分析单元642配置为分析所接收的所述一个或多个DNS-SD/mDNS响应消息以判断所接收的所述一个或多个DNS-SD/mDNS响应消息是否包括与所述问题匹配并且未包括在所述ACK/回答消息中的信息。如果所接收的所述一个或多个DNS-SD/mDNS响应消息包括与所述问题匹配并且未包括在所述ACK/回答消息中的信息,则所述第一生成单元650生成包括与所述问题匹配并且未包括在所述ACK/回答消息中的信息的单播DNS-LLQ事件响应消息,并且所述第三发送单元660将所述事件响应消息发送到查询方主机。

Claims (20)

1.一种在电子设备中使用的方法,所述方法包括:
从查询方主机接收第一查询消息,所述第一查询消息请求关于在链路上可用的服务实例的信息;
在所述链路上发送第二查询消息;
接收响应于所述第二查询消息的一个或多个消息,其中所述一个或多个响应性消息指示在所述链路上可用的服务实例;
基于所述一个或多个响应性消息,生成响应消息,其中所述响应消息指示在所述链路上可用的所述服务实例;以及
将所述响应消息发送到所述查询方主机。
2.如权利要求1所述的方法,其中,接收所述第一查询消息包括从查询方主机接收单播域名系统服务发现DNS-SD查询消息,其中所述DNS-SD查询消息包括指示对关于所述链路上可用的服务的信息的请求的问题。
3.如权利要求2所述的方法,其中,发送所述第二查询消息包括:
基于所述单播DNS-SD查询消息生成多播DNS mDNS查询消息;以及
在所述链路上发送所述mDNS查询消息。
4.如权利要求3所述的方法,其中,生成和发送所述响应消息包括:
基于所述一个或多个响应性消息生成单播DNS-SD响应消息;以及
将所述单播DNS-SD响应消息发送到所述查询方主机。
5.如权利要求3所述的方法,
其中,生成所述mDNS查询消息包括从所述查询消息中的全局域名转换到所述mDNS查询消息中的“.local”域名;且
其中,生成所述响应消息包括从所述一个或多个响应性消息中的“.local”域名转换到包括在所述响应消息中的全局域名。
6.一种在电子设备中使用的方法,所述方法包括:
从查询方主机接收设立DNS长寿命查询的请求,其中所述长寿命查询请求关于在链路上可用的服务的信息;
基于存储在数据库中的信息,将初始回答消息发送到所述查询方主机;
在所述链路上发送查询消息以获得关于所述链路上可用的服务的信息;
接收响应于所述链路上的所述查询消息的一个或多个消息;
基于所述一个或多个响应性消息生成更新消息;以及
将所述更新消息发送到所述查询方主机。
7.如权利要求6所述的方法,其中,接收所述请求包括从所述查询方主机接收DNS-SD/DNS-LLQ初始请求消息,其中所述初始请求消息包括问题字段,并且其中所述问题字段指定针对关于链路上可用的服务的信息的问题。
8.如权利要求7所述的方法,其中,发送所述初始回答消息包括:
从存储的数据库识别响应于所述问题的信息;
生成包括所识别的响应于所述问题的信息的DNS-SD/DNS-LLQACK/回答消息;以及
将所述ACK/回答消息发送到所述查询方主机。
9.如权利要求8所述的方法,
其中,在所述链路上发送所述查询消息包括:
基于所述初始请求消息中的所述问题,生成DNS-SD/mDNS查询消息,以及
在所述链路上发送所述DNS-SD/mDNS查询消息;且
其中,接收响应于所述查询消息的所述一个或多个消息包括接收响应于所述DNS-SD/mDNS查询消息的一个或多个DNS-SD/mDNS响应消息。
10.如权利要求9所述的方法,其中,生成所述更新消息和将所述更新消息发送到所述查询方主机包括:
分析所接收的所述一个或多个DNS-SD/mDNS响应消息以判断所接收的所述一个或多个DNS-SD/mDNS响应消息是否包括与所述问题匹配并且未包括在所述ACK/回答消息中的信息;以及
如果所接收的所述一个或多个DNS-SD/mDNS响应消息包括与所述问题匹配并且未包括在所述ACK/回答消息中的信息,则
生成包括与所述问题匹配并且未包括在所述ACK/回答消息中的信息的单播DNS-LLQ事件响应消息,以及
将所述事件响应消息发送到所述查询方主机。
11.一种系统,包括:
电子设备,包括处理器和存储器;
其中,所述电子设备被配置为,
从查询方主机接收第一查询消息,所述第一查询消息请求关于链路上可用的服务实例的信息;
在所述链路上发送第二查询消息;
接收响应于所述第二查询消息的一个或多个消息,其中所述一个或多个响应性消息指示所述链路上可用的服务实例;
基于所述一个或多个响应性消息,生成响应消息,其中所述响应消息指示所述链路上可用的所述服务实例;以及
将所述响应消息发送到所述查询方主机。
12.如权利要求11所述的系统,其中,在接收所述第一查询消息时,所述系统被配置为从查询方主机接收单播域名系统服务发现DNS-SD查询消息,其中所述DNS-SD查询消息包括指示对关于所述链路上可用的服务的信息的请求的问题。
13.如权利要求12所述的系统,其中,在发送所述第二查询消息时,所述系统被配置为:
基于所述单播DNS-SD查询消息,生成多播DNS mDNS查询消息;以及
在所述链路上发送所述mDNS查询消息。
14.如权利要求13所述的系统,其中,在生成和发送所述响应消息时,所述系统被配置为:
基于所述一个或多个响应性消息,生成单播DNS-SD响应消息;以及
将所述单播DNS-SD响应消息发送到所述查询方主机。
15.如权利要求13所述的系统,
其中,在生成所述mDNS查询消息时,所述系统被配置为把所述查询消息中的全局域名转换到所述mDNS查询消息中的“.local”域名;且
其中,在生成所述响应消息时,所述系统被配置为把所述一个或多个响应性消息中的“.local”域名转换到包括在所述响应消息中的全局域名。
16.一种系统,包括:
电子设备,包括处理器和存储器;
其中,所述电子设备被配置为,
从查询方主机接收设立DNS长寿命查询的请求,其中所述长寿命查询请求关于链路上可用的服务的信息;
基于数据库中储存的信息,将初始回答消息发送到所述查询方主机;
在所述链路上发送查询消息以获得关于所述链路上可用的服务的信息;
接收响应于所述链路上的所述查询消息的一个或多个消息;
基于所述一个或多个响应性消息,生成更新消息;以及
将所述更新消息发送到所述查询方主机。
17.如权利要求16所述的系统,其中,在接收所述请求时,所述系统被配置为从所述查询方主机接收DNS-SD/DNS-LLQ初始请求消息,其中所述初始请求消息包括问题字段,其中所述问题字段指定针对关于链路上可用的服务的信息的问题。
18.如权利要求17所述的系统,其中,在传输所述初始回答消息时,所述系统被配置为:
从所储存的数据库识别响应于所述问题的信息;
生成包括所识别的响应于所述问题的信息的DNS-SD/DNS-LLQACK/回答消息;以及
将所述ACK/回答消息发送到所述查询方主机。
19.如权利要求18所述的系统,
其中,在所述链路上发送所述查询消息时,所述系统被配置为,
基于所述初始请求消息中的所述问题,生成DNS-SD/mDNS查询消息,以及
在所述链路上发送所述DNS-SD/mDNS查询消息;且
其中,在接收响应于所述查询消息的所述一个或多个消息时,所述系统被配置为接收响应于所述DNS-SD/mDNS查询消息的一个或多个DNS-SD/mDNS响应消息。
20.如权利要求19所述的系统,其中,在生成所述更新消息和将所述更新消息发送到所述查询方主机时,所述系统被配置为:
分析所接收的所述一个或多个DNS-SD/mDNS响应消息以判断所接收的所述一个或多个DNS-SD/mDNS响应消息是否包括与所述问题匹配并且未包括在所述ACK/回答消息中的信息;以及
如果所接收的所述一个或多个DNS-SD/mDNS响应消息包括与所述问题匹配并且未包括在所述ACK/回答消息中的信息,则
生成包括与所述问题匹配并且未包括在所述ACK/回答消息中的信息的单播DNS-LLQ事件响应消息,以及
将所述事件响应消息发送到所述查询方主机。
CN201410032842.5A 2013-01-25 2014-01-24 基于混合单播/多播dns的服务发现 Active CN103973830B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361757036P 2013-01-25 2013-01-25
US61/757,036 2013-01-25

Publications (2)

Publication Number Publication Date
CN103973830A true CN103973830A (zh) 2014-08-06
CN103973830B CN103973830B (zh) 2019-05-10

Family

ID=51163715

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410032842.5A Active CN103973830B (zh) 2013-01-25 2014-01-24 基于混合单播/多播dns的服务发现

Country Status (3)

Country Link
US (1) US10284659B2 (zh)
CN (1) CN103973830B (zh)
DE (1) DE102014201188A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107852430A (zh) * 2015-07-06 2018-03-27 康维达无线有限责任公司 物联网的广域服务发现
CN110087236A (zh) * 2018-01-25 2019-08-02 苹果公司 用于通过无线网络与匿名主机建立安全通信会话的协议
CN110875961A (zh) * 2018-08-31 2020-03-10 阿里巴巴集团控股有限公司 数据服务的处理方法、装置及系统
CN114503532A (zh) * 2019-10-01 2022-05-13 佩里内股份有限公司 用于识别在具有物联网网络用户的网络中的网络服务的方法
CN115190106A (zh) * 2022-06-17 2022-10-14 苏州迈科网络安全技术股份有限公司 一种基于mdns协议的设备感知方法
US11516302B2 (en) 2020-06-16 2022-11-29 Hewlett Packard Enterprise Development Lp Network service discovery

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103891247B (zh) * 2011-09-20 2017-02-15 西门子瑞士有限公司 用于基于域名系统的设备和目标发现的方法和系统
US9130859B1 (en) * 2013-03-29 2015-09-08 Juniper Networks, Inc. Methods and apparatus for inter-virtual local area network multicast services
US9917905B2 (en) 2013-05-13 2018-03-13 International Business Machines Corporation Location-based domain name system service discovery
US9544190B2 (en) * 2013-06-28 2017-01-10 Avaya Inc. Application configuration using DNS-based service discovery
DE102014207800B4 (de) * 2014-04-25 2023-06-01 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Vorrichtung zum Reduzieren einer Netzwerklast bei Multicast- und Broadcast-Kommunikation
US9906605B2 (en) * 2014-05-23 2018-02-27 Qualcomm Connected Experiences, Inc. Enhanced DNS-based service discovery in an internet of things (IoT) environment
US9712485B2 (en) 2014-07-30 2017-07-18 Cisco Technology, Inc. Dynamic DNS-based service discovery
US10057208B2 (en) * 2014-10-31 2018-08-21 Cisco Technology, Inc. Visibility control for domain name system service discovery
US10021065B2 (en) 2015-01-27 2018-07-10 Anchorfree Inc. System and method for suppressing DNS requests
US9602411B2 (en) * 2015-01-27 2017-03-21 Anchorfree Inc. System and method for suppressing DNS requests
US9654564B2 (en) 2015-06-24 2017-05-16 Qualcomm Incorporated Controlling an IoT device using a remote control device via a remote control proxy device
US9749420B2 (en) * 2015-06-24 2017-08-29 Qualcomm Incorporated Controlling an IoT device using a remote control device via an infrastructure device
WO2016209019A1 (ko) * 2015-06-24 2016-12-29 엘지전자 주식회사 무선 통신 시스템에서 mdns를 이용하여 디스커버리를 수행하는 방법 및 장치
US20170025861A1 (en) * 2015-07-23 2017-01-26 General Electric Company Detecting the presence or absence of a user
US10148769B2 (en) * 2015-09-11 2018-12-04 Blackberry Limited Pre-association discovery of services
US10873637B2 (en) 2016-05-02 2020-12-22 Microsoft Technology Licensing, Llc Controlling service discovery and activation among peers
WO2018142526A1 (ja) * 2017-02-02 2018-08-09 三菱電機株式会社 中継装置、通信システム、及び通信方法
EP3603204A1 (en) * 2017-03-20 2020-02-05 Motorola Mobility LLC Accessing a local data network via a mobile data connection
CN109617935B (zh) * 2017-09-20 2021-10-15 京瓷办公信息系统株式会社 信息处理装置和非暂时性的计算机可以读取的记录媒体
CN109586941B (zh) * 2017-09-29 2021-11-26 华为技术有限公司 一种基于服务化架构的业务处理方法及装置
US10404766B2 (en) * 2017-12-07 2019-09-03 Mcom Media Communications Dmcc Managing content casting
US10652200B2 (en) * 2017-12-12 2020-05-12 Cisco Technology, Inc. Systems and methods for multicast domain name system redundant query suppression
US10812448B2 (en) * 2018-01-26 2020-10-20 Citrix Systems, Inc. Split-tunneling for clientless SSL-VPN sessions with zero-configuration
US10375016B1 (en) * 2018-04-02 2019-08-06 Cloudflare, Inc. Managing domain name system (DNS) record cache across multiple DNS servers using multicast communication
US10742751B2 (en) * 2018-10-24 2020-08-11 Cisco Technology, Inc. User based mDNS service discovery
WO2020204907A1 (en) 2019-04-01 2020-10-08 Google Llc Adaptive management of casting requests and/or user inputs at a rechargeable device
KR20200119945A (ko) * 2019-04-10 2020-10-21 삼성전자주식회사 저 지연 dns 처리를 지원하는 전자 장치
US11165743B2 (en) * 2019-09-17 2021-11-02 Bullhead Innovations Ltd. Modifying multicast domain name service (MDNS) responses to control assignment of discoverable resource providing devices available on network
US11412442B2 (en) * 2020-04-30 2022-08-09 Cisco Technology, Inc. Predictive service advertisements by service discovery gateway
US11704146B2 (en) * 2020-06-19 2023-07-18 Red Hat, Inc. Network transparency on virtual machines using socket impersonation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101069159A (zh) * 2005-12-28 2007-11-07 松下电工株式会社 用于发现服务并与该服务对话的系统和方法
CN101473597A (zh) * 2006-06-08 2009-07-01 三星电子株式会社 远程访问通用即插即用装置的方法和系统
CN101611609A (zh) * 2006-12-28 2009-12-23 艾利森电话股份有限公司 用于服务发现的方法和装置
CN102449954A (zh) * 2009-05-26 2012-05-09 阿尔卡特朗讯公司 用于将单播客户机请求转换为多播客户机请求的系统和方法
WO2012085220A1 (en) * 2010-12-23 2012-06-28 Koninklijke Kpn N.V. Method, device, system and network architecture for handling a service request

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505230B1 (en) * 1999-05-14 2003-01-07 Pivia, Inc. Client-server independent intermediary mechanism
US20030140119A1 (en) * 2002-01-18 2003-07-24 International Business Machines Corporation Dynamic service discovery
US20070023384A1 (en) * 2005-08-01 2007-02-01 Janeczek James D Container and blow mold assembly
US7818140B2 (en) * 2008-01-29 2010-10-19 Zf Friedrichshafen Ag System for estimating a vehicle mass
US8310950B2 (en) 2009-12-28 2012-11-13 Oracle America, Inc. Self-configuring networking devices for providing services in a nework
CN107197419B (zh) 2011-03-03 2020-11-24 Iot控股公司 用于接入隶属于所发现的服务供应商的服务的方法和装置
US9009250B2 (en) * 2011-12-07 2015-04-14 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US20130179489A1 (en) * 2012-01-10 2013-07-11 Marcus Isaac Daley Accelerating web services applications through caching
US20140089468A1 (en) * 2012-09-27 2014-03-27 Donald Joong Request-agnostic caching for a data resource collection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101069159A (zh) * 2005-12-28 2007-11-07 松下电工株式会社 用于发现服务并与该服务对话的系统和方法
CN101473597A (zh) * 2006-06-08 2009-07-01 三星电子株式会社 远程访问通用即插即用装置的方法和系统
CN101611609A (zh) * 2006-12-28 2009-12-23 艾利森电话股份有限公司 用于服务发现的方法和装置
CN102449954A (zh) * 2009-05-26 2012-05-09 阿尔卡特朗讯公司 用于将单播客户机请求转换为多播客户机请求的系统和方法
WO2012085220A1 (en) * 2010-12-23 2012-06-28 Koninklijke Kpn N.V. Method, device, system and network architecture for handling a service request

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107852430A (zh) * 2015-07-06 2018-03-27 康维达无线有限责任公司 物联网的广域服务发现
CN107852430B (zh) * 2015-07-06 2021-08-03 康维达无线有限责任公司 用于在局域网中形成网关的设备以及计算机可读存储介质
CN110087236A (zh) * 2018-01-25 2019-08-02 苹果公司 用于通过无线网络与匿名主机建立安全通信会话的协议
CN110087236B (zh) * 2018-01-25 2022-10-18 苹果公司 用于通过无线网络与匿名主机建立安全通信会话的协议
CN110875961A (zh) * 2018-08-31 2020-03-10 阿里巴巴集团控股有限公司 数据服务的处理方法、装置及系统
CN114503532A (zh) * 2019-10-01 2022-05-13 佩里内股份有限公司 用于识别在具有物联网网络用户的网络中的网络服务的方法
US11516302B2 (en) 2020-06-16 2022-11-29 Hewlett Packard Enterprise Development Lp Network service discovery
CN115190106A (zh) * 2022-06-17 2022-10-14 苏州迈科网络安全技术股份有限公司 一种基于mdns协议的设备感知方法

Also Published As

Publication number Publication date
US10284659B2 (en) 2019-05-07
DE102014201188A1 (de) 2014-07-31
US20140214958A1 (en) 2014-07-31
CN103973830B (zh) 2019-05-10

Similar Documents

Publication Publication Date Title
CN103973830A (zh) 基于混合单播/多播dns的服务发现
EP3320671B1 (en) Wide area service discovery for internet of things
US10044816B2 (en) Location-based domain name system service discovery
US9350814B2 (en) Internet protocol connectivity over a service-oriented architecture bus
Jara et al. Glowbal IP: An adaptive and transparent IPv6 integration in the Internet of Things
Jara et al. Light-weight multicast DNS and DNS-SD (lmDNS-SD): IPv6-based resource and service discovery for the web of things
US9071572B2 (en) Method, apparatus and system for addressing resources
EP2922321B1 (en) 6lowpan network-based service discovery
Ishaq et al. Facilitating sensor deployment, discovery and resource access using embedded web services
US10798779B2 (en) Enhanced CoAP group communications with selective responses
WO2017023998A1 (en) Mechanisms for ad hoc service discovery
TW200924462A (en) System and method for connection of hosts behind NATs
Shelby et al. CoRE Resource Directory; draft-ietf-core-resource-directory-02
Yan et al. Is DNS ready for ubiquitous Internet of Things?
JP2005295217A (ja) 通信装置、名前解決方法およびプログラム
Kafle et al. ID-based communication for realizing IoT and M2M in future heterogeneous mobile networks
US20210274025A1 (en) Communication protocol discover method in constrained application protocol (coap)
KR101710033B1 (ko) 유동 ip기기 간 상시 연결성 유지 방법 및 이를 위한 장치
US11070513B2 (en) DNS-based method of transmitting data
Mahyoub et al. An optimized discovery mechanism for smart objects in IoT
JP2011071870A (ja) 通信装置、通信システムおよび通信方法
Stolikj et al. Nomadic service discovery in smart cities
Bormann et al. CoRE Z. Shelby Internet-Draft ARM Intended status: Standards Track M. Koster Expires: January 3, 2019 SmartThings
Lu et al. Multicast DNS in Wireless Ad-hoc Networks of Low-resource Devices
Curtis Analysis of computer utilization in the classroom

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant