Chapter 5 Naming
Chapter 5 Naming
Introduction
names play an important role to:
share resources
uniquely identify entities
refer to locations
etc.
an important issue is that a name can be resolved to the entity
it refers to
to resolve names, it is necessary to implement a naming
system
in a distributed system, the implementation of a naming
system is itself often distributed, unlike in nondistributed
systems
efficiency and scalability of the naming system are the main
issues
2
5.1 Names, Identifiers, and Addresses
a name in a distributed system is a string of bits or characters
that is used to refer to an entity
an entity is anything; e.g., resources such as hosts, printers,
disks, files, objects, processes, users, Web pages, ...
entities can be operated on; e.g., a resource such as a printer
offers an interface containing operations for printing a
document, requesting the status of a job, ...
to operate on an entity, it is necessary to access it through its
access point, itself an entity (special)
3
access point
the name of an access point is called an address (such as
4
an address is a special kind of name
it refers to at most one entity
each entity is referred by at most one address; even when
replicated such as in Web pages
an entity may change an access point, or an access point
may be reassigned to a different entity (like telephone
numbers in offices)
separating the name of an entity and its address makes it
easier and more flexible; such a name is called location
independent
there are also other types of names that uniquely identify an
entity; in any case an identifier is a name with the following
properties
it refers to at most one entity
each entity is referred by at most one identifier
it always refers to the same entity (never reused)
identifiers allow us to unambiguously refer to an entity
5
examples
name of an FTP server (entity)
URL of the FTP server
address of the FTP server
IP number:port number
the address of the FTP server may change
there are three classes on naming systems: flat naming,
structured naming, and attribute-based naming
6
5.2 Flat Naming
a name is a sequence of characters without structure; like
human names?
difficult to be used in a large system since it must be centrally
controlled to avoid duplication
how are flat names resolved
name resolution: mapping a name to an address or an
address to a name is called name-address resolution
possible solutions: simple, home-based approaches, and
hierarchical approaches
7
1. Simple Solutions
two solutions for LANs: Broadcasting and Multicasting,
their pointers
vulnerability if links are broken
9
2. Home-Based Approaches
broadcasting and multicasting have scalability problems;
performance problems and broken links are problems in
forwarding pointers
a home location keeps track of the current location of an
entity; often it is the place where an entity was created
it is a two-tiered approach
an example where it is used in Mobile IP
each mobile host uses a fixed IP address
all communication to that IP address is initially directly
sent to the host’s home agent located on the LAN
corresponding to the network address contained in the
mobile host’s IP address
whenever the mobile host moves to another network, it
requests a temporary address in the new network
(called care-of-address) and informs the new address to
the home agent
10
when the home agent receives a message for the
mobile host it forwards it to its new address and also
informs the sender the host’s current location for
sending other packets
12
3. Hierarchical Approaches
a generalization of the two-tiered approach into multiple
layers
a network is divided into a collection of domains, similar
to DNS
a single top-level domain spans the entire network
each domain can be subdivided into multiple, smaller
domains
the lowest-level domain is called a leaf domain; typically a
LAN
each domain D has an associated directory node dir(D)
that keeps track of the entities in that domain leading to a
tree of directory nodes
the root (directory) node knows about all entities
13
hierarchical organization of a location service into domains, each
having an associated directory node
14
each entity is represented by a location record in the
directory node dir(D) to keep track of its whereabouts
a location record for an entity in a leaf domain contains the
entity’s current address; all other high-level domains will
have only pointers to this address; this means the root node
will store only pointers to all entities
an entity may have multiple addresses, for instance, if it is
replicated; a higher level domain containing the two
subdomains where the entity has addresses will have two
pointers
15
an example of storing information of an entity having two addresses
in different leaf domains
16
example of a look up operation
a client (in Domain D) would like to locate an entity E
18
5.3 Structured Naming
flat names are not convenient for humans
Name Spaces
names are organized into a name space
each name is made of several parts; the first may define the
21
Name Resolution
given a path name, the process of looking up a name stored
22
symbolic link: representing an entity by a leaf node and
instead of storing the address or state of the entity, the
node stores an absolute path name
Mounting
as an example, consider a mounted file system, which
mount point
the directory node in the foreign name space is called a
24
consider a collection of name spaces distributed across
different machines (each name space implemented by a
different server)
to mount a foreign name space in a DS, the following are at
least required
the name of an access protocol (for communication)
25
example: Sun’s Network File System (NFS) is a distributed file
system with a protocol that describes how a client can access
a file stored on a (remote) NFS file server
an NFS URL may look like nfs://flits.cs.vu.nl/home/steen
nfs://flits.cs.vu.nl/home/steen
consider /remote/vu/mbox
27
distributed systems that allow mounting a remote file
system also allow to execute some commands
example commands to access the file system
cd /remote/vu
ls -l
by doing so the user is not supposed to worry about the
details of the actual access; the name space on the local
machine and that on the remote machine look to form a
single name space
28
The Implementation of a Name Space
a name space forms the heart of a naming service
29
global layer
formed by highest level nodes (root node and nodes close
to it or its children)
nodes on this layer are characterized by their stability, i.e.,
managerial layer
nodes that may change regularly, e.g., nodes representing
rate), etc.
high availability is critical for the global layer, since name
33
Implementation of Name Resolution
recall that name resolution consists of finding the address
34
Resolution
mapping a name to an address or an address to a name is
called name-address resolution
Resolver
a host that needs to map an address to a name or a name
mapping request
if the server has the information it satisfies the resolver;
35
Iterative
a name resolver hands over the complete name to the root
name server
the root name server will resolve the name as far as it can and
return the result to the client; at the minimum it can resolve
the first level and sends the name of the first level name
server to the client
the client calls the first level name server, then the second, ...,
until it finds the address of the entity
server
the root name server will try to resolve the name and if it
recursive name resolution of <nl, vu, cs, ftp>; name servers cache
intermediate results for subsequent lookups 38
communication costs may be reduced in recursive name
resolution
40
Label
each node has a label, a string with a maximum of 63
uniqueness)
Domain Name
each node has a domain
name
a full domain name is a
sequence of labels
separated by dots (the last
character is a dot; null
string is nothing)
domain names are read
from the node up to the
root
full path names must not
exceed 255 characters 41
Fully Qualified Domain Name (FQDN) or Absolute
terminated by a null string
42
Domain
a domain is a subtree of the domain name space
44
Zone
what a server is responsible for, or has authority over, is
45
Root Server
a server whose zone consists of the whole tree
behaviour
Label Description
com Commercial organizations
edu Educational institutions
gov Government institutions
int International organizations
mil Military groups
net Network support centers
org Nonprofit organizations
47
newly introduced first-level domains
Label Description
aero Airlines and aerospace companies
biz Businesses or firms (similar to com)
coop Cooperative business organizations
info Information service providers
museum Museums and other nonprofit organizations
name Personal names (individuals)
pro Professional individual organizations
Country Domains
include one entry for every
country (as defined by ISO) -
two character abbreviations
48
the contents of a node is formed by a collection of resource
records; the important ones are the following
Type of Associated
Description
record entity
SOA (start of Holds information on the represented zone, such as an
Zone
authority) e-mail address of the system administrator
A (address) Host Contains an IP address of the host this node represents
MX (mail Refers to a mail server to handle mail addressed to this
Domain
exchange) node; it is a symbolic link; e.g. name of a mail server
SRV Domain Refers to a server handling a specific service
NS (name Refers to a name server that implements the
Zone
server) represented zone
CNAME Node Contains the canonical name of a host
Symbolic link with the primary name of the represented
PTR (pointer) Host
node
HINFO (host Holds information on the host this node represents;
Host
info) such as machine type and OS
Contains any entity-specific information considered
TXT Any kind
useful
49
cs.vu.nl
represents the
domain as well
as the zone; it
has 3 name
servers (star, top,
solo) and 3 mail
servers
name server for
this zone with 2
network
addresses
mail server
Web server
FTP server
a single machine
implementing
Web server and
FTP server
laser printer
inverse mapping
an excerpt from the DNS database for the zone cs.vu.nl 50
5.4 Attribute-Based Naming
flat naming: provides a unique and location-independent way
of referring entities
structured naming: also provides a unique and location-
independent way of referring entities as well as human-friendly
names
but do not allow searching entities by giving a description of
an entity
each entity is assumed to have a collection of attributes that
say something about the entity
then a user can search an entity by specifying (attribute, value)
pairs known attribute-based naming
Directory Services
attribute-based naming systems are also called directory
services
51
how are resources described? one possibility is to use RDF
(Resource Description Framework) that uses triplets
consisting of a subject, a predicate, and an object
e.g., (person, name, Alice) to describe a resource Person
53
the collection of all directory entries is called a Directory
Information Base (DIB)
each record is uniquely named so that it can be looked up
each naming attribute is called a Relative Distinguished
Name (RDN); the first 5 entries above
a globally unique name is formed using abbreviations of
naming attributes, e.g.,
/C=NL/O=Vrije Universiteit/OU=Comp. Sc.
this is similar to the DNS name nl.vu.cs
listing RDNs in sequence leads to a hierarchy of the
collection of directory entries, called a Directory
Information Tree (DIT)
a DIT forms the naming graph of an LDAP directory service
where each node represents a directory entry
54
node N corresponds to the directory entry shown earlier; it
also acts as a parent of other directory entries that have an
additional attribute, Host_Name; such entries may be used
to represent hosts
55
Attribute Value Attribute Value
Country NL Country NL
Locality Amsterdam Locality Amsterdam
Organization Vrije Universiteit Organization Vrije Universiteit
56
THANK YOU
??
57