如何DNS服务发现,多播DNS和Bonjour相关?

我有点迷失在术语中。 我想开始使用Bonjour 。 作为第一步,我试图find一个简单的方法来使用它。 我想,我可能会从命令行调用Bonjour来注册和发现服务

当我问别人怎么做时,我被告知有关mDNS(适用于Mac和Linux,但不适用于Windows)。 人们还告诉我,我可以使用“dns-sd”(在Windows上工作)。 我被告知“dns-sd”只是mDNS的别名。

但! 后来我发现DNS服务发现和多点传送DNS是两个不同的东西(它们是兼容的,特别是在一起使用时特别好,但它们不需要彼此)。

而且,在我看来,mDNS和DNS-SD是Bonjour的三个主要组成部分中的两个。 这样对吗? 我可以在没有Bonjour的情况下使用吗? 在我的Windows 7上,我安装了Bonjour,并且能够在命令行中运行“dns-sd”。 但是我无法运行mDNS。

所以,我现在有点困惑。 有人可以请求澄清一下情况吗?

我只是在这里回答你以前的问题。

我想这个答案涵盖了你在这里提出的问题,但以防万一:

Bonjour由三部分组成:
1. IPv4(和IPv6)链路本地寻址(IPv4中的169.254.0.0/16地址)。
2.多播名称parsing(通过mDNS协议)。 这使得特设或隔离的局域网内的主机能够自动将主机名映射到相互之间的IP地址,而不需要传统的单播DNS服务器。
3. DNS服务发现,它允许您发现给定types的服务的名称和详细信息。 在本地networking上,DNS服务发现通常也通过mDNS完成,但通过“广域Bonjour”,您实际上可以通过单播DNS服务器为整个域进行DNS服务发现。

使用dns-sd工具,您可以完成第2部分和第3部分所需的所有查询/查找,我在回答您的其他问题时给出了示例。

我认为你的困惑的一部分来自这样的事实,即命令行工具与协议具有相同的名称。 mDNS是多播域名服务协议的名称,但它也是发送mDNS协议查询和接收响应的常用命令行工具的旧名称。 “dns-sd”是进行DNS服务发现的最常用命令行工具的当前名称,也是进行多播名称parsing查找的名称。 这两个命令行工具通常都会调用由“mDNSResponder”后台进程/服务/守护程序处理的API。