草庐IT

windows - Windows 上的 LLMNR vs. Zeroconf vs. Bonjour

coder 2023-11-10 原文

Link-Local Multicast Name Resolution (LLMNR)是一项基于多播 DNS 的服务发现的 Microsoft 技术。它与 Bonjour/Zeroconf 兼容吗?如果有,API 在哪里?服务发现,我认为,以某种方式被纳入普通 DNS 解析(gethostbyname()?),但是服务广告呢?

最佳答案

LLMNR 解决了 mDNS 解决的一小部分问题,如 this post 中所述.简而言之,它与 Bonjour 不兼容。

这是该帖子的内容,以防 archive.org 决定删除该页面:

From: Marc Krochmal Date: Fri, 16 Apr 2004 08:54:54 -0700 Hi Tom,

I was reading the August 2003 article in Linux Magazine (http://www.linux-mag.com/2003-08/zeroconf_01.html) on Zeroconf environments. Within the article they mention that Link Local Multicast Name Resolution was adopted by the IETF and that more or less mDNS was thrown out on its ear, even though it uses existing standards instead of creating an all new protocol. One of the reasons they mentioned or implied was that LLMNR was more advanced than mDNS was 'includes provisions to keep link-local addresses from accidentally being propagated into the greater DNS space' Based on research I have been doing into Rendezvous environments this is incorrect (is it not??) since mDNS is aware that domains ending with '.local' are available only on the local link and that a host will only ever try and resolve a domain name ending with '.local' on the local link. So have i misread this article or the mDNS white-paper or is there some truth in this??

LLMNR 远不如 mDNS 先进。 LLMNR 解决了一个非常小的问题 问题。当名称服务器时,它提供非常基本的名称解析 配置错误或返回错误时。

mDNS 提供分布式通知和缓存一致性协议(protocol) 这有助于临时的基于 DNS 的服务发现。 mDNS 还提供 当主机名以“.local”结尾时可靠的本地名称解析, 无论 DNS 服务器的状态如何。 LLMNR 不是服务 发现协议(protocol)。您可以说 mDNS 是 LLMNR 的超集。

经过一年半的 mDNS 操作经验,我们有 从未见过外部链接本地地址的意外泄漏 本地链接。

IETF DNSEXT 工作组中有很多人希望 查看 LLMNR 与 mDNS 的互操作。事实上,有些人包括 Paul Vixie 说 LLMNR 应该被淘汰并被替换 与 mDNS。你可以在 namedroppers 中自己阅读 文件。

http://ops.ietf.org/lists/namedroppers/namedroppers.2004/

Another thing alluded to by this article was that Microsoft is pushing for LLMNR and as far as I recall this is something provided by Service Pack 2 in Win XP.

我不知道 Service Pack 2 中包含 LLMNR。

Is this not going to take us back to a NetBIOS v AppleTalk days where instead of working towards a singular standard we now have two for name resolution in Zeroconf environments???

这很难预测。如果 Rendezvous 继续获得 势头,它很容易成为 Zeroconf 的标准 环境。今天几乎每台支持网络的打印机都出货 与会合。 Rendezvous 还可以在 Mac 上启用 iTunes 音乐共享 和 Windows 可以让你潜在地与许多人分享音乐 零配置的家中其他设备。

Finally on a different track, the mDNS responder provided by Apple for OS X handles traditional DNS responses as well as well as link local mDNS. Is the mDNS responder for Windows and Linux boxes intended to replace the respective traditional DNS handlers provided by the Windows OS and Linux OS or does mDNS work in conjunction with their existing DNS handling (i.e. On a windows box with an mDNS Responder installed, if a DNS Query (for a global domain) needs to be sent, will the OS now use the mDNS responder to handle the process or will it use its 'out-of-the-box' DNS responder ???)

尽管 mDNSResponder 可以用来代替所有的 DNS 查询 处理,它可能不会。 Windows 的 namespace 提供程序 包含在 mDNSResonder 项目中仅适用于以结尾的名称 用“.local”。

最好的问候,

-马克

关于windows - Windows 上的 LLMNR vs. Zeroconf vs. Bonjour,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11741062/

有关windows - Windows 上的 LLMNR vs. Zeroconf vs. Bonjour的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  3. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  4. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  5. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  6. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  7. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  8. ruby-on-rails - Ruby - 如何从 ruby​​ 上的 .pfx 文件中提取公钥、rsa 私钥和 CA key - 2

    我有一个.pfx格式的证书,我需要使用ruby​​提取公共(public)、私有(private)和CA证书。使用shell我可以这样做:#ExtractPublicKey(askforpassword)opensslpkcs12-infile.pfx-outfile_public.pem-clcerts-nokeys#ExtractCertificateAuthorityKey(askforpassword)opensslpkcs12-infile.pfx-outfile_ca.pem-cacerts-nokeys#ExtractPrivateKey(askforpassword)o

  9. 带有 attr_accessor 的类上的 Ruby instance_eval - 2

    我了解instance_eval和class_eval之间的基本区别。我在玩弄时发现的是一些涉及attr_accessor的奇怪东西。这是一个例子:A=Class.newA.class_eval{attr_accessor:x}a=A.newa.x="x"a.x=>"x"#...expectedA.instance_eval{attr_accessor:y}A.y="y"=>NoMethodError:undefinedmethod`y='forA:Classa.y="y"=>"y"#WHATTT?这是怎么回事:instance_eval没有访问我们的A类(对象)然后它实际上将它添加到

  10. ruby-on-rails - rails 上的 ruby : radio buttons for collection select - 2

    我有一个集合选择:此方法的单选按钮是什么?谢谢 最佳答案 Rails3中没有这样的助手。在Rails4中,它是collection_radio_buttons. 关于ruby-on-rails-rails上的ruby:radiobuttonsforcollectionselect,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/18525986/

随机推荐