All the necessary protocols should be included with the software that came with the modem. After communication is established with the host (usually the computer that receives the call), it can be asked what type of protocol to use. The call initiator can then select the matching protocol before starting a file transfer. Both computers must use the same protocol. There are five basic protocols used by modems.
ASCII
This protocol uses the standard ASCII character set, just like typing directly from a keyboard. ASCII protocol has no error-checking or compression features. It is simple, uncomplicated, and is used just to get simple character-based data. It is not a good protocol for transferring program files.
Xmodem
Xmodem is the next level of protocol. The advantage of Xmodem is that it includes error detection, which makes it more suitable for transferring program files. It transfers 128-byte blocks of data and one checksum (error-checking) character. The receiving computer calculates a new checksum and compares it to the one transmitted. If they are the same, the receiving computer transmits an ACK. If they are different, it sends back a NAK, and the transmitting computer then retransmits the data block. The protocol uses parity error checking, which is not perfect. If two errors were to occur-that is, if the first error were to change the parity bit, and the second error were to change it back to its original state-the second would cancel the first, and no error would be reported. The result can be a corrupted file or random characters on the display.
Ymodem
Ymodem is faster than Xmodem. Ymodem transfers data in 1024-byte blocks; therefore, less time is required to verify data with ACKs and NAKs.
Zmodem
Zmodem shares all the features found in Xmodem and Ymodem protocols. It also adds a few new features, including crash recovery, automatic downloading, and a streaming file transfer method. This is the protocol of choice for most situations.
Kermit
This protocol is rarely used today. It was the first of the synchronous protocols for uploading and downloading data to and from a mainframe computer.
Handshaking
Did you ever wonder what all that noise means that occurs when analog modems or fax machines begin to communicate? They are handshaking-or negotiating the rules (protocols) of communication. Because not every modem and computer is exactly the same, there must be some way for the two machines to determine how to communicate. That is what happens in that short burst of information between the two modems: decisions are made about what transmission speed to use (the fastest speed of the slowest device), how the data will be packaged, and who will control the transfer. If any of the parameters cannot be satisfied by both machines, the negotiations will fail and both parties will disconnect.
TIP
If you experience communication difficulty between two modems, be sure that you have not limited one of them to parameters that the other is unable to meet. For example, if one modem has a minimum speed restriction imposed by the software, it might need to be changed before it can communicate with other modems.
Connections between a sending device (sometimes referred to as Data Communications equipment or DCE) and a receiving device (Data Terminal Equipment or DTE ) are called handshaking signals. They ensure that each sending and receiving device is in sync with the other. The flow control of data between modems is handled by the modems themselves. However, the local flow control between modem and COM port can be set by the user. There are two types of flow control:
Hardware flow control: This takes advantage of some of the extra wires in the serial connection between the modem and COM port. These wires are used to let the other device know that the DCE is ready to send or receive data. The wires are named RTS (Request to Send) and CTS (Clear to Send). Hardware handshaking is sometimes referred to as RTS/CTS.
Software flow control: This uses special characters known as XON and XOFF to let the other device know that the DCE is starting to send data or that the data transmission is finished. Software handshaking is slower and not as dependable as hardware handshaking. Only some very old modems use software handshaking. If given a choice, always use hardware flow control.