关于UPnP Device Architecture 2.0的阅读笔记(二)

地址获取


    UPnP联网的基础是获取IP地址。通过寻址,设备和控制点获取网络地址。为后面的步骤服务。
    
    1.决定是否使用Auto-IP
    一个设备和控制点首先会发送一个DHCPDISCOVER消息来试图通过DHCP获取IP.其DHCP客户端在超时时间内监听DHCPOFFER,如果该消息返回,则设备或控制点继续动态地址分配过程。如果没有合法的DHCPOFFER返回,设备或控制点会通过Auto-IP来自动配置一个IP地址。
    2.选择一个地址

    使用自动分配的设备或控制点,使用独立实现的分配算法,在169.254.0.0/16地址段内分配一个地址。此段的前256和后256个地址不能使用。(即只能使用169.254.1.0~169.254.254.255之间的地址)

    选择地址后,将检测此地址是否已被使用,如果被用,则测试其它地址,直到达到一个尝试上限次数。伪随机分配算法使用设备或控制点的网卡MAC地址作为随机种子。

    3.测试地址
    设备和控制点会使用地址解析协议探测来测试地址。一个探测就是一个带有硬件地址的ARP请求,如果请求被响应,则该地址被使用,就会换别的地址。推荐探测每隔2s间隔发送四次。ARP探测主要是防止别的设备或者控制点之间具有相同的地址,这个过程会再地址使用过程中一直进行。
    4.转发规则
    源地址或目的地址为169.254/16的IP封包不会被发到任何转发路由器上。而是会进行ARP探测后被发送到相同的本地链路的IP上。具有多播目的地址和自动IP源地址的IP数据包将不会被转发到链路本地地址。设备或控制点允许假定所有的169.254/16目的地址都在链路本地上并且直接可到达。该段地址不允许有子网。
    5.周期检测动态地址的可用性
    具有自动分配IP的设备或者控制点将会周期地检测DHCP服务器时服否存在。这通过发送DHCPDISCOVER消息来实现。如果DHCPOFFER消息返回,则设备和控制点将进行动态分配地址。更换地址之后,设备需要取消已经存在的上线发布,并且使用新地址进行再次上线发布。
    对于一个具有多个IP地址的设备,只会影响更改的IP地址的上线发布。
    6.设备命名和DNS交互
    一旦设备具有了一个合法的IP地址,它将会通过该地址被定位到,被使用到。如果最终用户希望使用这个设备,需要一个更加友好的设备名字。这需要设备对DHCP服务器提供一个主机名,并注册到DNS.大多数情况下设备只会提供一个URL。
    而且,设备名字是静态的,当一个IP地址变化的时候,Client不会了解到。
    7.名字到IP地址解析
    一个设备如果和另一个在DNS注册了名字的设备名交互,则需要获取其IP地址。设备向DNS发出请求,并收到一个包含了目标设备IP的响应。
    8.参考资料
    RFC1034, Domain Names - Concepts and Facilities: http://www.ietf.org/rfc/rfc1034.txt
    RFC1035, Domain Names - Implementation and Specification: http://www.ietf.org/rfc/rfc1035.txt
    RFC 2131, Dynamic Host Configuration Protocol: http://www.ietf.org/rfc/rfc2131.txt
    RFC 2136, Dynamic Updates in the Domain Name System: http://www.ietf.org/rfc/rfc2136.txt
    RFC 3927, Dynamic Configuration of IPv4 Link-Local Addresses: http://www.ietf.org/rfc/rfc3927.txt
   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值