我知道iOS的Bonjour實現(NSNetworkService,NSNetworkServiceBrowser)在本地網絡上開箱即用。iOS上的Bonjour
的文件說,這是可能成立一家卓悅的DNS服務器允許的用戶連接在互聯網上,所以我的問題是:
- 什麼是卓悅的DNS服務器的接口?有什麼樣的我可以從哪裏開始?
- DNS服務器是否負責對等節點和其餘節點(send \ rec數據)的初始握手\連接將直接在對等節點之間進行?
- DNS服務器是否提供NAT穿孔機制?
謝謝!
我知道iOS的Bonjour實現(NSNetworkService,NSNetworkServiceBrowser)在本地網絡上開箱即用。iOS上的Bonjour
的文件說,這是可能成立一家卓悅的DNS服務器允許的用戶連接在互聯網上,所以我的問題是:
謝謝!
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服務器,並開始嘗試;)
感謝您的答覆!有沒有在互聯網上對等網絡架構針對iOS? – sternr 2011-06-05 10:47:03
至少我不知道任何..如果你想自己編碼,你必須深入到框架。 如果要連接的設備彼此靠近,可以使用凹凸的[API](http://bu.mp/files/Documentation/intro.html#getting-started)連接設備並通過任何網絡傳輸數據與「只是一個凹凸」.. – 2011-06-05 20:35:17
關於打孔的評論是不正確的。如果機器具有公共地址,或者可以通過NAT-PMP或uPNP協商端口轉發,Bonjour將只在廣域區域註冊服務。 – andrewtj 2011-06-20 08:12:29