The Link, Internetwork, and Transport layers work together to quickly and reliably move data between two computers across a shared network of networks. With this capability to move data reliably, the next question is what networked applications will be built to make use of these network connections.
When the first widely used Internet came into being in the mid1980s, the first networked applications allowed users to log in to remote computers, transfer files between computers, send mail between computers, and even do real-time text chats between computers.
In the early 1990s, as the Internet came to more people and computers’ abilities to handle images improved, the World Wide Web application was developed by scientists at the CERN high-energy physics facility. The web was focused on reading and editing networked hypertext documents with images. Today the web is the most common network application in use around the world. But all the other older Internet applications are still in wide use.
Each application is generally broken into two halves. One half of the application is called the “server”. It runs on the destination computer and waits for incoming networking connections. The other half of the application is called the “client” and runs on the source computer. When you are browsing the web using software like Firefox, Chrome, or Internet Explorer, you are running a “web client” application which is making connections to web servers and displaying the pages and documents stored on those web servers. The Uniform Resource Locators (URLs) that your web browser shows in its address bar are the web servers that your client is contacting to retrieve documents for you to view.
When we develop the server half and the client half of a networked application, we must also define an “application protocol” that describes how the two halves of the application will exchange messages over the network. The protocols used for each application are quite different and specialized to meet the needs of the particular application. Later we will explore some of these Application layer protocols.