命名这章重要,需要重点看
    img_0933.jpg
    这一章主要讲命名,分类
    无结构命名,
    有结构名字,
    注意与以下的概念区分
    无结构查找,
    有结构查找
    img_0934.jpg

    img_0935.jpgimg_0936.jpg
    主机1,主机2,主机3.。。。每个都配置一个网络登录地址,
    名称和地址是无关联的
    img_0937.jpg
    标识符与名字的区别,感觉表示符有点像代号,是更加正规点。。。名字就很随意。。。
    img_0938.jpg
    这里先给出无结构的命名和有结构的命名的区别:
    无结构的命名(也叫flat name)中的标识符就是没有啥意义,比如标001,002,003
    有结构的命名中的表示符就有代表你本身的某些信息,你如学号,SA代表硕士,19代表19阶
    img_0939.jpgimg_0940.jpg
    这种方式就有点像以前的手机漫游
    A,B都是合肥用户,突然有点B去了苏州
    A想要拨号打给B
    A就与合肥的主服务地址建立联系,查找B,但是合肥的人说,B不在我这,B现在在苏州
    A就与苏州那边的RR建立联系,找到B
    img_0941.jpgimg_0942.jpgimg_0943.jpg
    重要!!!!!!!!!!!!!
    重要!!!!!!!!!!!!!
    重要!!!!!!!!!!!!!

    有结构的查找就是利用分布式哈希表

    这里举例的是p2p系统中chord系统使用的有结构的命名

    chord系统利用hash函数为每一个节点分配一个m位的标识符,这样就形成一个大小为2^m的chord环,节点的维护由后继结点进行维护

    怎么加入一个节点?

    img_0944.jpgimg_0945.jpg
    重要!!!!!!!!!!!!!
    重要!!!!!!!!!!!!!
    重要!!!!!!!!!!!!!

    每个节点都在维护自身的一个hash table

    hash 函数是:《分布式与云计算》第5期-DS-CH5-naming - 图14

    下面补充说明

    img_0946.jpgimg_0947.jpg
    层次式位置服务也是无结构的命名,有结构的查找
    就是把每个结点向上做索引(如图),比如a想与c相连,就得向上面的目录结点查找,没有就继续向上查找
    直到找到该位置
    有点像Napster,整个系统中有集中式服务器的存在用来记录索引
    img_0948.jpgimg_0949.jpgimg_0950.jpgimg_0951.jpgimg_0952.jpg
    注意
    有结构命名:名字是有含义的
    有结构查找:有规律的进行查找结点,不是像多播那样以flooding方式查找。
    img_0953.jpgimg_0954.jpgimg_0955.jpgimg_0956.jpg
    问题:怎么对名字进行解析?
    答:采用就近原则,就是一层一层往上迭代找
    img_0957.jpgimg_0958.jpg
    这里是DNS的命名解析
    img_0959.jpg
    下面补一个DNS解析过程
    img_0960.jpgimg_0961.jpgimg_0962.jpgimg_0963.jpgimg_0964.jpgimg_0965.jpgimg_0966.jpgimg_0967.jpgimg_0968.jpgimg_0969.jpgimg_0970.jpgimg_0971.jpgimg_0972.jpgimg_0973.jpgimg_0974.jpgimg_0975.jpgimg_0976.jpgimg_0977.jpg