Synchronous
Data Link Control (SDLC) Overview
back
| next | index
The SYSTEMS NETWORK
ARCHITECTURE (SNA), as it is defined and implemented by IBM, defines the
division of all of the network functions into clearly defined layers.
These layers provide many of the same functions as the Open Systems Interconnect
(OSI) seven-layered architecture defined by the International Standards
Organization (ISO). The SNA layers are not identical to the OSI layers
and are not compatible or interoperable.
The DATA LINK
CONTROL Layer provides the error-free movement of data between the NETWORK
ADDRESSABLE UNITS (NAUs) within a given communication network via the
SYNCHRONOUS DATA LINK CONTROL (SDLC) Protocol. The flow of information
passes down from the higher layers through the DATA LINK CONTROL Layer
and is passed into the PHYSICAL CONTROL Layer. It then passes into the
communication links through some type of interface.
All NETWORK
ADDRESSABLE UNITS (NAUs) are interconnected by some type of physical or
logical link which is defined as the DATA LINK LAYER of the SNA Architecture.
The DATA LINK CONTROL LAYER provides the capability to pass information
between these associated NAUs using the SDLC Protocol. There are two basic
types of links:
I/O
CHANNEL COMMUNICATION links are usually hard-wired between co-located
nodes (in the same room or facility). They normally operate at a very
high data rate and are usually error free.
NON
I/O CHANNEL COMMUNICATION links normally require some form of data communications
equipment to pass information between nodes. SDLC Protocol is used to
ensure error-free performance over these links, which may be either
point-to-point (switched or non-switched) or multipoint configurations.
Some specific equipment types use the SDLC loop transmission facilities
to pass data.
Data
Link Control Layer Functions
Communications
links provide error-free paths for information to follow via the SDLC
protocol. SDLC is a modified subset of the HIGH-LEVEL DATA LINK CONTROL
(HDLC) protocol defined by the International Standards Groups CCITT and
ISO.
The SDLC protocol
is an UNBALANCED procedure that provides for the orderly control of multipoint
communications activity in complex networks. This unbalanced procedure
is identified as the NORMAL RESPONSE MODE (NRM).
The Data Link
Control layer is the lower of the two layers that make up the Path Control
Network. The Data Link Control layer communicates upward to the Path Control
layer, passing data and control information in BASIC TRANSMISSION UNITS
(BTUs).
SDLC is a bit-oriented
protocol (BOP). It provides complete transparency, half-duplex [two-way
alternate (TWA)] or full-duplex [two-way simultaneous (TWS)] operation,
multipoint addressing, flow control, error detection and recovery, and
the ability to send more than one message before needing a response.
A set of sequence
numbers provides the acknowledgment, flow control, error recovery, and
"window" functions. The window function allows the sending station
to transmit more than one message before some form of response is received.
The normal method
of sequence numbers uses a three-bit counter that rotates the count from
0 through 7 and repeats (Modulo 8). The maximum window size using the
normal mode is 7. The extended mode uses a seven bit counter that rotates
the count from 0 through 127 and repeats (Modulo 128). The maximum window
size using the extended mode is 127.
SDLC is an unbalanced
procedure that defines the operation and interaction between a primary
station (HOST) and one or more secondary stations (TERMINALS). All of
the information that flows between the host and the terminal devices attached
to the link is passed using a set of COMMANDS and RESPONSES defined to
provide the following functions:
LINK
INITIALIZATION
INFORMATION
TRANSFER
FLOW
CONTROL
ERROR
DETECTION
ERROR
RECOVERY
LINK
TERMINATION
Data
Link Layer Activation Flow
.-----------------------------------------------------------------------------------.
| Primary Station COMMANDS-> <-Secondary Station RESPONSES |
|===================================================================================|
|SET NORMAL RESPONSE MODE (SNRM)--> <---(UA) UNNUMBERED ACKNOWLEDGMENT |
| |
| |
| .----------------------------------------. |
| | The DATA LINK layer is initialized. | |
`------------^----------------------------------------^-----------------------------'
Data
Link Layer Disconnection
.-----------------------------------------------------------------------------------.
| Primary Station COMMANDS-> <-Secondary Station RESPONSES |
|===================================================================================|
| DISCONNECT (DISC)--> <---(UA) UNNUMBERED ACKNOWLEDGMENT |
| |
| |
| .-------------------------------------------. |
| | The DATA LINK layer is disconnected. | |
`------------^-------------------------------------------^--------------------------'
SDLC
Frame Formats
All commands
and responses are contained within an SDLC FRAME that provides all of the
addressing, control, sequence numbering, flow control, and error detection
required for reliable transmission of data across a LINK.
MODULO
8 BASIC FRAME FORMAT (NORMAL MODE)
8 8 8 8 8 8 NUMBER OF BITS
.==============================.
|| F || A || C || F || F || F ||
|| L || D || T || C || C || L ||
|| A || D || R || S || S || A ||
|| G || R || L || || || G ||
`=============================='
^ ^ ^ ^ ^ ^
LEADING FLAG --' | | | | `-- TRAILING FLAG
| | | |
ADDRESS FIELD ------' | `----'<------ FRAME CHECK
| | SEQUENCE
CONTROL FIELD -----------' | |
| | | |
LINK HEADER -->`---------' `---------'<- LINK TRAILER
MODULO
8 INFORMATION FRAME FORMAT (NORMAL MODE)
8 8 8 NX8 8 8 8 NUMBER
.===================================. OF BITS
|| F || A || C || I || F || F || F ||
|| L || D || T || N || C || C || L ||
|| A || D || R || F || S || S || A ||
|| G || R || L || O || || || G ||
`==================================='
^ ^ ^ ^ ^ ^ ^
LEADING FLAG --' | | | | | `-- TRAILING FLAG
| | | | |
ADDRESS FIELD ------' | | `----'<------ FRAME CHECK
| | | | SEQUENCE
CONTROL FIELD -----------' | `---------'<- LINK TRAILER
| | |
LINK HEADER -->`---------' `----------------- INFORMATION
MODULO
128 BASIC FRAME FORMAT (EXTENDED MODE)
8 8 8 8 8 8 8 NUMBER OF BITS
.===================================.
|| F || A || C || C || F || F || F ||
|| L || D || T || T || C || C || L ||
|| A || D || R || R || S || S || A ||
|| G || R || L || L || || || G ||
`==================================='
^ ^ ^ ^ ^ ^ ^
LEADING FLAG --' | | | | | `-- TRAILING FLAG
| | | | |
ADDRESS FIELD ------' | | `----'<------ FRAME CHECK
| | | SEQUENCE
CONTROL FIELD ---------->`----' | |
| | | |
LINK HEADER -->`--------------' `---------'<- LINK TRAILER
MODULO
128 INFORMATION FRAME FORMAT (EXTENDED MODE)
8 8 8 8 NX8 8 8 8 NUMBER
.========================================. OF BITS
|| F || A || C || C || I || F || F || F ||
|| L || D || T || T || N || C || C || L ||
|| A || D || R || R || F || S || S || A ||
|| G || R || L || L || O || || || G ||
`========================================'
^ ^ ^ ^ ^ ^ ^ ^
LEADING FLAG --' | | | | | | `-- TRAILING
| | | | | | FLAG
ADDRESS FIELD ------' | | | `----'<------ FRAME
| | | | | SEQUENCE
CONTROL FIELD ---------->`----' | `---------'<- LINK
| | | TRAILER
LINK HEADER -->`--------------' `---------------- INFORMATION
SDLC
Frame Fields
- FLAGS:
The LEADING
and TRAILING FLAG fields are delimiters which indicate the beginning
and end of an SDLC frame. The flag is the only place where the unique
8-bit pattern of 01111110 occurs. The flag pattern is the idle condition
on a full-duplex link. On a half-duplex link, the idle condition is
all 1 bits (mark).
All non-flag
bytes (octets) must obey a rule where, after five consecutive 1 bits
are detected in a transmit string, the sending station must insert a
bit position with the value of 0
The
zero insertion/deletion process (bit stuffing) is performed on the ADDRESS,
CONTROL, INFORMATION and FRAME CHECK SEQUENCE (FCS) fields. The receiving
station must delete these inserted 0 bits before storing the data in
memory. Seven or more consecutive 1 bits are considered an ABORT condition.
- ADDRESS:
The first
field after the leading flag is the ADDRESS field. It contains the link
address of the secondary station that is sending or receiving the frame.
The address field is normally a one-byte (octet) field.
Although not
used by most networks, the architecture and protocol has a provision
for an extended addressing capability. This 8-bit field provides the
ability to identify 256 different secondary addresses. Two of these
addresses are reserved for special purposes:
ADDRESS 00
(hexadecimal 00000000) is reserved as the "No Station" address
and should not be used.
ADDRESS FF
(hexadecimal 11111111) is used as a BROADCAST to identify any and all
secondary stations located on a specific link. Not all devices support
broadcast.
- CONTROL:
This field
follows the address and is a one-byte field in the normal-mode (Modulo
8) operation. It also also identifies the function or TYPE of frame
being transmitted. There are three basic types of frames:
The INFORMATION
frame contains SNA headers and data for the higher layers of the Architecture.
The SUPERVISORY
frames perform the DATA LINK layer flow control and error recovery.
The UNNUMBERED
frames provide the LINK initialization and termination and also define
some special frames used for identifying stations, testing functions
and the rejection of invalid frames.
The normal
mode uses two 3-bit counters in the INFORMATION frame to track the number
of the frame that is being sent (Ns) and the number of the frame that
is expected to be received next (Nr). The SUPERVISORY frames contain
only the Nr counter.
The extended
mode (Modulo 128) uses a two-byte CONTROL field in the SUPERVISORY and
INFORMATION frames to allow the Nr and Ns counters to be seven bits
in length and to rotate the count from 0 through 127, and then repeat.
The SUPERVISORY frame contains only the Nr counter.
Control
Field
Control
Field: Format (Normal Mode)
.----------------------------------------.
|| Nr || || Ns || ||
INFORMATION ||-------------||P/F||-------------|| 0 ||
|| 4 || 2 || 1 || || 4 || 2 || 1 || || VALUE
`----------------------------------------'
.----------------------------------------.
|| Nr || || || || || ||
SUPERVISORY ||-------------||P/F|| M || M || 0 || 1 ||
|| 4 || 2 || 1 || || || || || || VALUE
`----------------------------------------'
.----------------------------------------.
MSB || M || M || M ||P/F|| M || M || 1 || 1 || LSB
||======================================||
UNNUMBERED || 8 || 4 || 2 || 1 || 8 || 4 || 2 || 1 || VALUE
||======================================||
|| 7 || 6 || 5 || 4 || 3 || 2 || 1 || 0 || NUMBER
`----------------------------------------'
M = MODIFIER TO BASIC TYPE P/F = POLL OR FINAL BIT
MSB = MOST SIGNIFICANT BIT LSB = LEAST SIGNIFICANT BIT
Control Field: Poll/Final Bit Usage The fifth bit in the CONTROL field, known as the POLL or FINAL bit, may be set to a value of 1 or 0. It is referred to as:
The
POLL bit in all commands. If the poll bit is set to 1 in a command,
a response or INFORMATION frame is being solicited.
The
FINAL bit in all responses. If the final bit is set to 1 in a response,
it indicates that it is either the only frame sent or the last frame
being sent in a series of frames.
Control
Field: Supervisory Frame Types
- RR
- RECEIVE
READY: This frame is used as a polling command by the primary station
to solicit INFORMATION frames from the secondary station. The RECEIVE
READY frame is an ACKNOWLEDGMENT RESPONSE used by the secondary station
to indicate that the secondary is now ready to receive INFORMATION frames.
- RNR
- RECEIVE
NOT READY: This frame is used as a flow control command or response
to indicate that the station transmitting the RECEIVE NOT READY frame
is not able to accept any INFORMATION frames at this time.
- REJ
- REJECT:
This frame is sent by a STATION to indicate that it has received a frame
out of the normal sequence. This may indicate the loss of an INFORMATION
frame containing USER data.
Control
Field: Unnumbered Frame Types
Command
Frames
- SNRM
- SET NORMAL
RESPONSE MODE: This command is sent from the primary station to a secondary
station to place the SECONDARY in the initialized normal SDLC operating
mode. It also resets all counters and timers to 0.
- DISC
- DISCONNECT:
This COMMAND is sent from the primary station to a secondary station
to place the SECONDARY station in the off-line disconnected mode.
- SIM
- SET INITIALIZATION
MODE: This command is sent from the primary station to the secondary
station to begin the initialization process.
Response
Frames
- UA
- UNNUMBERED
ACKNOWLEDGMENT: This response is sent from the secondary station to
the primary station in response to a SNRM, DISC, or SIM command.
- DM
- DISCONNECT
MODE: This response is sent from the secondary station to the primary
station in response to any command other than SNRM or DISC.
- RD
- REQUEST
DISCONNECT: This response is sent from the secondary to the primary
station to request that the SECONDARY station be placed in the off-line
or disconnect mode.
- RIM
- REQUEST
INITIALIZATION MODE: this response is sent from the secondary to the
primary station to request initialization.
- FRMR
- FRAME
REJECT: This response is sent from the secondary station to the primary
station to indicate that an abnormal condition has been detected or
that an invalid frame has been received. It contains bits which indicate
the reason for the rejection of the frame.
Command
or Response Frames
- XID
- EXCHANGE
IDENTIFICATION: This frame may be either a command sent by the primary
station or a response sent by the secondary station. It contains information
that is used to identify the SECONDARY station. This response is used
primarily on the switched (dial-up) communications link.
- TEST
- TEST: This
command is sent from the primary station to the secondary station and
may contain some form of a message that may be used to test the Secondary
ability to receive data and transmit the data back to the primary station.
If the message is larger than the secondary stations receive buffer,
the TEST RESPONSE will be returned to the primary station but the response
frame will not contain any of the message.
- UI
- UNNUMBERED
INFORMATION: this command allows the primary station to send data to
a secondary station and the UNNUMBERED INFORMATION RESPONSE allows the
secondary station to send data to the primary station. This mechanism
is normally reserved for certain special functions and these frames
are not protected by the normal frame-sequence numbering algorithm.
Control
Field: Information Frame Types
- INFO
-
INFORMATION:
This frame contains the information and data relevant to the higher
SNA architecture layers. INFO frames consist of several variable-length
or optional fields, depending upon the implementation.
The INFO
frame contains both the Ns and the Nr fields used for flow control and
frame level acknowledgment. The normal INFORMATION field will contain
a:
TH - TRANSMISSION
HEADER
RH - REQUEST
or RESPONSE HEADER
RU - REQUEST
or RESPONSE UNIT field (optional) which is normally associated with
the user's data.
The contents of the
INFO field are normally called the BASIC TRANSMISSION UNIT (BTU). This
consists of the TH and a BASIC INFORMATION UNIT (BIU). The BIU consists
of the RH and the RU. The TH and associated BIU is also known as a PATH
INFORMATION UNIT (PIU).
The BTU may
contain more than one PIU. The entire frame is called BASIC LINK UNIT
(BLU).
.========.========.==========.=======================.======.
| LINK | TRANS | REQUEST | REQUEST | LINK |
| HEADER | HEADER | RESPONSE | RESPONSE | TRLR |
| | | HEADER | UNIT | |
`========:========:==========:=======================:======'
^ ^ ^ ^ ^
| | `-- BASIC INFORMATION UNIT (BIU) --' |
| | | |
| `----------- PATH INFORMATION UNIT (PIU) ---' |
| | | |
| `----------- BASIC TRANSMISSION UNIT (BTU)--' |
| |
`-------------------- BASIC LINK UNIT (BLU) ----------------'
| |
`-------------------- COMPLETE SDLC FRAME ------------------'
Control
Field: Frame Check Sequence
- FCS
FRAME
CHECK SEQUENCE: This is the last field in any SDLC frame. It is used
by the sending and receiving stations to ensure that the message received
is identical to the message that was sent.
The FCS field
is a two-byte field (16 bits) that contains a CYCLIC REDUNDANCY CHECK
(CRC) value that is used to verify the validity of all of the bits contained
in the address, control, and information fields. All frames that do
not contain a valid FCS must be discarded and ignored. All frames that
contain a bit pattern of seven or more consecutive 1 bits must also
be discarded as an ABORTED frame.
back
| next | index
|