|


 | 
[back to Building Web applications in Domino 6: A tutorial on Web site addressing]
Basics of Internet addressing
When you pay your bills each month and drop them in the mailbox (assuming you still pay bills by snail mail), you have a high confidence that the postal service will deliver your bills to the correct recipients, but you don't give much thought to exactly how they do it. Likewise, when you send an e-mail to someone halfway around the world, you normally don't care how it gets there as long as it does. But understanding the basic mechanics of routing information over the Internet is a necessity for anyone who has responsibility for maintaining Web sites: after all, if people can't get to your site, there's not much point of having it. So here is a quick review of the principles involved in IP (Internet Protocol) host addressing. This discussion will deal with the public Internet, but the principles also apply to private intranets.
Information transmitted across the Internet is packaged in discrete pieces called packets. A packet is a structured sequence of bytes that contains addressing and protocol information and usually also contains a payload of application data. Each packet specifies the IP address of the machine that created the packet (the source host) and the address of the machine that the packet is intended for (the destination host). The destination address is read by special Internet hosts called routers.
The global Internet is not a single network; it is actually a whole collection of physical networks. The job of the routers is to relay packets from source hosts to destination hosts across the appropriate networks. If the source and destination hosts of a packet are physically separated by a large number of network segments, the packet may pass through a correspondingly large number of routers.
IP addresses are 32-bit identifiers commonly expressed as four 8-bit "octets" separated by dots, such as 9.95.236.64. The octets are hierarchical, with precision increasing from left to right. For example, the first octet, 9, may represent a particular physical network; the second octet, 95, a sub-network (or subnet) within that network; the third octet, 236, a subnet within the 95 subnet; and the final octet, 64, a particular machine on the 236 subnet.
(By the way, the 32-bit IP addressing scheme we just talked about is known as IPv4. There is also a 128-bit specification, called IPv6, that greatly increases the potential address space. Domino 6 does support IPv6, but IPv4 will remain the standard for the foreseeable future.)
Internet routers use tables that map address ranges to physical networks and hosts. The central routers on the public Intranet know how to route packets across the global network segments. The routers on each network take care of routing packets to the appropriate subnets; routers on the subnets ultimately route packets to the destination hosts.
Numeric IP addresses are very precise, but they are not human-friendly. Another Internet technology, the Domain Name System or DNS, implements a hierarchical naming scheme for hosts. A DNS name consists of a sequence of text strings (domain names) separated by periods, such as www.lotus.com. The precision in DNS names is exactly the opposite of that in numeric IP addresses, with the most precise name at the left. For example, www.lotus.com identifies the physical host www, in the subdomain lotus, of the top-level domain com.
It is important to note that the DNS name hierarchy, which represents a logical namespace, is completely independent of the IP address hierarchy, which is a physical namespace. The Internet routers only deal with the physical namespace. The translation of DNS names to IP addresses is handled by special Internet hosts called name servers. When a source host needs to send a packet to a destination host that it knows only by name, it must first consult a name server to get the correct IP address for the host. This process is called name resolution.
For example, if I enter the URL http://www.lotus.com into my browser, the browser contacts a DNS name server to get the IP address for the host www.lotus.com. The name server returns the address 129.42.242.50. The browser creates one or more packets to contain the HTTP request, sets the destination address in the packets to 129.42.242.50, sets the source address to the IP address of my computer, and sends the packets on their way. The Internet routers relay the packets along the appropriate networks to reach the destination: the subnet 129.42.x.x is assigned to IBM; the subnet 129.42.242.x has been allocated within IBM to Lotus; 129.42.242.50 has been assigned to a specific machine within Lotus. The host www.lotus.com then reads the packets, processes the request, and finally, returns a response, such as a page of HTML, in packets addressed to my computer.
Obviously, with the tremendous use of the Internet today, there is constantly a huge amount of name resolution going on. To prevent the public name servers from being overwhelmed, ISPs and individual companies and organizations maintain their own name servers. You can even set up name resolution on your own browser machine, as we do in the Preparing the client for the Domino 6 tutorial section of the main article.
You may be wondering who assigns all these names and numbers. Obviously some central authority is required to prevent chaos. In the old days—that is, just a few years ago—the central authorities were government-supported organizations such as IANA and InterNIC. However, with the increasing commercialization of the Internet came the realization that control of address and name allocation has a vast potential for financial gain, if not outright extortion. Therefore, the registration of names and numbers became a hot political issue, with the result that many of the services provided by IANA and InterNIC have been "privatized" under the overall supervision of ICANN, the Internet Corporation for Assigned Names and Numbers.
Today there is an explosion of authorized registrars for DNS domains and many more resellers willing to act as middlemen with value-added services, such as simultaneously registering the same subdomain across many top-level domains. Finding such middlemen is easy; just look for their banner ads! The assignment of numeric IP addresses doesn't seem to have the same profit potential and is handled by a small number of registrars responsible for certain geographies, such as the American Registry of Internet Numbers.
As a practical matter, a system administrator usually deals only with the administration body one level up. For example, a webmaster who is setting up a new machine will request an IP address from the company's IT department; the IT department will assign an address from a block of addresses it got from the company's Internet service provider (ISP); the ISP assigned that block from a larger allocation it obtained from the appropriate registrar. A similar situation occurs when the webmaster assigns a DNS name to the new machine. The webmaster can choose the specific host name, but that host must reside within a DNS subdomain registered by the IT department through the ISP.
This discussion of the principles of Internet addressing has been quite simplified. There are plenty of good resources available if you would like more details. The ARIN site has a good page of links about IP addressing. An excellent presentation of the Domain Name System is the O'Reilly book DNS and BIND.
 | 
 |

| 
| 
|
|