Data communication involves the exchange of data between two devices via some transmission medium. There are five key components: the message being sent, the sender, the receiver, the transmission medium such as a wire or cable, and protocols which establish communication rules. Data can flow in simplex, half-duplex, or full-duplex mode. A network connects multiple devices called nodes and data is generated and shared between these nodes. Connections can be point-to-point between two nodes or multipoint between more than two nodes where the channel capacity is shared.