Communication
“Nothing in life is more important than the ability to communicate effectively.” – Gerald R. Ford, former United States president
_noun_
1. the imparting or exchanging of information or news.
"at the moment I am in communication with London"
2. means of sending or receiving information, such as phone lines or computers.
"satellite communications"
How humans communicate?
For a person to communicate with another, both of them need:
- a shared character set
- a shared dictionary
- Transmission mode
- a way to know who the person speaking is
- a way to know who the person listening is
Shared char set
A character means nothing to a person when they don't understand it. It also means nothing Character set is the lowest form If you were to say "H@ppy"
Shared Dictionary
Just having a known char set doesn't help much in communication, unless there is a dictionary to refer to. If you were to say "ajsgdyf" to me, it wouldn't mean anything to me, but saying "happy" means something to me because you and I refer to the same english dictionary and speak/understand what it means.
Transmission Mode
If person "A" writes a letter, but person "B" can only hear words, they'll never be able to communicate unless "A" changes the mode of transmitting its message. Both sender and receiver need to be able to agree upon the mode of transmission of the message.
Who sent the message?
If person "B" receives a letter, there must be a way to know who sent the letter, or at the least a way to verify if it was "A", and really "A".
Did you get my message?
Just sending a message to "B" though agreed upon transmission mode does not guarantee "A" that "B" actually received the message. Maybe it got intercepted by "C" or "A" had the wrong address.
How machines communicate?
Bytes (a set of binary numbers), put together, they may mean something to someone, another thing to someone else. When bytes are put together, it may be referred as data. A machine is capable of transmitting/receiving
data in form of bytes to/fron another machine. It's same like we know characters. Characters put together make words, which makes sense just because we've learnt the dictionary.
Transmitting data is one action. How would the data make sense to the one who is sending it or to the one receiving it?
The only way a word may make sense to us is by knowing two things:
- Language that the word is written in
- Word exists in our dictionary (for the language), which we refer to make sense out of what the word mean.
Similarly, for two entities/computers to communicate with each other and understand each other, they need a language to agree on. Think of it like a contract between systems, where one says "X", and it must mean something to another system. This language is what a communication protocol
is. Fortunatley a computer's character set is defined and limited to 0's and 1's (binary data).
Forms of communication
There are indeed various forms of communication on internet including email
, text message
(SMS), media-messaging
(MMS), IRC chat
, instant-message
(chat), VoIP
, video-calling
, livestream
, etc. Telecommunication systems use Simplex
, Half-Duplex
and Full-Duplex
channels. All of these are out of scope.
Choosing the appropriate channel for communicating your message is critical to how that message will be received and acted upon.
Communication Components
To work, communication requires a few core components:
- Destination address
- Transmission method
- Protocol
- Connection
References
- https://www.kionetworks.com/en-us/blog/data-center/network-communication-protocols
- https://www.ibm.com/docs/en/aix/7.2?topic=communication-asynchronous-methods
- https://www.panopto.com/blog/learning-and-development-asynchronous-vs-synchronous-video-communications-whats-the-difference/
- https://www.loom.com/blog/synchronous-vs-asynchronous
- https://stackoverflow.com/questions/23419469/is-http-1-1-full-duplex