Communication Protocol
A communication protocol is a formal descriptions of digital message formats and rules, that allows two or more entities to transmit information of any kind. The protocol defines the rules, syntax, semantics and synchronization of communication and possible error recovery methods, (a.k.a. language). Communication protocols have to be agreed upon by the parties involved. Communicating systems use well-defined formats for exchanging various messages. Protocols may be implemented by hardware, software, or a combination of both.
Protocol Stack
Multiple protocols can be used to describe different aspects of a single communication, known as a protocol stack/suite.
Examples of Protocol stacks
Protocol | Layer |
---|---|
HTTP | Application |
TCP | Transport |
IP | Internet or network |
Ethernet | Link or data link |
IEEE 802.3ab | Physical |
Designing a protocol
Let's say there is no protocol in the world that fits what I need. A protocol is just a contract that two systems agree to communicate on. Nothing stops me from building my own protocol.
While designing a protocol is easy, however desire to have it's widespread adoption is equally challenging. The only scenarios were someone would go this route are:
- There is a real use case that requires a new protocol, that no one in the world has come across
- You want your properitary hardware to communicate over unidentifiable communication method.
To complicate this further, none of the existing code/library will be able to read data based on the custom protocol, hence requiring a lot of code to be written from ground up.
Standards Governance
IETF - Internet Engineering Task Force is a standards organization for the internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP) and publishes internet communication protocols.
IEEE - Institute of Electrical and Electronics Engineers handles wired and wireless networking
ISO - International Organization for Standardization handles other types
ITU-T - handles telecommunications protocols and formats for the public switched telephone network (PSTN)
Organizations to know
- IETF - Internet Engineering Task Force
- IESG - Internet Engineering Steering Group
- IAB - Internet Architecture Board
- IRTF - Internet Research Task Force
References
- Wiki - Communication Protocol
- Techopedia Communication Protocol explained blog
- WebDAV Protocol
- Constrained Application Protocol overview
- Wiki - Constrained Application Protocol
- Designing a protocol
- National Cyber Security Centre - Protocol Design Principles whitepaper
- Designing your own protocol in 5 minutes blog
- Quora How to design protocol?