17
CSE 123: Computer Networks Alex C. Snoeren Lecture 5: Flow Control HW 1 due FRIDAY

Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

CSE 123: Computer NetworksAlex C. Snoeren

Lecture 5:Flow Control

HW 1 due FRIDAY

Page 2: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Sequence Numbers

● Sequence numbers solve this problemu Receiver can simply ignore duplicate datau But must still send an ACK! (Why?)

● Simplest ARQ: Stop-and-waitu Only one outstanding frame at a time

2

Sender Receiver

Data 0

ACK 0Tim

eout

Data 1

ACK 1Tim

eout

Sender Receiver

Data 0

ACK 0Tim

eout

Data 0

ACK 0Tim

eout Data 1

ACK 1

Ignored!

CSE 123 – Lecture 5: Flow Control

Page 3: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Stop-and-Wait Performance

● Lousy performance if xmit 1 pkt << propagation delayu How bad?

● Want to utilize all available bandwidthu Need to keep more data “in flight”u How much? Called the bandwidth-delay product

● Also limited by quality of timeout (how long?)

3CSE 123 – Lecture 5: Flow Control

Page 4: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Pipelined Transmission

● Keep multiple packets “in flight”u Allows sender to make efficient use of the linku Sequence numbers ensure receiver can distinguish frames

● Sender buffers outstanding un-acked packetsu Receiver ACKs the highest consecutive frame received

» ACKs are cumulative (covers current frame and all previous)

4

Sender Receiver

Data 0

ACK 0

Data 1 Data 2Data 3 ACK 1

ACK 2

ACK 3

Sender Receiver

Data 0

ACK 0

Data 1 Data 2Data 3 ACK 1

ACK 1 Ignored!

CSE 123 – Lecture 5: Flow Control

Page 5: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Go-Back-N

● Retransmit all packets from point of loss u Packets sent after loss event are ignored (i.e., sent again)

● Simple to implement (receiver very simple)● Sender controls how much data is “in flight”

5

Sender Receiver

Data 0

ACK 0

Data 1 Data 2Data 3 ACK 1

ACK 1

Data 2

Sender Receiver

Data 0

ACK 0

Data 1 Data 2Data 3 ACK 1

ACK 3

Data 4

ACK 2

timeo

ut

CSE 123 – Lecture 5: Flow Control

Page 6: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Send Window● Bound on number of

outstanding packetsu Window “opens” upon

receipt of new ACKu Window resets entirely

upon a timeout

● Limits amount of wasteu Still lots of duplicatesu We can do better with

selective retransmission

6

ACK 1

ACK 0

Data 1

Sender Receiver

Data 0

Data 2

Data 2

Tim

eout

Data 3ACK 1

Data 4

ACK 1

Data 3Data 4

Go-Back-N Examplewith window size 3

CSE 123 – Lecture 5: Flow Control

Page 7: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Sliding Window● Single mechanism that supports:

u Multiple outstanding packetsu Reliable deliveryu In-order deliveryu Flow control

● Sender and receiver each maintain “window” abstractions to track outstanding packetsu At the core of all modern ARQ protocols

● Go-Back-N is a special caseu Receive window size of one

7CSE 123 – Lecture 5: Flow Control

Page 8: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Sliding Window – Sender

● Window bounds outstanding unACKed datau Implies need for buffering at sender

● “Last” ACK applies to in-order data● What to do on a timeout?

u Go-Back-N: resend all unacknowledged data on timeout

u Selective Repeat: timer per packet, resend as needed

≦ Window Size

“Last” ACK Last Sent

… …Sender:

8CSE 123 – Lecture 5: Flow Control

Page 9: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Sliding Window – Receiver

● Receiver buffers too:u data may arrive out-of-orderu or faster than can be consumed

» Flow control: tell sender how much buffer left at receiver

● Receiver ACK choices:u Cumulative, Selective (exempt missing frames), Negative

Receive Window

“Last” Received Largest Accepted

… …Receiver:

9CSE 123 – Lecture 5: Flow Control

Page 10: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Deciding When to Retransmit● How do you know when a packet has been lost?

u Ultimately sender uses timers to decide when to retransmit

● But how long should the timer be?u Too long: inefficient (large delays, poor use of bandwidth)u Too short: may retransmit unnecessarily (causing extra traffic)

● Right timer is based on the round-trip time (RTT)u Which can vary greatly for reasons well see later

10CSE 123 – Lecture 5: Flow Control

Page 11: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Can we shortcut the timeout?● Timeout is long in practice

u Lots of variation in RTT and timeout must be conservative

● If packets are usually in order then out-of-order ACKsimply that a packet was lostu Negative ACK

» Receiver requests missing packetu Fast retransmit

» When sender receives multiple duplicate acknowledgements resends missing packet

11CSE 123 – Lecture 5: Flow Control

Page 12: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Fast retransmit

● Don’t bother waitingu Receipt of duplicate

acknowledgement (dupACK) indicates loss

u Retransmit immediately

● Used in TCPu Need to be careful if

frames can be reorderedu Today’s TCP identifies a

loss if there are three duplicate ACKs in a row

12

ACK 1

ACK 0

Data 1

Sender Receiver

Data 0

Data 2

Data 2

Data 3ACK 1

Data 4

CSE 123 – Lecture 5: Flow Control

Page 13: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Connection Establishment● Both sender and receiver must be ready before we

start to transfer the datau Sender and receiver need to agree on a set of parametersu Most important: sequence number space in each directionu Lots of other parameters: e.g., the window size

● Handshake protocols: setup state between two oblivious endpointsu Need to deal with delayed and reordered packets

13CSE 123 – Lecture 5: Flow Control

Page 14: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Two-way handshake?

Active participant(client)

Passive participant(server)

SYN, SequenceNum = x

SYN, SequenceNum = y

+data

What’s wrong here?

14CSE 123 – Lecture 5: Flow Control

Page 15: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Two-way handshake?

Active participant(client)

Passive participant(server)

Old SYN, SequenceNum = x

SYN, SequenceNum = y

+data

Delayed old SYNNew SYN, SequenceNum = q

Rejected

15CSE 123 – Lecture 5: Flow Control

Page 16: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

Three-Way Handshake● Opens both directions for transfer

Active participant(client)

Passive participant(server)

SYN, SequenceNum = x

SYN + ACK, SequenceNum = y,

ACK, Acknowledgment = y + 1

Acknowledgment = x + 1

+data

16CSE 123 – Lecture 5: Flow Control

Page 17: Lecture5: Flow Control - University of California, San Diegocseweb.ucsd.edu/classes/fa18/cse123-a/lectures/123-fa18... · 2018. 10. 8. · Sequence Numbers Sequence numbers solve

For Next Time

● Read 5-5.1 in P&D

● HW 1 due at the beginning of class Friday

● (Keep) going on the project…

17CSE 123 – Lecture 5: Flow Control