A protocol is a set of rules that governs communication. In protocol layering, we need to follow two principles to provide bidirectional communication. First, each layer needs to perform two opposite tasks. Second, two objects under each layer at both sides should be identical. TCP/IP is a hierarchical protocol suite made of five layers: application, transport, network, data-link, and physical.