Na programação de computadores, layering é a organização da programação em componentes funcionais separados que interagem de alguma forma sequencial e hierárquica, com cada camada geralmente tendo uma interface apenas para a camada acima e a camada abaixo dela.
Os programas de comunicação são frequentemente estratificados em camadas. O modelo de referência para programas de comunicação, Open System Interconnection ( OSI ) é um conjunto de protocolos em camadas no qual dois programas multicamadas, um em cada extremidade de uma troca de comunicações, utilizam um conjunto idêntico de camadas. No modelo OSI, cada programa multicamadas contém sete camadas, cada uma refletindo uma função diferente que deve ser executada para que a comunicação programa a programa ocorra entre computadores.
TCP/IP é um exemplo de um conjunto de programas de duas camadas ( TCP e IP ) que fornecem funções de transporte e endereço de rede para comunicação pela Internet. Um conjunto de TCP/IP e outros programas em camadas é às vezes referido como uma pilha de protocolos .