In this tutorial, we’ll explain the binary synchronous communications protocol (BISYNC) developed by IBM in 1967.
2. Data-Link Control Characters
BISYNC frames data-link messages and full transmissions using data-link control characters. Instead of sending a stream of plain text messages, BISYNC gives a structure to each message.
In addition to structuring the message itself, it also tries to structure the full transmission between the stations. For example, after each successfully received message, the receiver informs the sender about that.
The BISYNC defines a set of rules for the synchronous transmission of a serial stream of binary digits. The rules specify the data-link control characters, station status indications, synchronization, and error detection functions.
3. Heading and Text
There are strict formatting rules for heading and text data.
The two adjacent synchronization (SYN) characters signal the start of a message block.
Additionally, the sending station transmits the two SYN characters at intervals to maintain synchronization. So, two SYNs indicate to the receiving station that the sending station is still transmitting text.
3.2. Rules for Heading and Accumulation
The heading contains information such as message identification, priority, and routing. It starts with the start of the header (SOH) character and contains one or more characters. Its length can be fixed or variable.
The longitudinal-redundancy check (LRC) checks a complete message block. Subsequently, both the sending and receiving stations accumulate the incoming characters. The checksum of the accumulation is called a block-check character (BCC). In the example below, BCC includes all the characters following the STX character up to the end of the ETX character:
The text can be sent in chunks, and we call all of them intermediate blocks. The end-of-the-transmission-block (ETB) or the end-of-test (ETX) characters terminate the last intermediate block.
3.3. Text Rules
The text contains the actual data. It’s the most important part of a transmission. It’s sent in units called messages.
The STX character (start of text) initiates a message, and ETX terminates it. STX also initiates an intermediate block, but the intermediate transmission block (ITB) marks its end. ETX can appear only in the last block:
ACK 0 and ACK 1 indicate that the transmissions were accepted without errors.
There are three phases in a BISYNC transmission: initialization, message transfer, and termination.
The initialization phase consists of transmitting identification on a switched network, bidding for control on a point-to-point network, and polling or selection on a multipoint network.
The transfer phase begins with the first SOH or STX character. After the initialization phase, the network continues in the message-transfer phase until a station initiates the termination phase, which starts with an end of transmission (EOT) character.
In the illustration above, the enquiry (ENQ) character bids for control. In the message phase, two data blocks were transmitted.
5. Transmission Modes
BISYNC provides two modes to increase the protocol’s flexibility.
5.1. Transparent Text Mode
The transparent mode allows the transmission of control characters in text data without taking on control meaning. This is beneficial for transmitting binary data, floating point numbers, unique, specialized codes, or machine-language computer programs.
A data-link control character must be preceded by the data link escape (DLE) control character to gain functionality. The DLE STX sequence initiates the transparent mode:
DLE SYN keeps the stations in sync or acts as a time-fill.
5.2. Limited Conversational Mode
This mode permits a receiving station to reply with a heading or text data. A conversational reply can be sent in response to a block of text that ends with ETX. A conversational reply can start with SOH or STX:
A station receiving a conversational reply doesn’t have to respond with another one.
6. Error Detection
BISYNC implements techniques for format and transmission error detection. A format error is an improper sequence of control characters. A transmission error refers to a change in the bits.
Error detection methods include vertical redundancy checking (VRC), LRC, and cyclic redundancy checking (CRC). VRC checks each character, while LRC and CRC check a complete transmitted block.
BISYNC implements two timeout functions: the receive and transmit timeouts. The former lasts three seconds, while the latter lasts one second.
The receive timeout limits the time a station waits for a reply. Consequently, the receive timeout is reset once the sync idles are detected.
A transmitting station sends two SYN characters once the transmit timeout elapses. Then, the transmit timeout is reset. This permits indefinite text length.
8. Control Characters
Here’s a reference list of nearly all BISYNC control characters:
In this article, we described BISYNC. Its data-link control characters frame the messages and manage the transmissions.