A layer needs to be able to receive a set of services from the lower layer and to give the services to the upper layer; we don’t care about how the layer is implemented.
In the Internet, the communication does not always use only two end systems;
There are intermediate systems that need only some layers, but not all layers.
If we did not use protocol layering, we would have to make each intermediate system as complex as the end systems, which makes the whole system more expensive.