A given transmission on a communication channel between two machines can occur in several different ways. The transmission is characterized by the direction of the exchanges, the transmission mode, or the number of bits sent simultaneously, and the synchronization between the transmitter and receiver.
A simplex connection is a connection in which the data flows in only one direction, from the transmitter to the receiver. This type of connection is useful if the data does not need to flow in both directions (for example, from your computer to the printer, from the mouse to your computer, etc.).
A half-duplex connection, sometimes called an alternating connection or semi-duplex, is a connection in which the data flows in one direction or the other, but not both at the same time. With this type of connection, each end of the connection transmits in turn. This type of connection makes it possible to have bidirectional communications using the full capacity of the line.
A full-duplex connection is a connection in which the data flows in both directions simultaneously. Each end of the line can, thus, transmit and receive at the same time. This means that the bandwidth is divided in two for each direction of data transmission if the same transmission medium is used for both directions of transmission.
The transmission mode refers to the number of elementary units of information (bits) that can be simultaneously translated by the communications channel. In fact, recent processors (and, therefore, computers in general) never process a single bit at a time.
Parallel connection means simultaneous transmission of N bits. These bits are sent simultaneously over N different channels (a channel being, for example, a wire, a cable, or any other physical medium). The parallel connection on PC-type computers generally requires 10 wires:
These channels may be:
In a serial connection, the data is sent one bit at a time over the transmission channel. However, because most processors process data in parallel, the transmitter needs to transform incoming parallel data into serial data and the receiver needs to do the opposite:
The parallel-serial transformation is performed using a shift register. The shift register, working together with a clock, will shift the register (containing all of the data presented in parallel) by one position to the left and, then, transmit the most significant bit (the leftmost one) and so on:
The serial-parallel transformation is done in almost the same way using a shift register. The shift register shifts the register by one position to the left each time a bit is received and, then, transmits the entire register in parallel when it is full:
Given the problems that arise with a parallel-type connection, serial connections are normally used. However, because a single wire transports the information, the problem is how to synchronize the transmitter and receiver. In other words, the receiver can not necessarily distinguish the characters (or more generally the bit sequences) because the bits are sent one after the other.
There are two types of transmission that address this problem: an asynchronous connection and a synchronous connection.
During synchronous transmission, the bits are sent successively with no separation between each character, so it is necessary to insert synchronization elements: this is called character-level synchronization.
The main disadvantage of synchronous transmission is recognizing the data at the receiver, as there may be differences between the transmitter and receiver clocks. This is why each data transmission must be sustained long enough for the receiver to distinguish it. As a result, the transmission speed can not be very high in a synchronous link.