Bahir Dar Institute of Technology
Faculty of Computing Network and Internet
Chair
Introduction of Distributed System
Content
Names, Identifiers, and Addresses
Flat Naming
Structured Naming
Attribute-Based Naming
Name, Address and Name Resolution
Name
Used to denote entities in a Distributed System.
Examples of entities hosts, printers, disks, files,
processes, users, mailboxes, web pages, graphical
windows, messages, network connections, etc
To operate on an entity, we need to access it at an access
point
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)
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(e.g., A Mobile
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)
Identifier also other types of names that uniquely identify an
entity.
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)
Types of Naming Systems
Flat naming: identifier is simply a random bit string.
It does not contain any information what so ever on how to
locate an access point of its associated entity.
Structured naming: composed of simple human-readable
names.
Examples are file system naming and host naming on the
Internet.
Attribute-based naming: allows an entity to be described
by (attribute, value) pairs.
Flat Naming
Unstructured name such as identifier does not contain an
information on how to locate an access point of its
associated entity
Flat Naming Systems
Broadcasting and multicasting
Forwarding pointers
Home-based approaches
Distributed hash tables
Hierarchical approaches
Broadcasting and multicasting
Simple but applicable to LAN
Locating an Entity
-> Broadcast a message containing the identifier of the
entity.
Principle is used in different protocol Ex. ARP
Forwarding pointers
When an entity moves from A to B, it leaves behind in A
a reference to its new location at B.
Main advantage of this approach is its simplicity:
As an entity has been located using a traditional naming
service, a client can look up the current address by
following the chain of forwarding pointers.
Home-Based Approach
A popular approach to supporting mobile entities in large-
scale networks is to introduce a home location, which keeps
track of the current location of an entity.
Is often chosen to be the place where an entity was created.
Used
-> As a fall-back mechanism for location services based on
forwarding pointers.
-> Another example Is followed is in Mobile IP
The principle of Mobile IP
Structured naming
Name Spaces: a logical system that assigns unique names or
identifiers to resources in a distributed system.
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 general naming graph with a single root node
Path name: sequence of labels
• Absolute (first node in the path is the root) n0:<home,
steen, mbox>
• Relative (otherwise)
Each path in a naming graph can be referred to by the
sequence of labels corresponding to the edges of the path
and the first node in the path, such as N:<label1, label2, ...,
labeln>, where N refers to the first node in the path
Name Resolution
Name Resolution: Name resolution refers to the process
of mapping or translating human-readable names (such
as URLs, domain names) into corresponding network
addresses (such as IP addresses).
Linking and Mounting
Linking: giving another name for the same entity (an
alias)
Ex. environment variables in UNIX such as HOME that refer to
the home directory of a user
Two types of links (or two ways to implement an alias):
Example of Hard link
Hard link: to allow multiple absolute path names to refer
to the same node in a naming graph
Ex:- In graph, there are two different path names for
node n5: /keys and /home/steen/keys
Symbolic link: allow a leaf node to contain an absolute
path name
the concept of a symbolic link explained in a naming
graph
when first resolving an absolute path name stored in a node
Ex. /home/steen/keys in node n6),
Name resolution will return the path name stored in the
node (/keys),
at which point it can continue with resolving that new path
name.
Name resolution can also be used to merge different
name spaces in a transparent way
Merging Naming Space
Solution 1: Introduce a naming scheme by which
pathnames
of different namespaces are simply concatenated (URLs)
[Link]
Merging Naming Space cont..
Solution 2: Mounting
A directory node called a mount point stores the id of (or
all the necessary information for identifying and accessing)
a directory node from a foreign name space called
mounting point
NFS: distributed file system that describes exactly how a
client can access a file stored on a (remote) NFS file server
through NFS URL.
Ex. the subdirectory /remote includes mount points for
foreign name spaces on the client machine
a directory node named /remote/vu is used to store
nfs://[Link]/home/steen
consider /remote/vu/mbox
This name is resolved by starting at the root directory on
the client’s machine until node /remote/vu, which returns
the URL nfs://[Link]/home/steen
This leads the client machine to contact [Link] using
the NFS protocol
Then the file mbox is read in the directory /home/steen
mounting remote name spaces through a specific process
protocol
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
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
Merging Naming Space cont..
Solution 3: Add a new root node and makes the existing
root nodes its children (Global Name Service (GNS))
Ex. the absolute path name /home/steen has now changed
to a relative path name and corresponds to the absolute
path name /vu/home/steen
hence the system must expand no:/home/steen to
/vu/home/steen without the awareness of users
this requires storing a mapping table (with entries such as
n0vu) when a new root node is added
Merging thousands of name spaces may lead to
performance problems
m0 oxford
n0 vu
organization of the DEC Global Name
Service
Name Space Implementation
A name space is implemented by a naming service that
allows users to add, remove and look up names.
It is implemented by name server(s)
For a distributed system limited to a LAN, it may be feasible
to implement the name service with a single name server
large-scale distributed system spread across a large
geographical area, it is necessary to distribute the
implementation over many name servers
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
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
an example partitioning of the DNS name space, including
Internet-accessible files, into three layers
Name space is divided into non overlapping 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
Name Space Implementation con…
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
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
Two ways of implementing name resolution
iterative name resolution
recursive name resolution
Iterative
a name resolver hands over the complete name to the
root name server
the root 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
Ex. assume the path name
root:<nl, vu, cs, ftp, pub, globe, [Link]>is to be
resolved or using a URL notation, this path name would
correspond to [Link]
the principle of iterative name resolution
Recursive
a name resolver hands over the whole name to the root
name server
the root 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
Group Assignment
Distributed hash tables()
Hierarchical approaches()
Attribute-Based Naming()
Thank You!!!