9
Malathi Veeraraghavan Originals by Jörg Liebeherr 1 Flow control in TCP • End-to-end control across a path possibly passing through multiple networks (internet transport protocol) Flow Control: How to prevent receiver buffer overflows? • Flow Control in TCP Window-based flow control Called sliding window flow control

Flow control in TCP

  • Upload
    ozzie

  • View
    60

  • Download
    2

Embed Size (px)

DESCRIPTION

Flow control in TCP. End-to-end control across a path possibly passing through multiple networks (internet transport protocol) Flow Control: How to prevent receiver buffer overflows? Flow Control in TCP Window-based flow control Called sliding window flow control. - PowerPoint PPT Presentation

Citation preview

Page 1: Flow control in TCP

Malathi VeeraraghavanOriginals by Jörg Liebeherr 1

Flow control in TCP

• End-to-end control across a path possibly passing through multiple networks (internet transport protocol)

• Flow Control: How to prevent receiver buffer overflows?

• Flow Control in TCP

• Window-based flow control

• Called sliding window flow control

Page 2: Flow control in TCP

Malathi VeeraraghavanOriginals by Jörg Liebeherr 2

TCP header fields related to flow control and error control• Three fields of interest to error control and flow control in the TCP header

• The interpretation of the AckNo and Window size fields:• The sender of the TCP segment with the Ack Number field set

to “AckNo” and Window size field set to “Win” is communicating to the far end that it is ready to receive new data with SeqNo= AckNo, AckNo+1, …., AckNo+Win-1

• Receiver can acknowledge data without opening the window• Receiver can change the window size without acknowledging data

16-bitwindow size

32-bit SeqNo

32-bit AckNo

Page 3: Flow control in TCP

Malathi VeeraraghavanOriginals by Jörg Liebeherr 3

TCP header fields - Sequence Number

• Sequence Number (SeqNo):– Sequence number is 32 bits long. – So the range of SeqNo is

0 <= SeqNo <= 232 -1 4.3 Gbyte – The sequence number identifies the byte in the stream

of data from the sending TCP to the receiving TCP that the first byte of data in this segment represents.

– Initial Sequence Number (ISN) of a connection is set during connection establishment

Segment 1(Seq. No. 1)

Segment 2(Seq. No. 501)

Segment 3(Seq. No. 1001)

1 500 501 1000 1001 1500

Page 4: Flow control in TCP

Malathi VeeraraghavanOriginals by Jörg Liebeherr 4

Sliding Window Flow Control

1 2 3 4 5 6 7 8 9 10 11

Advertised window

sent but notacknowledged can be sent

USABLEWINDOW

sent andacknowledged

can't send

• Sliding Window Protocol is performed at the byte level:

•Here: Sender can transmit sequence numbers 6,7,8.

Page 5: Flow control in TCP

Malathi VeeraraghavanOriginals by Jörg Liebeherr 5

Sliding Window: “Window Closes”

1 2 3 4 5 6 7 8 9 10 11

1 2 3 4 5 6 7 8 9 10 11

Transmit Byte 6

1 2 3 4 5 6 7 8 9 10 11

AckNo = 5, Win = 4is received

• Transmission of a single byte (with SeqNo = 6) and acknowledgement is received (AckNo = 5, Win=4):

Page 6: Flow control in TCP

Malathi VeeraraghavanOriginals by Jörg Liebeherr 6

Sliding Window: “Window Opens”

1 2 3 4 5 6 7 8 9 10 11

1 2 3 4 5 6 7 8 9 10 11

AckNo = 5, Win = 6is received

• Acknowledgement is received that enlarges the window to the right (AckNo = 5, Win=6):

• A receiver opens a window when TCP buffer empties (meaning that data is delivered to the application).

Page 7: Flow control in TCP

Malathi VeeraraghavanOriginals by Jörg Liebeherr 7

Sliding Window: “Window Shrinks”

1 2 3 4 5 6 7 8 9 10 11

1 2 3 4 5 6 7 8 9 10 11

AckNo = 5, Win = 3is received

• Acknowledgement is received that reduces the window from the right (AckNo = 5, Win=3):

• Shrinking a window should not be used - Host requirements RFC strongly discourages this

Page 8: Flow control in TCP

Malathi VeeraraghavanOriginals by Jörg Liebeherr 8

Sliding Window: Example

3072

SeqNo=0

ReceiverBuffer

0 4096Sendersends2048B ofdata

2048

AckNo=2048 Win=2048Sendersends2048B ofdata SeqNo=2048

4096

AckNo=4096 Win=0

AckNo=4096 Win=1024

Sender blocked

Page 9: Flow control in TCP

Malathi VeeraraghavanOriginals by Jörg Liebeherr 9

TCP error control

• Cumulative ACKs are used• In popular implementations, an ACK-every-other-segment

strategy is used• Sender keeps an associated timeout value for segments sent.

If an ACK is not received before the timer times out, it resends the segment

• Retransmission scheme is Go-Back-N ARQ• But Selective repeat along with Selective ACKs have been

added as extensions• Piggybacking of ACKs on data segments is indeed used.• If there is no data to send before a delayed-ACK timer

expires, a zero-payload segment is sent as an ACK