1. 1
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
Chapter 5 - Naming
2. 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. 3
access point
the name of an access point is called an address (such as
IP address and port number as used by the transport layer)
the address of the access point of an entity is also referred
to as the address of the entity
an entity can have more than one access point (similar to
accessing an individual through different telephone
numbers)
an entity may change its access point in the course of time
(e.g., a mobile computer getting a new IP address as it
moves)
4. 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
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
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
5. 5
there are three classes on naming systems: flat naming,
structured naming, and attribute-based naming
5.2 Flat Naming
a name is a sequence of characters without structure; like
human names? may be if it is not Ethiopian name!
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
6. 6
1. Simple Solutions
two solutions for LANs: Broadcasting and Multicasting,
and Forwarding Pointers
a. Broadcasting and Multicasting
a computer that wants to access another computer for
which it knows its IP address broadcasts this address
the owner responds by sending its Ethernet address
used by ARP (Address Resolution Protocol) in the
Internet to find the data link address (MAC address) of a
machine
broadcasting is inefficient when the network grows
(wastage of bandwidth and too much interruption to other
machines)
multicasting is better when the network grows - send only
to a restricted group of hosts
multicasting can also be used to locate the nearest
replica - choose the one whose reply comes in first
7. 7
b. Forwarding Pointers
how to look mobile entities
when an entity moves from A to B, it leaves behind a
reference to its new location
advantage
simple: as soon as the first name is located using
traditional naming service, the chain of forwarding
pointers can be used to find the current address
drawbacks
the chain can be too long - locating becomes expensive
all the intermediary locations in a chain have to maintain
their pointers
vulnerability if links are broken
hence, making sure that chains are short and that
forwarding pointers are robust is an important issue
8. 8
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
9. 9
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
11. 11
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 nature of the organization, the second the name, the
third departments, ...
a name space is generally organized as a labeled, directed
graph with two types of nodes
leaf node: represents the named entity and stores
information such as its address or the state of that entity
directory node: a special entity that has a number of
outgoing edges, each labeled with a name
a directory node stores a table in which an outgoing edge
is represented as a pair (edge label, node identifier), called
a directory table
12. 12
if the first node is the root of the naming graph, it is called an
absolute path name; otherwise it is a relative path name
Name Resolution
given a path name, the process of looking up a name
stored in the node is referred to as name resolution; it
consists of finding the address when the name is given (by
following the path)
Linking and Mounting
Linking: giving another name for the same entity (an alias)
two types of links (or two ways to implement an alias):
hard link: to allow multiple absolute path names to
refer to the same node in a naming graph
13. 13
the concept of a symbolic link explained in a naming graph
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
14. 14
name resolution can also be used to merge different name
spaces in a transparent way
the solution is to use mounting
Mounting
let a directory node store the directory node from a
different (foreign) name space
the directory node storing the node identifier is called a
mount point
the directory node in the foreign name space is called a
mounting point, normally the root of a name space
during name resolution, the mounting point is looked up
and resolution proceeds by accessing its directory table
15. 15
The Implementation of a Name Space
a name space forms the heart of a naming service
a naming service allows users and processes to add,
remove, and lookup names
a naming service is implemented by name servers
for a distributed system on a single LAN, a single server
might suffice; for a large-scale distributed system the
implementation of a name space is distributed over multiple
name servers
Name Space Distribution
in large scale distributed systems, it is necessary to
distribute the name service over multiple name servers,
usually organized hierarchically
a name service can be partitioned into logical layers
16. 16
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.,
directory tables are rarely changed
they may represent organizations, groups of organizations,
..., where names are stored in the name space
administrational layer
groups of entities that belong to the same organization or
administrational unit, e.g., departments
relatively stable
managerial layer
nodes that may change regularly, e.g., nodes representing
hosts of a LAN, shared files such as libraries or binaries, …
nodes are managed not only by system administrators, but
also by end users
17. 17
an example partitioning of the DNS name space, including Internet-
accessible files, into three layers
18. 18
the name space is divided into nonoverlapping parts, called
zones in DNS
a zone is a part of the name space that is implemented by a
separate name server
some requirements of servers at different layers
performance (responsiveness to lookups), availability (failure
rate), etc.
high availability is critical for the global layer, since name
resolution cannot proceed beyond the failing server; it is
also important at the administrational layer for clients in the
same organization
performance is very important in the lowest layer, since
results of lookups can be cached and used due to the
relative stability of the higher layers
they may be enhanced by client side caching (global and
administrational layers since names do not change often)
and replication; they create implementation problems since
they may introduce inconsistency problems (see Chapter 7)
19. 19
a comparison between name servers for implementing nodes from a
large-scale name space partitioned into a global layer, an
administrational layer, and a managerial layer
Item Global Administrational Managerial
Geographical scale of network Worldwide Organization Department
Total number of nodes Few Many Vast numbers
Responsiveness to lookups Seconds Milliseconds Immediate
Update propagation Lazy Immediate Immediate
Availability requirement Very High High low
Number of replicas Many None or few None
Is client-side caching applied? Yes Yes Sometimes
20. 20
Implementation of Name Resolution
recall that name resolution consists of finding the address
when the name is given
assume that name servers are not replicated and that no client-
side caches are allowed
each client has access to a local name resolver, responsible for
ensuring that the name resolution process is carried out.
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 to
an address calls a DNS client named a resolver
the resolver accesses the closest DNS server with a mapping
request
if the server has the information it satisfies the resolver;
otherwise, it either refers the resolver to other servers (called
Iterative Resolution) or asks other servers to provide the
information (called Recursive Resolution)
21. 21
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
the principle of iterative name resolution
22. 22
Recursive
a name resolver hands over the whole name to the root name
server
the root name server will try to resolve the name and if it
can’t, it requests the first level name server to resolve it and
to return the address
the first level will do the same thing recursively
the principle of recursive name resolution
23. 23
the comparison between recursive and iterative name resolution with
respect to communication costs; assume the client is in Ethiopia
and the name servers in the Netherlands
Advantages and drawbacks
recursive name resolution puts a higher performance demand on
each name server; hence name servers in the global layer support
only iterative name resolution
caching is more effective with recursive name resolution; each
name server gradually learns the address of each name server
responsible for implementing lower-level nodes; eventually lookup
operations can be handled efficiently
communication costs may be reduced in recursive name
resolution
Summary
Method Advantage(s)
Recursive Less Communication cost; Caching is more effective
Iterative Less performance demand on name servers
24. 24
Example - The Domain Name System (DNS)
one of the largest distributed naming services is the
Internet DNS
it is used for looking up host addresses and mail servers
hierarchical, defined in an inverted tree structure with the
root at the top.
Label
each node has a label, a string with a maximum of 63
characters (case insensitive)
the root label is null
children of a node must have different names (to guarantee
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
25. 25
Fully Qualified Domain Name (FQDN) or Absolute
terminated by a null string
contains the full name of a host, e.g., cs.du.edu.et.
usually the last dot is omitted for readability
Partially Qualified Domain Name (PQDN) or Relative
not terminated with a null string
it starts from a node but does not reach the root
used when the name to be resolved belongs to the same
site as the client (the resolver supplies the missing part,
called the suffix to create an FQDN)
Hierarchy of Name Servers
storing the information contained in the domain name space
in a single computer is inefficient and unreliable
distribute the information among many computers called
DNS servers.
26. 26
Zone
what a server is responsible for, or has authority over, is
called a zone; zones are nonoverlapping
the server makes a database called a zone file and keeps all
the information for every node under that domain
it can divide its domain into subdomains and delegate part
of its authority to other servers
Root Server
a server whose zone consists of the whole tree
it usually does not store the whole information about
domains but delegates its authority to other servers and
keeps references to those servers
there are currently more than 13 root servers, each covering
the whole domain name space and distributed all around the
world
Primary and Secondary Servers
a primary server is one that stores a file about the zone for
which it is an authority; it is responsible for creating,
maintaining, and updating the zone file.
27. 27
A secondary server is one that transfers the complete
information about a zone from another server (primary or
secondary); it does not create or update the file
such arrangement is to create redundancy so that if one
server fails, the other can still serve clients
Types of Top-Level Domains
two types: generic domains and country domains; there is a
third one called Inverse Domain (used to map an address to a name;
Generic Domains
define registered hosts according to their generic 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
28. 28
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
29. 29
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
whose Name is Alice
Hierarchical Implementations: LDAP
distributed directory services are implemented by combining
structured naming with attribute-based naming
e.g., Microsoft’s Active directory service
such systems rely on the lightweight directory access
protocol or LADP which is derived from OSI’s X.500
directory service
a LADP directory service consists of a number of records
called directory entries (attribute, value) pairs, similar to a
resource record in DNS; could be single- or multiple-valued
(e.g., Mail_Servers)
30. 30
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).
a globally unique name is formed using abbreviations of
naming attributes.