Menu

分布式系统·作业四

在深度为 k 的分层定位服务中,当移动实体改变它的位置时,最多需要更新多少条位置记录

假设根节点是在第$0$层。一次插入操作最坏情况下需要改变$k+1$条位置记录,一次删除也需要改变$k+1$条记录。考虑到根节点的插入删除可以同时进行,因此最多需要$2k+1$条记录。

分层定位服务中的根节点可能是一个潜在的瓶颈,如何能有效地避免这个问题

将根节点和其他高层目录节点划分为多个子节点。换言之,我们对原来的分层定位系统尽量分割成均匀的若干部分,并为分割后的每个部分指定对应的根节点,这样根节点的平均负载就降低了。

请解释如何使用 DNS 来实现基于宿主位置的方法以定位移动主机

移动主机的 DNS 名字作为标识符,解析名称时返回主机当前 IP 地址。每当主机移动的时候,它与主服务器通信并发送自己当前地址。

设置自己的 DNS 服务器

在 windows 或者 Linux 操作系统上,安装 BIND 软件,并为一些简单的名称配置它。使用诸如 Domain Information Groper (DIG)的软件来测试你的配置。应确保你的 DNS 数据库包含有名称服务器、邮件服务器和标准服务器的记录。注意,如果你是在名为 HOSTNAME 的机器上运行 BIND,就能解析形如 RESOURCE-NAME.HOSTNAME 的名称

找到一篇不错的参考资料,跟着文章说的一点一点做完了。

安装过程可见上面的参考资料。etc目录下配置文件如下,这里我将123.com的 ip 地址解析到本地127.0.0.1

1

将本机电脑默认的 DNS 服务器改成127.0.0.1或本机 IP,如果想让 DNS 服务器正常访问本机 IP 与 DNS 服务必须设置固定 IP。

2

./rndc-confgen -a生成密钥、net start named启动 DNS 服务器,这时候ping a.123.com的时候已经有反应了。打开 bash 并使用 DIG 测试配置。

3

结果如上,可以看到正确解析了地址,说明实验配置正确。