B protocol
The B protocol, or CIS B, is a file transfer protocol developed for the CompuServe Information Service, and implemented in 1981. The protocol was later expanded in the QuickB version (which was an asynchronous version of the standard protocol) and later the enhanced B Plus version. It was a fairly advanced protocol for its era, supporting efficient transfers of files, commands and other data as well, and could be used in both directions at the same time in certain modes. These advanced features were not widely used, but could be found in a small number of client-side packages. Since B protocol was designed only to work within the CompuServe, most third-party communications clients of the day were not compatible with it. Notable exceptions were Tera Term and Datastorm's ProComm Plus on the PC which featured the ability to listen for the command on the active communications port, and ZTerm on the Mac which allowed auto-starting transfers. This development was part of a wider trend of using external communications applications in conjunction with online services. Description The original version of the B Protocol was an outgrowth of an earlier bi-directional protocol introduced in 1979, adding options for including a standardized command structure in the stream. This protocol was intended for use by a custom online terminal built by Tandy, the "AgVision" or "VideoTex", but this project was abandoned after being sold for only a brief period. The AgVision system, with the modem removed, became the basis of the TRS-80 Color Computer. The protocol was later expanded in the B Plus version, although there were two revisions of this version. B Plus focussed the overall concept primarily on supporting downloads from CompuServe, as opposed to user-to-user transfers. The following description is based on the B Plus documentation and does not explicitly refer to the earlier (and rare) B. Packet structure B Plus is a sliding window protocol with variable-sized packets between 128 and 2048 bytes and windows of one or two packets. The addition of the 1k and 2k block sizes and sliding windows were the primary changes in structure between B and B Plus. All potential problematic control characters were always quoted, a requirement because many people accessed CompuServe over non-8-bit-clean packet services such as Tymnet. B Plus also used any one of four types of error checking. The basic packet structure consisted of five parts: The lead-in serves the same purpose as the "header" in most protocols, indicating that the data following is a B Plus packet. The sequence number is a simple way of making sure packets are received in the correct order on reception. The small number range used does not present a problem because packets even "one out of order" will trigger a re-send or abort, so there is no possibility of the "wrong 0x30" being received, ten packets later. Characters in the Body or Trailer are "quoted". Officially only a few characters are quoted, , , , (XON), (XOFF) and . Typically three other characters are