layered because they are carefully divided into highly related but nonoverlapping functional entities. This "division of labor" not only makes it easier to understand how data communications works, but also makes the deployment of complex networks far easier. The amount of code (lines of programming instructions) required to successfully carry out the complex task of data transmission is quite large. If the program that carries out all of the functions in that process Downloaded from Digital Engineering Library @ McGraw-Hill (www.digitalengineeringlibrary.com) Copyright © 2004 The McGraw-Hill Companies. All rights reserved. Any use is subject to the Terms of Use as given at the website. Protocols Chapter 2 Figure 2-1 The various Application Integrity integrity levels of the OSI Model Message Integrity Network Integrity Data Integrity Bit-Level Integrity were written as a single, large, monolithic chunk of code, then it would be difficult to make a change to the program when updates were required, simply because of the monolithic nature of the program. Now imagine the following: Instead of a single set of code, we break the program into functional pieces, each of which handles a particular specific function required to carry out the transmission task properly. With this model, changes to a particular module of the overall program can be accom- plished in a way that only affects that particular module, making the process far more efficient. This modularity is one of the great advantages of layered protocols. Downloaded from Digital Engineering Library @ McGraw-Hill (www.digitalengineeringlibrary.com) Copyright © 2004 The McGraw-Hill Companies. All rights reserved. Any use is subject to the Terms of Use as given at the website. Protocols Protocols Consider the following simple scenario, shown in Figure 2-2: A PC- based e-mail user in Madrid with an account at ISP Terra Networks wants to send a large, confidential message to another user in Marseilles. The Marseilles user is attached to a mainframe-based corporate e-