refs:
http://berryfl.diandian.com/post/2012-02-04/15295674
用mDNS解析名字
局域网中,我们可能习惯用IP地址指定主机。但是,如果使用DHCP分配IP地址,我们就很难事先知道某台主机的IP地址(当然通过配置DHCP服务器可以给某个MAC地址的机器总是分配同一个IP地址,但不是每个局域网我们都能控制),这对局域网内自动化影响很大。使用名字而不是IP地址去指定主机可以解决这个问题。
使用名字涉及到解析名字,毕竟主机最终还是通过IP协议进行通信。Windows时代的做法是NetBIOS,而现代苹果的做法是mDNS。mDNS的原理不复杂,想解析名字的主机在局域网里发一个组播的DNS查询,刚好有这个名字的主机收到后响应。整个过程与ARP类似,但是mDNS是在IP层面,而且mDNS协议设计得很好,可以很自然地看成是DNS协议的补充(报文格式和DNS报文几乎一样)。
具体怎么使用mDNS呢,只需要在主机名后加.local即可,如上图所示。Mac OS X中,默认就会启动mDNSResponder进程,响应mDNS请求;Linux中,大部分发行版也是开箱即可用mDNS,它需要avahi守护进程;Windows中,默认似乎没有响应mDNS的进程,但只要安装iTunes,就会有mDNSResponder.exe。