2011-06-05 88 views
5

我知道iOS的Bonjour實現(NSNetworkService,NSNetworkServiceBrowser)在本地網絡上開箱即用。iOS上的Bonjour

的文件說,這是可能成立一家卓悅的DNS服務器允許的用戶連接在互聯網上,所以我的問題是:

  1. 什麼是卓悅的DNS服務器的接口?有什麼樣的我可以從哪裏開始?
  2. DNS服務器是否負責對等節點和其餘節點(send \ rec數據)的初始握手\連接將直接在對等節點之間進行?
  3. DNS服務器是否提供NAT穿孔機制?

謝謝!

回答

4

Bonjour本地服務發現基於「多播DNS」。無論何時某個客戶想要找出有關網絡或網絡上的服務的任何信息,它都會使用多播地址224.0.0.251,這意味着只有該多播組中的客戶端纔可以一起使用bonjour。 244.0.0/24 IP地址空間被RFC5771定義爲「本地網絡控制塊」,不會被轉發出本地網絡。

真的,卓悅僅僅是一個基於DNS的方法 - 你可以告訴NSServiceBrowser在非本地域名,這只是需要DNS服務器對特定請求做出響應(如Manually Adding DNS-SD Service Discovery Records to an Existing Name Server描述)搜索 這通過互聯網進行服務發現,甚至服務註冊,如果你的DNS更新工作(Setting up a Bonjour Name Server),但沒有更多 - 你必須關心自己打洞。

所以讓自己的BIND服務器,並開始嘗試;)

+0

感謝您的答覆!有沒有在互聯網上對等網絡架構針對iOS? – sternr 2011-06-05 10:47:03

+0

至少我不知道任何..如果你想自己編碼,你必須深入到框架。 如果要連接的設備彼此靠近,可以使用凹凸的[API](http://bu.mp/files/Documentation/intro.html#getting-started)連接設備並通過任何網絡傳輸數據與「只是一個凹凸」.. – 2011-06-05 20:35:17

+0

關於打孔的評論是不正確的。如果機器具有公共地址,或者可以通過NAT-PMP或uPNP協商端口轉發,Bonjour將只在廣域區域註冊服務。 – andrewtj 2011-06-20 08:12:29