mDNS 协议​

mDNS 协议​

Are you an LLM? You can read better optimized documentation at /public/computer-science\computer-network\protocols\application-layer-protocol\dns\mdns.md for this page in Markdown formatmDNS 协议 ​Copy page1. 什么是 mDNS 协议 ​在计算机网络中,组播 DNS(multicast DNS,mDNS)协议在没有 DNS 服务器的小型网络中,将主机名解析为 IP 地址。它是一种零配置服务,使用与单播域名服务(DNS)基本相同的编程接口、数据包格式和操作语义。它被设计为作为一个独立的协议或与标准的 DNS 服务器兼容。[1]

它使用 IP 组播 UDP 数据包,并由苹果 Bonjour 和开源 Avahi 软件包实现,包括在大多数 Linux 发行版中。mDNS 可以与 DNS-SD 一起工作。[2]

每个进入局域网的主机,如果开启了 mDNS 服务的话,都会向局域网内的所有主机组播消息,自身的名称信息和 IP 地址。然后其他也有该服务的主机就会响应,也会发送自身名称信息和 IP 地址。

mDNS 与 DNS-SD

mDNS 协议规定了消息的基本格式和消息的收发的基本顺序,DNS-SD 协议在这基础上,首先对实例名,服务名称,域名长度或顺序等作出了具体的定义,然后规定了如何方便地进行服务发现和描述。

详情阅读 DNS-SD 协议。

2. 为什么使用 mDNS ​在局域网中,设备和设备之前相互通信需要知道对方的 IP 地址的。大多数情况,设备的 IP 不是静态 IP 地址,而是通过 DHCP 协议动态分配的 IP 地址,要进行通信,就必须知道对方的 IP 地址。

当我们不知道 IP 地址时,就无法直接和局域网的目标通信,mDNS 的作用就是解决这个问题。mDNS 可以像 DNS 一样通过名称得到目标主机的 IP 地址,但是这个名称必须是 .local 结尾的名称。

3. 消息格式 ​mDNS 遵循了 DNS 协议规范,使用现有的 DNS 信息结构、名语法和资源记录类型。并且没有指定新的操作代码或响应代码。

mDNS 消息是一个组播 UDP 数据包,使用以下地址发送:

IPv4:224.0.0.251IPv6:FF02::FBUDP 端口:5353当使用以太网帧时,标准的 IP 组播 MAC 地址 01:00:5E:00:00:FB(IPv4)或 33:33:00:00:00:FB(IPv6)。有效载荷结构基于单播 DNS 数据包格式,由两部分组成——头和数据。

报头与单播 DNS 中的报头相同,数据部分的子部分也相同:查询、回答、授权 DNS 服务器和附加记录。每个子部分的记录数与头中相应的 *COUNT 字段的值一致。

3.1 记录格式 ​记录类别作用A 记录主机名称和 IPV4 之间的对应关系AAAA 记录主机名称和 IPV6 之间的对应关系SRV 记录标识服务实例名称对应哪一个主机名和端口号PTR 记录标识服务实例名称和服务类型之间的对应关系TXT 记录对某个服务实例提供的附加信息,按照 K/V 形式给出ANY 记录任意类型,一般用于查询中https://datatracker.ietf.org/doc/html/rfc6762 ↩︎

https://en.wikipedia.org/wiki/Multicast_DNS ↩︎

✧ 相关推荐 ✧

塞内加尔队2026年世界杯客场球衣曝光
365bet体育在线网投

塞内加尔队2026年世界杯客场球衣曝光

📅 12-13 👁️ 9336
安全验证
彩票365苹果版怎么下载不了

安全验证

📅 07-07 👁️ 1882
青色的英语单词是什么怎么读,英语颜色单词有红黄白蓝棕橙黑绿吗