Binary Synchronous Communications

From Wikipedia, the free encyclopedia

Binary Synchronous Communication (BSC or Bisync) is an IBM link protocol, announced in 1967 after the introduction of System/360. It replaced the synchronous-transmit-receive (STR) protocol used with second generation computers. The intent was that common link management rules could be used with three different alphabets for encoding messages. Six-bit Transcode looked backwards to older systems; USASCII with 128 characters and EBCDIC with 256 characters looked forward. Transcode disappeared very quickly but the EBCDIC dialect of Bisync still has very limited use in the 2000s.

Contents

[edit] Framing

Bisync differs from all popular protocols which succeeded it in the complexity of message framing. Later protocols used a single framing scheme for all messages sent by the protocol. HDLC, DDCMP, PPP, etc all have different framing schemes but only one frame format exists within a specific protocol. Bisync had five different framing formats. Normal data framing restricted the number of different characters which could be included in a text block to: Transcode 59, USASCII 123, EBCDIC 251. Transparent data framing provided an unrestricted alphabet of 64, 128 or 256 characters. The framing protocol varied with the message content:

  1. Normal data: restricted character set
  2. Transparent data: unrestricted character set
  3. Single character link control phrase: EOT, NACK etc.
  4. DLE stick: ACK0, ACK1, WACK, RVI, DLE-EOT
  5. Temporary Transmit Delay: (TTD) encoded as STX ENQ

All of these frame formats begin with at least two SYNC bytes. The binary form of the SYNC byte has the property that no rotation of the byte is equal to the original. This allows the receiver to find the beginning of a frame by searching the received bit stream for the SYNC pattern. When this is found, tentative byte synchronization has been achieved. If the next character is also a SYNC, character synchronization has been been achieved. The receiver then searches for a character which can start a frame. Characters outside of this set are described as "leading graphics". They are sometimes used to identify the sender of a frame.

The beginning of a data frame is signalled by the special character SYN (synchronization). The body of the frame is wrapped between two special sentinel characters: STX (start of text) and ETX (End of text).

Normal data frames do not allow certain characters to appear in the data. These are the block ending characters: ETB, ETX and ENQ and the ITB and SYNC characters. A long data frame should contain an inserted SYNC byte every two seconds to indicate that character synchronization is still present. The receiver deletes this character. A normal block ending character (ETB or ETX) is followed by some kind of checksum. For Transcode and EBCDIC this is a two character cyclic redundancy check; for USASCII is a one character LRC. A data frame may contain an intermediate checksum preceded by an ITB character. This ability to include intermediate checksums in a long data frame allowed a considerable improvement of the error detection probability.

Transparent data frames allowed all 256 EBCDIC characters to be transmitted. Block framing characters such as ETB, ETX, and SYNC were preceded by a DLE character to indicate their control significance. This technique became known as character stuffing after bit stuffing was invented.

Error protection for ACK0 and ACK1 is weak. The Hamming distance between the two messages is only two bits.

[edit] Link Control

The link control protocol is similar to STR. The designers attempted to protect against simple transmission errors. The EBCDIC CRC-16 used to protect data frames is fairly strong; the Transcode CRC-12 is a little weaker. The protocol requires that every message be acknowledged (ACK) or negatively acknowledged (NACK) so it has high transmission overhead. The protocol can recover from a corrupted data frame, a lost data frame and a lost acknowledgement. Corruption of ACK0 into ACK1 results in the duplication of a data frame. Error recovery is by retransmission of the corrupted frame.

The protocol is typically strictly half-duplex. In environments with noticeable round-trip delay or slow modem turnaround, this could reduce performance. Some of the protocol flavors or dialects support binary transmission and full-duplex operation.

[edit] Routing

Much Bisync traffic was strictly point-to-point. In some cases connection of a terminal to multiple hosts was possible via the dial telephone network.

Multidrop was part of the initial Bisync protocol. A master station would poll several terminals which are attached via analog bridges to the same communication line. The selected station could then transmit a message to the master. The master could address a message to a specific station. Leading graphics mentioned above were used for station selection,

[edit] Bisync Applications

The original purpose of Bisync was for batch communications between a System/360 mainframe and another mainframe or an Remote Job Entry (RJE) terminal such as the IBM 2780 and IBM 3780. Support for remote 3270 display terminals came later. One application which supported on-line terminals was the CICS environment. The RJE terminals supported a limited number of data formats: punched card images in and out and print line images to the terminal. Some non-IBM vendors such as Mohawk Data Sciences used Bisync for other purposes such as tape to tape transmission. RPG for System/36 and System/38 included support for Bisync. A programmer could easily emulate an RJE terminal or other device.

[edit] Pseudo-Bisync Applications

Some important systems used Bisync data framing with a different link control protocol. HASP used Bisync half-duplex hardware in conjunction with their own link control protocol to provide full-duplex multi-datastream communication between a small computer and a mainframe running HASP. Some early X.25 networks tolerated a connection scheme where transparent Bisync data frames encapsulated HDLC LAPB data and control packets.

[edit] Disposition

Bisync was first displaced by Systems Network Architecture which allows construction of a network with multiple hosts and multiple programs using telecommunications. X.25 and Internet Protocol of system which like SNA provide more than mere link control.

[edit] References

Includes material from FOLDOC, used with permission.

In other languages