SlideShare a Scribd company logo
1 of 17
CS 640 1
Outline
RTT estimation using EWMA
Stop and Wait
Sliding Window Algorithms
Transport Layer: Sliding
Window Reliability
CS 640 2
Transport layer functions
• Transport protocol defines the pattern/sequence for end hosts
sending packets
• Transport has to deal with a number of things
– Multiplexing/demultiplexing – ports and message queues
– Error detection within packets - checksums
– Reliable, in order delivery of packets - Today
– Flow control – Today
– Connection management - TBD
– Congestion control – TBD
• We’re moving toward understanding TCP
CS 640 3
Methods of Reliability
• Packets can be lost and/or corrupted during transmission
– Bit level errors due to noise
– Loss due to congestion
• Use checksums to detect bit level errors
– Internet Checksum is optionally used to detect errors in UDP
• Uses 16 bits to encode one’s complement sum of data + headers
– When bit level errors are detected, packets are dropped
• Build reliability into the transmission protocol
– Using acknowledgements and timeouts to signal lost or corrupt
frame
CS 640 4
Acknowledgements & Timeouts
• An acknowledgement (ACK) is a packet sent by one host
in response to a packet it has received
– Making a packet an ACK is simply a matter of changing a field in
the transport header
– Data can be piggybacked in ACKs
• A timeout is a signal that an ACK to a packet that was sent
has not yet been received within a specified timeframe
– A timeout triggers a retransmission of the original packet from the
sender
– How are timers set?
CS 640 5
Acknowledgements & Timeouts
Sender Receiver
Frame
ACK
Timeout
Time
Sender Receiver
Frame
ACK
Timeout
Frame
ACK
Timeout
Sender Receiver
Frame
ACK
Timeout Frame
ACK
Timeout
Sender Receiver
Frame
Timeout
Frame
ACK
Timeout
(a) (c)
(b) (d)
CS 640 6
Propagation Delay
• Propagation delay is defined as the delay between
transmission and receipt of packets between hosts
• Propagation delay can be used to estimate timeout
period
• How can propagation delay be measured?
• What else must be considered in the measurement?
CS 640 7
Exponentially weighted moving
average RTT estimation
• EWMA was original algorithm for TCP
• Measure SampleRTT for each packet/ACK pair
• Compute weighted average of RTT
– EstRTT = a x EstimatedRTT + b x SampleRTT
– where a + b = 1
 a between 0.8 and 0.9
 b between 0.1 and 0.2
• Set timeout based on EstRTT
– TimeOut = 2 x EstRTT
CS 640 8
Stop-and-Wait Process
• Sender doesn’t send next packet until he’s sure receiver has last packet
• The packet/Ack sequence enables reliability
• Sequence numbers help avoid problem of duplicate packets
• Problem: keeping the pipe full
• Example
– 1.5Mbps link x 45ms RTT = 67.5Kb (8KB)
– 1KB frames imples 1/8th link utilization
Sender Receiver
CS 640 9
Solution: Pipelining via Sliding Window
• Allow multiple outstanding (un-ACKed) frames
• Upper bound on un-ACKed frames, called window
Sender Receiver
Time
…
…
CS 640 10
Buffering on Sender and Receiver
• Sender needs to buffer data so that if data is lost, it can be resent
• Receiver needs to buffer data so that if data is received out of
order, it can be held until all packets are received
– Flow control
• How can we prevent sender overflowing receiver’s buffer?
– Receiver tells sender its buffer size during connection setup
• How can we insure reliability in pipelined transmissions?
– Go-Back-N
• Send all N unACKed packets when a loss is signaled
• Inefficient
– Selective repeat
• Only send specifically unACKed packets
• A bit trickier to implement
CS 640 11
Sliding Window: Sender
• Assign sequence number to each frame (SeqNum)
• Maintain three state variables:
– send window size (SWS)
– last acknowledgment received (LAR)
– last frame sent (LFS)
• Maintain invariant: LFS - LAR <= SWS
• Advance LAR when ACK arrives
• Buffer up to SWS frames
SWS
LAR LFS
… …
CS 640 12
Sliding Window: Receiver
• Maintain three state variables
– receive window size (RWS)
– largest frame acceptable (LFA)
– last frame received (LFR)
• Maintain invariant: LFA - LFR <= RWS
• Frame SeqNum arrives:
– if LFR < SeqNum < = LFA accept
– if SeqNum < = LFR or SeqNum > LFA discarded
• Send cumulative ACKs – send ACK for largest frame such that all
frames less than this have been received
 RWS
LFR LFA
… …
CS 640 13
Sequence Number Space
• SeqNum field is finite; sequence numbers wrap around
• Sequence number space must be larger then number of
outstanding frames
• SWS <= MaxSeqNum-1 is not sufficient
– suppose 3-bit SeqNum field (0..7)
– SWS=RWS=7
– sender transmit frames 0..6
– arrive successfully, but ACKs lost
– sender retransmits 0..6
– receiver expecting 7, 0..5, but receives the original incarnation of 0..5
• SWS < (MaxSeqNum+1)/2 is correct rule
• Intuitively, SeqNum “slides” between two halves of sequence
number space
CS 640 14
Another Pipelining Possibility:
Concurrent Logical Channels
• Multiplex 8 logical channels over a single link
• Run stop-and-wait on each logical channel
• Maintain three state bits per channel
– channel busy
– current sequence number out
– next sequence number in
• Header: 3-bit channel num, 1-bit sequence num
– 4-bits total
– same as sliding window protocol
• Separates reliability from order
CS 640 15
Stop & wait sequence numbers
Sender Receiver
Timeout
Timeout
Sender Receiver
Timeout
Timeout
(c) (d)
Sender Receiver
(e)
• Simple sequence numbers enable the client to
discard duplicate copies of the same frame
• Stop & wait allows one outstanding frame, requires
two distinct sequence numbers
CS 640 16
Sliding Window Example
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0
1
2
Sender Receiver
A3
3
4
5
6
A4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
CS 640 17
Sliding Window Summary
• Sliding window is best known algorithm in networking
• First role is to enable reliable delivery of packets
– Timeouts and acknowledgements
• Second role is to enable in order delivery of packets
– Receiver doesn’t pass data up to app until it has packets in
order
• Third role is to enable flow control
– Prevents server from overflowing receiver’s buffer

More Related Content

Similar to sliding window protocol for datalink layer.ppt

Datalink control(framing,protocols)
Datalink control(framing,protocols)Datalink control(framing,protocols)
Datalink control(framing,protocols)Hira Awan
 
Transport ppt for students examination.ppt
Transport ppt for students examination.pptTransport ppt for students examination.ppt
Transport ppt for students examination.pptSaini71
 
05Transport.ppt
05Transport.ppt05Transport.ppt
05Transport.pptMcsaMcse1
 
Data link layer elementry protocols
Data link layer elementry protocolsData link layer elementry protocols
Data link layer elementry protocolssabitha sairam
 
Computer Networks Module 2.pdf
Computer Networks Module 2.pdfComputer Networks Module 2.pdf
Computer Networks Module 2.pdfShanthalaKV
 
Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6Olivier Bonaventure
 
Computer network (11)
Computer network (11)Computer network (11)
Computer network (11)NYversity
 
Transmission control protocol ...............................
Transmission control protocol ...............................Transmission control protocol ...............................
Transmission control protocol ...............................SwatiHans10
 
Analyzing network packets Using Wireshark
Analyzing network packets Using WiresharkAnalyzing network packets Using Wireshark
Analyzing network packets Using WiresharkSmrutiRanjanBiswal9
 
Mobile computing-tcp data flow control
Mobile computing-tcp data flow controlMobile computing-tcp data flow control
Mobile computing-tcp data flow controlSushant Kushwaha
 
Transport Layer in Computer Networks (TCP / UDP / SCTP)
Transport Layer in Computer Networks (TCP / UDP / SCTP)Transport Layer in Computer Networks (TCP / UDP / SCTP)
Transport Layer in Computer Networks (TCP / UDP / SCTP)Hamidreza Bolhasani
 

Similar to sliding window protocol for datalink layer.ppt (20)

Datalink control(framing,protocols)
Datalink control(framing,protocols)Datalink control(framing,protocols)
Datalink control(framing,protocols)
 
Transport ppt for students examination.ppt
Transport ppt for students examination.pptTransport ppt for students examination.ppt
Transport ppt for students examination.ppt
 
05Transport.ppt
05Transport.ppt05Transport.ppt
05Transport.ppt
 
Lect9 (1)
Lect9 (1)Lect9 (1)
Lect9 (1)
 
Lect9
Lect9Lect9
Lect9
 
Data link layer elementry protocols
Data link layer elementry protocolsData link layer elementry protocols
Data link layer elementry protocols
 
Part5-tcp-improvements.pptx
Part5-tcp-improvements.pptxPart5-tcp-improvements.pptx
Part5-tcp-improvements.pptx
 
Computer Networks Module 2.pdf
Computer Networks Module 2.pdfComputer Networks Module 2.pdf
Computer Networks Module 2.pdf
 
Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6
 
Computer network (11)
Computer network (11)Computer network (11)
Computer network (11)
 
Tcp(no ip) review part1
Tcp(no ip) review part1Tcp(no ip) review part1
Tcp(no ip) review part1
 
Transmission control protocol ...............................
Transmission control protocol ...............................Transmission control protocol ...............................
Transmission control protocol ...............................
 
Introduction to TCP
Introduction to TCPIntroduction to TCP
Introduction to TCP
 
Analyzing network packets Using Wireshark
Analyzing network packets Using WiresharkAnalyzing network packets Using Wireshark
Analyzing network packets Using Wireshark
 
Part9-congestion.pptx
Part9-congestion.pptxPart9-congestion.pptx
Part9-congestion.pptx
 
Mobile computing-tcp data flow control
Mobile computing-tcp data flow controlMobile computing-tcp data flow control
Mobile computing-tcp data flow control
 
Transport Layer in Computer Networks (TCP / UDP / SCTP)
Transport Layer in Computer Networks (TCP / UDP / SCTP)Transport Layer in Computer Networks (TCP / UDP / SCTP)
Transport Layer in Computer Networks (TCP / UDP / SCTP)
 
Tcp (1)
Tcp (1)Tcp (1)
Tcp (1)
 
Tcp
TcpTcp
Tcp
 
Go Back N Arq1
Go  Back N Arq1Go  Back N Arq1
Go Back N Arq1
 

Recently uploaded

Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docxPoojaSen20
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 

Recently uploaded (20)

Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docx
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 

sliding window protocol for datalink layer.ppt

  • 1. CS 640 1 Outline RTT estimation using EWMA Stop and Wait Sliding Window Algorithms Transport Layer: Sliding Window Reliability
  • 2. CS 640 2 Transport layer functions • Transport protocol defines the pattern/sequence for end hosts sending packets • Transport has to deal with a number of things – Multiplexing/demultiplexing – ports and message queues – Error detection within packets - checksums – Reliable, in order delivery of packets - Today – Flow control – Today – Connection management - TBD – Congestion control – TBD • We’re moving toward understanding TCP
  • 3. CS 640 3 Methods of Reliability • Packets can be lost and/or corrupted during transmission – Bit level errors due to noise – Loss due to congestion • Use checksums to detect bit level errors – Internet Checksum is optionally used to detect errors in UDP • Uses 16 bits to encode one’s complement sum of data + headers – When bit level errors are detected, packets are dropped • Build reliability into the transmission protocol – Using acknowledgements and timeouts to signal lost or corrupt frame
  • 4. CS 640 4 Acknowledgements & Timeouts • An acknowledgement (ACK) is a packet sent by one host in response to a packet it has received – Making a packet an ACK is simply a matter of changing a field in the transport header – Data can be piggybacked in ACKs • A timeout is a signal that an ACK to a packet that was sent has not yet been received within a specified timeframe – A timeout triggers a retransmission of the original packet from the sender – How are timers set?
  • 5. CS 640 5 Acknowledgements & Timeouts Sender Receiver Frame ACK Timeout Time Sender Receiver Frame ACK Timeout Frame ACK Timeout Sender Receiver Frame ACK Timeout Frame ACK Timeout Sender Receiver Frame Timeout Frame ACK Timeout (a) (c) (b) (d)
  • 6. CS 640 6 Propagation Delay • Propagation delay is defined as the delay between transmission and receipt of packets between hosts • Propagation delay can be used to estimate timeout period • How can propagation delay be measured? • What else must be considered in the measurement?
  • 7. CS 640 7 Exponentially weighted moving average RTT estimation • EWMA was original algorithm for TCP • Measure SampleRTT for each packet/ACK pair • Compute weighted average of RTT – EstRTT = a x EstimatedRTT + b x SampleRTT – where a + b = 1  a between 0.8 and 0.9  b between 0.1 and 0.2 • Set timeout based on EstRTT – TimeOut = 2 x EstRTT
  • 8. CS 640 8 Stop-and-Wait Process • Sender doesn’t send next packet until he’s sure receiver has last packet • The packet/Ack sequence enables reliability • Sequence numbers help avoid problem of duplicate packets • Problem: keeping the pipe full • Example – 1.5Mbps link x 45ms RTT = 67.5Kb (8KB) – 1KB frames imples 1/8th link utilization Sender Receiver
  • 9. CS 640 9 Solution: Pipelining via Sliding Window • Allow multiple outstanding (un-ACKed) frames • Upper bound on un-ACKed frames, called window Sender Receiver Time … …
  • 10. CS 640 10 Buffering on Sender and Receiver • Sender needs to buffer data so that if data is lost, it can be resent • Receiver needs to buffer data so that if data is received out of order, it can be held until all packets are received – Flow control • How can we prevent sender overflowing receiver’s buffer? – Receiver tells sender its buffer size during connection setup • How can we insure reliability in pipelined transmissions? – Go-Back-N • Send all N unACKed packets when a loss is signaled • Inefficient – Selective repeat • Only send specifically unACKed packets • A bit trickier to implement
  • 11. CS 640 11 Sliding Window: Sender • Assign sequence number to each frame (SeqNum) • Maintain three state variables: – send window size (SWS) – last acknowledgment received (LAR) – last frame sent (LFS) • Maintain invariant: LFS - LAR <= SWS • Advance LAR when ACK arrives • Buffer up to SWS frames SWS LAR LFS … …
  • 12. CS 640 12 Sliding Window: Receiver • Maintain three state variables – receive window size (RWS) – largest frame acceptable (LFA) – last frame received (LFR) • Maintain invariant: LFA - LFR <= RWS • Frame SeqNum arrives: – if LFR < SeqNum < = LFA accept – if SeqNum < = LFR or SeqNum > LFA discarded • Send cumulative ACKs – send ACK for largest frame such that all frames less than this have been received  RWS LFR LFA … …
  • 13. CS 640 13 Sequence Number Space • SeqNum field is finite; sequence numbers wrap around • Sequence number space must be larger then number of outstanding frames • SWS <= MaxSeqNum-1 is not sufficient – suppose 3-bit SeqNum field (0..7) – SWS=RWS=7 – sender transmit frames 0..6 – arrive successfully, but ACKs lost – sender retransmits 0..6 – receiver expecting 7, 0..5, but receives the original incarnation of 0..5 • SWS < (MaxSeqNum+1)/2 is correct rule • Intuitively, SeqNum “slides” between two halves of sequence number space
  • 14. CS 640 14 Another Pipelining Possibility: Concurrent Logical Channels • Multiplex 8 logical channels over a single link • Run stop-and-wait on each logical channel • Maintain three state bits per channel – channel busy – current sequence number out – next sequence number in • Header: 3-bit channel num, 1-bit sequence num – 4-bits total – same as sliding window protocol • Separates reliability from order
  • 15. CS 640 15 Stop & wait sequence numbers Sender Receiver Timeout Timeout Sender Receiver Timeout Timeout (c) (d) Sender Receiver (e) • Simple sequence numbers enable the client to discard duplicate copies of the same frame • Stop & wait allows one outstanding frame, requires two distinct sequence numbers
  • 16. CS 640 16 Sliding Window Example 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 Sender Receiver A3 3 4 5 6 A4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
  • 17. CS 640 17 Sliding Window Summary • Sliding window is best known algorithm in networking • First role is to enable reliable delivery of packets – Timeouts and acknowledgements • Second role is to enable in order delivery of packets – Receiver doesn’t pass data up to app until it has packets in order • Third role is to enable flow control – Prevents server from overflowing receiver’s buffer