In computer programming, layering is the organization of programming into separate functional components that interact in some sequential and hierarchical way, with each layer usually having an interface only to the layer above it and the layer below it.
Communication programs are often layered. The reference model for communication programs, Open System Interconnection ( OSI ) is a layered set of protocols in which two multilayered programs, one at either end of a communications exchange, use an identical set of layers. In the OSI model, each multilayer program contains seven layers, each reflecting a different function that has to be performed in order for program-to-program communication to take place between computers.
TCP/IP is an example of a two-layer ( TCP and IP ) set of programs that provide transport and network address functions for Internet communication. A set of TCP/IP and other layered programs is sometimes referred to as a protocol stack .