Experiment: Study of TCP Congestion Control Techniques.
Required Reading Materials:
- Text book, Chapter 3, section 3.7, page 297-306.
- Lecture slides, slide set 14.
Objective: In this simulation experiment the basic TCP (Transmission Control Protocol) congestion control technique will be examined. TCP use the AIMD (Additive-Increase, Multiplicative Decrease) process to throttle TCP connection rates to avoid the congestion on the transmission link. This experiment will examine the AIMD technique for different traffic load conditions. This experiment will also study the effect traffic load on the RTT (Round Trip Time) and the router queue length. The simulation model use a client server architecture.
Installation Steps:
This laboratory is designed based on the TCP congestion control technique lecture materials. The model simulates the TCP Reno protocol. The standard TCP/IP model has been modified to support the experiment. Youll need the TCPIP folder, which can be downloaded from here:
https://www.dropbox.com/s/m79p0fh7w0ps380/TCPIP.zip?dl=1 Or if you use git, clone it from here:
https://github.com/UON-ELEC3500-SAM/TCPIP.git
You need to extract it into the in the OMNeT++ samples folder. You can run either one of these commands to get the TCPIP folder automatically. DONT include the quotations when copy and pasting into the command line, and make sure that everything is entered as a single line into the command line (i.e. dont include the line breaks/returns). You can open a terminal in the VM by pressing Ctrl + Alt + T
cd /tmp/ramdisk/omnetpp-5.6.2/samples && wget https://www.dropbox.com/s/m79p0fh7w0ps380/TCPIP.zip && unzip TCPIP.zip -d /tmp/ramdisk/omnetpp-5.6.2/samples
OR
cd /tmp/ramdisk/omnetpp-5.6.2/samples && git clone https://github.com/UON-ELEC3500-SAM/TCPIP.git e.g. the directory structure should look like: /tmp/ramdisk/omnetpp-5.6.2/samples/TCPIP
(i.e. DONT extract it into the ELEC3500 directory, extract it into the directory directly ABOVE the ELEC3500 directory)
You will also need to import the TCPIP folder into OMNeT++:
- In OMNeT++ click File->Import
- The Existing projects into workspace option should be selected by default. Click the Next button
- In the Select root directory text box, edit the text to say /tmp/ramdisk/omnetpp-5.6.2/samples (without the quotation marks), then click the Finish button.
Also note that you need to have version 4.1.2 of the inet framework installed, the simulation WILL NOT work with the inet framework version 4.2.1. To automatically download inet 4.1.2, you can copy and paste the following commands into the command line (this time you can copy and paste each line individually into the command line i.e. enter the commands one line at a time!)
cd /tmp/ramdisk/omnetpp-5.6.2/samples
wget https://github.com/inetframework/inet/releases/download/v4.1.2/inet4.1.2src.tgz
tar xfzv inet-4.1.2-src.tgz
rm -rf inet
mv inet4 inet
rm -rf inet-4.1.2-src.tgz Simulations Procedure:
Check the omnetpp.ini file, you will see that several parameters are listed under the heading Parameters that needs to be changed for ELEC3500. The default simulation parameter values are listed in table-1. Not necessarily all parameters need to be changed. Use simulation time of 200 sec. Table: 1 Simulation Parameter Values
| Parameter | Variable | Default Value |
| Client No. | Cwindow.numClients | 1 |
| Simulation time | sim-time-limit | 200.00s |
| Advertised window | tcp.advertised window | 65535*10 B |
| Maximum transmission unit | ppp.mtu | 4470B |
| Maximum segment size | tcp.mss | 1000B |
| Router queue size | router.ppp[*].queue.frameCapacity | 10 MTU |
| Client file Size | .Client*.app[*].sendBytes | 1000 MiB |
| Transmission link speed** | router.pppg++ | 10Mbps |
**: this parameter is in .ned file.
Part 1: In this part of the lab, we will examine the effect of traffic load generated by multiple users on the TCP connection throughput. The OMNeT++ program labels the clients starting with an index of zero: e.g. when running with a single client, the client will be named client #0.
Initially, run the simulation model three times: varying the number clients from one client (i.e. only client #0), to two clients for the second simulation (i.e. clients #0, #1), and finally the third simulation with three clients (i.e. clients #0, #1, #2) for a total of three different simulations to be performed for part 1. Use default values for other parameters in the omnet.ini file.
Collect following plots after the simulation. To obtain following simulation plots right click on the vector value then click on the plot then save the plot. Save plots for your report.
- Simulation time vs the congestion window size (cwnd) for Client #0 for all three simulations.
- Simulation time vs RTT (measured RTT) for client #0 for all three simulations.
- Simulation time vs number of duplicated ACK received by Client #0 (rcvd dupAcks), only for the final simulation (i.e. the simulation with clients #0, #1, #2)
- Simulation time vs Router queue lengths (queueLength:vector) for clients #0 and #1 for the second simulation (i.e. the simulation with only clients #0 and #1)
- Simulation time vs congestion window size (cwnd) for client #2, only for the third simulation (i.e. the simulation with clients #0, #1, #2)
Part 2: Change the MSS (Maximum Segment Size) to 2000B and obtain following simulation results
- Simulation time vs the congestion window size for Client #0 for all three simulations
- Simulation time vs number of duplicated ACKs for Client #0, only for the second simulation
- Simulation time vs congestion window size for client #2, only for the final simulation

![[Solved] ELEC3500 Experiment3-Study of TCP Congestion Control Techniques](https://assignmentchef.com/wp-content/uploads/2022/08/downloadzip.jpg)

![[Solved] ELEC3500 Experiment1-Introduction to OMNeT Modelling](https://assignmentchef.com/wp-content/uploads/2022/08/downloadzip-1200x1200.jpg)
Reviews
There are no reviews yet.