ESP32入门基础之mDNS服务

Posted while(1)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP32入门基础之mDNS服务相关的知识,希望对你有一定的参考价值。

1 mDNS简介

参考资料:

  1. 乐鑫官网mDNS服务
  2. 百度百科
  3. 乐鑫官方例程

1.1 什么是DNS

域名系统DNS(Domain Name System) 是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。用户与互联网上某台主机通信时, 必须要知道对方的IP地址。 但在应用层为了便于用户记忆各种网络应用, 连接在互联网上的主机不仅有IP地址, 而且还有便于用户记忆的主机名字。 域名系统DNS能够把互联网上的主机名字转换为IP地址。域名命名方式如下:
在这里插入图片描述
参考资料:《计算机网络(第7版)-谢希仁》

1.2 什么是mDNS

  • mDNS 是一种组播 UDP 服务,用来提供本地网络服务和主机发现。
  • mdns 即多播dns(Multicast DNS),mDNS主要实现了在没有传统DNS服务器的情况下使局域网内的主机实现相互发现和通信,使用的端口为5353,遵从dns协议,使用现有的DNS信息结构、名语法和资源记录类型。
    工作原理举例:
    比如,A 主机进入局域网,开启了 mDNS 服务,并向A主机的 mDNS 服务注册以下信息:我提供 FTP 服务,我的 IP 是192.168.1.101,端口是 21。当 B 主机进入局域网,并向 B 主机的 mDNS 服务请求,我要找局域网内 FTP 服务器,B主机的 mDNS 就会去局域网内向其他主机的 mDNS 询问(即多播),并且最终告诉你,有一个IP地址为 192.168.1.101,端口号是 21 的主机,也就是 A 主机提供 FTP 服务,所以 B 主机就知道了 A 主机的 IP 地址和端口号了。

2 应用举例

参考官方例程:mDNS example

根据官方例程,修改相应的参数,烧录高开发板,串口打印数据入下,部分截图
在这里插入图片描述
mDNS 属性

  • hostname:设备会去响应的主机名,如果没有设置,会根据设备的网络接口名定义 hostname 。例如,my-esp32 会被解析为 my-esp32.local。
  • default_instance:默认实例名(即易记的设备名),例如 Jhon’s ESP32 Thing。如果没有设置,将会使用 hostname。

mDNS 服务
mDNS 可以广播设备能够提供的网络服务的相关信息,每个服务会由以下属性构成。

  • instance_name:实例名(即易记的服务名),例如 Jhon’s ESP32 Web Server。如果没有定义,会使用 default_instance。
  • service_type:(必需)服务类型,以下划线为前缀,这里 列出了常见的类型。
  • proto:(必需)服务运行所依赖的协议,以下划线为前缀,例如 _tcp 或者 _udp。
  • port:(必需)服务运行所用的端口号。
  • txt:形如 {var, val} 的字符串数组,用于定义服务的属性。

以上是关于ESP32入门基础之mDNS服务的主要内容,如果未能解决你的问题,请参考以下文章

ESP32入门基础之ESP WebSocket Client

ESP32入门基础之ESP WebSocket Client

ESP32入门基础之空中升级(OTA)

ESP32入门基础之空中升级(OTA)

ESP8266零配置网络

ESP32入门基础之资源管理