2011-06-05 43 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