Most networks are organized into layers to reduce design complexity.
Each layer provides specific services to the layer above while shielding it from the implementation details of those services.
A protocol is an agreement between communicating parties about how communication proceeds.
A layer provides services to its users while hiding its internal state and algorithms.