西南石油大學 黃從富 曾一芳 冷 靜
基于Bonjour的網絡設備自動發(fā)現研究
西南石油大學 黃從富 曾一芳 冷 靜
蘋果公司給以mDNS為基礎的開放性零配置網絡起了一個名字叫做Bonjour,它能自己搜索IP網絡上的設備。Bonjour協議是基于mDNS和DNS_SD協議開發(fā)實現的。文章論述了Bonjour技術的原理和應用以及Bonjour協議所提供的三部分功能。Bonjour不需要人為地去配置IP地址,為特定場合的聯網降低了成本。
Bonjour;服務發(fā)現;組播域名服務
近年來,計算機網絡的應用范圍越來越廣,幾乎所有計算機平臺都在采納TCP/IP協議.TCP/IP協議為不同種編程語言提供了統(tǒng)一的被業(yè)界認可的通信平臺,但是采用TCP/IP協議在某些場合也有力所不及的地方。因為IP地址是一串較長的數字,使用太過于復雜,但是實現域名與IP地址之間的映射又必要有專業(yè)技能與知識的專業(yè)人員來實現。在一些使用網絡通信的特定場合,如臨時會議、臨時文件傳輸等對網絡應用頻繁、時間跨度短、成本耗費低的場合,TCP/IP協議對用戶來說太不方便了。而Bonjour 技術的出現很好地處理了這些疑難的問題。
蘋果公司給以mDNS為基礎的開放性零配置網絡起了一個名字叫做Bonjour,它能自己搜索IP網絡上的設備。Bonjour應用IEEE規(guī)范的IP協議來讓IP網絡上的設備在網絡中傳播自己的訊號,所以人們就不需要自己手工地去配置IP地址。一旦本地局域網上的設備應用了Bonjour服務,就可以在此網絡中自動傳播自己的訊號被其他設備發(fā)現,從而進行鏈接。
mNDS和DNS_SD兩個網絡協議是Bonjour技術的基石,在Bonjour技術中應用了這兩個技術的精髓,因此有必要先對mDNS和DNS_SD協議作簡要闡明。
當本地網絡上不存在域名解析服務器時適合使用mDNS協議來解決聯網問題,設備經過組播的形式交換DNS記載來實現解析請求中的域名。假設一個場景,有A,B,C,D四臺設備要進行通信,而D設備處于服務器端。設備D使用某個IP地址,A.local的地址發(fā)送查詢信息。設備A收到設備D的查詢信息后,同樣通過相同IP地址向設備D發(fā)送設備a的信息,此時,存在于此局域網內的所有設備,如B、C、D都會收到設備A發(fā)出的信息,設備B、C、D收到設備A的信息后會將A的信息包括IP地址、端口號等刷新存儲到自己的緩沖區(qū)內。
下面對DNS_SD協議作簡單介紹。DNS_SD使用了以DNS為基礎的三種服務發(fā)現記載類型:SRV記載、TXT記載、PTR記載,其中:
(1)服務發(fā)現:類型為PTR記載包會被應用DNS_SD的網絡設備會發(fā)送到本地局域網,所詢問服務規(guī)式為:service.transport.domain。service代表設備需要查詢的服務,transport代表依次查詢所用的協議,domain表示此次詢問的域名,使用對應服務的設備在收到詢問信息后會激活本設備上的相應的實例。
(2)獲取服務實例的端口號與主機名:當網絡設備選擇一個實例后,對實例的主機名和端口號的記載是必須的,這就是 SRV記載。用戶設備在選擇一個實例后會發(fā)送一個mDNS請求,設備在收到請求后,若存在請求消息中相應的實例,則會激活SRV記載,其中存儲了這個實例所相對的端口號與主機名。所以SRV記載中存儲了主機到服務與端口之間的映射關系,無論端口號是否發(fā)生變化。
(3)service實例的信息:在某種特定場合下,一個實例不僅保存了網絡設備的主機名等基礎信息外,還包括很多了附加信息,在TXT記錄中存有附加記錄,記錄格式為鍵值對。
在其中其實已經包含了許多 Bonjour協議的基本原理。我們可以把Bonjour技術當成以上兩個協議的組合。DNS_SD協議獲取提供某個服務的網絡設備的主機名和端口號,然后在對主機名和端口號進行解析找到相對應的IP地址,這樣就實現了Bonjour技術的基本原理。
在一些特定的場合如沒有DHCP服務配置和只能人為手動設置IP地址時,使用Bonjour技術的網絡設備可以獲得在本地網絡中的域名和IP地址進行通信,但是路由的配置是我們必須的操作。
在一般的網絡環(huán)境中,一臺網絡設備想要在互聯網中獲得IP地址有兩種方式。一種是動態(tài)分配,即路由器自動地為網絡設備分配IP地址,這種方式獲得的IP地址是會變化的,另一種是靜態(tài)分配,即由開發(fā)人員人為手動地為設備配置,此方式獲得的IP地址不會發(fā)生變化,但可能會與互聯網中已經存在的IP地址發(fā)生沖突。在沒有DNS核心域名解析服務器的網絡中,路由器無法動態(tài)為網絡設備分配IP地址,開發(fā)人員只有手動為網絡設備分配IP地址,但是這種方式不方便也存在許多缺點。如何使網絡設備能夠自動獲取生效的IP地址正是Bonjour解決的主要問題。
在IPV4環(huán)境中,Bonjour技術實現了IP地址rand獲取的功能,Bonjour技術自動生成一個IP地址,然后詢問此本地網絡中有沒有存在相同的IP地址,如果存在相同的IP地址,則再次生成一個IP地址,一直持續(xù)到局域網內沒有相同的IP地址,此時設備則把這個IP地址作為自己的IP地址。
使用了Bonjour技術的網絡設備雖然有了自動獲取IP地址和有效域名,但是也有無法符合人們的某些需要的場合。比如用戶需要的是打印服務,此時并不需要關注提供服務的設備的IP地址和域名。而Bonjour技術所提供的服務發(fā)現能力就能讓網絡設備很輕易地發(fā)現本地局域網中的所有可訪問服務。
當然Bonjour技術所提供的這些能力也有自己的一個的使用規(guī)則,當一臺網絡設備需要訪問http服務時,使用Bonjour技術的設備會自動查詢本地局域網中http的服務,然后將會向發(fā)起查詢的網絡設備返送請求下消息。此時用戶就不需要關注服務在那一臺網絡設備上,也有不需要查詢域名和IP地址了。
Bonjour技術雖然免去了DNS服務器解析域名的尋址操作,但是頻繁地發(fā)送網絡請求會產生較為龐大的網絡流量。針對這種情況Bonjour技術采用了以下績點措施來使網絡流量的花費不至于太大。
為了避免主機發(fā)送重復的已經請求過的信息,Bonjour技術采用了緩存機制。例如,當一臺網絡設備訪問局域網中某個復印服務時,網絡設備在收到請求后就會將這個請求緩存下來。當再有網絡設備要訪問復印服務時,就不必再向本地網絡發(fā)送請求消息了,本地網絡中已經緩存了這個列表。系統(tǒng)會自動對這個列表進行維護,用戶就不需要進行維護操作了。
Bonjour技術的請求中會包含一個已經訪問過的服務的列表來阻止重復呼應相同的請求。例如,一臺網絡設備正在訪問復印機的服務,頭一個請求沒有已訪問的復印服務。當這臺設備再次訪問打印服務時,由于請求列表里存在已訪問的打印服務 ,此時Bonjour不會再次發(fā)起呼應請求。
[1]陳冠升,胥布工.基于無線網絡技術的饋線終端設計[J].低壓電器,2010(21).
[2]耿建平,姚英.關于Bonjour技術的研究[J].國外電子測量技術,2011(04).
[3]徐成云.幾種主要傳輸網絡技術應用的探討[J].中國新技術新產品,2010(19).