Naming

Naming schemes are extremely important in most fields of human endeavour. The important characteristics of a naming scheme include:
Scope:
whether a naming scheme applies globally, or is only applicable within a restricted local context.
User-friendliness
is the name intended for human use, or only for communications between non-human network entities?
Scale
the ability of a naming scheme to accomodate both an increase in the number of allocated names and the increased complexity of the name space as the system size increases.
Permanence
whether the binding of a name to an object is intended to be transient or persistent, and if the latter, whether it needs to be registered with a formal registration authority.
The most common solution to the naming problem involves a hierarchy of names - thus, a hierarchical name space.

Directories

A directory is a place where information about the elements of a network is kept. It allows network entities to be referred to by name, instead of by some other attribute, such as its network address, which may be subject to change. In particular, most current directories are used to map network hostnames to addresses.

An example of a directory system is the one used in the telephone system:

NB: Such a structure is entirely different to a computer network, and hence is generally regarded as inappropriate.

Directory Characteristics

Provided by:
TCP/IP (Internet)
the DNS is the primary directory service, some use of X.500
OSI
X.500 Directory Service

The Domain Name System

The DNS is the major directory service in the TCP/IP-based Internet. Historical notes: Some top level DNS domains include:
edu
educational institutions commercial organisations
mil
U.S. military agencies
org
"other" organisations
au
top level domain for Australia, similarly uk, ca, etc. - these are not strictly necessary, but...

DNS Names

Rules:

  1. A name is a dotted sequence describing a path through the name hierarchy from the root, maybe with a trailing dot, thus:
    bindi.bendigo.latrobe.edu.au.
    
  2. An individual name must be less than 63 characters, begin with a letter, etc...
  3. Upper and lowercase may be used, although name lookups are case insensitive by definition.

DNS Servers and Resolvers

A server provides name-to-address mappings for one or more zones, which are sub-trees of the domain name space. Exactly which server is responsible for a particular zone is specified in start of authority (SOA) RRs.

A resolver is a library function[1] which queries the nameserver when called from a user program. It can check a local cache of names and, if necessary, request a RR from a nameserver (caching the response).

The resolver sends a question to a name server, of the form:

{query domain name, type, class}
The server responds with one or more appropriate RRs. Note that each RR has an associated Time To Live field which suggests how long it may be cached by the resolver.

DNS queries and responses are encapsulated in UDP datagrams. DNS is an excellent example of an application where the reliable, connection-oriented transport mechanism of TCP is not required.

The most common DNS query is of type A, where the resolver is required to map a domain name to an IP address.

[1]Such as is built-in to gethostbyname(3)


Some DNS Subtleties

Mail eXchange
the DNS provides the MX type of RR to discover where email is to be delivered. An MX RR specifies a primary mailhost, and lesser preferential hosts where mail for a specified domain is be delivered. For ironbark:
mx  ironbark
ironbark 20
redgum 30
sheoak 40...etc
Reverse lookups
a special domain (in-addr.arpa) and address format is used to map addresses to names, thus:
60.20.144.149.in-addr.arpa
This is called a PTR RR. Performing reverse lookups is much harder than normal forward address lookups.
CNAME
Often a host may be known by several names: names other than the official host name are called aliases, and a CNAME RR maps their alias name to their "real" name.
HINFO
describes some basic information about the type of CPU and the OS it is running. Rarely kept up-to-date.

Whois, netfind, etc

The DNS is really only useful for system names, not individual names, nor other types of Internet resources.
Various other solutions, none of them very generally adopted, have been proposed for the more general problem of Internet Resource Discovery.
Some services which have been used include:

whois
a service which was intended to allow lookup of any users' email address. Not generally available, although...
finger
Used to discover information about a user, or users, logged in to a remote host or holding a user account on the host. Usually available.
Netfind
a client program uses various other network services (finger, whois, vrfy in SMTP) to heuristically discover a user's identity, email addres, etc. Clever.
archie
gopher
WAIS
World Wide Web
NB: Emergence of "search engines..." See later, maybe.

This lecture is also available in PostScript format. The tutorial for this lecture is Tutorial #09.
Phil Scott