tcp congestion avoidance algorithm identification
TRANSCRIPT
![Page 1: Tcp congestion avoidance algorithm identification](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/1.jpg)
TCP Congestion Avoidance Algorithm Identification
Presented by B.Lavanya CSE
![Page 2: Tcp congestion avoidance algorithm identification](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/5.jpg)
Table 1: TCP algorithms available in major operating system families
![Page 6: Tcp congestion avoidance algorithm identification](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/9.jpg)
TCP congestion control and related works
![Page 10: Tcp congestion avoidance algorithm identification](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/11.jpg)
“TCP congestion avoidance algorithm” or “a TCP algorithm” -> congestion avoidance component
![Page 12: Tcp congestion avoidance algorithm identification](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/15.jpg)
CAAI Overview
![Page 16: Tcp congestion avoidance algorithm identification](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/23.jpg)
Design challenges Network environment
Network condition
TCP connection
![Page 24: Tcp congestion avoidance algorithm identification](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/24.jpg)
CAAI step 1: Trace Gathering
![Page 25: Tcp congestion avoidance algorithm identification](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/29.jpg)
Subtask 1 Emulating a network environment
![Page 30: Tcp congestion avoidance algorithm identification](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/33.jpg)
Figure: valid traces of window sizes
Feature extraction
![Page 34: Tcp congestion avoidance algorithm identification](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/39.jpg)
![Page 40: Tcp congestion avoidance algorithm identification](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062216/55b367e9bb61ebe56d8b46da/html5/thumbnails/42.jpg)
Thank you