Communication
In short: In an IT context, the exchange of data between two or more devices or applications over a network.
In more detail: Digital communication always follows an agreed protocol that defines the format, order, and meaning of the exchanged messages. A distinction is made, among other things, between synchronous (both sides active at once, e.g. a call) and asynchronous communication (time-shifted, e.g. email), as well as connection-oriented (TCP) and connectionless (UDP) transmission.
In Depth
Important distinguishing axes of digital communication:
- Synchronous vs. asynchronous: with synchronous communication (e.g. a video call, a WebSocket connection), both sides have to be active at the same time; with asynchronous communication (email, messages in a queue), the recipient can process the message with a delay.
- Connection-oriented vs. connectionless: TCP establishes a fixed connection before the actual data exchange and guarantees reliable delivery; UDP simply sends packets off, with no connection and no delivery guarantee.
- Unicast vs. broadcast/multicast: communication can be directed at exactly one recipient (unicast), all participants in a network (broadcast), or a selected group (multicast).
- Client-server vs. peer-to-peer: in most web applications, clients communicate exclusively with a central server; in peer-to-peer systems, participants communicate directly with each other, with no central intermediary.
Every one of these decisions is a trade-off: TCP is more reliable but slower than UDP; synchronous communication feels more immediate but requires both sides to be available at the same time. Which model fits depends heavily on the use case — a chat system and a video streaming service often deliberately make different decisions here.
See also: Connectionless Protocol, Protocol