1.名称、标识符、地址
名称:是由位或字符组成的字符串,用来指向一个实体。分布式系统的实体几乎可以是任何事物,比如主机、打印机、磁盘和文件等资源。
地址:访问实体时需要通过一个访问点访问实体,因此访问点的名称称为地址,一个实体的访问点地址也可以简称为该实体的地址。访问点是一种特殊类型的实体。一个实体可以提供多个访问点,并且经过一段时间后实体的访问点可能会发生变化,例如电话号码可以看作是一个人的访问点,电话号码相当于访问点,一个人可以拥有多个电话号码;同时电话号码可能会更换,即访问点改变。
标识符:唯一标识实体的名称。
2.无层次命名
2.1 广播和多播
广播:主机在局域网内的广播数据包,所有主机均能接收到数据包。这种方法占用网络带宽,效率低下。
多播:只有符合条件的主机才能接收到请求数据包,接收到消息的主机回复本机地址。
2.2 转发指针
当实体从A移动到B时,它将在后面留下一个指针,这个指针指向它在B中的新位置。这种移动实体定位方法的优点是简便:一旦找到实体以后,客户就可以顺着转发指针形成的链来查找实体的当前地址。本方法只适用于局域网。
2.3基于宿主位置的方法
这种方法持续跟踪实体的当前位置位置,可以使用特殊的技术来预防网络故障或进程失效。在实践中,通常选择创建实体的位置作为其宿主位置。每个移动主机都使用一个固定的IP地址,所有与该IP地址进行的通信一开始都被转发到移动主机的宿主代理中。宿主代理位于局域网中,与包含在移动主机IP地址中的网络地址相对应。当一台移动主机转移到另一个网络中是,它会请求一个可以用来通信的临时地址。这种转交地址要在宿主代理中注册。当宿主代理接收到发送给移动主机的数据包时,它会查找主机的当前位置。如果主机是在当前本地网络中,那么就只需转发数据包。否则,它会建立一条通往主机当前位置的通道,也就是说,他会把数据组装成IP包,然后发送给转交地址。同时,将把主机当前的位置告诉数据包的发送者。下图显示了该原理:
参考书:分布式系统原理与范型 辛春生等译