42
TCP Congestion Avoidance Algorithm Identification Presented by B.Lavanya

Tcp congestion avoidance algorithm identification

Embed Size (px)

Citation preview

Page 1: Tcp congestion avoidance algorithm identification

TCP Congestion Avoidance Algorithm Identification

Presented by B.Lavanya CSE

Page 2: Tcp congestion avoidance algorithm identification

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

Page 3: Tcp congestion avoidance algorithm identification

Problem definition A tool called TCP Congestion Avoidance

Algorithm Identification is proposed for actively identifying the TCP algorithm of a remote web server

Page 4: Tcp congestion avoidance algorithm identification

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).

Page 5: Tcp congestion avoidance algorithm identification

Table 1: TCP algorithms available in major operating system families

Page 6: Tcp congestion avoidance algorithm identification

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

Page 7: Tcp congestion avoidance algorithm identification

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

Page 8: Tcp congestion avoidance algorithm identification

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

Page 9: Tcp congestion avoidance algorithm identification

TCP congestion control and related works

Page 10: Tcp congestion avoidance algorithm identification

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

Page 11: Tcp congestion avoidance algorithm identification

“TCP congestion avoidance algorithm” or “a TCP algorithm” -> congestion avoidance component

Page 12: Tcp congestion avoidance algorithm identification

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

Page 13: Tcp congestion avoidance algorithm identification

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

Page 14: Tcp congestion avoidance algorithm identification

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

Page 15: Tcp congestion avoidance algorithm identification

CAAI Overview

Page 16: Tcp congestion avoidance algorithm identification

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

Page 17: Tcp congestion avoidance algorithm identification

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

Page 18: Tcp congestion avoidance algorithm identification

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

Page 19: Tcp congestion avoidance algorithm identification

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

Page 20: Tcp congestion avoidance algorithm identification

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

Page 21: Tcp congestion avoidance algorithm identification

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

Page 22: Tcp congestion avoidance algorithm identification

CAAI steps CAAI has the following steps

Step 1: Trace Gathering

Step 2: Feature Extraction

Step 3: Algorithm Classification

Page 23: Tcp congestion avoidance algorithm identification

Design challenges Network environment

Network condition

TCP connection

Page 24: Tcp congestion avoidance algorithm identification

CAAI step 1: Trace Gathering

Page 25: Tcp congestion avoidance algorithm identification

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

Page 26: Tcp congestion avoidance algorithm identification

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

Page 27: Tcp congestion avoidance algorithm identification

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

Page 28: Tcp congestion avoidance algorithm identification

Value of mss Smaller value Increasing order of 100, 300, 536, and 1460 B

Table 2: Maximum segment sizes of web servers

Page 29: Tcp congestion avoidance algorithm identification

Subtask 1 Emulating a network environment

Page 30: Tcp congestion avoidance algorithm identification

Subtask 2 Measuring the congestion window sizes

TCP window size: data packets send in an emulated RTT

Highest sequence number Wk=(hk-hk-1)

Page 31: Tcp congestion avoidance algorithm identification

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

Page 32: Tcp congestion avoidance algorithm identification

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

Page 33: Tcp congestion avoidance algorithm identification

Figure: valid traces of window sizes

Feature extraction

Page 34: Tcp congestion avoidance algorithm identification

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

Page 35: Tcp congestion avoidance algorithm identification

Experiments Testbed evaluation and parameter setting

Testbed setup Collecting training set of feature vectors Cross validation and parameter setting

Figure: Testbed

Page 36: Tcp congestion avoidance algorithm identification

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

Page 37: Tcp congestion avoidance algorithm identification

Web servers with valid traces 47% - gathered valid traces

Valid traces Remaining at 1 packet Nonincreasing window Approaching loss_cwnd Bounded window

Page 38: Tcp congestion avoidance algorithm identification

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

Page 39: Tcp congestion avoidance algorithm identification
Page 40: Tcp congestion avoidance algorithm identification

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.

Page 41: Tcp congestion avoidance algorithm identification

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.

Page 42: Tcp congestion avoidance algorithm identification

Thank you