mDNS简介

今天在用lsof看有哪些使用了UDP,看到了mDNS,就挺好奇的,想看看这是啥玩应。

mDNS,全名较组播 DNS(mulicast DNS),DNS我们都很熟悉了,当我们访问一个域名时,DNS服务器会帮我们进行解析,并找到目的服务的IP。那么这个mDNS是用来干什么的呢?

在局域网内,我们知道主机间的通信必须是知道对方IP通信的。但有时,局域网内的主机IP地址的分配是使用DHCP分配的,可能无法实时感知对方IP。那么mDNS就是解决这个问题的了。

对于任何一个开启mDNS服务的主机,当加入局域网之后,就会向mDNS服务注册自己的信息,告诉他们我提供什么服务,我自己的IP是什么。

当有一台新的设备加入后,如果它也开启了mDNS服务,那么就会询问局域网内其他提供mDNS服务的主机询问是否有对应服务,上面已向自己的mDNS服务注册信息的mDNS会告诉我提供你要的东西,并把相应信息返回给请求mDNS.

目前使用mDNS的比较多,APPLE设备都具备mDNS服务。微信小程序局域网通信也同样使用mDNS协议发现局域网的设备IP。

mDNS协议是基于UDP通信的协议,使用的是组播地址,从上图中也可以看得, 224.0.0.251,端口默认是5353。但是如果搜索5353端口是搜不到的。

参考资料:

mDNS原理的简单理解

局域网通信

04-三层技术-IP业务配置指导

--------EOF---------
微信分享/微信扫码阅读