2017年7月3日 星期一

「技術的原理,」mDNS

最近遇到一個問題,7688為什麼可以mylinkit.local 就連上呢,而不用先知道IP。

週邊有一些Device,也是用類似的方法,網域都是xxxx.local  。 

研究了一下,發現原來有一個東西叫做mDNS (Multicast DNS )。

一般我們在一個WiFi的區網內,需要先探知對方的IP,才能夠和對方進行溝通,

不然就必須使用broadcast  或是  Multicast 的方式,使對方收到封包後主動回應。


以下是mDNS的簡介

mDNS協議適用於區域網內沒有DNS伺服器時的域名解析,設備間通過群播(Multicast)

的方式交互DNS記錄來完成域名解析,約定的組播地址是:224.0.0.251,

埠號是5353,mdns協議使用DNS協議一樣的封包格式。

mDNS協議和DNS協議還有些不同,mDNS只能用於區域網內部,並且它只接受

解析主機名前綴為.local的域名
,因此mDNS也是可以和DNS在同一台設備上共存的,

以及它們存儲記錄的區域是分開的。

windows和android預設是不支援mDNS的,windows額外安裝軟體才能支援,

Android暫時還沒頭緒,找到再和大家分享。

參考來源:

區域網設備發現之Bonjour協議
https://kknews.cc/zh-tw/tech/o4ybmm.html
Multicast DNS
http://www.ietf.org/rfc/rfc6762.txt

沒有留言:

張貼留言