Math 300: IP Addresses and DNS (back to Math 300 notes)

The heart of the Internet is the Internet Protocol (IP). This is the system by which individual computers may be addressed, possibly from around the world. Each computer on the Internet is identified by one or more IP addresses. In the currently dominant version of IP (IPv4), these addresses take the form of four 8-bit numbers separated by decimal points. Traditionally, then individual numbers are given in decimal notation. For example, the IP address of the machine on which you are reading this page is This identifier is unique to the machine - no other machine on the Internet may have that address.

A computer sends and receives information in packets, each of which contains the source and destination IP address, as well as the information being sent. These packets can be imagined as in the diagram below.

The data from some application are packaged up with some information about their relevance to a larger document. That is then attached to Internet addressing information, and bundled off onto the local network. The Internet addressing info allows the packet to be routed to its destination.

Every computer on the Internet then keeps a routing table, which tells how to route traffic to various classes of IP addresses. An example of a routing table display follows:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface    *        U     0      0        0 eth0       *            U     0      0        0 lo
default         UG    0      0        0 eth0

The first line of the table basically says that to reach machines with addresses of the form, our computer should just send out packets to the local network. The second line says that our computer can contact itself without using the external network interface at all. The third line says that to reach any address other than or the local machine, we should send packets to, and rely on it to forward that information on. The idea is communicated succinctly in the diagram below, which is adapted from the site

Here is the point. The machine on your desk does not know the address of every machine in the world. It really only knows how to find machines with IP addresses that look like, and otherwise, it sends packets to another machine that might know how to forward that packet on.

The machine at has its own routing table, which allows it to send our packets on to the next router. Our information jumps from one machine to another, each knowing only where the next hop is, but not the ultimate destination, until our packets come to a machine whose routing table indicates that the destination is on the local network. Thus, the Internet is a global construction composed of small systems that have only local knowledge. For an example of this hopping, see global traceroute.

Of course, we are not used to using IP addresses. Instead, we address computers by name: e.g. This means that we need some system for translating names into IP addresses, and back. This is done through the Domain Name Service (DNS), another global system composed of many smaller services with only local information. If we try to contact the server, our browser must first find the IP address of the machine called, so it contacts the DNS server that it knows about. That local server probably does not know the IP address of, so it asks another server that it does know. This process continues until a server is contacted that does know the IP address of, and sends that information back. Our computer then caches that information - it saves it for some specified time so that it does not have to look up the address again for the current transaction. We can query DNS servers (also called nameservers) using e.g. nslookup or dig.

This system of names requires a little bit of organization in order to work all over the world. The organization is provided by the Internet Assigned Numbers Authority (IANA), which is administered by the Internet Corporation for Assigned Names and Numbers (ICANN). IANA is in turn administered on a continental basis by several more active organizations. The one for North America is the American Registry for Internet Numbers (ARIN). One can use their web site to find out information about the ownership of domain names.

A computer may have single IP address and multiple names. For an example of such a machine, see the ICE. On the other hand, there are many machines that have multiple IP addresses - see the discussion of routers above.