Now, having read about each of the OSI layers , you still might wonder why this conceptual model is even necessary. You will find that when we start discussing actual network protocols, many of them do not map perfectly to the various layers of the OSI model. First of all, a conceptual model for network communications is useful in that it provides a context for discussing how data is generated by a user and then moved from one computer to another on a network. Breaking the different events involved in network communication into subsets also makes it generally easier to discuss and understand the entire process.
Another good reason for using a layered model is that programmers can actually work on modular protocols that "hook" into the overall conceptual model without really having to worry about the protocols that exist above or below the layer that they are working at. They know that protocols exist at these layers that will get the job done.
For example, even though TCP/IP does not have an individual protocol in its stack that maps to each and every layer in the OSI model, programmers have used this modular concept of different layers as new TCP/IP protocols have been developed. The Hypertext Transport Protocol (HTTP) was developed by programmers who knew that protocols already existed in the TCP/IP stack that took care of the Transport, Network, and Data Link layer functionalities.
HTTP is the protocol that provides us with the ability to use Web browsers to access Web sites on the World Wide Web. Programmers designed it to plug into the protocols already available in the TCP/IP stack.
Now that we've spent some time discussing the theory and concepts of network communication, we can take a look at the protocol stacks that are actually used. We will start with TCP/IP, which, due to the Internet, has become the worldwide standard protocol stack for computer networking.