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.
Taking a closer look, this example uses two TCP/IP application layer protocols. First, the request for the file and the actual transfer of the file are performed according to the Hypertext Transfer Protocol (HTTP). Many of you have probably noticed that most web sites' URLs (Universal Resource Locators, the text that identifies a web server and a particular web page) begin with the letters "http," to imply that HTTP will be used to transfer the web pages.
The other protocol used is the Hypertext Markup Language (HTML). HTML defines how Bob's web browser should interpret the text inside the file he just received. For instance, the file might contain directions about making certain text be a certain size, color, and so on. In most cases, it also includes directions about other files that Bob's web browser should get— things such as graphics images and animation. HTTP would then be used to get those additional files from Larry, the web server.
A closer look at how Bob and Larry cooperate in this example reveals some details about how networking protocols work. Consider Figure 2-2, which simply revises Figure 2-1, showing the locations of HTTP headers and data.
Figure 2-2 HTTP Get Request and HTTP Reply
HTTP Header: Get home. htm
HTTP Header: Get home. htm
Web Server Web Browser
To get the web page from Larry, Bob sends something called an HTTP header to Larry. This header includes the command to "get" a file. The request typically contains the name of the file (home.htm in this case), or, if no filename is mentioned, the web server assumes that Bob wants the default web page.
The response from Larry includes an HTTP header as well, with something as simple as "OK" returned in the header. In reality, it includes an HTTP return code. For instance, if you have ever used the web, and a web page that you looked for was not found, then you received an HTTP 404 "not found" error, which means that you received an HTTP return code of 404. When the requested file is found, the return code is 0, meaning that the request is being processed.
This simple example between Bob and Larry introduces one of the most important general concepts behind networking models: When a particular layer wants to communicate with the same layer on another computer, the two computers use headers to hold the information that they want to communicate. The headers are part of what is transmitted between the two computers. This process is called same-layer interaction.
The application layer protocol (HTTP, in this case) on Bob is communicating with Larry's application layer. They each do so by creating and sending application layer headers to each other—sometimes with application data following the header and sometimes not, as seen in Figure 2-2. Regardless of what the application layer protocol happens to be, they all use the same general concept of communicating with the same layer on the other computer using application layer headers.
TCP/IP application layer protocols provide services to the application software running on a computer. The application layer does not define the application itself, but rather it defines services that applications need—like the ability to transfer a file in the case of HTTP. In short, the application layer provides an interface between software running on a computer and the network itself.
Was this article helpful?