Bisync differs from protocols that succeeded it in the complexity of message framing. Later protocols use a single
framing scheme for all messages sent by the protocol.
HDLC,
Digital Data Communications Message Protocol (DDCMP),
Point-to-Point Protocol (PPP), etc. each have different framing schemes but only one frame format exists within a specific protocol. Bisync has five different framing formats.
ACK0 and
ACK1 (even/odd affirmative acknowledgement) are encoded as two characters—DLE '70'x, and DLE / for EBCDIC, DLE 0 and DLE 1 for USASCII, DLE - and DLE T for Transcode.
WABT (wait before transmit) was encoded as DLE ", DLE ?, or DLE W. All frame formats begin with at least two
SYN bytes. The binary form of the SYN 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 SYN pattern. When this is found, tentative byte synchronization has been achieved. If the next character is also a SYN, 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. Long messages have SYN bytes inserted approximately every second to maintain synchronization. These are ignored by the receiver. A normal block ending character (ETB or ETX) is followed by a
check sum (block check character or BCC). For USASCII, this is a one character
longitudinal redundancy check (LRC); for Transcode and EBCDIC, the check sum is a two character
cyclic redundancy check(CRC). A data frame may contain an intermediate check sum preceded by an ITB character. This ability to include intermediate check sums in a long data frame allows a considerable improvement of the error detection probability. USASCII characters are also transmitted using
odd parity for additional checking.
Pad characters are required following a line turn-around—NAK, EOT, ENQ, ACK0, ACK1. If the transmission ends with EOT or ETX the pad follows the BCC. This pad is either all '1' bits or alternating '0' and '1' bits. The next transmission begins with a pad character which can be either of the above or a SYN. An optional
heading containing control information can precede data in a frame. The content of the heading is not defined by the protocol but is defined for each specific device. The heading, if present, is preceded by an SOH (start of heading) character and followed by an STX (start of text).
Text data normally follows the heading, begun by the STX, and terminated by ETX (end of text) or ETB (end transmission block). 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 SYN characters. The number of unique characters that can be transmitted is therefore limited to 59 for Transcode, 123 for USASCII, or 251 for EBCDIC.
Transparent data framing provides an unrestricted alphabet of 64, 128 or 256 characters. In transparent mode block framing characters such as ETB, ETX, and SYN are preceded by a DLE character to indicate their control significance (The DLE character itself is represented by the sequence DLE DLE). This technique became known as
character stuffing, by analogy with
bit stuffing. == Link control ==