zeroconf研究筆記(1) ——zeroconf初步認識

原文:http://blog.cnnbboy.net/?cat=95

最近對zeroconf協議進行了一系列深入的研究,深深地被這一技術折服,在1999年就出現的該協議,在技術的應用上已經走向成熟,走向向大衆普及之路了。
apple的airplay,airprint都是依賴了zeroconf的基礎上,才展現出強大的功能。

zeroconf介紹

Zeroconf全稱爲Zero configuration networking,中文名則爲零配置網絡服務規範,是一種用於自動生成可用IP地址的網絡技術,不需要額外的手動配置和專屬的配置服務器。

“零配置網絡服務”的目標,是讓非專業用戶也能便捷的連接各種網絡設備,例如計算機,打印機等。整個搭建網絡的過程都是通過程式自動化實現。如果沒有zeroconf,用戶必須手動配置一些服務,例如DHCP、DNS,計算機網絡的其他設置等。這些對非技術用戶和新用戶們來說是很難的事情。

使用例子來形象地說明:
用戶擁有一臺apple tv和一臺iPhone4s,那之只要都連入到同一個無線局域網內,iphone4s就會自動找出apple tv,那麼在播放音樂或者視頻時候,用戶只要點擊推送,就可以講音樂和視頻推送到apple tv上播放。

zeroconf協議的實現

zeroconf是協議,因此對應的是各種產品的實現,現在最主要的實現是apple的Bonjour和開源的Avahi。
這兩套實現在程序接口上是可以兼容的,因此可以對zeroconf技術依賴的產品,可以使用兼容的開發接口,而不需要考慮到底是使用了Bonjour還是avahi。

Apple的zeroconf協議技術實現 – Bonjour

Bonjour是由apple實現的zeroconf協議的技術產品,Bonjour來源於法語,意思爲你好。
使用了zeroconf技術的產品和服務,在網絡中自動傳播它們自己的服務信息並聆聽其它設備的服務信息,設備之間就象在打招呼,這也是命名爲Bonjour(法語:你好)的原因。
Bonjour是一套跨平臺的產品,可以使用在Mac,Linux和Winows,以及是兼容POSIX的操作系統上,並且apple已經將其開源,所以也可以方便應用於各個產品。
Bonjour是由純C編寫的,同時也提供了Java的接口,目前如python或者ruby語言也可以很方便地調用使用它。

開源的zeroconf協議技術實現 – Avahi

Avahi 是Zeroconf規範的開源實現,基本是使用在Linux和FreeBSD上。包含了一整套多播DNS(multicastDNS)/DNS-SD網絡服務的實現,使用的發佈授權是LGPL。
在程序接口上,它使用DNSD與apple的Bonjour進行兼容,方便原來使用Bonjour的產品進行遷移。
目前在絕大多數的Linux發行版本中,都講avahi作爲系統啓動進程,並且大量的服務也依賴於avahi。
Avahi也是用純C編寫的,同樣也可以使用諸如Java的語言去調用使用開發產品或者服務。

嵌入式中的zeroconf – WiSe-Zeroconf

Wise-Zeroconf是Wise公司基於開源的Bonjour的基礎上,提供給嵌入式產品的zeroconf技術實現。
由於是商業產品,詳細資料不想,但是基本功能與Bonjour應該基本相同。

zeroconf最基礎原理

zerconf協議主要是定義了三個層次:
1.不需利用dhcp server取得 設備地址如IP的相關資料
RFC 3927 , Dynamic Configuration of IPv4 Link-Local Addresses

http://www.ietf.org/rfc/rfc3927.txt

2.不需要通過DNS server就轉換domain name和IP的關係
Multicast DNS

http://files.multicastdns.org/draft-cheshire-dnsext-multicastdns.txt

3.利用 DNS-SD來取得設備服務,而不需通過directory server
DNS-based Service Discovery, or DNS-SD.

http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt

zeroconf的未來分析

雖然zeroconf協議名聲不大,即使是計算機專業開發人員也知之甚少,但是其實由於這幾年apple發展的強勢,其應用已經越來越廣。
比如在iOS4.2推出時候的airplay,以及airprint都是在這基礎上實現的,甚至iOS5.0後的air mirroing技術,也是在zeroconf技術上實現的。
可以預想在未來,zeroconf和DLNA將會有激烈的競爭關係。




ps: XBMC中有Airplay Server的相關代碼,值得好好看看!

發佈了121 篇原創文章 · 獲贊 9 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章