IP Addresses and DNS
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 134.121.45.19. 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. 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 134.121.80.0 * 255.255.248.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 134.121.87.254 0.0.0.0 UG 0 0 0 eth0
The first line of the table basically says that to reach machines with addresses of the form 134.121.8x.xxx, 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 134.121.8x.xxx or the local machine, we should send packets to 134.121.87.254, and rely on it to forward that information on.
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 134.121.8x.xxx, and otherwise, it sends packets to another machine that might know how to forward that packet on.
The machine at 134.121.87.254 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 router hopping, see global traceroute.
Of course, we are not used to using IP addresses. Instead, we address computers by name: e.g. www.math.wsu.edu. 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 www.sun.com, our browser must first find the IP address of the machine called www.sun.com, so it contacts the DNS server that it knows about. That local server probably does not know the IP address of www.sun.com, so it asks another server that it does know. This process continues until a server is contacted that does know the IP address of www.sun.com, 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.
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.
Welcome to Math 300 for summer, 2013.