The Internet was born about 20 years ago, trying to connect together a U.S. Defense Department network called the ARPAnet and various other radio and satellite networks. The ARPAnet was an experimental network designed to support military research--in particular, research about how to build networks that could withstand partial outages (like bomb attacks) and still function. (Think about this when I describe how the network works; it may give you some insight into the design of the Internet.) In the ARPAnet model, communication always occurs between a source and a destination computer. The network itself is assumed to be unreliable; any portion of the network could disappear at any moment (pick your favorite catastrophe--these days backhoes cutting cables are more of a threat than bombs). It was designed to require the minimum of information from the computer clients. To send a message on the network, a computer only had to put its data in an envelope, called an Internet Protocol (IP) packet, and "address" the packets correctly. The communicating computers--not the network itself--were also given the responsibility to ensure that the communication was accomplished. The philosophy was that every computer on the network could talk, as a peer, with any other computer.
These decisions may sound odd, like the assumption of an "unreliable" network, but history has proven that most of them were reasonably correct.
…