Congestion control avoidance

18
Congestion Control avoidance Seminar Presented by Mr. Anthony-Claret Onwutalobi On the 10 th of March (Winter Session) University of Helsinki, Finland

Transcript of Congestion control avoidance

Page 1: Congestion control avoidance

Congestion Control avoidance

Seminar Presented by

Mr. Anthony-Claret OnwutalobiOn the 10th of March (Winter Session)

University of Helsinki, Finland

Page 2: Congestion control avoidance

Introduction

Definition of Terms: Congestion - is a condition of severe

delay caused by an overload of datagram at one or more switching point (router).[2]

Congestion Control: is a distributed algorithm use by TCP to share network resources among competing users. [3]

Page 3: Congestion control avoidance

Area to Cover

Overview of Congestion Control The use of Old TCP and its problem The Introduction of New TCP and its

Benefits The limitation of the four Algorithm Summary Suggestions and questions

Page 4: Congestion control avoidance

Introduction Continue..

The Old TCP and How it operates: UDP -

The Short Coming Packet transmitted via Connectionless network Packet can be lost or destroyed when network

hardware fails Packet loss due to heavy load. Packet arrived out of order Packet delivered after a long delay.

Page 5: Congestion control avoidance

The New TCP (Positive Acknowledgement Transmission Protocol)

In principle, a reliable delivery with no duplicate or data loss as oppose to UDP protocol. This mechanism requires both endpoints to be

on a constant communication whereby the sender sends application packages (datagram) and wait for an acknowledgement from the receiver.

The sender stores the history of the packages sent and also set a timer when it sends a packet. It waits for a reply for a set periodic and will retransmit the package if no reply ACK received.

Page 6: Congestion control avoidance

Short Coming of New TCP

solves the problem of Connectionless UDP protocol by ensuring the reliability of data transmitted over the network,

however it is too mechanical and it wastes a lot of network bandwidth.

It also has poor utilization of network resources because the sender must delay sending a new package until it receives an acknowledgement for the previous packet

Page 7: Congestion control avoidance

Introducing Sliding Window

This limitation propels a research and introduction of sliding window.

Sliding window keeps tracks of transmitted and acknowledged packets.

Since the timer is set for each datagram sent over the network, the lost packets are easily identified and retransmitted

Although this sliding window protocol is connection-oriented which guarantee data connection.

Page 8: Congestion control avoidance

Source http://www.tutorialsweb.com/networking/tcpip/images/Fig10_SlidingWindow.jpg

Page 9: Congestion control avoidance

Slow Start

Slow-start is run when the pipe is empty (i.e., when first starting or re-starting after a timeout). Its goal is to get the "ack clock" started so packets will be metered into the network at a reasonable rate.

Algorithm: Add a congestion window, cwnd, to the per-

connection state. When starting or restarting after a loss, set cwnd to

one packet On each Ack for new data, increase cwnd by one

packet. When sending, send the minimum of the receiver’s

advertised window and cwnd.

Page 10: Congestion control avoidance

Assumption: The maximum congestion window size is 8. Therefore, the congestion window size will not increase after it reaches the size 8. The sender starts with the congestion window size 1. Upon each ACK from the receiver, the sender increases the congestion window size by 1. For example, when the sender receives "ACK 1", its congestion windowsize is increased to be 2. Thus, in the next window, the sender can send 2 packets consecutively without receiving any ACKs from the receiver.

Page 11: Congestion control avoidance

Congestion Avoidance

congestion avoidance, is run any time *except* when (re-)starting and is responsible for estimating the (dynamically varying) pipe size[4]

Page 12: Congestion control avoidance

When to Enter Congestion Avoidance

Congestion avoidance is a TCP restriction technique of regulating slow start exponential duplication method to avoid flooding the network with segment which could cause congestion.

Sender receives Ack over a lost packet.

Sender timeout Expires

Page 13: Congestion control avoidance

Slow Start and Congestion Avoidance Algorithm

Slow Start and Congestion Avoidance Algorithm: [3] Initialization for a given connection Sets cwnd to one segment and ssthresh to 65535 bytes The TCP output routine never sends more than minimum of cwnd and

the receiver’s advertised window When congestion occurs (indicated by a timeout or the reception of

duplicate Ack), One-half of the current window size (the minimum of cwnd and the

receiver's advertised window, but at least two segments) is saved in ssthresh. Additionally, if the congestion is indicated by a timeout, cwnd is set to

one segment (slow start) When new data is acknowledged by the other end, increase cwnd, but

the way it increases depends on whether TCP is performing slow start or

congestion avoidance.

Page 14: Congestion control avoidance

Fast Retransmit

Since TCP does not know whether a duplicate ACK is caused by a lost segment or just a reordering of segments, it waits for a small number of duplicate ACKs to be received.

It is assumed that if there is just a reordering of the segments, there will be only one or two duplicate ACKs before the reordered segment is processed, which will then generate a new ACK.

If three or more duplicate ACKs are received in a row, it is a strong indication that a segment has been lost. TCP then performs a retransmission of what appears to be the missing segment, without waiting for a retransmission timer to expire.

Page 15: Congestion control avoidance

Fast Recovery

After fast retransmit sends what appears to be the missing segment, congestion avoidance, but not slow start is performed.

This is the fast recovery algorithm. It is an improvement that allows high throughput under moderate congestion, especially for large windows. [2]

Page 16: Congestion control avoidance

References

[1] The Great Idea Finder “Fascinating facts about the invention of the Traffic Light William L. Potts “http://www.ideafinder.com/history/inventions/trafficlight.htm Date Accessed: 10th February 2008

[2] D. E. Commer, “Internetworking with TCP/IP, Volume 1: Principles, protocols, and Architecture, 2006

[3] W. R. Stevens, “TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms, “RFC 2001, Jan 1997

[4] D. E. Commer, “Internetworking with TCP/IP, Volume 1: Principles, protocols, and Architecture, 2006

[5] http://www.tutorialsweb.com/networking/tcp-ip/images/Fig10_SlidingWindow.jpg

Page 17: Congestion control avoidance

References - Continue

[6] V. Jacobson, “Modified TCP congestion Avoidance Algorithm, “end2end –internet April 30, 1990 ftp://ftp.isi.edu/end2end/end2end-interest-1990.mail

[7] D. X. Wei C. Jin, S. H. Low, S. Hedge, “FAST TCP” Motivation, Architecture, Algorithm, Performance IEEE Network, 2005

[8]http://www.isi.edu/nsnam/DIRECTED_RESEARCH/DR_WANIDA/DR/JavisInActionSlowStartFrame.html Date Accessed 15/02/08

[9]http://www.cs.rice.edu/~amsaha/Papers/Cexam/notes/node109.html 15/02/08

Page 18: Congestion control avoidance

Thank You for Paying Attention

Suggestions! and Questions???