XFAX 4.3a - User's Guide
13. Modems and flow control
When sending a fax the speed over the line is generally 9 600 bps (bits per second) or at best 14 400 bps. However, the transmission speed between computer and modem is always 19 200 bps in accordance with the specifications which apply for Class 2 compatible fax modems. This means that the modem has to receive data at a quicker rate from the computer than it manages to send in on to the recipient. As a result the modem must be able to stop the flow when its buffer is full so that the computer stops sending for a while until the modem has cleared the backlog of data it holds. It is this control of the data flow that is logically called flow control. There are two dominating variants of flow control today: CTS/RTS, hardware flow control, and XON/XOFF, software flow control.
CTS/RTS functions for communication from computer to modem so that the modem, when it can receive data, raises the signal CTS (Clear To Send) which is situated on pin 5 in a serial 25 pole port. When the buffer is full the modem reduces the signal and the computer detects this and takes a rest. This means that the drive routines for serial communication in the computer must be able to detect and handle these signals in the correct way. This is not always the case, particularly in older machines. However, where there is support for this type of flow control it is very efficient. It is quick and reliable even for communication at high speeds.
Variant number two, XON/XOFF, is based on another principle. For this two ASCII characters XON (hex 0x13) and XOFF (hex 0x11) are chosen as control characters and these are used to control the data flow. When transmitting from computer to modem, the modem sends the character XOFF to show that the buffer is, or is close to becoming, full. The software in the computer receives the character and stops sending data until the modem sends the character XON when it is ready to receive more data. This method does not really demand anything of the operative system, since support for XON/XOFF is generally built into the drive routines to the serial card. The disadvantage is that any waste matter on the connection can be interpreted as a control character and communication then gets caught up. Problems can also arise if the XOFF character does not arrive at the application before it has managed to send so much data that the buffer overflows. It is often possible to set the threshold levels for XON and XOFF in the modem and thereby control at what level the modem should send off the XOFF and XON characters.
The conclusion is that CTS/RTS is to be preferred, but this is not always supported by the operative system. XON/OFF is simple and easier to get to function satisfactorily. The support for CTS/RTS also varies from one operative system to another. On AIX it is often easy to get started. It is also satisfactory in those cases where serial cards are used which enable CTS/RTS to be set with stty parameters, e.g. DigiBoard.