Domain Name System
The Domain Name System is a hierarchical distributed database system that serves to translate string queries (such as http://www.wikipedia.org) into an IP address which a host may connect to. DNS is also utilised in email, where email address lookups are performed, and the relevant IP addresses returned.
To perform a lookup, a program known as a resolver is passed the string as a parameter. The resolver then sends a UDP packet to the local DNS server, which returns the IP address mapped to the string. Once the IP address is received, a TCP connection to the host may be established.
In the days of ARPANET, when the internet was in its infancy, a file known as hosts.txt contained a list of hosts and their corresponding IP addresses. Every night, all hosts connected to ARPANET would fetch an updated copy of this file from a central site. As the internet began to grow larger and larger, it became apparent that it was infeasible to continue with this approach.
Top Level Domains
To begin a search for an IP address, we can choose to narrow our search down according to the type of website we are looking at. Common domain names include
.edu (educational) and
.org (non-profit organisation). We can also seek a specific server by its country domain. For example,
.co.uk belongs to the United Kingdom and
.au belongs to Australia.
These are the records that are handed back to the resolver based on the request it makes. The records are kept in ASCII text, and are presented with the following fields:
- Domain Name
- The domain to which the record applies. Multiple domains may exist, and they are all returned together to the resolver
- Time to Live
- A general indication of how long a record has before it can be considered out of date. Actual dates are not used here, rather, a value (678000 for example) is assigned to indicate how stable the record is. The lower the value, the more likely it would have changed recently.
- What kind of record we are looking at. More information will be provided below
|A||IP address of host||32 bit integer|
|MX||Mail Exchange||The domain that will accept mail|
|CNAME||Canonical Name||A fuller version of a domain name|
eg The CNAME of www.google.com is google.navigation.opendns.com