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