Transcript Slide 1
Naming Examples • UUID (universal unique ID) – 128 bit numbers, locally generated, guaranteed globally unique • Uniform Resource Identifier (URI) – URL (uniform resource locator) – location dependent • E.g., http://www.w3c.org/addressing • Name resolution via DNS (Domain Name Service): URI IP – URN (uniform resource names) – location independent • E.g., urn:isbn:0-390-343221-1 Naming Principles • Network entities (by Saltzer) – Services (and data) – Hosts (endpoints) – Network attachment points – Paths (routing paths) • Naming issues: – – – – – Mobility Multi-homing Replication Security Scalability Host Identity Protocol (HIP) Process 128-bit host identity tag (HIT) Process Transport <IPaddr, port> Transport IP Layer <IPaddr> HIP Layer IP Layer <HIT, port> <HIT> <IPaddr> HIT replaces IP address as a name of a system 3 How It Works? HIT Client app DNS library DNS Client app send(HIT) HIT=hash(P) IPaddr 4-way authentication Transport HIP daemon send(HIT) HIT HIP layer Transport HIP daemon HIP Layer IPaddr, P send(IPaddr) IPsec send(IPaddr) IPsec 4 Layered Naming Architecture (LNA) Process Process Transport <IPaddr, port> IP Layer <IPaddr> Should name each individually: • • • • Service identifiers (SIDs) name services/data Endpoint identifiers (EIDs) name hosts IP addresses name attachment points Ignore paths (router involvement) SID↔EID <SID> Transport <EID, port> EID↔IP <EID> IP Layer <IPaddr> How It Works? “DNS” Client app Client app send(sid) SID↔EID eid = get(sid) DHT send(eid) send(eid) send(IPi) IP SID↔EID Transport Transport EID↔IP put(sid, eid) LNA put(eid, IP) daemon Intermediary (IPi) EID↔IP IP 6 Take Away • Don’t bind to lower-level IDs prematurely – Host mobility and renumbering (HIP) – Service and data migration • Resolution (binding) of name need not point to object itself, but can point to its delegate – Resolution can point to intermediaries who process packets on behalf of the named target • Examples – HIP: one layer; IDs identify machines – LNA: two layers • EIDs identify machines • SIDs identify everything else UIA Naming • Flat (personal group level) – User can put “a user friendly” name to each device • iPod.Alice, Camera.Bob – Each “personal” device has a unique ID (EID) • Resolution – Mapping (user name EID via log records) is disseminated whenever connectivity is available – Local resolution (assuming full replication) • Routing: – Routing packets to the EID node?? – Source routing using a P2P overlay network Service Discovery • Lots of services dispersed across the network • How to find who has what services? Example systems: Jini, JXTA, SLP, UPnP, Bonjour Salutation, INS, Twine, etc.. Directory Information Directory Architecture Query Expressiveness Query Routing • Application level routing – DHT-based – Twine, Chord, CAN, Pastry – Loosely-consistent DHT • JXTA, Freenet – Flooding • Gnutella • Network level communication – Unicast communication with a Central server • Web-services, Napster, INS, Jini, SLP – Multicast communication • Jini, SLP, UPnP