TCP ACC Another Congestion Control Algorithm BIC Simulation and Analysis Using The NS3
TCP ACC Another Congestion Control Algorithm BIC Simulation and Analysis Using The NS3
1. Introduction
In the phase of Slow start and congestion avoidance algorithm implementation must
be used by a TCP sender data controlling to inject outstanding data into the network. this
can be handled by two variables the congestion window (Cwnd) this is a sender side limit
of data amount transmission before receiving an acknowledgment (ACK) and receiver
advertised window (RWND) is the receiver side limit of data amount outstanding for
processing. Another variable is slow start threshold (ssthresh), it is used for determining
the congestion avoidance algorithm is used to data transmission control. the initial cwnd
size depends on the SENDER MAXIMUM SEGMENT SIZE (SMSS) and cwnd set to
less or equal to 2 * SMSS. on receiving every ACK cwnd is increased by full segment
size until not detected duplicate ACK. when packet loss detected then set the maximum
ssthresh by the maximum value between flightsize/2 and 2*SMSS, where flightsize is the
amount of outstanding data in network.
The TCP sender SHOULD use the "fast retransmit" algorithm to detect and repair
loss, based on incoming duplicate ACKs. After receiving 3 duplicate ACKs, TCP
performs a retransmission of what appears to be the missing segment, without waiting for
the retransmission timer to expire.
1. If 3DUPACK is received, set ssthresh to max(flightsize/2, 2*SMSS)
2. Retransmit the lost segment and set cwnd to ssthresh plus 3*SMSS.
3. For each additional duplicate ACK received, increment cwnd by SMSS.
4. Transmit a segment, if allowed by the new value of cwnd and the rwnd.
5. When the next ACK arrives that acknowledges new data, set cwnd to ssthresh
This ACK should be the acknowledgment elicited by the retransmission from step 1,
one RTT after the retransmission. ("RFC 2581," 2001) figure 1 show the TCP congestion
control algorithm implementation data flow diagram with the different stages.
Figure 1 TCP Congestion control algorithm with fast recovery flow representation
The internet has recently been used by different type of devices. So that it is
change from homogeneous congestion control to heterogeneous congestion
control scenario. A few years ago, only the TCP congestion control algorithm
mainly used for controlled the Internet traffic. The TCP congestion control
algorithm used the AIMD standard Additive-Increase-Multiplicative-Decrease
algorithm. However, different TCP algorithms are used to control internet
traffics. (Yang et al., 2014, p. 1312). First of all we start the analysis of existing
congestion control algorithm TCP NewReno and TCP BIC according to the
following simulation scenario setup into the NS3 network simulator.
Parameters Values
Bandwidth 2, 5, 10 Mb/s
Time of Simulation 25, 50,80 seconds
Queue Type PfifoFastQueueDisc
Nodes 2
Delay 0.01 ms
TCP TCP NewReno, Bic
Access Bandwidth 10 Mb/s
Access Delay 0.45 ms
The TCP RENO is the default congestion control algorithm that implemented in NS3.
It is incorporated the slow start and fast recovery congestion control. it is identify three
consecutive the packet loss ACK then restart retransmission. TCP NewReno does not
wait for round trip time out. (Khalid Hussain Mohammadani, Safi Faizullah, Arshad
Shaikh, Nazish Nawaz Hussaini y Rahat Ali Khan, 2017). Figure 2 show the simulation
result of the TCP NewReno congestion control algorithm for 2Mbps bandwidth and the
simulation time is 25 and 50 seconds. In following figure the comparison between
congestion windows size, acknowledgement growth and the round trip time. In the
following figure 2 the cwnd graph having three color representation the blue color means
flow open , yellow color means fast recovery after congestion detection and red color
represent the packet lost.
Figure 3 show the comparison between average round trip time for the bandwidth
2,5,10 Mbps and simulation time 25,50 and 80 seconds. This is show that the less
bandwidth and high simulation time increase the RTT.
NewReno
0.3
Average RTT (s)
0.2
2Mbps
0.1
5Mbps
0 10Mbps
25 50 80
Simulation Time (s)
In the figure 4 show the comparison between average Congestion windows segment
size for the bandwidth 2,5,10 Mbps and simulation time 25,50 and 80 seconds. This is
show that the less bandwidth and high simulation time increase the congestion window
size.
Figure 4 comparative results of TCP NewReno cwnd for different bandwidth
NewReno
200000
Average cwnd ( Segments)
150000
100000 2Mbps
50000 5Mbps
0 10Mbps
25 50 80
Simulation Time (s)
3.2. TCP BIC congestion control algorithm
The TCP BIC (Binary Increase Congestion Control) is the default congestion control
algorithm of Linux operating system. It improves TCP Rount Trip Time fairness and
effectively utilizing the available bandwidth of high BDP network environments. The core
of the BIC are four algorithms: binary search increase, additive increase, slow start, and
fast recovery (Nguyen et al., 2016, p. 23). Following figure 5 shows the performance of
the TCP BIC for the 2Mb/s bandwidth and simulation time 25 and 50 seconds. In both
cases the TCP BIC drop some packets to calculating the next fast recovery ssthreshold. The
comparison graph show the growth of cwnd , ACK and Round trip time correspondingly.
Figure 6 show the comparison between average round trip time for the bandwidth
2,5,10 Mbps and simulation time 25,50 and 80 seconds. This is show that the when
bandwidth increase then average RTT is decreased but in TCP BIC when simulation time
increased then not much more effect on the average RTT its remain about to same.
TCP BIC
0.4
Average RTT (s)
0.3
0.2 2Mbps
0.1 5Mbps
0 10Mbps
25 50 80
Simulation Time (s)
In the figure 7 show the comparison between average Congestion windows segment
size for the bandwidth 2,5,10 Mbps and simulation time 25,50 and 80 seconds. This is
show that the less bandwidth and high simulation time increase the congestion window
size. This is observed by the following figure in bandwidth 2Mb/s average cwnd
increased much corresponding to the bandwidth 10 Mb/s when increasing simulation
time 25 to 80 seconds.
Figure 7 comparative results of TCP BIC cwnd for different bandwidth
TCP BIC
200000
Average cwnd ( Segments)
150000
100000 2Mbps
50000 5Mbps
0 10Mbps
25 50 80
Simulation Time (s)
On the basis of the above simulation result the TCP BIC performance is better than
the TCP NewReno. We are decided to improve the result of the TCP BIC. The modified
TCP BIC named ACC (Another Congestion Control) approach. In TCP ACC approach
change made in fast recovery method then TCP ACC simulate in the same scenario we
applied for the TCP NewReno and TCP BIC. After simulation result we get the better
output than in some of the existing TCP BIC that why we given a new name of TCP
congestion control algorithm as TCP ACC based on TCP BIC.
In the figure 8 comparison between TCP BIC and ACC on the basis of Congestion
window growth, Acknowledgement growth and round trip time for the scenario 2Mb/s
bandwidth and 25 second simulation time. In this result we observed that in TCP BIC
some data packet lost and then fast recovery method apply as well as we observed RTT
difference.
Figure 8 Comparison TCP BIC Vs TCP ACC for bandwidth 2Mb/s and 25 seconds simulation
In the figure 9 comparison between TCP BIC and ACC on the basis of Congestion window
growth, Acknowledgement growth and round trip time for the scenario 5Mb/s bandwidth and
25 second simulation time. In this result we observed that in TCP BIC have more data packet
lost rather than TCP ACC and also we observed that RTT is greater than the TCP ACC RTT
growth in first look of the graph.
Figure 9 Comparison TCP BIC Vs TCP ACC for bandwidth 5Mbps and 25 seconds simulation
In the figure 8 comparison between TCP BIC and ACC on the basis of above similar types for
the scenario 10Mb/s bandwidth and 25 second simulation time. In this result we observed that
in TCP BIC lost data packet as well as have more times to apply fast recovery method also we
observed RTT graph difference.
Figure 10 Comparison TCP BIC Vs TCP ACC for bandwidth 10Mbps and 25 seconds simulation
The figure 11 show the clear comparison between TCP BIC and TCP ACC on the basis of
average round trip time (RTT) that show the TCP ACC having low RTT in corresponding to
the TCP BIC RTT. This is also seen in the graph it is observed for all bandwidth 2, 5 and 10
Mb/s and different time of simulation. This is not much higher then the TCP BIC but it having
the impact when congestion occur.
Figure 11 Comparison TCP BIC Vs TCP ACC for Average RTT of different bandwidth
0.25
0.2
0.15 BIC
0.1 ACC
0.05
0
2 5 10
Bandwidth Mb/s
The figure 12 show the comparison between TCP BIC and ACC on the basis of average
congestion windows growth. In this graph we notice that it is not having much more difference
but due to maintain the cwnd TCP ACC produce the difference in average round trip time.
Figure 12 Comparison TCP BIC Vs TCP ACC for Average cwnd of different bandwidth
150000
100000
BIC
50000 ACC
0
2 5 10
Bandwidth Mb/s
4. Conclusion
In this research paper we analysis the already implemented congestion control
algorithms. These algorithms are TCP NewReno and TCP BIC. The Performance of the
both congestion control algorithms simulated through the network simulator NS3. In NS3
a simple network scenario implemented and simulated for bandwidth 2, 5 and 10 Mb/s
and the simulation Time 25 , 50 and 80 Second. The analysis result of the TCP BIC is
efficient than the TCP NewReno. Further we analysis our new TCP ACC (Another
Congestion Control) Algorithm based on TCP BIC. After analysis of both TCP BIC and
ACC in the same scenario we get better performance result than the TCP BIC. In
corresponding of the Average Round Trip time is less than the TCP BIC. We also
analysis the throughput and Goodput for both and we get the better throughput of TCP
ACC. So that the new congestion control algorithm TCP ACC having better result than
TCP BIC.
References
Ahmed, M. (2014). TCP Congestion Control Identification. Recuperado de
http://arxiv.org/pdf/1411.3742v1
Girish Paliwal, Ankur Prakash Mudgal y Swapnesh Taterh. (2015). A Study on various
attacks of TCP/IP and security challanges in MANET Layer Architecture, 195–209.
Girish Paliwal y Swapnesh Taterh. (2017). Impact of Dense Network in MANET Routing
Protocols AODV and DSDV Comparative Analysis Through NS3, 327–335.
Grieco, L. A. y Mascolo, S. (2004). Performance evaluation and comparison of
Westwood+, New Reno, and Vegas TCP congestion control. ACM SIGCOMM
Computer Communication Review, 34(2), 25. https://doi.org/10.1145/997150.997155
Jun Zhang, J. W. (2014). TCP-ACC: An Active Congestion Compensation TCP for
Wireless Networks, 1–7.
Khalid Hussain Mohammadani, Safi Faizullah, Arshad Shaikh, Nazish Nawaz Hussaini y
Rahat Ali Khan. (2017). Empirical Examination of TCP in MANET, 22–27.
Nguyen, T. A. N., Gangadhar, S. y Sterbenz, J. P. G. (2016). Performance Evaluation of
TCP Congestion Control Algorithms in Data Center Networks, 21–28.
https://doi.org/10.1145/2935663.2935669
Patriciello, N. (2017). A SACK-based Conservative Loss Recovery Algorithm for ns-3
TCP, 1–8. https://doi.org/10.1145/3067665.3067666
RFC 2581. (2001).
Yang, P., Shao, J., Luo, W., Xu, L., Deogun, J. y Lu, Y. (2014). TCP Congestion
Avoidance Algorithm Identification. IEEE/ACM Transactions on Networking, 22(4),
1311–1324. https://doi.org/10.1109/TNET.2013.2278271