data link layer: flow control stop-and-wait data...
TRANSCRIPT
EECC694 - ShaabanEECC694 - Shaaban#1 lec #4 Spring2000 3-16-2000
Data Link Layer: Flow ControlData Link Layer: Flow ControlStop-and-Wait Data Link ProtocolsStop-and-Wait Data Link Protocols
• Such elementary protocols are also called PAR (Positive Acknowledgmentwith Retransmission) or ARQ (Automatic Repeat reQuest).
• Data frames are transmitted in one direction (simplex protocols ) whereeach frame is individually acknowledge by the receiver by a separateacknowledgment frame.
• The sender transmits one frame, starts a timer and waits for anacknowledgment frame from the receiver before sending further frames.
• A time-out period is used where frames not acknowledged by the receiverare retransmitted automatically by the sender.
• Frames received damaged by the receiver are not acknowledged and areretransmitted by the sender when the expected acknowledgment is notreceived and timed out.
• A one bit sequence number (0 or 1) is used to distinguish between originaldata frames and duplicate retransmitted frames to be discarded .
• Such protocols result in a substantial percentage of wasted bandwidthand may fail under early time-out situations.
EECC694 - ShaabanEECC694 - Shaaban#2 lec #4 Spring2000 3-16-2000
Definitions for Data Link Protocols (protocol.h) 1/2
EECC694 - ShaabanEECC694 - Shaaban#3 lec #4 Spring2000 3-16-2000
Definitions for Data Link Protocols (protocol.h) 2/2
EECC694 - ShaabanEECC694 - Shaaban#4 lec #4 Spring2000 3-16-2000
Protocol 1: An Unrestricted Simplex ProtocolProtocol 1: An Unrestricted Simplex Protocol• Transmission in one direction
• The receiver is always ready to receive the next frame (has infinite buffer storage).
• Error-free communication channel.
• No acknowledgments or retransmissions used.
• If frame has d data bits and h overhead bits, channel bandwidth b bits/second:
maximum channel utilization = data size/frame size = d/(d + h)
maximum data throughput = d/ (d + h ) * channel bandwidth = d/ (d + h ) * b
Data Frame 1Data Frame 2Data Frame 3Data Frame 4Data Frame 5Data Frame 6
Sender Receiver
One wayChannel delay or latency l
Frametransmission time = (d+h)/b
b = channel bandwidth
:::
:::
:::
:::
EECC694 - ShaabanEECC694 - Shaaban#5 lec #4 Spring2000 3-16-2000
An
Un
restricted S
imp
lex Protocol
An
Un
restricted S
imp
lex Protocol
EECC694 - ShaabanEECC694 - Shaaban#6 lec #4 Spring2000 3-16-2000
Protocol #2: A Simplex Stop-and-Wait ProtocolProtocol #2: A Simplex Stop-and-Wait Protocol• Simplex: Data transmission in one direction
• The receiver may not be always ready to receive the next frame (finite buffer storage).• Receiver sends a positive acknowledgment frame to sender to transmit the next data frame.• Error-free communication channel assumed. No retransmissions used.
• Maximum channel utilization ≈ (time to transmit frame /round trip time) * d/(d + h)
≈ d/ (b * R)
• Maximum data throughput ≈ channel utilization * channel bandwidth
≈ d/ (b * R) * b = d/ R
Data Frame 1
SenderSender ReceiverReceiver
Acknowledgment Frame
Data Frame 2
Acknowledgment Frame
Round trip time, R
Time
:::
:::
EECC694 - ShaabanEECC694 - Shaaban#7 lec #4 Spring2000 3-16-2000
Data L
ink
Protocol #2
Data L
ink
Protocol #2
A S
imp
lex Stop
-and
-Wait P
rotocolA
Sim
plex S
top-an
d-W
ait Protocol
EECC694 - ShaabanEECC694 - Shaaban#8 lec #4 Spring2000 3-16-2000
Protocol 3: A Simplex Positive Acknowledgment withRetransmission (PAR) Protocol
• The receiver may not be always ready to receive the next frame (finite buffer storage).• Noisy communication channel; frames may be damaged or lost.
– Frame not received correctly with probability p• Receiver sends a positive acknowledgment frame to sender to transmit the next data
frame. Any frame has a sequence number, either 0 or 1• Maximum utilization and throughput similar to protocol 2 when the effect of errors is
ignored.
SenderSender ReceiverReceiver
Ack Frame, sequence # 0
Round trip time, R
Data Frame 1, sequence # 1
Data Frame 1, sequence # 0
Ack Frame, sequence # 1
Data Frame 1, sequence # 0
Time
:::
:::
EECC694 - ShaabanEECC694 - Shaaban#9 lec #4 Spring2000 3-16-2000
Protocol 3: A Simplex PAR Protocol (continued)Effect of Errors
• The sender starts a timer when transmitting a data frame.• If data frame is lost or damaged (probability = p):
– Receiver does not send an acknowledgment– Sender times out and retransmits the data frame
SenderSender
ReceiverReceiver
Time-out Interval
Data Frame 1, sequence # 0
Data Frame 1, sequence # 0
Ack Frame, sequence # 0
Start timer
Time-outRetransmit frame
X Error: Frame lost ordamaged, with probability p
Time
EECC694 - ShaabanEECC694 - Shaaban#10 lec #4 Spring2000 3-16-2000
Data Link Protocol #3 1/2 (sender process)A Simplex positive Acknowledgment with Retransmission Protocol
EECC694 - ShaabanEECC694 - Shaaban#11 lec #4 Spring2000 3-16-2000
Data Link Protocol #3 2/2 (receiver process)A Simplex positive Acknowledgment with Retransmission Protocol
EECC694 - ShaabanEECC694 - Shaaban#12 lec #4 Spring2000 3-16-2000
Data Link Layer: Flow ControlData Link Layer: Flow ControlSliding Window ProtocolsSliding Window Protocols
• These protocols allow both link nodes (A, B) to send and receive data andacknowledgments simultaneously.
• Acknowledgments are piggybacked into an acknowledgment field in thedata frame header not as separate frames.
• If no new data frames are ready for transmission in a specified time, aseparate acknowledgment frame is generated to avoid time-out.
• Each outbound frame contains a sequence number ranging from 0 to2 n-1 (n-bit field). N = 1 for stop-and-wait sliding window protocols.
• Sending window: A set of sequence numbers maintained by the senderand correspond to frame sequence numbers of frames sent out but notacknowledged.
• The maximum allowed size of the sending window w correspond to themaximum number of frames the sender can transmit before receivingany acknowledgment without blocking (pipelining).
• All frames in the sending window may be lost or damaged and thus mustbe kept in memory or buffers until they are acknowledged.
EECC694 - ShaabanEECC694 - Shaaban#13 lec #4 Spring2000 3-16-2000
Sliding Window Data Link ProtocolsSliding Window Data Link Protocols• Receiving window: A set of sequence numbers maintained by the receiver and
indicate the frames sequence numbers it is allowed to receive and acknowledge.
• The size of the receiving window is fixed at a specified initial size.
• Any frame received with a sequence number outside the receiving window isdiscarded.
• The sending window and receiving window may not have the same upper orlower limits or have the same size.
• When pipelining is used, an error in a frame is dealt with in one of two ways:
– Go back n:
• The receiver discards all subsequent frames and sends noacknowledgments.
• The sender times out and resends all the discarded frames starting withfaulty frame.
– Selective repeat:
• The receiving data link stores all good frames received after a bad frame.
• Only the bad frame is retransmitted upon time-out by the sender.
EECC694 - ShaabanEECC694 - Shaaban#14 lec #4 Spring2000 3-16-2000
A Sliding Window Protocol of Size 1 with a 3-bit Sequence NumberA Sliding Window Protocol of Size 1 with a 3-bit Sequence Number
(a) Initialstate
(b)After the first frame has been sent
(c)After thefirst framehas been received
(d)After the first acknowledgmentframe has been received
EECC694 - ShaabanEECC694 - Shaaban#15 lec #4 Spring2000 3-16-2000
Difference Between PAR and Sliding Window ProtocolsDifference Between PAR and Sliding Window Protocols
SenderSender ReceiverReceiver
Data Frame 1, seq # 0
Ack Frame, seq # 0
Data Frame 2, seq # 1
Ack Frame, seq # 1
Data Frame 3, seq # 0
Ack Frame, seq # 0
Ack Frame, seq # 1
Data Frame 4, seq # 1
SenderSender ReceiverReceiver
Ack Frame, seq # 3
DF 1, seq # 0DF 2, seq # 1DF 3, seq # 2
DF 4, seq # 3
Ack Frame, seq # 2Ack F, seq # 1
Stop-and-WaitStop-and-Wait Sliding Window Sliding Windowsequence # from 0 to 3sequence # from 0 to 3
Round Trip Time, R
ACK F, seq # 0
Shown Here: Shown Here:Four Data Frames TransmittedFour Data Frames Transmitted
Positive Acknowledgment with Retransmission
:::
:::
:::
:::
TimeTime
EECC694 - ShaabanEECC694 - Shaaban#16 lec #4 Spring2000 3-16-2000
A 4-Frame Sending WindowA 4-Frame Sending Window
Initial window
After two frames have been acknowledged
After nine frames have been acknowledged
Unacknowledged or Pending Frames
EECC694 - ShaabanEECC694 - Shaaban#17 lec #4 Spring2000 3-16-2000
Data Link Protocol #4 1/2A 1-bit Bi-directional Sliding Window Protocol
EECC694 - ShaabanEECC694 - Shaaban#18 lec #4 Spring2000 3-16-2000
Data Link Protocol #4 2/2A 1-bit Bi-directional Sliding Window Protocol
EECC694 - ShaabanEECC694 - Shaaban#19 lec #4 Spring2000 3-16-2000
Channel Utilization & Data ThroughputChannel Utilization & Data ThroughputFor Sliding Window ProtocolsFor Sliding Window Protocols
b = Channel bandwidth or transmission rate bits/secFS = Frame size = # of data bits + # overhead bits = d + hR = Channel round trip timeN = Send/receive window sizep = Probability frame a data frame is lost or damaged
• Ignoring errors, condition to maximize Utilization/Throughput: Time to transmit N frames ≥ Round trip time FS/b * N = (d + h)/b * N ≥ R Under this condition:
Maximum channel utilization ≈≈ data size/frame size = d/(d + h) Maximum data throughput ≈ d/FS = d/(d + h ) * b
• Including the effect of errors only on data frame; assuming selectiverepeat:
On the average p data frames have to be retransmitted
Under these condition: Total Data Frame overhead = h + p * FS
Maximum channel utilization ≈ d/[(1 + p)*FS]
Maximum data throughput ≈ d/[(1 + p)*FS] * b
EECC694 - ShaabanEECC694 - Shaaban#20 lec #4 Spring2000 3-16-2000
Two Operation Sequences For Sliding Window Protocol (#4)
(a) Normal Protocol Operation: No duplicate packets
(b) A special situation: Half the frames contain duplicates
* Network layer accepts a packet.
EECC694 - ShaabanEECC694 - Shaaban#21 lec #4 Spring2000 3-16-2000
Effect of Errors in Sliding Window ProtocolsEffect of Errors in Sliding Window Protocols
(a) Effect of an error when the receiver size is 1
(b) Effect of an error when the receiver size is large
EECC694 - ShaabanEECC694 - Shaaban#22 lec #4 Spring2000 3-16-2000
Finite State Machine Protocol ModelsFinite State Machine Protocol Models• A protocol may be represented by a finite state machine
(protocol machine).
• States are chosen when the protocol machine is waitingfor the next event (i.e sending or receiving a protocoldata unit PDU).
• The state of the complete protocol is the combination ofthe state of the two protocol machines and the channel.
• The state of the channel depends on its content.
• Each state may have one or more transitions to otherstates when protocol events occur.
• Incomplete state machine specification.
• Deadlock states.
EECC694 - ShaabanEECC694 - Shaaban#23 lec #4 Spring2000 3-16-2000
State Transition Diagram For Protocol 3State Transition Diagram For Protocol 3• The protocol state machine states are represented by XYZ
– X = 0 or 1 depending on the sequence number of the frame thesender is attempting to send.
– Y = 0 or 1 depending on the sequence number of the frame thereceiver expects.
– Z = 0, 1, A or empty (-) corresponding to the state (content) of thechannel.
EECC694 - ShaabanEECC694 - Shaaban#24 lec #4 Spring2000 3-16-2000
Data Link Protocol Example:Data Link Protocol Example: HDLC - High-Level Data Link Control HDLC - High-Level Data Link Control• Bit-oriented protocol derived from IBM’s SNA data link
protocol SDLC (Synchronous Data Link Control).
• Frame Types: Information, Supervisory, Unnumbered.
• Uses sliding window with 3-bit sequence numbers.
• Uses CRC-CCITT for error control.
• Protocol commands include:– DISC (DISConnect) used to disconnect a machine from the line.
– SNRM (Set Normal Response Mode) brings a machine online andsets one machine as channel master and the other as slave ( wasused for dumb terminals when connected to mainframes).
– SABM (Set Asynchronous Balanced Mode).
– FRMR (FRaMe Reject) rejects a frame with correct checksumwith impossible structure.
EECC694 - ShaabanEECC694 - Shaaban#25 lec #4 Spring2000 3-16-2000
HDLC Bit-Oriented Frame FormatHDLC Bit-Oriented Frame Format
Information Frame
Supervisory Frame
Unnumbered Frame
Frame Sequence # Poll/Final Next Frame Expected
EECC694 - ShaabanEECC694 - Shaaban#26 lec #4 Spring2000 3-16-2000
Data Link For Temporary Internet Host ConnectionData Link For Temporary Internet Host Connection
•• Serial Line IP (SLIP).Serial Line IP (SLIP).
•• Point-to-Point Protocol (PPP).Point-to-Point Protocol (PPP).
EECC694 - ShaabanEECC694 - Shaaban#27 lec #4 Spring2000 3-16-2000
Internet Data Link Protocols:Internet Data Link Protocols: Serial Line IP (SLIP) RFC 1055 Serial Line IP (SLIP) RFC 1055• Send raw IP packets with a flag byte (0xC0) at the end
for framing with character stuffing (data 0xC0 replacedwith 0xDB 0xDC).
• Recent versions use header compression by omittingheader fields in consecutive packets and frames.
• Does not include any form of error detection orcorrection.
• Supports only one network protocol: IP (InternetProtocol).
• Dynamic IP address assignment not supported.
• Lacks any form of authentication.
EECC694 - ShaabanEECC694 - Shaaban#28 lec #4 Spring2000 3-16-2000
Internet Data Link Protocols:Internet Data Link Protocols: Point-to-Point Protocol (PPP) Point-to-Point Protocol (PPP)
• Uses standard HDLC framing byte (01111110) with errordetection.
• Uses Link Control Protocol (LCP) for brining lines up, optionnegotiation, and to bring lines down.
• Network layer options and configurations are negotiatedindependent of the network layer used by utilizing differentNCPs (Network Control Protocol) packets for each supportednetwork layer.
• Support for several packet types by using a protocol field:– Network protocols (protocol field starts with 0): IP, IPX,
AppleTalk etc.
– Negotiating protocols (protocol field starts with 1): LCP, NCP.
• PPP is used for both dial-up network access and for router-to-router communication in subnets.
EECC694 - ShaabanEECC694 - Shaaban#29 lec #4 Spring2000 3-16-2000
PPP Frame Format & Transition DiagramPPP Frame Format & Transition Diagram
PPP Frame Format for unnumbered mode operation.
Simplified PPP phase diagram for brining a line up or down.