ESP32:mdns協議

mdns(即多播dnsMulticast DNS)主要實現了在沒有傳統DNS服務器的狀況下使局域網內的主機實現相互發現和通訊,使用的端口爲5353,聽從dns協議,使用現有的DNS信息結構、語法和資源記錄類型,而且沒有指定新的操做代碼或響應代碼。緩存

在局域網中,設備和設備以前相互通訊須要知道對方的ip地址等信息,大多數狀況,設備的ip不是靜態的,而是經過dhcp協議動態分配的,如何發現設備彼此間的服務呢?如今物聯網設備和app之間的通訊,要麼經過廣播,要麼經過組播,發一些特定信息,感興趣的設備應答,實現局域網設備的發現,固然mdns比這強大的多。服務器

mdns使用組播地址爲224.0.0.251ipv6FF02::FB),端口爲5353mdns是用於局域網內部的,而且主機的域名以.local結尾,每一個進入局域網的主機,若是開啓了mDNS服務的話,都會向局域網內的全部主機組播一個消息——我是誰(域名)和IP地址是多少。而後其它有mdns服務的主機就會響應,也會告訴你——它是誰(域名)和IP地址是多少。固然設備須要服務時,就是使用mdns查詢域名對對應的ip地址,對應的設備收到該報文後一樣經過組播方式應答,此時其它主機設備也是能夠收到該應答報文,其它主機也會記錄域名和ip以及ttl等,更新緩存。app

好比,A主機進入局域網,開啓了mDNS服務,並向mDNS服務註冊如下信息:提供FTP服務,IP192.168.1.101,端口是21。當B主機進入局域網,並向B主機的mDNS服務請求,要找局域網內FTP服務器,B主機的mDNS就會去局域網內向其它的mDNS詢問,而且最終告訴你,有一個IP地址爲192.168.1.101,端口號是21的主機,也就是A主機提供 FTP服務,因此B主機就知道了A主機的IP地址和端口號了。code

相關文章
相關標籤/搜索