CSEE W4140 Networking Laboratory Opening Lecture Jong Yul Kim 01.21.2009.
CSEE W4140 Networking Laboratory
-
Upload
kermit-baxter -
Category
Documents
-
view
25 -
download
0
description
Transcript of CSEE W4140 Networking Laboratory
![Page 1: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/1.jpg)
CSEE W4140Networking Laboratory
Lecture 7: TCP congestion control
Jong Yul Kim03.04.2009
![Page 2: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/2.jpg)
Announcements Midterm next week in class(1:10~2:25 pm)
Problems from the lab exercises, quiz Subnets Network protocols
Similar to ARP exercises we did in class For example, learn how TCP sequence numbers,
ACK numbers work Problems about debugging networks
Lab 5 part 2 after Spring Break Lab report for lab 5 part 1 is due after spring
break
![Page 3: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/3.jpg)
Short review of TCP from last time
Characteristics of the IP network Delivers packets from host to host May lose packets (discarded by routers) Doesn’t care about packet order
TCP is a reliable, in-order, byte-stream service (delivers data from application to application)
![Page 4: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/4.jpg)
Short review of TCP from last time TCP is a reliable, in-order, byte-stream
service The beauty of TCP is that it works without
explicit support from the network Each end of the connection cooperate to make
sure packets are delivered reliably and in order
Techniques used by TCP Sequence numbers Acknowledgements (and numbers) Retransmissions Timer
![Page 5: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/5.jpg)
Today’s lecture
TCP Flow Control Throttling the rate of sender so that the
receiver’s buffer does not overflow
TCP Congestion Control Throttling the rate of sender in the face
of network congestion
![Page 6: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/6.jpg)
TCP Flow Control (Receive Window) When a connection is established, the
receiver allocates a receive buffer. Incoming packets are stored in the buffer
so that the application can read data from the buffer.
![Page 7: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/7.jpg)
TCP Flow Control (Receiver behavior)
The receiver lets the sender know: how much space is
left in the buffer= RcvWindow
by placing that value in the window size field
in every segment that it sends to the sender
IP header TCP header TCP data
Sequence number (32 bits)
DATA
20 bytes 20 bytes
0 15 16 31
Source Port Number Destination Port Number
Acknowledgement number (32 bits)
window sizeheaderlength
0 Flags
Options (if any)
TCP checksum urgent pointer
20 bytes
![Page 8: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/8.jpg)
TCP Flow Control (Sender behavior)
Sender can fill up the spare room in the receiver’s buffer by sending more data
Sender maintains the size of data that has already been sent but unacknowledged = bytes_unACKed
Makes sure that bytes_unACKed ≤ RcvWindow
![Page 9: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/9.jpg)
Network Congestion Why does congestion occur?
Too many senders sending at high rate Routers dropping packets due to overflowing
buffers
What are the symptoms? Packet loss Packet queuing delay More retransmission more packet loss Link bandwidth wasted on retransmissions
![Page 10: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/10.jpg)
TCP Congestion Control
Remember: TCP has no support from the network about congestions Need to use end-to-end congestion
control
TCP relies on perceived network congestion and throttles the sending rate accordingly
![Page 11: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/11.jpg)
How does TCP know there is congestion in the network?
Answer: packet loss Timeout Three duplicate
ACKs shown in diagram on right
![Page 12: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/12.jpg)
How does TCP limit sending rate?
Using a variable called congestion window = CongWin
Size of unacknowledged data must be less than CongWin bytes_unACKed ≤ CongWin
Sending rate is roughly CongWin/RTT bytes/sec
We can throttle the sending rate by controlling CongWin
![Page 13: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/13.jpg)
TCP Congestion Control Algorithm Is an algorithm that controls CongWin
Simply stated: Packet loss (=congestion) decrease CongWin All is well increase CongWin
Three main parts Additive-Increase, Multiplicative Decrease Slow Start Reaction to timeout events
![Page 14: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/14.jpg)
Additive Increase, Multiplicative Decrease (AIMD)
Additive Increase Increase CongWin by 1 MSS every RTT
while there is no packet loss
Multiplicative Decrease Decrease CongWin by half when packet
is lost
![Page 15: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/15.jpg)
Additive Increase, Multiplicative Decrease (AIMD)
Congestion Avoidance phase
![Page 16: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/16.jpg)
Slow Start (SS)
When connection is established CongWin is set to 1 MSS Increase CongWin by 1 MSS every ACK
Different from Additive Increase Until a loss occurs
Result is an exponentially fast growth in sending rate
![Page 17: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/17.jpg)
Slow Start (SS)
![Page 18: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/18.jpg)
Reaction to Timeouts We already discussed that TCP perceives
congestion through packet loss
Packet is considered lost when: Timeout occurs Three duplicate ACKs are received
But timeouts and three duplicate ACKs are different. What do they tell about the severity of
congestion?
![Page 19: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/19.jpg)
Reaction to Timeouts Let’s do something different for
timeout. Reset CongWin to 1 MSS Begin again from Slow Start Slow start (exponential increase) until
when? New variable called Threshold
Threshold is set to ½ CongWin After Threshold, do AIMD instead of SS
![Page 20: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/20.jpg)
Three-Way Handshake
Why is two-way handshake not enough?
![Page 21: CSEE W4140 Networking Laboratory](https://reader030.fdocuments.in/reader030/viewer/2022032414/56813342550346895d9a381e/html5/thumbnails/21.jpg)
Main Points of Lab 5 Parts 5~8
More about TCP Interactive applications over TCP Data transfer applications over TCP Retransmissions Congestion Control
Parts of Lab 5 may not be done because of the use of serial WAN link