TCP Congestion Avoidance Algorithm Identification
Presented by B.Lavanya CSE
TCP Congestion Avoidance Algorithm Identification Published in: IEEE/ACM Transactions on
Networking Volume:22 , Issue: 4 Date of Publication: August 2014 Pages: 1311 – 1324 Sponsored by : Association for Computing
Machinery Publisher: IEEE
Problem definition A tool called TCP Congestion Avoidance
Algorithm Identification is proposed for actively identifying the TCP algorithm of a remote web server
Introduction Homogeneous congestion control
Same TCP congestion control algorithm Additive-Increase-Multiplicative-Decrease
RENO
Heterogeneous congestion control Multiple different TCP algorithms
Two major operating system families Windows family (e.g., Windows XP/Vista/7/Server) and Linux family (e.g., RedHat, Fedora, Debian, Ubuntu, SuSE).
Table 1: TCP algorithms available in major operating system families
Users can change their algorithms with only a single line of command
Little work on the performance and stability study Lack of deployment information
TCP algorithm census is vital Study and planning of the internet
Two main contributions First,
CAAI can identify All default TCP algorithms
i.e., RENO, BIC etc Most non-default TCP algorithms
CAAI can be described in three steps how to design and emulate some specific network environments
in which different TCP algorithms behave differently how to extract the unique features of a TCP algorithm from the
collected TCP behavior traces how to identify the TCP algorithm of a Web server based on its
TCP features
Second, Potential applications of CAAI by presenting
results of about 30000 web servers 3.31%~14.47% ->RENO 46.92% ->BIC or CUBIC 14.5%~25.66% ->CTCP Some use non-default TCP algorithms such as HTCP
TCP congestion control and related works
TCP congestion control consists of several important components Initial window size Slow start Congestion avoidance Loss recovery etc
CAAI only considers how to identify the TCP congestion avoidance component of a web server
“TCP congestion avoidance algorithm” or “a TCP algorithm” -> congestion avoidance component
Related works
Cluster analysis-based method Distinguish between two different TCP algorithms Work based on simulations
Congestion avoidance algorithm identification distinguish among most TCP algorithms available
in major operating system families Large scale internet experiments
Classified into two categories Active measurements
TCP behaviors of internet nodes
Passive measurements TCP behaviors of internet flows
TBIT Active measurement tool Infer initial window size, the loss recovery
mechanisms, congestion window halving etc
Cannot identify the congestion avoidance algorithms
CAAI is implemented by extending the source code of TBIT To communicate raw TCP packets with a web server
NMAP Active measurement tool Infer operating system of a remote internet node
CAAI Overview
Design goals First design goal
Identify 14 TCP algorithms RENO, BIC, CTCP`and CTCP``, CUBIC`and
CUBIC``, HSTCP, HTCP, ILLINOIS, STCP, VEGAS, VENO, WESTWOOD+, and YEAH
HYBLA and LP are not considered HYBLA-> Satellite connections LP-> Background file transfer
Second design goal Insensitive to the operating system of a web
server Insensitive to network conditions
E.g., packet loss, delay, reordering, and duplication
Insensitive to TCP components other than the congestion avoidance component
TCP algorithm features TCP congestion avoidance algorithm can be
described by two features Feature 1
Multiplicative decrease parameter (denoted by beta) Determines slow start threshold
Feature2 Window growth function (denoted by g(.))
Determines how a TCP algorithm grows its congestion window size in the congestion avoidance state
Let loss_cwnd denote window size before a loss event or a timeout
Loss event Sets slow start threshold and a window size to beta* loss_cwnd
Timeout Sets slow start threshold to beta* loss_cwnd
Different TCP algorithms have different multiplicative decrease parameters RENO-> beta=0.5 CUBIC-> beta=0.7 STCP-> beta=0.875 Sets variable beta that depends on loss_cwnd and the network
environment
Multiplicative decrease parameter
For example, BIC
If loss_cwnd>14 beta=0.8
if loss_cwnd<=14 beta=0.5
HSTCP Beta between 0.5 and 0.9 depending on loss_cwnd
HTCP Beta between 0.5 and 0.8 depending on ratio of min RTT
and max RTT
Window growth functions Function of the elapsed number of RTTs in the
congestion avoidance state (denoted by x) and loss_cwnd
For example, RENO (linear)
g(x, loss_cwnd)=0.5*loss_cwnd+x STCP (exponential)
g(x, loss_cwnd)=0.875*loss_cwnd+1.02x
g(.) depends not only on x, but also on the network environment CUBIC-> x and the duration of RTT CTCP-> x, duration of an RTT, min RTT
CAAI steps CAAI has the following steps
Step 1: Trace Gathering
Step 2: Feature Extraction
Step 3: Algorithm Classification
Design challenges Network environment
Network condition
TCP connection
CAAI step 1: Trace Gathering
Overview CAAI gathers the traces of TCP window sizes
of a remote web server in some emulated environments
Subtask 1: Creates TCP connection
Subtask 2: Measures TCP window sizes
Subtask 3: Maintains TCP connection
Emulated network environments Network Environment A
Fixed RTT TCP data packets sent from the web server are
not lost until window size >cwnd_threshold Packet loss leads to TCP timeout After timeout, again no data packet loss Maximum TCP segment size is mss bytes RTT always 1.0s
Network environment B Varying RTT RTT is 0.8 or 1.0s
Value of cwnd_threshold 512 packets Hard to obtain->require large web page Tries 512, 256, 128, and 64 packets
64 useless
Value of mss Smaller value Increasing order of 100, 300, 536, and 1460 B
Table 2: Maximum segment sizes of web servers
Subtask 1 Emulating a network environment
Subtask 2 Measuring the congestion window sizes
TCP window size: data packets send in an emulated RTT
Highest sequence number Wk=(hk-hk-1)
Subtask 3 Maintaining a TCP connection
Before timeout, 10 RTTs of window sizes After timeout, 18 RTTs of window sizes Cwnd_threshold=512 packets 14 TCP algorithms Valid trace mss= 100, 300,536, and 1460 B=>379, 1137,
2032, and 5536 KB of data
Two methods First, Repeatedly sends HTTP request message
12 times=>sufficient for index.html Issues 1
Discards requests Experiment on 60000 webservers
47% => accepts one request 60% => accepts 3 or less
Issues 2 Short default web page
12% => longer than 100 KB
Second, webpage searching tool Search long web page
Figure: valid traces of window sizes
Feature extraction
Determining the boundary RTT Multiplicative decrease parameter
Beta = ws /loss_cwnd
Beta => 0.5(min) and 2.0(max) Window growth function
Window sizes after boundary RTT Offset window sizes, ws+4-ws+1 and ws+9-ws+1
Feature vector of a web server
Experiments Testbed evaluation and parameter setting
Testbed setup Collecting training set of feature vectors Cross validation and parameter setting
Figure: Testbed
Internet measurement 64124 popular web servers Webpage searching tool Web server information
0.54%-Africa, 21.46%-Asia, 0.83%-Australia, 43.28%-Europe, 31.92%-North America, 1.97%-South America
web server with invalid traces 53% - Could not valid window traces
Web servers with valid traces 47% - gathered valid traces
Valid traces Remaining at 1 packet Nonincreasing window Approaching loss_cwnd Bounded window
Results 3.31% ~14.47% -> RENO 13.41%~24.57% -> CTCP` 1.09%~12.25% -> CTCP`` 14.5%~25.66% -> windows default TCP
algorithms 46.92% -> linux default TCP algorithms 4.89% ->HTCP
Conclusion A tool called CAAI was proposed for
identifying the TCP algorithm of a remote Web server and presented measurement results of the TCP deployment information of about 30 000 Web servers.
References P. Yang, W. Luo, L. Xu, J. Deogun, and Y. Lu, “TCP congestion
avoidance algorithm identification,” in Proc. IEEE ICDCS, Minneapolis, MN, USA, Jun. 2011, pp. 310–321.
V. Jacobson, “Congestion avoidance and control,” in Proc. ACM SIGCOMM, Stanford, CA, USA, Aug. 1988, pp. 314–326.
D. Chiu and R. Jain, “Analysis of the increase/decrease algorithms for congestion avoidance in computer networks,” J. Comput. Netw. ISDN, vol. 17, no. 1, pp. 1–14, Jun. 1989.
A. Tang, J. Wang, S. Low, and M. Chiang, “Equilibrium of heterogeneous congestion control: Existence and uniqueness,” IEEE/ACM Trans. Netw., vol. 15, no. 4, pp. 824–837, Aug. 2007.
K. Munir, M.Welzl, andD.Damjanovic, “Linux beats Windows!—Or the worrying evolution of TCP in common operating systems,” in Proc. PFLDNet, Marina Del Rey, CA, USA, Feb. 2007, pp. 1–6.
Thank you