Protocol Strategies
Idle RQ (Stop-and-Wait) Transmission Initiated Ack Received Send Next Send N Send N+1 Fig 1.23
Message is lost Send N Repeat N Send N+1 Fig 1.23
Ack is lost Send N Repeat N Send N+1 Fig 1.23
Message Propagates First bit of message arrives at receiver -> Propagation delay Fig 1.24
Message Transmission Transmission time SAME Transmission time Fig 1.24
Message Transmission Plus Propagation Transmission + Propagation time Fig 1.24
Receiver Processes Turnaround time Fig 1.24
Receiver Send Ack Short time to transmit ACK Fig 1.24
ACK Propagates First bit of ACK arrives at receiver -> Propagation delay… same as before Fig 1.24
Continuous RQ Sender continues sending, eventually acks arrive from the receiver At the same rate as they depart from the transmitter No Errors Idealistic Fig 1.26
Aggressive Sending Strategy but messages are lost What is the strategy being used by the receiver when receiving messages out of sequence? Receiver recognizes Sender knows N+1 problem Sends in next slot Fig 1.27
Now ACK is lost! Fig 1.27
A different retransmission strategy Information frame lost Fig 1.28
Again ACK is Lost Fig 1.28
Strategies Idle RQ -> Stop and Wait Continuous RQ-> Selective Repeat Go-Back-N
Idle RQ Send a message Do not send the next until ACK is received Messages and ACKS numbered 0/1/0/1/…. If “a” is large, capacity of link may be severely underutilized Overall user delay may be excessive (why wait)
Selective repeat Aggressive sending Multiple outstanding messages (w/o ACK) If error at receiver Receiver keeps later messages buffered at a lower level and only passes them up when the missing frames arrive Sender only resends error messages Extra management effort required at receiver
Go-Back-N Aggressive sending Multiple outstanding messages (w/o ACK) If error at receiver Receiver REJECTs out of order messages Sender only resends ALL messages from point of error Simple management effort required at receiver
How do you number frames? Fig 1.29
SIZE not NAMES Fig 1.29
This Shows How To Name Fig 1.30
N=4, K=3 (will lead to a problem) Sender Receiver Send M1, M2 and M3 Recv M1, M2 and M3 ACK M1, M2 and M3 Recv ACK M1, M2 and M3 Send M4, M1* and M2* time
N=4, K=3 ACKs are lost Sender Receiver Send M1, M2 and M3 Recv M1, M2 and M3 ACK M1, M2 and M3 Recv ACK M1, M2 and M3 ReSend M1, M2 and M3 time
N=7, K=3 (NO problems) Sender Receiver Send M1, M2 and M3 Recv M1, M2 and M3 ACK M1, M2 and M3 Recv ACK M1, M2 and M3 Send M4, M5 and M6 time
N=7, K=3 ACKs lost.. No problems Sender Receiver Send M1, M2 and M3 Recv M1, M2 and M3 ACK M1, M2 and M3 Recv ACK M1, M2 and M3 ReSend M1, M2 and M3 time
Naming… A summary Fig 1.30
What about 2-way traffic?
PiggyBacked ACKs Traffic frequently going in the reverse direction No send to send an entire new frame with additional overhead. Typically, a message contains the name of the message in transit AND the name of the ack message, message expected in the other direction
What if nothing in the other driection? Set a timer waiting for return travel If no return travel before the timer goes off, Send a separate ACK when the timer expires. ELSE Piggyback on return traffic.
What about reverse traffic Discussion only focuses on traffic in one direction Problem is symmetric. Software is tricky but the send and receive code are integrated into the same process.
Protocol Design and Software Development
Link Layer Complexity SubLayers Link Fig 1.31
Link Layer Complexity Timer to alert sender to resend Fig 1.31
Events From Side From Above From Below Fig 1.32
State Diagram event action state change Fig 1.33
State Machine and Events Figs 1.32 and 1.33
Actions Create Outgoing Events (Events at the receiver) Figs 1.32 and 1.33
These Outgoing Events Are INCOMING to the receiver via MAC layer sender receiver Figs 1.33 and 1.34
One more time Ls_User Creates LdataReq TxFrame to destination iRCVD from MAC_provider to destination
Focus on State Machines
Three Ways = Same State Transition Diagram Program Event-State Table
Event-State Table Fig 1.33
Program Choose -action -next State based on -current state -event Main Loop Fig 1.33
An Example : HDLC
1-Connect 2- Data 3-Disconnect
network link physical physical link network network link link network
1-Connect 2- Data 3-Disconnect
HDLC Frame Format
Frame Types
16 bit version
Network<-> Link Link <-> Link
Entire State Machine (Sender AND Receiver)
Information Exchange Station A Station B SEND I Frames N(R)=0 N(S)=0 Frame Damaged N(R)=1 N(S)=2 Frame Rejected Send REJ with N(R)=1 SEND I Frames N(R)=2 N(S)=1 (no activity) N(R)=2 N(S)=2 Send RRJ with N(R)=3 N(R)=2 N(S)=3