第2讲 命名机制 §2.1 非结构化命名 §2.2 结构化命名 §2.3 基于属性的命名 Naming, a problem? Used to refer to entities, locations, resources, ... Object Name Object Centralized or distributed naming Entity, Name and Address Name: a string of bits or characters used to refer to an entity. Entity: can be anything, e.g. hosts, files, connections… Access point: the special “entity” used to access an entity. Address: the name of an access point. Addr. of access point Addr. of entity Entities Access points Addresses: -Phone no. -Email addr. -QQ no. -Room no. -etc. Identifier A name that refers to at most one entity, (unique) always refers to the same entity, and (constant) solely refers to one entity. (identifying) --User-friendly name, e.g. file name, URL --Machine-readable name, e.g. IP address §2.1 Flat Naming Unstructured naming Identifiers are simply random bit strings Machine-friendly Key issue: Name/Identifier resolution or entity locating Simple Solutions – broadcast/multicast Broadcasting Query by broadcasting a message with identifier E.g. Internet Address Resolution Protocol (ARP) Inefficient in large network Entity: host, Identifier: IP addr., Address: data-link addr. Bandwidth consumption, host interruption Multicasting Data-link level multicasting Network level multicasting Unsuitable for large network! Simple Solutions – forwarding pointers Upon moving, a pointer is left that points to new location. Simple Solutions – forwarding pointers Short-cut to avoid triangle forwarding Prone to failure! Home-Based Approaches The principle of Mobile IP Distributed Hash Tables A Chord system Hierarchical Approaches §2.2 Structured Naming Human-friendly Names are composed from simple, humanreadable names Name Resolution Following the directory, level by level The aliases: one entities has more than one name Hard link vs. Symbolic link Name Space Distribution Figure 5-13. An example partitioning of the DNS name space Example of Name Resolution Figure 5-18. recursive vs. iterative name §2.3 Attribute-based Naming Also known as “directory service” Entities are associated with attributes E.g. subject, sender of an email. Searching is done based on attributes Attribute design is not trivial! RDF, Resource Description Framework URL based Hierarchical Implementations: LDAP Figure 5-22. A simple example of an LDAP directory entry Directory Information Tree (DIT) The naming graph Similar to DNS, but more searching operations A node is: a directory AND a LDAP record Operations of LDAP Read: List: to read a single record given its path name in the DIT to list the names of all outgoing edges of a given node in the DIT Search: to search for a directory entry given a set of criteria that attributes of the searched entries should meet. Decentralized Implementations: DHT Decentralized Implementations: Semantic Overlay Figure 5-26. Maintaining a semantic overlay through gossiping. Summary Naming Flat naming: machine friendly Broadcasting/Multicasting Forwarding pointer Home-based DHT Hierarchical naming Structured naming: human friendly Location independence Name spaces Attribute-based naming: referring to multiple entities LDAP, DHT, Semantic Overlay Homework Questions 1. 2.