COURIER HST APPENDIX A ERROR/FLOW CONTROL CONCEPTS At 2400 and 1200 bps, the Courier HST uses the MNP error control protocol, Service Levels 1-5. MNP was originally developed by Microcom, Inc. and is now in the public domain. At 9600, 7200 and 4800 bps the modem uses similar, compatible error control procedures developed by USRobotics. In USRobotics implementations, we use the general term ARQ (automatic repeat request) to denote a connection under error control. Error-free data transmission is ensured through two features: o error-detection and retransmission techniques; o data buffering and flow control. NOTE: As with all protocols, error control only works when the Courier HST connects with another modem that implements the same protocol. MNP LEVEL NEGOTIATION When the modems negotiate an ARQ connection, they indicate their highest of the first three Service Levels, 3, 2, or 1, and agree to operate at the highest possible level. The Courier HST indicates Level 3 in its MNP error-control parameter. If necessary, the Courier drops back to meet the requirements of the other modem. This establishes the error-control (ARQ) connection. Levels 4 and 5, which enhance throughput performance, are only possible if an ARQ connection is established. The Courier negotiates for a Level 4 connection, with the longer, streamlined transmission frames described below. Whether or not Level 4 is agreed upon, the Courier also negotiates for a Level 5 connection (data compression). It's possible for an ARQ connection to be at Level 1, 2 or 3, with or without Level 4 and/or Level 5. Throughput Chapters 3 and 4 include recommended modem settings and file- transfer guidelines for gaining maximum throughput. The following descriptions of MNP Levels 1-5 include achievable throughput statistics. A-1 COURIER HST Level 1 This level, often called Block Mode, supports half-duplex (one way at a time) transmission. The sending modem transmits a block of data and waits for an acknowledgment from the receiving modem before sending the next. Level 1 is the slowest and is included because some computer equipment is restricted to either sending or receiving at any one time. This mode of operation is usually observed in communications between terminals rather than in terminal-to- computer or computer-to-computer links. Level 2 This level, often called Stream Mode, supports full-duplex transmission in which data flows in both directions at the same time. Throughput at Level 2, due to protocol overhead, achieves about 84% of the throughput of a normal modem, or approximately 202 characters per second (cps) at 2400 bps. Level 3 Level 3 incorporates Level 2 and is more efficient. Modems sending at Level 3 strip the Start and Stop bits from the data characters and transmit the data across the link in bit format, as in synchronous transmission, rather than in character format. The receiving modem reinserts the Start and Stop bits for each character before passing the data to the receiving computer or terminal. This procedure offsets the protocol overhead loss so that throughput is about 108% that of a normal modem. Under optimal conditions, two Level 3 modems operating at 2400 bps can exchange data at approximately 254 characters per second. A-2 COURIER HST Level 4 At this level, the information in the headers of transmission frames is streamlined to eliminate some of the protocol overhead. In addition, the size of the frames is greater than with Level 3. The results in characters per second (cps) are as follows. These reflect operations without the data compression available with MNP Level 5. Characters per Second Link Rate Level 3 Level 4 9600 1100 1160 2400 254 276 In general, with Level 4 you can expect a throughput gain of 5%, although actual throughput depends on the type of call. Gains on long-link satellite calls can range from 25-50%. Level 5 Under data compression, the sending modem detects redundant units of data and recodes them into shorter units of fewer bits. Examples include the frequent occurrences of spaces, control characers, or the characters e and s in ASCII text files. The receiving modem decompresses the redundant data units before passing them to the receiving computer/terminal. With data compression, throughput of up to 19.2k bps is possible. Achievable throughput rates for different kinds of files, in characters per second (cps), are shown in the following table. The table assumes the following optimal conditions: o DTE rate set at 19.2k bps; modem set to &B1 o Connection (link) rate of 9600 bps o Level 4 also enabled (longer transmission frames) o Straight data (e.g., not already compressed, no file- transfer protocol) o Transmission from a fast (e.g., 286) computer A-3 COURIER HST File Type Throughput (cps) Assembler or Compiler Listing 1920 Text file 1550-1750 Binary file: .EXE 1450-1600 Binary file: .COM 1400-1500 .ARC files (common on BBS's) 1000-1100* Random binary 8-bit 975-1050* *As mentioned on Page 4-2, these files are already compressed or appear to the modem to be compressed. If they undergo additional data compression, they become longer. ERROR DETECTION/RETRANSMISSION During an ARQ connection the transmitting modem divides the data it receives from the computer or terminal into blocks, and attaches header and trailer information. The result is called a frame, as shown in Figure A.1. Figure A.1 -- Transmission Frame Included in the header or trailer are a frame number and block- size information as well as a frame-check code. This last code is derived by the sending modem through an algorithm performed on all of the data in the frame. The technique is called cyclic- redundancy checking (CRC). The receiving modem performs the same computation and checks to see if its results match the received CRC code. If the results match, the receiving modem sends a positive acknowledgement to the sending modem. Meanwhile, the sending modem keeps a copy of all frames it sends until each is positively acknowledged. If the CRC codes don't match, the receiving modem initiates the automatic repeat request (ARQ) procedure. The receiving modem tells the sending modem which frame is in error, and doesn't accept any more frames until the frame in question is received correctly. The sending modem goes back to the specified frame, retransmits it, and continues from there. In this way the protocol protects against errors and also ensures that the data arrives in sequence. FLOW CONTROL The modem stores data from the DTE in its Transmit buffer, and data received from a remote system in its Receive buffer, as shown in Figure A.2. A-4 COURIER HST Figure A.2 -- Flow Control Buffer Separate commands enable Transmit Data flow control (&Hn) and Received Data flow control (&In, &Rn). Chapter 4 contains instructions on when and how to use these commands. Flow Control Examples The labels used in the following examples indicate the following devices: DTE Data Terminal Equipment: the computer or terminal to which a modem is attached. DCE Data Communications Equipment: the Courier or remote modem. Example 1 -- Transmit Data The &Hn command allows you to select software flow control, hardware flow control, or both. Hardware flow control is most reliable and is recommended, if possible. Under hardware control the modem raises or lowers the Clear to Send (CTS) signal via the RS-232C interface. Under software flow control the modem sends the DTE the ASCII XON/XOFF characters described in Chapter 4. Figure A.3 -- Transmit Flow Control Assume that there are disturbances on the line (line hits) and DCE2, the receiving modem, detects a transmitted frame error. DCE2 tells DCE1 to retransmit the frame and accepts no additional frames until it receives the affected frame correctly. Meanwhile, the computer/terminal (DTE1) continues sending to DCE1, and data backs up in the Transmit buffer. As the buffer approaches capacity, DCE1 signals DTE1 to stop sending data. DCE1 also retransmits the specified frame and continues transmitting. When enough data is transmitted to half empty the buffer, DCE1 signals DTE1 to resume sending data. As mentioned in Chapter 4, Transmit Data flow control is also essential if the DTE is set to send to the modem at a rate higher than the link rate. A-5 COURIER HST Example 2 -- Received Data It may be necessary or desirable to stop incoming data temporarily, for example, in order to review what's on the screen and take some kind of action. In the following diagram, the labels indicate operations when three different command options are used, as follows: &I1 The user at DTE1 sends an XOFF command to the modem to have it stop passing on data from the Receive buffer. The modem also transmits the XOFF to the remote computer, which stops sending. DCE1 resumes passing received data to DTE1 when the user sends an XON signal. &I2 The user sends the same XON/XOFF commands to DCE1, but the modem doesn't pass them on to the remote computer. &R2 DTE1 lowers the Request to Send (RTS) signal at the RS- 232C interface. This signals DCE1 to stop passing on received data. Figure A.5 -- Received Data Flow Control Be sure to review Chapters 3 and 4 before using the error/flow control commands. A-6