Most character-orientated protocols operate in half-duplex, stop-and-wait, mode. Large computer manufacturers frequently have their own versions which differ slightly. However, probably the best known is that developed by IBM and known as binary synchronous control, often shortened to BSC. As it is the basis of the ISO character-oriented protocol known as basic mode BSC will be used as an example.

In order to perform the various functions associated with link management, control frames are required in addition to normal data carrying frames (blocks). Also, with character-oriented synchronous transmission the receiver must be able to achieve both character (byte) and frame synchronisation. With BSC, these functions are carried out using selected EBCDIC (or ASCII with basic mode) transmission control characters. A complete list of these characters, together with their functions is given below:

SOH - Start of header: used to indicate the start of the header (if one is present) of an information frame
STX - Start of text: used both to terminate a header (if one is present) and to signal the start of a text string
ETX - End of text: used to signal the end of a text string
EOT: End of transmission: used to indicate the end of the transmission of one or more text blocks and to terminate (clear) the connection
ENQ - Enquiry: used as a request for a response from a remote station - the response may include the identity and/or status of the station
ACK - Acknowledge: positive acknowledgment transmitted by a receiver in response to a message from the sender
DLE - Data link escape: used to change the meaning of other selected transmission control characters
NAK - Negative acknowledgment: negative response transmitted by a receiver to a message from the sender, possibly indicating an error in the received message
SYN - Synchronous idle: used to provide the means for a receiver to achieve or retain (idle condition) character synchonisation with a synchronous transmission control scheme
ETB - End of transmission block: used to indicate the end of a block of data when a message is divided into a number of such blocks

Every message transmitted contains at least one of these control characters. The different types of information frame -known as data blocks in BSC - are shown below:

Since BSC use character-oriented synchronous transmission all data blocks transmitted are preceded by at least two SYN characters to allow the receiver to achieve character synchronisation.

A heading contains information relating to the text, for example, on message numbering, routing and so on. A heading is always followed by a text and is framed by SOH and STX characters.

An information message contains TEXT, which may or may not be preceded by a heading. The text contains the information to be transmitted from sender to receiver. It is framed by STX and ETX characters, if only one data block is transmitted. Short user messages (less than the defined maximum length) are transmitted in a single data block while longer messages are send in multiple blocks. Longer messages are transmitted as a sequence of shorter data blocks of a fixed size, each terminated with an ETB control character. The last data block of such a sequence terminates with an ETX control character.

A Block Check Character (error detection) is generally placed immediately after the ETB or ETX character, although a variation on the protocol allows the use of CRC checksum instead.

Control characters at the end of a message require a response - ETB or ETX require the receiver to notify the sender that a message has been correctly received. If this is indeed the case, the receiver responds with an ACK, otherwise it sends a NAK.

The ENQ control character is used to request a response from a remote device, for example, a request that the device identify itself or indicate its status.

Character-oriented protocols suffer from a number of disadvantages:

They require stations to have a master/slave relationship and thus are only really suited for centralised networks, such as the star topology.
They require a number of different block types for various purposes, such as information transfer, positive and negative acknowledgments and so on.
They can only support half-duplex operation, even when the channel is capable of operating in full-duplex mode.
However, the majority of these difficulties can be resolved by employing a bit-oriented protocol, such as HDLC.

Lee James McMunn
CSYS Computing Studies Project