The actual speed at which a modem can operate is dependent on the particular obstacles it has to overcome. These include:
- the PC itself, and in particular its serial port
- the state of the telephone line
- the kind of modem it is connecting to at the other end.
The first of many bottlenecks in the stream of data is at the UART (Universal Asynchronous Receiver/Transmitter), the chip which controls the connection between the serial port and the PC’s bus system. PCI bus systems operate in blocks of 32 bits, while serial cables transmit bits in single file. The UART has to take all the traffic coming at it full speed and funnel it down into the serial port without causing gridlock. The older INS 8250-B and INS 16450 UARTs cannot keep up with the transmission speeds modern modems are capable of. Only a newer 16550 UART guarantees communication at speeds of 28.8 Kbit/s without data loss.
The next obstacle to overcome is the telephone line itself. It is a mistake to think the phone system is all digital; many analogue elements remain. Not even all exchanges are digital. Lines into the home are typically still analogue and susceptible to all the problems associated with this medium. The main problem is limited bandwidth, which is the amount of information that can be fitted on a line. Another is line noise.
Various standards have been developed to overcome the problem of line noise. One modem sends signals to the other it wants to connect with, to see how that modem wants to communicate and to assess the condition of the line. The two modems then send messages back and forth, agreeing a common mode of operation in a process known as handshaking.
The speed at which the modem will communicate is effectively limited by the slowest component in the chain. If the phone connection is poor or full of line noise, the rates will drop until a reliable link can be maintained. A modem capable of 33.6 Kbit/s will have to drop to 14.4 Kbit/s if communicating with a 14.4 Kbit/s modem. The culmination of the handshaking process is an agreed standard which includes a common speed, an error correction format and a rate of compression.
The modem divides the data into packets, chopping it into easily digestible chunks. It adds more data to the packet to mark where each one begins and ends. It adds parity bits or checksums to determine whether the data received in the packet is the same as that sent, and whether the decompression formula has been correctly applied. If a packet is incorrectly received, the receiving modem will need to ask the transmitting modem to resend it. There also needs to be confirmation on the amount of data being sent, so the connection is not dropped before the last of the data has got through, or kept waiting for non-existent data to be received.
The entire handshaking operation is controlled from within the modem. The connection can be dropped many times before it is finally established and the process can take as long as 30 seconds over analogue lines.
Note that there is a common misunderstanding of the reported connect speed message (for example, connected at 115200) that users see when they establish a dial-up network connection. This relates to the DTE (Data Terminal Equipment) speed, the speed of the connection between the PC and the modem, not to the speed at which the modems are communicating. The latter, known as the DCE (Data Communications Equipment) speed, is agreed during the handshaking procedure.