Continue from previous post (TCP/IP Transport Layer)…
Imagine that you just wrote a letter to your favorite person on the other side of the country and that you also wrote a letter to someone on the other side of town. It’s time to send the letters. Is there much difference in how you treat each letter? Not really. You put different addresses on the envelope for each letter because the letters need to go to two different places. You put stamps on both letters and put them in the same mailbox. The postal service takes care of all the details of figuring out how to get each letter to the right place whether it is across town or across the country.
Inside the postal service, both letters are processed. One letter gets sent to another post office, then another, and so on, until the letter gets delivered across the country. The local letter might go to the post office in your town and then simply be delivered to your friend across town, without going to another post office.
So what does this all matter to networking? Well, the internetwork layer of the TCP/IP networking model, the Internet Protocol (IP), works much like the postal service. IP defines addresses so that each host computer can have a different IP address, just like the postal service defines addressing that allows unique addresses for each house, apartment, and business. Similarly, IP defines the process of routing so that devices called routers (ingenious name, huh?) can choose where to send packets of data so that they are delivered to the correct destination. Just like the postal service created the necessary post offices, sorting machines, trucks, and personnel to deliver the mail, the internetwork layer defines much of the details needed to implement the necessary networking infrastructure.
The TCP/IP application layer includes a relatively large number of protocols, with HTTP being only one of those. The TCP/IP transport layer consists of two main protocol options the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP). To get a true appreciation for what TCP/IP transport layer protocols do, read post Fundamentals of TCP and UDP. However, in this post, you will learn about one of the key features of TCP, which enables us to cover some more general concepts about how networking models behave.
To appreciate what the transport layer protocols do, you must think about the layer above the transport layer, the application layer. Why? Well, each layer provides a service to the layer above it. For example, in Figure 2-2, Bob and Larry used HTTP to transfer the home page from Larry to Bob. But what would have happened if Bob’s HTTP get request was lost in transit through the TCP/IP network? Or, what would have happened if Larry’s response, which includes the contents of the home page, was lost? Well, the page would not show up in Bob’s browser, as you might expect.
So, TCP/IP needs a mechanism to guarantee delivery of data across a network. TCP provides that feature by using acknowledgments. Figure 2-3 outlines the basic acknowledgment logic.
Arguably, the most popular TCP/IP application today is the web browser. Many major software vendors either have already changed or are changing their software to support access from a web browser. And thankfully, using a web browser is easy–you start a web browser on your computer and select a web site by typing in the name of the web site, and the web page appears.
What really happens to allow that web page to appear on your web browser? These next few sections take a high-level look at what happens behind the scene.
Imagine that Bob opens his browser. His browser has been configured to automatically ask for web server Larry’s default web page, or home page. The general logic looks like that in Figure 2-1.

Figure 2-1 Basic Application Logic to Get a Web Page
So what really happened? Bob’s initial request actually asks Larry to send his home page back to Bob. Larry’s web server software has been configured to know that Larry’s default web page is contained in a file called home.htm. Bob receives the file from Larry and displays the contents of the file in the web browser window.
TCP/IP Protocol Architecture
TCP/IP defines a large collection of protocols that allow computers to communicate. TCP/IP defines the details of each of these protocols inside document called Requests For Comments (RFCs). By implementing the required protocols defined in TCP/IP RFCs, a computer can be relatively confident that it can communicate with other computers that also implement TCP/IP.
An easy comparison can be made between telephones and computers that use TCP/IP. I can go to the store and buy a phone from one of a dozen different vendors. When I get home, I plug the phone in to the wall socket, and it works. The phone vendors know the standards for phones in their country and build their phones to match those standards. Similarly, a computer that implements the standard networking protocols defined by TCP/IP can communicate with other computers that also use the TCP/IP standards.
Like other networking architectures, TCP/IP classifies the various protocols into different categories. Table 2-2 outlines the main categories in the TCP/IP architectural model.

Table 2-2 TCP/IP Architectural Model and Example Protocols
The Flintstones are a cartoon family that, according to the cartoon, lived in prehistoric times. Because I want to discuss the thought process behind some imaginary initial networking standards, the Flintstones seem to be the right group of people to put in the example.
Fred is the president of FredCo, where his wife (Wilma), buddy (Barney), and buddy’s wife (Betty) all work. They all have phones and computers, but they have no network because no one has ever made up the idea of a network before. Fred sees all his employees running around giving each other disks with files on them, and it seems inefficient. So, Fred, being a visionary, imagines a world in which people can connect their computers somehow and exchange files, without having to leave their desks. The (imaginary) first network is about to be born.