Bonjour_笔记

来源:互联网 发布:org.apache.shiro 编辑:程序博客网 时间:2024/04/30 03:10

Bonjour:零配置联网,能自动发现IP网络上的电脑、设备和服务
主要在缺少中心服务器的情况下解决IP获取、名称解析、服务发现三个问题
基于组播的DNS服务(mDNS),只能在本地网络上工作LAN,不可通过WAN。
Bonjour与微软的UPnP比较相似,都是在局域网上工作。
1)IP获取(在没有中心服务器提供DHCP服务情况下)
IPV6:IPV6本身就提供设备自指定IP地址的能力,所以实现简单
IPV4:Bonjour使用随机指定IP,并检查是否冲突

2)名称解析(在没有DNS服务解析情况下)
使用mDNS,即组播DNS。使用.local作为本地域名的根域名,用于区分全球域名和本地域名。
当设备需要解析一个名称时,如”abc.local”,通过UDP向本地网络广播一个消息:谁是”abc.local”,对应设备给出回应,并给出自己IP地址

3)服务发现
Bonjour按照”名称.服务类型.传输协议.local”,如“DamonWebServer._http._tcp.local.”

mDNS:Multicast DNS,在小范围本地网络中使用,与DNS相似的接口、数据包结构、操作语义的协议,但在本地网络中没有通常意义上的DNS Server。
使用UDP,5353端口。
广播地址:224.0.0.251(IPv4) or FF02::FB(IPv6)
每个支持mDNS的主机进入局域网后,通过端口5353向局域网内所有的主机组播一个消息:主机类型和IP地址,然后其他支持mDNS服务的主机会响应。
比如,A主机进入局域网,开启了mDNS服务,并向mDNS服务注册一下信息:我提供FTP服务,我的IP是192.168.1.101,端口是21。当B主机进入局域网,并向B主机的mDNS服务请求,我要找局域网内FTP服务器,B主机的mDNS就会去局域网内向其他的mDNS询问,并且最终告诉你,有一个IP地址为192.168.1.101,端口号是21的主机,也就是A主机提供FTP服务,所以B主机就知道了A主机的IP地址和端口号了。

支持Bonjour的设备,需要实时监听mDNS的数据包并刷新DNS缓存。
Bonjour的工作过程,包括:通告和查询
通告:任何一个设备接入网络中,都需要通告全网自己设备的信息,如IP、端口、服务类型、是否有密码认证之类。
查询:查询整个网络中是否有自己想要的服务或者是否有可供自己访问的一些服务,查询网络中是否存在冲突,查询目的主机的IP地址。

0 0
原创粉丝点击