Document Sample
DS-NS-4 Powered By Docstoc
					                   3. Naming

Naming in DS
Name resolution
The implementation of a name space
Case study: The Domain Name System (DNS)

             Learning Objectives

To understand the naming in DS
To gain a good understanding of naming space and name
To study general methods in implementing a name space
To examine and study the Internet Domain Name System
(DNS), one of the largest distributed naming services.

             Introduction to Naming
Names are used to share resources, to uniquely identify
entities, to refer to locations in computer systems.
An important issue with naming is that a name can be
resolved to the entity it refers to. Name resolution allows a
process to access the named entity.
To resolve names, it is necessary to implement a naming
The different between naming in DSs and non-DSs lies in the
way naming systems are implemented. In a DS, the
implementation of a naming system is itself often distributed
across multiple machines.
Two major issues in designing naming systems in DS:
efficiency and scalability.
     Names, Identities, and Addresses

A name in a DS is a string of bits or characters that is used to
refer to an entity.
An entity in a DS can be practically anything, such as
resources (e.g., hosts, printers, disks, files etc), processes,
users, mailboxes, newsgroups, Web pages, messages,
network connections etc.
Entities can be operated on. To operate on an entity, it is
necessary to access it through an access point which is a
special kind of entity, and whose name is called address
(simply called address of that entity).
An entity can offer more than one access points, and may
change its access points in the course of time.

     Names, Identities, and Addresses
In a DS, a name for an entity that is independent from its
(called location- independent) addresses is often much easier
and more flexible to use (why?).
An identifier is a name that has the following properties:
* An identifier refers to at most one entity;
* Each entity is referred to by at most one identifier;
* An identifier always refers to the same entity (never reused).
By using identifiers, it becomes possible to unambiguously
refer to an entity.
In many computer systems, addresses and identifiers are
represented in the form of bit strings (machine-readable),
such as IP addresses and memory addresses etc.
 Human-Friendly Name and Name Space

Another type of name is that it is tailored to be used by
humans, referred as human-friendly names which are
generally represented as character strings (e.g., host name –
Names in a DS are organized as name space. It can be
represented as a labeled, directed graph with two types of
nodes, each node (as an entity) has an identifier:
* leaf node (no outgoing edges): represents a named entity
 and generally stores information on the represented entity
 such as its address, its state, e.g., in the case of file systems,
 it may contain the complete file it is representing.

                    Name Space

* directory node (with some outgoing edges): each
 outgoing edge is labeled with a name. The node stores a
 table, called directory table, in which each outgoing edge
 is represented as a pair (edge label, node identifier).
For simplicity, many naming systems have only one root
(no incoming edge).
Each path in a naming graph can be referred to by the path
name, the sequences of labels corresponding to the edges
in that path: N:<lable-1, lable-2, …, label –n>. If the first
node N in the path is root, it is called absolute path name;
otherwise it is called relative path name.
Such a naming space is often used in hierarchical naming
                        Name Spaces

   A general naming graph with a single root node.
root:<lable-1, lable-2, …, label –n> = /label-1/label-2/…/label-n

                 Name Resolution
Given a path name in a name space, it should be possible to
look up any information stored in the node referred to by that
name. The process of looking up a name is called name
Consider a path name N:<lable-1, lable-2, …, label –n>,
resolution of this name starts at node N in the naming graph,
where the name label-1 is looked up in the directory table,
and it returns the identifier of the node to which label-1 refers.
Resolution then continues at the identified node by looking up
the name label-2 in its directory table, and so on, until the last
node referred to by label-n, by returning the content of that
Knowing how and where to start name resolution is generally
referred to as a closure mechanism.
   The Implementation of a Name Space
A naming service is implemented by name servers. In large
DSs with many entities it is necessary to distribute the
implementation of a name space over multiple name servers.
To efficiently implement a name space for a large-scale,
possibly worldwide, DS, it is usually organized hierarchically
and may be partitioned into logical layers:
* global layer: formed by the highest-level nodes, e.g., root
 and other directory nodes logically close to the root. The
 directory tables in these nodes are rarely changed.
* administrational layer: formed by the directory nodes
 managed within single organization. The nodes in this layer
 are relatively stable although less stable than those in global
  The Implementation of a Name Space

* managerial layer: formed by the nodes that may change
 regularly, e.g., nodes representing hosts in the LAN. The
 nodes in this layer are also maintained by end users of a DS.
The distribution of a name space across multiple name
servers affects the implementation of name resolution.
Iterative name resolution: The root name server contacts
the other name servers iteratively to resolve the name.
Recursive name resolution: The root name server contacts
the other name servers recursively to resolve the name.

   Name Space Distribution (1)

An example partitioning of the DNS name space, including
Internet-accessible files, into three layers.
                           Name Space Distribution (2)

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

Number of replicas                   Many           None or few        None

Is client-side caching applied?      Yes            Yes                Sometimes

   A comparison between name servers for implementing nodes from a large-scale
   name space partitioned into a global layer, as an administrational layer, and a
   managerial layer.

      Implementation of Name Resolution

  Example: Assume that a absolute name root:<n1, n2> is to
  be resolved, A name server NS0 communicates with other
  name servers on behalf of a client (see the next slide).
 * iterative name resolution: The name server NS1 that NS0
  contacts can resolve only the label n1, for which it returns the
  associated name server NS2; NS0 then contacts NS2 to
  resolve n2, to finally resolve the name.
 * recursive name resolution: The NS0 requests NS1 to resolve
  <n1, n2>; and NS1 then asks NS2 to resolve <n2>, and the
  result obtained in NS2 is returned to NS1, which is in turn
  returned to NS0.
• Question: What are the main advantages and drawbacks of
  the above two methods, respectively (see slide in Page 16)?

     Iterative name resolution and recursive name

                            NS1                                       NS1

                     2                                     2
                                                                  4         3
           1                                     1
               NS0                                   NS0
  client                                client
           4               3                     5
                                  NS2                                       NS2

                     Iterative                                 Recursive

A name server NS0 communicates with other name servers on behalf of a client

         Implementation of Name Resolution

The comparison between recursive and iterative name resolution with
respect to communication costs.

Case Study: Domain Name System (DNS)

DNS name tree
DNS server
Resolving a name
Improving DNS performance
Other types of DNS entry

Case Study: Domain Name System (DNS)

One of the largest distributed naming service is the Internet
Domain Name System (DNS). It is primarily used for looking
up host addresses (IP addresses) and mail servers.
Every machine (or rather, network interface) on the Internet is
assigned a unique IP address. To communicate with a
particular machine, one needs to supply the IP address of
that machine.
However, IP address, even in dot decimal representation,
may not be easy to memorize. It is useful to refer to machine
on the Internet with a textual name which carries some
meaningful structural information.

                 DNS Name Tree

The Internet domain name system (DNS) is a hierarchical
naming system. A name tree is used:

                  DNS Name Tree

The leaves of the tree represent domain names of the hosts.
For example: cschlee.cityu.edu.hk refers to the machine
cschlee on the cityu.edu.hk domain.
The hierarchical architecture is intended as it greatly reduces
the complexity of name management. The Internet central
authority only specifies the top level (com, edu,…, uk, hk, …).
For example, the hk domain is given to the Hong Kong
Internet organization responsible. City University then has the
authority to assign any domain name with cityu.edu.hk as

                    DNS Server
A DNS server provides domain name mapping service to its
clients. When sent a service request to map a domain name
of a machine, it replies with the IP address of the machine.
Because of the size of Internet, multiple DNS servers will be
used. The DNS name tree is partitioned into non-overlapping
parts called zones.
Each zone is covered by a primary DNS server which holds
the authoritative mapping information for that zone. A zone
may have one or more secondary DNS severs (for reliability
purposes) which get their mapping information from the
primary server.
The following slide shows an example of the partitioning.
DNS Server

                    DNS Server

There are more than one way to partition a domain into
zones. The following slide shows an example.
The root server for the top level domain com does not know
about the names of all the machines in foobar.com, but it
knows how to get to the DNS server that would know a DNS
name for a machine in foobar.com.
Each DNS server has links to a root server and at least those
servers that are subparts of the hierarchy. For example, in
Figure (a) in the next slide the server for foobar.com knows
the server for candy.foobar.com. If the server is asked to
resolve a name of the formxyz.candy.foobar.com, it can be
referred to the DNS server for candy.foobar.com.
DNS Server

           Resolving a Name in DNS

Each machine on the Internet has a piece of software for
resolving names. It is often known as name resolver.
A resolver is configured with the IP address of a local DNS
server. When called, it packages a request to that DNS
server. When the DNS server returns the result, the resolver
relays the result back to the caller.
A resolver on a host always requests recursive resolution
when it send request to a DNS server. A DNS server, when
acting as a client to another DNS server, it may, or may not
request recursive resolution, (it may request iterative

           Improving DNS performance
  DNS service performance can be improved by two primary
  means: replication and caching, which are based on:
  * physical locality: Machines in a domain is more likely to
  communicate with each other than with "remote" machines;
  * time locality: When a machine refers a name, it is likely that
  it will refer the same name again in the near future.
• Replication: Each root server is replicated. There are many
  copies of the root sever in the world. A local DNS server is
  initialized with a list of root servers "closest" to it. The local
  server monitors the response performance and tune to the
• Caching: Recent name resolution results are cached.
            Other Types of DNS entry

  The mapping of domain name to IP address is achieved
  through A (address) type entry in the DNS database:
  aaa.xyz.com    A    86400
  The above entry specifies a mapping from aaa.xyz.com to The number 86400 represents the time-to-live
  field (The period the entry is valid).
• A DNS database entry can have other than address type (A
  type) entries (these are for name to address mapping). For
  example, A MX type (Mail Exchange) entry is used to map
  computer name found in an e-mail address to an IP address.
  e-mail software sends request of MX type to a DNS server.

                        The DNS Name Space
      The most important types of resource records forming the
      contents of nodes in the DNS name space.
Type of    Associated
record     entity

SOA        Zone          Holds information on the represented zone

A          Host          Contains an IP address of the host this node represents

MX         Domain        Refers to a mail server to handle mail addressed to this node

SRV        Domain        Refers to a server handling a specific service

NS         Zone          Refers to a name server that implements the represented zone

CNAME      Node          Symbolic link with the primary name of the represented node

PTR        Host          Contains the canonical name of a host

HINFO      Host          Holds information on the host this node represents

TXT        Any kind      Contains any entity-specific information considered useful


Names are used to refer to entities. There are essentially
three types of names: address, identifier, and human-friendly
Names are organized in a name space. It can be represented
by a naming graph, often rooted acyclic direct graph.
An entity can be referred to by a path name in naming graph.
Name resolution is the process of traversing the graph by
looking up the components of a path name, one at a time.
A large-scale naming graph is implemented by distributing its
nodes across multiple name servers. When resolving a path
name by such a traversing, name resolution continues at a
next name server as soon as a node is reached implemented
by that server.
                 Summary (DNS)

In the Domain Name System (DNS), each machine is
assigned a name which is unique across the Internet. DNS
name space has a tree structure. The administrator for each
node has authority to assign names in the subtrees of that
The hierarchical structure of DNS name usually reflects the
structure of certain organization or relationship.
The mapping between DNS names to IP addresses are done
by an Internet system service, which is provided by a
(distributed) set of DNS servers.
A DNS zone is serviced by a primary DNS server which is the
source (and authoritative) information for the name-to-
address mapping of names in the zone.

                 Summary (DNS)

A client machine (resolver) requests address resolution from
a DNS server (called default DNS server for the client
machine) which is close to the client (usually on the same
network as the client is on).
A DNS server may appeal to an another DNS server to
resolve a name, which does not appear in its own mapping
database or its cache. The process used can be iterative or
recursive resolution.
Replication and caching can be used to improve DNS server


Q1. Give an example of where an address of an entity E
  needs to be further resolved into another address to
  actually access E.
Q2. Would you consider a URL such as
  http://www.acme.org/index.html to be location
  independent? What about
Q3. Outline an efficient implementation of globally unique
Q4. How does caching helps to improve the performance
  and availability of a name service? Why caching is
  feasible in name service?


Q5. Given the absolute path name
root:<nl, vu, cs, ftp, pub, globe, index.txt>,
using a URL notation, it corresponds to
  The name resolution for it is to first obtain the address of
  FTP server ftp.cs.vu.nl, then contact the FTP server to
  resolve and transfer the file /pub/globe/index.txt. Show
  how to use iterative and recursive name resolution,
  respectively, for the name resolution for the FTP server.
Q6. Discuss the main advantages and drawbacks of using
  recursive name resolution (compared to iterative