在我看来,DNS的许多问题,特别是安全问题,都是通过UDP实现DNS的根本原因; 例如,响应者不必是他所说的那个人.
我不知道mDNS协议的细节(我假设它比DNS更新),也许它在应用程序级别处理这些问题.任何人都可以为我阐明这一点吗?
mDNS中的"m"代表"多播".mDNS查询几乎是本地子网的常规DNS查询多播(也称为广播).子网上的每个主机都接收所有mDNS查询数据包,并响应其主机名.由于无法进行TCP广播,因此无法通过TCP实现mDNS.
这里有一个更基本的观点,mDNS已经完全不安全了.正如您所指出的,任何人都可以回复任何查询,因此您几乎必须信任网络上的所有主机.切换到TCP(如果可以)不会解决此问题.
Zeroconf不关心安全性; 安全性应该在上面的层中实现.
TCP不会有太大变化.这些问题必须以加密方式解决.