Saturday 14 April 2012

Binary Synchronous Communications


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 limited use in the early years of the 21st century.




BiSync differs from all popular protocols that succeeded it in the complexity of message framing. Later protocols used a single framing scheme for all messages sent by the protocol. HDLC, Digital Data Communications Message Protocol (DDCMP), Point-to-Point Protocol (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 that 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:
Normal data: restricted character set
Transparent data: unrestricted character set
Single character link control phrase: EOT, NACK etc.
DLE stick: ACK0, ACK1, WACK, RVI, DLE-EOT
Forward abort: STX ... ENQ
a. Temporary Transmit Delay: (TTD) encoded 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 achieved. The receiver then searches for a character that 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 check sum. For USASCII, this is a one character longitudinal redundancy check; for Transcode and EBCDIC, the check sum is a two character cyclic redundancy check. A data frame may contain an intermediate check sum 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, by analogy with bit stuffing.
Error protection for ACK0 and ACK1 is weak. The Hamming distance between the two messages is only two bits.

No comments: