In telecommunications, a communications protocol is a system of digital rules for data exchange within or between computers. In information technology, a protocol is the special set of rules that end points in a telecommunication connection use when they communicate. It specifies the standards for communication and provides detailed information on the processes involved in data transmission.
Communicating systems use well-defined formats for exchanging messages. Each message has an exact meaning intended to elicit a response from a range of possible responses pre-determined for that particular situation. Thus, a protocol must define the syntax, semantics, and synchronization of communication; the specified behavior is, typically independent of how it is to be implemented. A protocol can, therefore, be implemented as hardware, software, or both. Communications protocols have to agree upon by the parties involved. To reach an agreement, a protocol may be developed into a technical standard. A language describes the same for computations, so there is a close analogy between protocols and programming languages: protocols are to communications as programming languages are to computations. Protocols specify interactions between the communicating entities. There are many other Internet protocols, such as the Border Gateway Protocol (BGP) and the Dynamic Host Configuration Protocol (DHCP).