Dr. Mark Humphrys

School of Computing. Dublin City University.

Home      Blog      Teaching      Research      Contact

Online coding site: Ancient Brain

coders   JavaScript worlds


CA170      CA2106      CA686      CA686I

Online AI coding exercises

Project ideas

7.1 DNS

A global list of sites

Each site could keep a list of all sites on the network (or have access to such a list).
BITNET kept such a list, of thousands of international sites.
ARPANET did this at first, too.

A decentralised list - DNS

DNS - Domain Name System

The Internet has long since grown too big to keep a list of all sites anywhere, let alone have one at each site.

This means sites do not know a priori if an email address or web site name is valid. They must make a query and find out.

You don't clutter up your site with info about other sites, 90 percent of which you will never actually need to know about. You don't have huge amount of Internet traffic being announcements of new sites.


Find out if site exists at run-time

The upside to the DNS run-time query idea is that each subzone of the Internet can develop rapidly, without having to tell everyone else what it is doing.

Say the University of MIT is responsible for all addresses:

It is assigned a segment of the numerical address space, like this (not exactly this):
and can assign and reassign names to this as it likes. It doesn't need permission to add new machines to the Internet, nor does it need to publicise those machines. Other sites find out about these machines if and when they need to (which may be never).

When given the name of a machine:

they talk to the DNS server for .edu, which gives them the name of the DNS server for .mit.edu, which gives them the real address of the site (or says "invalid site").

Each subzone can build and rebuild its own topology as it pleases. Don't even need to report how much of that address space is used.

If a DNS server does not know the answer, it returns the address of a better DNS server to ask.
From here.

DNS so important / done so often that there are duplicate DNS servers, caches of remote information, etc. (without going as far as the complete cache of all sites on the net).

DNS uses UDP (not TCP) for address lookups.

Root nameservers

There are 13 logical root nameservers in the world.
We say "logical" servers because most of them are distributed across multiple machines across the world using anycast routing.

The root nameservers of the world, as at 2006.
13 logical servers, most distributed geographically using anycast.
From here.
There was at that time a single root nameserver in Ireland, run by INEX in Dublin. Part of the J group. A nameserver for .com and .net.

Latest and more detailed map here.
Shows there are now 2 root nameservers in Ireland, in the L and J groups.

DNS Lookup tools

7.1.2 Aliases (1-to-many and many-to-1)

See: "Server" = Single computer or Multiple computers

See Virtualization and Virtual server.


  1. 1-to-many:
    One text address, multiple machines behind it.
    e.g. As server.yourorg.com gets overloaded, you buy a 2nd machine, different IP. Then DNS lookup of the host returns one of these two IPs randomly. Can scale to 3 machines. And so on.
    The mega-sites like "google.com" have hundreds of thousands of servers behind them. A different server handles the request than the first server you connect to.

  2. Many-to-1 (aliases within domain):
    Can set up multiple aliases for same host ("site.com" = "www.site.com" = "ns.site.com" = "ftp.site.com"), etc.
    Lookup our web server:
    $ nslookup www.computing.dcu.ie
    www.computing.dcu.ie    canonical name = corno.computing.dcu.ie.
    Name:   corno.computing.dcu.ie
    Multiple names for the same host.
    See Different forms of URL.

  3. Many-to-1 (different domains):
    Large numbers of different domains can be hosted on a single machine by large hosting companies.
    Modern servers very powerful. Most sites are low-traffic.

    Example of shared hosting

    The below is about the old hoster for my genealogy site. I have to change this since I have moved hoster. But the point still holds.

    My genealogy site humphrysfamilytree.com is hosted with a US company. See lookup. The hosting is not cheap or unusual. Just a normal hosting service.
    My site often gets healthy (I thought) traffic of around 100,000 to 150,000 page views per month. And yet I was startled to discover that it is sharing the same IP address with 762 other sites. Lookup from here.
    Thinking about it, my site traffic works out at only 2 to 4 page views per minute, which is nothing for a powerful modern server. Lots of room for shared hosting.

    The note about "adult" sites indicates a few things about modern hosting:

    • If "adult" content is legal, the hosting service may well have customers with such content. This could easily be on the same IP as your site.
    • If web filtering software filters by IP, it may block many legitimate sites.
    • The hosting company could never police all its content, "adult" or not. No one could run a hosting service that had to police content.
    • Which is not to say that hosting services don't respond to specific requests from police/courts about illegal content. They do. But they cannot police content in advance. The numbers are too big.

  4. Both 1-to-many and many-to-1:
    Can have a hybrid of the above:
    www.domain could map to multiple IPs (for load balancing)
    and each of those IPs could map to multiple hostnames (IPs are running other services)

  5. Multiple IPs map to same machine:
    As well as multiple domains mapping to same IP address and same machine, multiple IP addresses can map to same machine.
    There are various reasons to do this.

ancientbrain.com      w2mind.org      humphrysfamilytree.com

On the Internet since 1987.

Note: Links on this site to user-generated content like Wikipedia are highlighted in red as possibly unreliable. My view is that such links are highly useful but flawed.