26
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – II - Connection Set-up and Congestion Control

CS640: Introduction to Computer Networks

Embed Size (px)

DESCRIPTION

CS640: Introduction to Computer Networks. Aditya Akella Lecture 15 TCP – II - Connection Set-up and Congestion Control. TCP Packet. Reliable, In-order, Connection oriented, Byte stream abstraction. Source port. Destination port. Sequence number. - PowerPoint PPT Presentation

Citation preview

Page 1: CS640: Introduction to Computer Networks

CS640: Introduction to Computer Networks

Aditya AkellaLecture 15TCP – II -

Connection Set-up and Congestion Control

Page 2: CS640: Introduction to Computer Networks

2

TCP Packet

Source port Destination port

Sequence number

Acknowledgement

Advertised windowHdrLen Flags0

Checksum Urgent pointer

Options (variable)

Data

Flags from MSBto LSB: URG

ACKPSHRSTSYNFIN

Reliable, In-order,Connection oriented, Byte stream abstraction

Page 3: CS640: Introduction to Computer Networks

3

Sequence and Acknowledge Numbers

• Sequence number byte num of first byte in payload

• Acknowledgement number– TCP is full duplex– Sequence number of next byte expected in

reverse direction

Page 4: CS640: Introduction to Computer Networks

4

Advertised Window• Used for “flow control”

– Different from “congestion control”, which we will see in second half of today’s lecture

• Both sender and receiver advertise window– Sender action:

lastSent – lastACK <= Receiver’s advertised window

Page 5: CS640: Introduction to Computer Networks

5

Establishing Connection:Three-Way handshake

• Each side notifies other of starting sequence number it will use for sending– Why not simply chose 0?

• Must avoid overlap with earlier incarnation

• Security issues

• Each side acknowledges other’s sequence number– SYN-ACK: Acknowledge

sequence number + 1

• Can combine second SYN with first ACK

SYN: SeqC

ACK: SeqC+1SYN: SeqS

ACK: SeqS+1

Client Server

Page 6: CS640: Introduction to Computer Networks

6

Tearing Down Connection• Either side can initiate tear

down– Send FIN signal– “I’m not going to send any more

data”

• Other side can continue sending data– Half open connection– Must continue to acknowledge

• Acknowledging FIN– Acknowledge last sequence

number + 1

Client ServerFIN, SeqA

ACK, SeqA+1

ACK

Data

ACK, SeqB+1

FIN, SeqB

Page 7: CS640: Introduction to Computer Networks

7

TCP State Diagram: Connection Setup

CLOSED

SYNSENT

SYNRCVD

ESTAB

LISTEN

active OPENcreate TCBSnd SYN

create TCB

passive OPEN

snd SYN ACKrcv SYN

Send FINCLOSE

rcv ACK of SYNSnd ACK

Rcv SYN, ACK

Client

Server

Page 8: CS640: Introduction to Computer Networks

8

State Diagram: Connection Tear-down

CLOSING

CLOSEWAIT

FINWAIT-1

ESTAB

TIME WAIT

snd FINCLOSE

rcv ACK of FIN

LAST-ACK

CLOSED

FIN WAIT-2

snd ACKrcv FIN

delete TCBTimeout=2msl

send FINCLOSE

send ACKrcv FIN

snd ACKrcv FIN

rcv ACK of FIN

snd ACKrcv FIN+ACK

rcv ACK

Active Close

Passive Close

Page 9: CS640: Introduction to Computer Networks

9

Congestion

• Different sources compete for resources inside network

• Why is it a problem?– Sources are unaware of current state of resource– Sources are unaware of each other

• Manifestations:– Lost packets (buffer overflow at routers)– Long delays (queuing in router buffers)– Can result in effective throughput less than bottleneck link

(1.5Mbps for the above topology) a.k.a. congestion collapse

10 Mbps

100 Mbps

1.5 Mbps

Page 10: CS640: Introduction to Computer Networks

10

Causes & Costs of Congestion

• Four senders – multihop paths

• Timeout/retransmit

Q: What happens as rate increases?

Page 11: CS640: Introduction to Computer Networks

11

Causes & Costs of Congestion

• When packet dropped, any upstream transmission capacity used for that packet was wasted!

Page 12: CS640: Introduction to Computer Networks

12

Congestion “Collapse”• Definition: Unchecked Increase in network load

results in decrease of useful work done– Fewer and fewer useful packets carried in network

• Many possible causes– Spurious retransmissions of packets still in flight

• Classical congestion collapse

– Undelivered packets• Packets consume resources and are dropped elsewhere in

network

Page 13: CS640: Introduction to Computer Networks

13

Congestion Control and Avoidance

• A mechanism which:– Uses network resources efficiently– Preserves fair network resource

allocation– Controls or Avoids congestion

Page 14: CS640: Introduction to Computer Networks

14

Approaches Towards Congestion Control

• End-end congestion control:– No explicit feedback

from network– Congestion inferred

from end-system observed loss, delay

– Approach taken by TCP– Problem: approximate,

possibly inaccurate

• Network-assisted congestion control:– Routers provide

feedback to end systems• Single bit indicating

congestion (SNA, DECbit, TCP/IP ECN, ATM)

• Explicit rate sender should send at

– Problem: makes routers complicated

• Two broad approaches towards congestion control:

Page 15: CS640: Introduction to Computer Networks

15

End-End Congestion Control• So far: TCP sender limited by available buffer size

at receiver– Receiver flow control– “receive window” or “advertised window”

• To accommodate network constraints, sender maintains a “congestion window”– Reflects dynamic state of the network– Max outstanding packets ≤ min {congestion

window, advertised window}

• When receiver window is very large, congestion window determines how fast sender can send– Speed = CWND/RTT (roughly)

Page 16: CS640: Introduction to Computer Networks

16

TCP Congestion Control• Very simple mechanisms in network

– FIFO scheduling with shared buffer pool– Feedback through packet drops

• End-host TCP interprets drops as signs of congestion and slows down reduces size of congestion window

• But then, periodically probes – or increases congestion window– To check whether more bandwidth has become

available

Page 17: CS640: Introduction to Computer Networks

17

Congestion Control Objectives

• Simple router behavior

• Distributed-ness

• Efficiency: xi(t) close to system capacity

• Fairness: equal (or propotional) allocation– Metric = (xi)2/n(xi

2)

• Convergence: control system must be stable

Page 18: CS640: Introduction to Computer Networks

18

Linear Control• Many different possibilities for reaction to

congestion and probing– Examine simple linear controls

• Window(t + 1) = a + b Window(t)• Different ai/bi for increase and ad/bd for decrease

• Various reaction to signals possible– Increase/decrease additively– Increased/decrease multiplicatively– Which of the four combinations is optimal?

• Consider two end hosts vying for network bandwidth

Page 19: CS640: Introduction to Computer Networks

19

Additive Increase/Decrease

T0

T1

Efficiency Line

Fairness Line

User 1’s Allocation x1

User 2’s Allocatio

n x2

• Both X1 and X2 increase/ decrease by the same amount over time– Additive

increase improves fairness and additive decrease reduces fairness

Page 20: CS640: Introduction to Computer Networks

20

Multiplicative Increase/Decrease

• Both X1 and X2 increase by the same factor over time– Extension from

origin – constant fairness

T0

T1

Efficiency Line

Fairness Line

User 1’s Allocation x1

User 2’s Allocatio

n x2

Page 21: CS640: Introduction to Computer Networks

21

Convergence to Efficiency

xH

Efficiency Line

Fairness Line

User 1’s Allocation x1

User 2’s Allocatio

n x2

Page 22: CS640: Introduction to Computer Networks

22

Distributed Convergence to Efficiency

xH

Efficiency Line

Fairness Line

User 1’s Allocation x1

User 2’s Allocation x2

a=0b=1

a>0 & b<1

a<0 & b>1

a<0 & b<1

a>0 & b>1

Page 23: CS640: Introduction to Computer Networks

23

Convergence to Fairness

xH

Efficiency Line

Fairness Line

User 1’s Allocation x1

User 2’s Allocatio

n x2

xH’

Page 24: CS640: Introduction to Computer Networks

24

Convergence to Efficiency & Fairness

• Intersection of valid regions• For decrease: a=0 & b < 1

xH

Efficiency Line

Fairness Line

User 1’s Allocation x1

User 2’s Allocatio

n x2

xH’

Page 25: CS640: Introduction to Computer Networks

25

What is the Right Choice?

• Constraints limit us to AIMD– Can have

multiplicative term in increase(MAIMD)

– AIMD moves towards optimal point

x0

x1

x2

Efficiency Line

Fairness Line

User 1’s Allocation x1

User 2’s Allocatio

n x2

Page 26: CS640: Introduction to Computer Networks

26

Summary• Significance of fields in TCP packet

– TCP is full duplex– Data can go in either direction

• TCP connection set-up – three-way hand-shake– Also, teardown

• Costs of congestion– Delay, loss, useless work…– Cure: congestion control

• TCP uses AIMD congestion control