Data Communications
07 – Data Link Control Protocols
Data Link Control Protocols
• need layer of logic above Physical
• to manage exchange of data over a link
– frame synchronization
– flow control
– error control
– addressing
– control and data
– link management
Flow Control
• ensure sending entity does not overwhelm
receiving entity
– by preventing buffer overflow
• influenced by:
– transmission time
• time taken to emit all bits into medium
– propagation time
• time for a bit to traverse the link
• assume here no errors but varying delays
Model of Frame Transmission
Stop and Wait
• source transmits frame
• destination receives frame and replies with
acknowledgement (ACK)
• source waits for ACK before sending next
• destination can stop flow by not send ACK
• works well for a few large frames
• Stop and wait becomes inadequate if large
block of data is split into small frames
Stop and Wait Link Utilization
Sliding Windows Flow Control
• allows multiple numbered frames to be in transit
• receiver has buffer W long
• transmitter sends up to W frames without ACK
• ACK includes number of next frame expected
• sequence number is bounded by size of field (k)
– frames are numbered modulo 2k
– giving max window size of up to 2k - 1
• receiver can ack frames without permitting further
transmission (Receive Not Ready)
• must send a normal acknowledge to resume
• if have full-duplex link, can piggyback ACks
Sliding Window Diagram
Sliding Window Example
Error Control
• detection and correction of errors such as:
– lost frames
– damaged frames
• common techniques use:
– error detection
– positive acknowledgment
– retransmission after timeout
– negative acknowledgement & retransmission
Automatic Repeat Request (ARQ)
• collective name for such error control
mechanisms, including:
• stop and wait
• go back N
• selective reject (selective retransmission)
Stop and Wait
• source transmits single frame
• wait for ACK
• if received frame damaged, discard it
– transmitter has timeout
– if no ACK within timeout, retransmit
• if ACK damaged,transmitter will not recognize it
– transmitter will retransmit
– receive gets two copies of frame
– use alternate numbering and ACK0 / ACK1
Stop and Wait
• see example with both
types of errors
• pros and cons
– simple
– inefficient
Go Back N
• based on sliding window
• if no error, ACK as usual
• use window to control number of outstanding
frames
• if error, reply with rejection
– discard that frame and all future frames until error
frame received correctly
– transmitter must go back and retransmit that
frame and all subsequent frames
Go Back N - Handling
• Damaged Frame
– error in frame i so receiver rejects frame i
– transmitter retransmits frames from i
• Lost Frame
– frame i lost and either
• transmitter sends i+1 and receiver gets frame i+1 out of
seq and rejects frame i
• or transmitter times out and send ACK with P bit set
which receiver responds to with ACK i
– transmitter then retransmits frames from i
Go Back N - Handling
• Damaged Acknowledgement
– receiver gets frame i, sends ack (i+1) which is lost
– acks are cumulative, so next ack (i+n) may arrive before
transmitter times out on frame i
– if transmitter times out, it sends ack with P bit set
– can be repeated a number of times before a reset
procedure is initiated
• Damaged Rejection
– reject for damaged frame is lost
– handled as for lost frame when transmitter times out
Selective Reject
• also called selective retransmission
• only rejected frames are retransmitted
• subsequent frames are accepted by the receiver and
buffered
• minimizes retransmission
• receiver must maintain large enough buffer
• more complex logic in transmitter
• hence less widely used
• useful for satellite links with long propagation delays
Go Back N vs
Selective
Reject
High Level Data Link Control (HDLC)
• an important data link control protocol
• specified as ISO 33009, ISO 4335
• station types:
– Primary - controls operation of link
– Secondary - under control of primary station
– Combined - issues commands and responses
• link configurations
– Unbalanced - 1 primary, multiple secondary
– Balanced - 2 combined stations
HDLC Transfer Modes
• Normal Response Mode (NRM)
– unbalanced config, primary initiates transfer
– used on multi-drop lines, eg host + terminals
• Asynchronous Balanced Mode (ABM)
– balanced config, either station initiates transmission, has
no polling overhead, widely used
• Asynchronous Response Mode (ARM)
– unbalanced config, secondary may initiate transmit
without permission from primary, rarely used
HDLC Frame Structure
• synchronous transmission of frames
• single frame format used
Flag Fields and Bit Stuffing
• delimit frame at both ends with 01111110 seq
• receiver hunts for flag sequence to synchronize
• bit stuffing used to avoid confusion with data
containing flag seq 01111110
– 0 inserted after every sequence of five 1s
– if receiver detects five 1s it checks next bit
– if next bit is 0, it is deleted (was stuffed bit)
– if next bit is 1 and seventh bit is 0, accept as flag
– if sixth and seventh bits 1, sender is indicating abort
Address Field
• identifies secondary station that sent or will receive
frame
• usually 8 bits long
• may be extended to multiples of 7 bits
– LSB indicates if is the last octet (1) or not (0)
• all ones address 11111111 is broadcast
Control Field
• different for different frame type
– Information - data transmitted to user (next layer up)
• Flow and error control piggybacked on information frames
– Supervisory - ARQ when piggyback not used
– Unnumbered - supplementary link control
• first 1-2 bits of control field identify frame type
Control Field
• use of Poll/Final bit depends on context
• in command frame is P bit set to1 to solicit (poll)
response from peer
• in response frame is F bit set to 1 to indicate
response to soliciting command
• seq number usually 3 bits
– can extend to 8 bits as shown below
Information & FCS Fields
• Information Field
– in information and some unnumbered frames
– must contain integral number of octets
– variable length
• Frame Check Sequence Field (FCS)
– used for error detection
– either 16 bit CRC or 32 bit CRC
HDLC Operation
• consists of exchange of information,
supervisory and unnumbered frames
• have three phases
– initialization
• by either side, set mode & seq
– data transfer
• with flow and error control
• using both I & S-frames (RR, RNR, REJ, SREJ)
– disconnect
• when ready or fault noted
HDLC Operation Example
HDLC Operation Example
Summary
• introduced need for data link protocols
• flow control
• error control
• HDLC