Title: The Domain Name System
1The Domain Name System
- URL
- HTTP
- Domain name system
2Web servers and web browsers
3Several technological components
- HTML (HyperText Markup Language) a language for
specifying the contents and layout of pages as
they are displayed by web browsers. - URLs (Uniform Resource Locators), which identify
documents and other resources stored as part of
the Web. - A client-server system architecture, with
standard rules for interaction (the HyperText
Transfer Protocol--HTTP) by which browsers and
other clients fetch documents and other resources
from web servers.
4URLs
- Every HTTP URL is of the following form
http//host_nameport/pathparameters?query
- -- where items in square brackets are optional.
- Examples
- http//www.ulster.ac.uk/
- http//www.ulster.ac.uk88/
- http//www.w3.org/Protocols/Activity.html
- http//www.google.com/search?qurl
5HTTP
- A protocol that specifies the messages involved
in a request-reply exchange, the methods,
arguments and results and the rules for
representing them in the messages. - A set of methods include GET, PUT, POST, TRACE,
etc.
6HTTP Get request
- It requests the resource whose URL is given as
argument. - If the URL is a static web page, then the web
server replies by returning that page. - If the URL refers to a program, then the web
server runs the program and returns its output to
the client.
7HTTPS
- The secure hypertext transfer protocol (HTTPS) is
a communications protocol designed to transfer
encrypted information between computers over the
World Wide Web. HTTPS is http using a Secure
Socket Layer (SSL). A secure socket layer is an
encryption protocol invoked on a Web server that
uses HTTPS. - Most implementations of the HTTPS protocol
involve online purchasing or the exchange of
private information. Accessing a secure server
often requires some sort of registration, login,
or purchase. - The successful use of the HTTPS protocol requires
a secure server to handle the request. - An example https//uumail.ulster.ac.uk/
8Some characteristics of HTTP (1)
- Application level HTTP operates at the
application level. It assumes a reliable,
connection-oriented transport protocol such as
TCP, but does not provide reliability or
retransmission itself. - Request/response once a transport session has
been established, one side (usually a browser)
must send an HTTP request to which the other side
responds. - Stateless each HTTP request is self-contained
the server does not keep a history of previous
requests or previous sessions. - Bi-directional transfer in most cases, a browser
requests a web page, and the server transfers a
copy to the browser. HTTP also allows transfer
from a browser to a server (e.g., when a user
submits a so-called form).
9Some characteristics of HTTP (2)
- Capability Negotiation HTTP allows browsers and
servers negotiate details such as the character
set to be used during transfer. A sender can
specify the capabilities it offers and a receiver
can specify the capabilities it accepts. - Support for caching to improve respond time, a
browser caches a copy of each web page it
retrieves. If a user requests a page again, HTTP
allows the browser to interrogate the server to
determine whether the contents of the page have
been changed since the copy was cached. - Support from intermediaries HTTP allows a
machine along the path between a browser and a
server to act as a proxy server that caches web
pages and answer a browsers request from its
cache.
10Name and name space
- Any process that require access to a specific
resource must possess a name or an identifier for
it. - A name space is the collection of all valid names
recognized by a particular service. - For example, we can define a name space which is
composed of decimal numbers, then 555 and
1234567 are valid names, but 3r and _33 are
not.
11The role of names and name services (1)
- Resources are accessed using identifier or name
- An identifier can be stored in variables and
retrieved from tables quickly - An identifier includes or can be transformed to
an address for an object. - A name is human-readable value (usually a string)
that can be resolved to an identifier or address - Internet domain name, file pathname, process
number - E.g ./etc/passwd, http//www.w3.org/
12The role of names and name services (2)
- For many purposes, names are preferable to
identifiers - because the binding of the named resource to a
physical location is deferred and can be changed - because they are more meaningful to users
- Resource names are resolved by name services
- to give identifiers and other useful attributes
13Requirements for name spaces
- Allow simple but meaningful names to be used
- Potentially infinite number of names
- Structured
- to allow similar subnames without clashes
- to group related names
- Allow re-structuring of name trees
- for some types of change, old programs should
continue to work - Management of trust
14Composed naming domains used to access a resource
from a URL
15Names and resources
- Currently, different name systems are used for
each type of resource - resource name identifies
- file pathname file within a
given file system - Process process id process on a given
computer - port port number IP port on a given computer
- Uniform Resource Identifiers (URI) offer a
general solution for any type of resource. There
are two main classes - URL Uniform Resource Locator
- typed by the protocol field (http, ftp, nfs,
etc.) - part of the name is service-specific
- resources cannot be moved between domains
- URN Uniform Resource Name
- requires a universal resource name lookup service
- a DNS-like system for all resources
16The Domain Naming System
- IP addresses are difficult to remember. Instead
the Internet maintains a set of high-level
addresses which map to IP addresses. These
high-level addresses are easier to remember than
IP addresses. - The addresses are organised hierarchically, as
domain names. - A domain name consists of a sequence of labels
separated by dots. Each label is a sequence of
alphabetic characters. - Anything to the right of a label in a domain name
is called a domain.
17The Internet Domain Name System (2)
- A distributed naming database
- Name structure reflects administrative structure
of the Internet - Rapidly resolves domain names to IP addresses
- exploits caching heavily
- typical query time 100 milliseconds
- Scales to millions of computers
- partitioned database
- caching
- Resilient to failure of a server
- replication
18An example of domain name
- isun1.infj.ulst.ac.uk
- In this example there are five labels.
- infj.ulst.ac.uk
- ulst.ac.uk
- ac.uk
- uk are all domains.
19Name resolution process
- Basic DNS algorithm for name resolution (domain
name -gt IP number) - Look for the name in the local cache
- Try a superior DNS server, which responds with
- another recommended DNS server
- the IP address (which may not be entirely up to
date)
20DNS name servers
Note Name server names are in italics, and the
corresponding domains are in parentheses.Arrows
denote name server entries
authoritative path to lookup jeans-pc.dcs.qmw.ac.
uk
21DNS in typical operation
a.root-servers.net
(root)
Without caching
uk
purdue.edu
ns1.nic.uk
yahoo.com ....
(uk)
ns.purdue.edu
(purdue.edu)
co.uk
ac.uk...
.purdue.edu
ns0.ja.net
(ac.uk)
ic.ac.uk
alpha.qmw.ac.uk
IP alpha.qmw.ac.uk
qmw.ac.uk...
(qmw.ac.uk)
client.ic.ac.uk
dns0-doc.ic.ac.uk
(ic.ac.uk)
dcs.qmw.ac.uk
.qmw.ac.uk
.ic.ac.uk
IPjeans-pc.dcs.qmw.ac.uk
dns0.dcs.qmw.ac.uk
4
(dcs.qmw.ac.uk)
.dcs.qmw.ac.uk
22DNS server functions and configuration
- Main function is to resolve domain names for
computers, i.e. to get their IP addresses - caches the results of previous searches until
they pass their 'time to live' - Other functions
- get mail host for a domain
- reverse resolution - get domain name from IP
address - Host information - type of hardware and OS
- Well-known services - a list of well-known
services offered by a host - Other attributes can be included (optional)
23DNS resource records
Record type
Meaning
Main contents
A
A computer address
IP number
NS
An authoritative name server
Domain name for server
CNAME
The canonical name for an alias
Domain name for alias
SOA
Marks the start of data for a zone
Parameters governing the zone
WKS
A well-known service description
List of service names and protocols
PTR
Domain name pointer (reverse
Domain name
lookups)
HINFO
Host information
Machine architecture and operating
system
preference, host
gt pairs
MX
Mail exchange
List of lt
TXT
Text string
Arbitrary text
24DNS issues
- Name tables change infrequently, but when they
do, caching can result in the delivery of stale
data. - Clients are responsible for detecting this and
recovering - Its design makes changes to the structure of the
name space difficult. For example - merging previously separate domain trees under a
new root - moving subtrees to a different part of the
structure (e.g. if Scotland became a separate
country, its domains should all be moved to a new
country-level domain.