High-Level Data Link Control

Last updated
High-Level Data Link Control
Communication protocol
AbbreviationHDLC
PurposeData framing
Developer(s)International Organization for Standardization (ISO)
Introduction1979;45 years ago (1979)
Based on SDLC
OSI layer Data link layer

High-Level Data Link Control (HDLC) is a communication protocol used for transmitting data between devices in telecommunication and networking. Developed by the International Organization for Standardization (ISO), it is defined in the standard ISO/IEC 13239:2002.

Contents

HDLC ensures reliable data transfer, allowing one device to understand data sent by another. It can operate with or without a continuous connection between devices, making it versatile for various network configurations.

Originally, HDLC was used in multi-device networks, where one device acted as the master and others as slaves, through modes like Normal Response Mode (NRM) and Asynchronous Response Mode (ARM). These modes are now rarely used. Currently, HDLC is primarily employed in point-to-point connections, such as between routers or network interfaces, using a mode called Asynchronous Balanced Mode (ABM).

History

HDLC is based on IBM's SDLC protocol, which is the layer 2 protocol for IBM's Systems Network Architecture (SNA). It was extended and standardized by the ITU as LAP (Link Access Procedure), while ANSI named their essentially identical version ADCCP.

The HDLC specification does not specify the full semantics of the frame fields. This allows other fully compliant standards to be derived from it, and derivatives have since appeared in innumerable standards. It was adopted into the X.25 protocol stack as LAPB, into the V.42 protocol as LAPM, into the Frame Relay protocol stack as LAPF and into the ISDN protocol stack as LAPD.

The original ISO standards for HDLC are the following:

ISO/IEC 13239:2002, the current standard, replaced all of these specifications.

HDLC was the inspiration for the IEEE 802.2 LLC protocol, and it is the basis for the framing mechanism used with the PPP on synchronous lines, as used by many servers to connect to a WAN, most commonly the Internet.

A similar version is used as the control channel for E-carrier (E1) and SONET multichannel telephone lines. Cisco HDLC uses low-level HDLC framing techniques but adds a protocol field to the standard HDLC header.

Framing

HDLC frames can be transmitted over synchronous or asynchronous serial communication links. Those links have no mechanism to mark the beginning or end of a frame, so the beginning and end of each frame has to be identified. This is done by using a unique sequence of bits as a frame delimiter, or flag, and encoding the data to ensure that the flag sequence is never seen inside a frame. Each frame begins and ends with a frame delimiter. A frame delimiter at the end of a frame may also mark the start of the next frame.

On both synchronous and asynchronous links, the flag sequence is binary "01111110", or hexadecimal 0x7E, but the details are quite different.

Synchronous framing

Because a flag sequence consists of six consecutive 1-bits, other data is coded to ensure that it never contains more than five 1-bits in a row. This is done by bit stuffing: any time that five consecutive 1-bits appear in the transmitted data, the data is paused and a 0-bit is transmitted.

The receiving device knows that this is being done, and after seeing five 1-bits in a row, a following 0-bit is stripped out of the received data. If instead the sixth bit is 1, this is either a flag (if the seventh bit is 0), or an error (if the seventh bit is 1). In the latter case, the frame receive procedure is aborted, to be restarted when a flag is next seen.

This bit-stuffing serves a second purpose, that of ensuring a sufficient number of signal transitions. On synchronous links, the data is NRZI encoded, so that a 0-bit is transmitted as a change in the signal on the line, and a 1-bit is sent as no change. Thus, each 0 bit provides an opportunity for a receiving modem to synchronize its clock via a phase-locked loop. If there are too many 1-bits in a row, the receiver can lose count. Bit-stuffing provides a minimum of one transition per six bit times during transmission of data, and one transition per seven bit times during transmission of a flag.

When no frames are being transmitted on a simplex or full-duplex synchronous link, a frame delimiter is continuously transmitted on the link. This generates one of two continuous waveforms, depending on the initial state:

NrziEncodedFlags.png

The HDLC specification allows the 0-bit at the end of a frame delimiter to be shared with the start of the next frame delimiter, i.e. "011111101111110". Some hardware does not support this.

For half-duplex or multi-drop communication, where several transmitters share a line, a receiver on the line will see continuous idling 1-bits in the inter-frame period when no transmitter is active.

HDLC transmits bytes of data with the least significant bit first (not to be confused with little-endian order, which refers to byte ordering within a multi-byte field).

Asynchronous framing

When using asynchronous serial communication such as standard RS-232 serial ports, synchronous-style bit stuffing is inappropriate for several reasons:

Instead asynchronous framing uses "control-octet transparency", also called "byte stuffing" or "octet stuffing". The frame boundary octet is 01111110, (0x7E in hexadecimal notation). A "control escape octet", has the value 0x7D (bit sequence '10111110', as RS-232 transmits least-significant bit first). If either of these two octets appears in the transmitted data, an escape octet is sent, followed by the original data octet with bit 5 inverted. For example, the byte 0x7E would be transmitted as 0x7D 0x5E ("10111110 01111010"). Other reserved octet values (such as XON or XOFF) can be escaped in the same way if necessary.

The "abort sequence" 0x7D 0x7E ends a packet with an incomplete byte-stuff sequence, forcing the receiver to detect an error. This can be used to abort packet transmission with no chance the partial packet will be interpreted as valid by the receiver.

Structure

The contents of an HDLC frame are shown in the following table:

FlagAddressControlInformationFCSFlag
8 bit8 or more bits8 or 16 bitsVariable length, 8×n bits16 or 32 bits8 bits

Note that the end flag of one frame may be (but does not have to be) the beginning (start) flag of the next frame.

Data is usually sent in multiples of 8 bits, but only some variants require this; others theoretically permit data alignments on other than 8-bit boundaries.

The frame check sequence (FCS) is a 16-bit CRC-CCITT or a 32-bit CRC-32 computed over the Address, Control, and Information fields. It provides a means by which the receiver can detect errors that may have been induced during the transmission of the frame, such as lost bits, flipped bits, and extraneous bits. However, given that the algorithms used to calculate the FCS are such that the probability of certain types of transmission errors going undetected increases with the length of the data being checked for errors, the FCS can implicitly limit the practical size of the frame.

If the receiver's calculation of the FCS does not match that of the sender's, indicating that the frame contains errors, the receiver can either send a negative acknowledge packet to the sender, or send nothing. After either receiving a negative acknowledge packet or timing out waiting for a positive acknowledge packet, the sender can retransmit the failed frame.

The FCS was implemented because many early communication links had a relatively high bit error rate, and the FCS could readily be computed by simple, fast circuitry or software. More effective forward error correction schemes are now widely used by other protocols.

Types of stations (computers) and data transfer modes

Synchronous Data Link Control (SDLC) was originally designed to connect one computer with multiple peripherals via a multidrop bus. The original "normal response mode" is a master-slave mode where the computer (or primary terminal) gives each peripheral (secondary terminal) permission to speak in turn. Because all communication is either to or from the primary terminal, frames include only one address, that of the secondary terminal; the primary terminal is not assigned an address. There is a distinction between commands sent by the primary to a secondary, and responses sent by a secondary to the primary, but this is not reflected in the encoding; commands and responses are indistinguishable except for the difference in the direction in which they are transmitted.

Normal response mode allows the secondary-to-primary link to be shared without contention, because it has the primary give the secondaries permission to transmit one at a time. It also allows operation over half-duplex communication links, as long as the primary is aware that it may not transmit when it has given permission to a secondary.

Asynchronous response mode is an HDLC addition [1] for use over full-duplex links. While retaining the primary/secondary distinction, it allows the secondary to transmit at any time. Thus, there must be some other mechanism to ensure that multiple secondaries do not try to transmit at the same time (or only one secondary).

Asynchronous balanced mode adds the concept of a combined terminal which can act as both a primary and a secondary. Unfortunately, this mode of operation has some implementation subtleties. While the most common frames sent do not care whether they are in a command or response frame, some essential ones do (notably most unnumbered frames, and any frame with the P/F bit set), and the address field of a received frame must be examined to determine whether it contains a command (the address received is ours) or a response (the address received is that of the other terminal).

This means that the address field is not optional, even on point-to-point links where it is not needed to disambiguate the peer being talked to. Some HDLC variants extend the address field to include both source and destination addresses, or an explicit command/response bit.

HDLC operations and frame types

Three fundamental types of HDLC frames may be distinguished:

Control field

The general format of the control field is:

HDLC control fields
76543210
N(R)
Receive sequence no.
P/FN(S)
Send sequence no.
0I-frame
N(R)
Receive sequence no.
P/Ftype01S-frame
typeP/Ftype11U-frame

There are also extended (two-byte) forms of I and S frames. Again, the least significant bit (rightmost in this table) is sent first.

Extended HDLC control fields
1514131211109876543210
N(R)
Receive sequence no.
P/FN(S)
Send sequence no.
0Extended I-frame
N(R)
Receive sequence no.
P/F0000type01Extended S-frame

P/F bit

Poll/Final is a single bit with two names. It is called Poll when part of a command (set by the primary station to obtain a response from a secondary station), and Final when part of a response (set by the secondary station to indicate a response or the end of transmission). In all other cases, the bit is clear.

The bit is used as a token that is passed back and forth between the stations. Only one token should exist at a time. The secondary only sends a Final when it has received a Poll from the primary. The primary only sends a Poll when it has received a Final back from the secondary, or after a timeout indicating that the bit has been lost.

When operating as a combined station, it is important to maintain the distinction between P and F bits, because there may be two checkpoint cycles operating simultaneously. A P bit arriving in a command from the remote station is not in response to our P bit; only an F bit arriving in a response is.

N(R), the receive sequence number

Both I and S frames contain a receive sequence number N(R). N(R) provides a positive acknowledgement for the receipt of I-frames from the other side of the link. Its value is always the first frame not yet received; it acknowledges that all frames with N(S) values up to N(R)−1 (modulo 8 or modulo 128) have been received and indicates the N(S) of the next frame it expects to receive.

N(R) operates the same way whether it is part of a command or response. A combined station only has one sequence number space.

N(S), the sequence number of the sent frame

This is incremented for successive I-frames, modulo 8 or modulo 128. Depending on the number of bits in the sequence number, up to 7 or 127 I-frames may be awaiting acknowledgment at any time.

I-Frames (user data)

Information frames, or I-frames, transport user data from the network layer. In addition they also include flow and error control information piggybacked on data. The sub-fields in the control field define these functions.

The least significant bit (first transmitted) defines the frame type. 0 means an I-frame. Except for the interpretation of the P/F field, there is no difference between a command I frame and a response I frame; when P/F is 0, the two forms are exactly equivalent.

S-frames (control)

Supervisory Frames, or 'S-frames', are used for flow and error control whenever piggybacking is impossible or inappropriate, such as when a station does not have data to send. S-frames in HDLC do not have information fields, although some HDLC-derived protocols use information fields for "multi-selective reject".

The S-frame control field includes a leading "10" indicating that it is an S-frame. This is followed by a 2-bit type, a poll/final bit, and a 3-bit sequence number. (Or a 4-bit padding field followed by a 7-bit sequence number.)

The first (least significant) 2 bits mean it is an S-frame. All S frames include a P/F bit and a receive sequence number as described above. Except for the interpretation of the P/F field, there is no difference between a command S frame and a response S frame; when P/F is 0, the two forms are exactly equivalent.

Receive Ready (RR)

  • Bit value = 00 (0x00 to match above table type field bit order [2] )
  • Indicate that the sender is ready to receive more data (cancels the effect of a previous RNR).
  • Send this packet if you need to send a packet but have no I frame to send.
  • A primary station can send this with the P-bit set to solicit data from a secondary station.
  • A secondary terminal can use this with the F-bit set to respond to a poll if it has no data to send.

Receive Not Ready (RNR)

  • Bit value = 01 (0x04 to match above table type field bit order [3] )
  • Acknowledge some packets but request no more be sent until further notice.
  • Can be used like RR with P bit set to solicit the status of a secondary station
  • Can be used like RR with F bit set to respond to a poll if the station is busy.

Reject (REJ)

  • Bit value = 10 (0x08 to match above table type field bit order [4] )
  • Requests immediate retransmission starting with N(R).
  • Sent in response to an observed sequence number gap; e.g. after seeing I1/I2/I3/I5, send REJ4.
  • Optional to generate; a working implementation may use only RR.

Selective Reject (SREJ)

  • Bit value = 11 (0x0c to match above table type field bit order)
  • Requests retransmission of only the frame N(R).
  • Not supported by all HDLC variants.
  • Optional to generate; a working implementation may use only RR, or only RR and REJ.

U-Frames

Unnumbered frames, or U-frames, are primarily used for link management, although a few are used to transfer user data. They exchange session management and control information between connected devices, and some U-frames contain an information field, used for system management information or user data. The first 2 bits (11) mean it is a U-frame. The five type bits (2 before P/F bit and 3 bit after P/F bit) can create 32 different types of U-frame. In a few cases, the same encoding is used for different things as a command and a response.

Mode setting

The various modes are described in § Link configurations. Briefly, there are two non-operational modes (initialization mode and disconnected mode) and three operational modes (normal response, asynchronous response, and asynchronous balanced modes) with 3-bit or 7-bit (extended) sequence numbers.

Disconnected mode (DM) response
When the secondary is disconnected (the default state on power-up), it sends this generic response to any poll (command frame with the poll flag set) except an acceptable mode setting command. It may alternatively give a FRMR response to an unacceptable mode set command.
Unnumbered acknowledge (UA) response
This is the secondary's response to an acceptable mode set command, indicating that it is now in the requested mode.
Set ... mode (SNRM, SARM, SABM) command
Place the secondary in the specified mode, with 3-bit sequence numbers (1-byte control field). The secondary acknowledges with UA. If the secondary does not implement the mode, it responds with DM or FRMR.
Set ... mode extended (SNRME, SARME, SABME) command
Place the secondary in the specified mode, with 7-bit sequence numbers (2-byte control field).
Set mode (SM) command
Generic mode set, new in ISO/IEC 13239, using an information field to select parameters. ISO/IEC 13239 added many additional options to HDLC, including 15- and 31-bit sequence numbers, which can only be selected with this command.
Disconnect (DISC) command
This command causes the secondary to acknowledge with UA and disconnect (enter disconnected mode). Any unacknowledged frames are lost.
Request disconnect (RD) response
This response requests the primary to send a DISC command. The primary should do so promptly, but may delay long enough to ensure all pending frames are acknowledged.
Set initialization mode (SIM) command
This rarely-implemented command is used to perform some secondary-specific initialization, such as downloading firmware. What happens in initialization mode is not otherwise specified in the HDLC standard.
Request initialization mode (RIM) response
This requests the primary to send SIM and initialize the secondary. It sent in lieu of DM if the secondary requires initialization.

Information transfer

These frames may be used as part of normal information transfer.

Unnumbered information (UI)
This frame (command or response) communicates user data, but without acknowledgement or retransmission in case of error.
UI with header check (UIH)
This frame (command or response), a ISO/IEC 13239 addition and rarely used, is like UI but also excludes CRC protection. Only a configurable-length prefix ("header") of the frame is covered by the CRC polynomial; errors in the rest of the frame are not detected.
Unnumbered poll (UP) command
This command solicits a response from the secondary. With the poll bit set, it acts like any other poll frame, without the acknowledgement that must be included in I or S frame. With the poll bit clear, it has a special meaning in normal response mode: the secondary may respond, even though it has not received the poll bit. This is rarely used in HDLC, but was used in the original IBM SDLC as a substitute for the lack of asynchronous response mode; where the communication channel could handle simultaneous responses, the primary would periodically send UP to the broadcast address to collect any pending responses.

Error Recovery

Frame reject (FRMR) response
The FRMR response contains a description of the unacceptable frame, in a standardized format. The first 1 or 2 bytes are a copy of the rejected control field, the next 1 or 2 contain the secondary's current send and receive sequence numbers (and a flag indicating that the frame was a response, applicable only in balanced mode), and the following 4 or 5 bits are error flags indicating the reason for the rejection. The secondary repeats the same FRMR response to every poll until the error is cleared by a mode set command or RSET. The error flags are:
  • W: the frame type (control field) is not understood or not implemented.
  • X: the frame type is not understood with a non-empty information field, but one was present.
  • Y: the frame included an information field that is larger than the secondary can accept.
  • Z: the frame included an invalid receive sequence number N(R), one which is not between the previously received value and the highest sequence number transmitted. (This error cannot be cleared by receiving RSET, but can be cleared by sending RSET.)
  • V: the frame included an invalid send sequence number N(S), greater than the last number acknowledged plus the transmit window size. This error is only possible if a transmit window size smaller than the maximum has been negotiated.
  • The error flags are normally padded with 0 bits to an 8-bit boundary, but HDLC permits frames which are not a multiple of a byte long.
Reset (RSET) command
The RSET command causes a secondary to reset its receive sequence number so the next expected frame is sequence number 0. This is a possible alternative to sending a new mode set command, which resets both sequence numbers. It is acknowledged with UA, like a mode set command.

Peer discovery

Exchange identification (XID)
An XID command includes an information field specifying the primary's capabilities; the secondary responds with an XID response specifying its capabilities. This is normally done before sending a mode set command. Systems Network Architecture defined one format for the information field, in which the most significant bit of the first byte is clear (0), but HDLC implementations normally implement the variant defined in ISO 8885, which has the most significant bit of the first byte set (1).
TEST
A TEST command is simply a ping command for debugging purposes. The payload of the TEST command is returned in the TEST response.

Defined in other standards

There are several U frames which are not part of HDLC, but defined in other related standards.

Nonreserved (NR0, NR1, NR2, NR3)
The "nonreserved" commands and responses are guaranteed by the HDLC standard to be available for other uses.
Ack connectionless (AC0, AC1)
These are defined in the IEEE 802.2 logical link control standard.
Configure (CFGR)
This command was defined in SDLC for debugging. It had a 1-byte payload which specified a non-standard test mode for the secondary. Even numbers disabled the mode, while odd numbers enabled it. A payload of 0 disabled all test modes. The secondary normally acknowledged a configure command by echoing it in response.
Beacon (BCN) response
This response was defined in SDLC to indicate a communications failure. A secondary which received no frames at all for a long time would begin sending a stream of beacon responses, allowing a unidirectional fault to be located. Note that ISO/IEC 13239 assigns UIH the same encoding as BCN.

Link configurations can be categorized as being either:

The three link configurations are:

An additional link configuration is Disconnected mode. This is the mode that a secondary station is in before it is initialized by the primary, or when it is explicitly disconnected. In this mode, the secondary responds to almost every frame other than a mode set command with a "Disconnected mode" response. The purpose of this mode is to allow the primary to reliably detect a secondary being powered off or otherwise reset.

HDLC Command and response repertoire

The minimal set required for operation are:

Basic operations

The HDLC module on the other end transmits (UA) frame when the request is accepted. If the request is rejected it sends (DM) disconnect mode frame.

Functional extensions (options)

HDLC command and response repertoire

Type Of FrameNameCommand/
Response
DescriptionInfoC-Field Format
76543210
Information(I)C/RUser exchange dataN(R)P/FN(S)0
Supervisory (S)Receive Ready (RR)C/RPositive AcknowledgementReady to receive I-frame N(R)N(R)P/F0001
Receive Not Ready (RNR)C/RPositive AcknowledgementNot ready to receiveN(R)P/F0101
Reject (REJ)C/RNegative AcknowledgementRetransmit starting with N(R)N(R)P/F1001
Selective Reject (SREJ)C/RNegative AcknowledgementRetransmit only N(R)N(R)P/F1101

Unnumbered frames

Unnumbered frames are identified by the low two bits being 1. With the P/F flag, that leaves 5 bits as a frame type. Even though fewer than 32 values are in use, some types have different meanings depending on the direction they are sent: as a command or as a response. The relationship between the DISC (disconnect) command and the RD (request disconnect) response seems clear enough, but the reason for making SARM command numerically equal to the DM response is obscure.

NameCommand/
Response
DescriptionInfoC-Field Format
76543210
Set normal response mode SNRMCSet modeUse 3 bit sequence number100P0011
SNRM extended SNRMECSet mode; extendedUse 7 bit sequence number110P1111
Set asynchronous response mode SARMCSet modeUse 3 bit sequence number000P1111
SARM extended SARMECSet mode; extendedUse 7 bit sequence number010P1111
Set asynchronous balanced mode SABMCSet modeUse 3 bit sequence number001P1111
SABM extended SABMECSet mode; extendedUse 7 bit sequence number011P1111
Set Mode SMCSet mode, genericNew in ISO 13239110P0011
Set initialization mode SIMCInitialize link control function in the addressed station000P0111
Request initialization mode RIMRInitialization neededRequest for SIM command000F0111
Disconnect DISCCTerminate logical link connectionFuture I and S frames return DM010P0011
Request disconnect RDRSolicitation for DISC Command010F0011
Unnumbered acknowledgment UARAcknowledge acceptance of one of the set-mode commands.011F0011
Disconnect mode DMRResponder in disconnected modeMode set required000F1111
Unnumbered information UIC/RUnacknowledged dataHas a payload000P/F0011
UI with header check UIHC/RUnacknowledged dataNew in ISO 13239111P/F1111
Unnumbered poll UPCUsed to solicit control information001P0011
Reset RSETCUsed for recoveryResets N(R) but not N(S)100P1111
Exchange identification XIDC/RUsed to Request/Report capabilities101P/F1111
Test TESTC/RExchange identical information fields for testing111P/F0011
Frame reject FRMRRReport receipt of unacceptable frame100F0111
Nonreserved 0 NR0C/RNot standardizedFor application use000P/F1011
Nonreserved 1 NR1C/RNot standardizedFor application use100P/F1011
Nonreserved 2 NR2C/RNot standardizedFor application use010P/F1011
Nonreserved 3 NR3C/RNot standardizedFor application use110P/F1011
Ack connectionless, seq 0 AC0C/RNot part of HDLCIEEE 802.2 LLC extension011P/F0111
Ack connectionless, seq 1 AC1C/RNot part of HDLCIEEE 802.2 LLC extension111P/F0111
Configure for test CFGRC/RNot part of HDLCWas part of SDLC110P/F0111
Beacon BCNRNot part of HDLCWas part of SDLC111F1111
HDLC U frames, by binary encoding
C-Field FormatCommandResponseC-Field FormatCommandResponse
0123456701234567
1100P/F000UI1110P/F010(unused)
1100P/F001SNRM1110P/F011CFGR
1100P/F010DISCRD1110P/F10x(unused)
1100P/F011SM * 1110P/F11xAC0–AC1
1100P/F100UP1111P/F000SARMDM
1100P/F101(unused)1111P/F001RSET
1100P/F110UA1111P/F010SARME
1100P/F111TEST1111P/F011SNRME
1101P/F0xxNR0–NR31111P/F100SABM
1101P/F1xx(unused)1111P/F101XID
1110P/F000SIMRIM1111P/F110SABME
1110P/F001FRMR1111P/F111UIH *
BCN
* ^ ^ ISO/IEC 13239 addition
^ ^ ^ Not part of HDLC

The UI, UIH, XID, TEST frames contain a payload, and can be used as both commands and responses. The SM command and FRMR response also contain a payload.

See also

Notes

  1. ( Friend et al. 1988 , p. 191)
  2. "X.25 frame types - Martin Baker".
  3. "X.25 frame types - Martin Baker".
  4. "X.25 frame types - Martin Baker".

Related Research Articles

In telecommunications, asynchronous communication is transmission of data, generally without the use of an external clock signal, where data can be transmitted intermittently rather than in a steady stream. Any timing required to recover data from the communication symbols is encoded within the symbols.

IEEE 802.2 is the original name of the ISO/IEC 8802-2 standard which defines logical link control (LLC) as the upper portion of the data link layer of the OSI Model. The original standard developed by the Institute of Electrical and Electronics Engineers (IEEE) in collaboration with the American National Standards Institute (ANSI) was adopted by the International Organization for Standardization (ISO) in 1998, but it remains an integral part of the family of IEEE 802 standards for local and metropolitan networks.

In computer networking, Point-to-Point Protocol (PPP) is a data link layer communication protocol between two routers directly without any host or any other networking in between. It can provide loop detection, authentication, transmission encryption, and data compression.

In telecommunication, Advanced Data Communication Control Procedures (ADCCP) is a bit-oriented data link layer protocol developed by the American National Standards Institute. It is functionally equivalent to the ISO High-Level Data Link Control (HDLC) protocol.

<span class="mw-page-title-main">Time-division multiplexing</span> Multiplexing technique for digital signals

Time-division multiplexing (TDM) is a method of transmitting and receiving independent signals over a common signal path by means of synchronized switches at each end of the transmission line so that each signal appears on the line only a fraction of time in an alternating pattern. It can be used when the bit rate of the transmission medium exceeds that of the signal to be transmitted. This form of signal multiplexing was developed in telecommunications for telegraphy systems in the late 19th century, but found its most common application in digital telephony in the second half of the 20th century.

<span class="mw-page-title-main">ANSI escape code</span> Method used for display options on video text terminals

ANSI escape sequences are a standard for in-band signaling to control cursor location, color, font styling, and other options on video text terminals and terminal emulators. Certain sequences of bytes, most starting with an ASCII escape character and a bracket character, are embedded into text. The terminal interprets these sequences as commands, rather than text to display verbatim.

<span class="mw-page-title-main">CAN bus</span> Standard for serial communication between devices without host computer

A controller area network is a vehicle bus standard designed to allow microcontrollers and devices to communicate with each other. It is a message-based protocol, designed originally for multiplex electrical wiring within automobiles to save on copper, but it can also be used in many other contexts. For each device, the data in a frame is transmitted serially but in such a way that if more than one device transmits at the same time, the highest priority device can continue while the others back off. Frames are received by all devices, including by the transmitting device.

AX.25 is a data link layer protocol originally derived from layer 2 of the X.25 protocol suite and designed for use by amateur radio operators. It is used extensively on amateur packet radio networks.

Synchronous Data Link Control (SDLC) is a computer communications protocol. It is the layer 2 protocol for IBM's Systems Network Architecture (SNA). SDLC supports multipoint links as well as error correction. It also runs under the assumption that an SNA header is present after the SDLC header. SDLC was mainly used by IBM mainframe and midrange systems; however, implementations exist on many platforms from many vendors. In the United States and Canada, SDLC can be found in traffic control cabinets.

Modbus or MODBUS is a client/server data communications protocol in the application layer. It was originally published by Modicon in 1979 for use with its programmable logic controllers (PLCs). Modbus has become a de facto standard communication protocol for communication between industrial electronic devices in a wide range of buses and network.

<span class="mw-page-title-main">LAPB</span>

Link Access Procedure, Balanced (LAPB) implements the data link layer as defined in the X.25 protocol suite. LAPB is a bit-oriented protocol derived from HDLC that ensures that frames are error free and in the correct sequence. LAPB is specified in ITU-T Recommendation X.25 and ISO/IEC 7776. It implements the connection-mode data link service in the OSI Reference Model as defined by ITU-T Recommendation X.222.

Throughput of a network can be measured using various tools available on different platforms. This page explains the theory behind what these tools set out to measure and the issues regarding these measurements.

A frame check sequence (FCS) is an error-detecting code added to a frame in a communication protocol. Frames are used to send payload data from a source to a destination.

A universal synchronous and asynchronous receiver-transmitter is a type of a serial interface device that can be programmed to communicate asynchronously or synchronously. See universal asynchronous receiver-transmitter (UART) for a discussion of the asynchronous capabilities of these devices.

CRC-based framing is a kind of frame synchronization used in Asynchronous Transfer Mode (ATM) and other similar protocols.

Binary Synchronous Communication is an IBM character-oriented, half-duplex 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 character encodings for messages.

Link Access Procedure for Modems (LAPM) is part of the V.42 error correction protocol for modems.

Polling, or interrogation, refers to actively sampling the status of an external device by a client program as a synchronous activity. Polling is most often used in terms of input/output, and is also referred to as polled I/O or software-driven I/O. A good example of hardware implementation is a watchdog timer.

Cisco HDLC (cHDLC) is an extension to the High-Level Data Link Control (HDLC) network protocol, and was created by Cisco Systems, Inc. HDLC is a bit-oriented synchronous data link layer protocol that was originally developed by the International Organization for Standardization (ISO). Often described as being a proprietary extension, the details of cHDLC have been widely distributed and the protocol has been implemented by many network equipment vendors. cHDLC extends HDLC with multi-protocol support.

An Answer To Reset (ATR) is a message output by a contact Smart Card conforming to ISO/IEC 7816 standards, following electrical reset of the card's chip by a card reader. The ATR conveys information about the communication parameters proposed by the card, and the card's nature and state.

References