It is vital to manage the congestion in the networks, especially those, that rely mainly on TCP traffic. It helps achieve high performance and throughput. This will prevent the big collapse in the global networks like the internet   . Congestion control exists as indispensable software module in most operating systems within the network stack     . Many protocols have been proposed and implemented since ’86. Their role was to control the traffic between the different nodes. TCP NewReno is one of those variants. It is a prominent one of old days     , which was found to have limitations, especially in wireless environments     . TCP NewReno also shows another limitation, when it comes to mobility    . Experiments have shown, that in Wi-Fi and MANETs networks, NewReno has little chances to perform well.
TCP DCM+  has come to mitigate those limitations of old schemes. DCM+ stands for dynamic congestion control for mobile systems. It makes use of the same TCP Westwood+ algorithm to estimate the available bandwidth. DCM+ is intended to avoid the problem of congestion in mobile networks, but it is also appropriate for wired networks. The novelty of this paper is the extended analysis of this protocol. It also extensively compares the metrics of performance for DCM+ against other well-known approaches. In this paper, we have proposed a technique that is appropriate for different types of networks, because it minimizes drops of congestion windows, and hence, minimizes delays.
This paper is structured as follows. We state in Section 2 the problems, which cause the degradation of performance in most congestion control approaches. In Section 3, related works and new methods and techniques for congestion control are presented. Then, in Section 4, we present our research work of DCM+. The results of the simulation are shown in TCP NewReno can’t distinguish the reasons for packet losses   . The main two reasons for packet losses are 1) the “full buffer” of the intermediate router       , and 2) a signal error on the wireless channel, which is known as link error (LE)      . In both cases, TCP NewReno behaves the same. It drops its cwnd to the half, even if no real network congestion exists, and the packet was only dropped because of a bad wireless link      . This is the reason for bad performance of TCP NewReno in wireless or mixed networks. So, a new approach is needed, that can distinguish the reason for packet loss. DCM+ has come to solve this problem and it shows intelligent behavior.
2. Related Works
Many approaches have been suggested to find the reason for packet loss   . Modern research topics like Fuzzy Logic (FL) and Machine learning (ML) are some of these fields. Fuzzy inference systems   , ANFIS  , ML classification   , neural networks   and random forests are just some of the modern approaches to distinguish between true and false congestion events in the different types of networks. DCM+ is not causing any congestions during the transmission, because it does not aggressively increase the size of cwnd during the phase of congestion-avoidance (CA). It also helps achieve high performance by using previous values of round-trip-time (RTT) and retransmission-timeout (RTO). These parameters are needed to predict the probability of a network congestion, and thereafter to set the appropriate value for cwnd. This way, DCM+ extremely minimizes the possibility of a congestion. This behavior of DCM+ also helps speed-up the transmission and hence, outperforms other TCP variants in various network topologies.
The used topology is of simple nature, and unneeded network complexity is avoided. This topology is intended to concentrate only on comparing the performance of the different protocols instead of causing additional network complexity and overhead. This topology is preferred because it causes minimal delay and presents best available performance of the different approaches. A comparison of Westwood+ with DCM+ shows similar performance, but Westwood+ shows much more drops in cwnd value, which indicates more congestion events. This is a big advantage for DCM+, especially in wireless or MANET environments.
3. Proposed Approach (DCM+)
DCM+ is an End-To-End (E2E) approach. For the bandwidth-estimation (BWE), the same algorithm explained in TCP Westwood+     will be used. It describes a sender-side modifications of TCP NewReno protocol in either phases (SS and CA). DCM+ needs no additional information as it is TCP protocol compliant. Hence, the overhead is equal to the standard TCP protocol header, not more. Depending on the current value of BWE, DCM+ calculates the future values of other parameters like cwnd and ssthresh. The behavior of cwnd is observed to be dynamic, in that it continuously tracks the state of slow-start threshold (ssthresh). If a change (increase or decrease) of ssthresh has been observed within a time interval, then DCM+ keeps using the current value of cwnd until a newer ssthresh has been settled. After that, cwnd moves to new value. It remains on the new state of ssthresh for the new time interval until a change of link capacity occurs. This way, cwnd will not exceed the available ssthresh. Hence, congestion events are extremely minimized. Figure 1 depicts the behavior of DCM+ for packet-error-rate = 7.5e−3 and for maximum transmission unit (MTU size) = 1200 bytes. The design of DCM+  is similar to NewReno, which is detailed in  . DCM+ is built from 4 phases like NewReno (SS, CA, fast retransmission (FR) and fast recovery (FV)). In DCM+, the behaviors in (SS) and (CA) have been so modified to enforce the cwnd to track ssth in the next interval. In addition to cwnd, RTT and RTO have been used as feedback to control the values of ssth and cwnd in the next interval.
The idea behind DCM+ design is, that a continuous increase in RTT value leads gradually to an increase in the length of the queue on the intermediate node. This results after some time in a true congestion event (i.e., packet drop). As a consequence of the congestion, the network will suffer a higher delay. So, we tied this idea of congestion with the parameters RTT and RTO, and we introduced a new parameter called congestion rate or rateCA, which is an important indicator for the congestion on the link. This parameter is critical for determining the next appropriate values of cwnd. It is defined as the ratio of the previous RTT divided by the current RTT. As a result, all parameters (cwnd, RTT, RTO and rateCA) in the next interval are affected, and therefor dynamically changing during the transmission.
Figure 1. Dynamic behavior of cwnd in DCM+.
Now, we consider the following two cases: 1) rateCA higher than 1 will be considered as advance or “Link Capacity Increasing”, and 2) values of rateCA lower than 1 as danger or “Link Capacity Decreasing”. Regarding the DCM+ algorithm given in  , if cwnd is less than ssth, then rateCA will be used to start the retransmission in wide steps (increased size of cwnd), otherwise, retransmission goes slowly to prevent any possible congestions. Refer to Figure 2 to see the status of rateCA during the transmission. At each time sample during the transmission, the value of the next RTO is affected by the newly calculated rateCA. If the current RTT is decreasing, then RTO shall be also reduced, because no congestion is expected. The following equations describe this behavior:
Equation (3.2) can be reformulates as:
As described in CA phase of DCM+, refer to  , next value of ssth depends on the available channel capacity, which is calculated regarding TCP Westwood+ algorithm    , while next cwnd depends additionally on the current rateCA and previous value of cwnd.
Figure 2. The changing of RTT as indicator of increase/decrease of cwnd.
Our simulations for many cases with different parameters like error rate, data size, MTU size, used TCP protocol, bottleneck bandwidth and access bandwidth show, that next cwnd does not exceed ssth, and hence barely cause new congestion events. We figure out, that cwnd is changing dynamically as a reaction to the changing channel capacity. This can be reflected as a higher improvement of throughput, complete-transmission-time (CTT) and normalized-advancing-index (NAI).
Following figures show the measured values of performance metrics using ns-3 simulator for different TCP congestion control protocols (DCM+, NewReno, BIC, Ledbat and Hybla). The simulations are executed for different packet error rates. The simulation environment is ns-3.29  under Ubuntu Linux VM under Oracle VirtualBox 5.2.22. The following parameters in Table 1 are constant throughout the tests:
In Figure 3, we see the plots of throughput for different protocols, and we clearly see the advantage of DCM+ over most protocols. This high throughput extends over the most range of error rates, which is from 1e−6 to 0.05. For error rates less than 1e−3, we see that only BIC protocol performs better, but that is at the expense of other metrics like packet delivery ratio (PDR), average delay and normalized advancing index, where BIC performs worst.
4.2. Normalized Advancing Index (NAI)
For the reason of detailed comparison, we introduced a new metric, which we called normalized advancing index (NAI). It is defined as the ratio of throughput divided by the product of lost packets (given in bytes) and error rates. Its unit is (1/second), and should indicate the speed of delivering the complete size of data from one end to the other despite the existence of lost packets at a specific error rate. From Figure 4 we figure out, that DCM+ performs better than all other protocols.
Table 1. Simulation environment’s parameters.
Figure 3. Throughput comparison with different TCP Protocols.
Figure 4. NAI comparison with different protocols.
We clearly see that DCM+ has the best results for all used error rates. This reflects best transmission speed and quality for the used applications.
4.3. Complete Transmission Time (CTT)
It is a good advantage to finish transmission in short time without causing congestions, if possible. This is the case for DCM+ protocol as depicted in Figure 5. It has the lowest (CTT) among all tested protocols, which is defined as the time needed for the last ACK segment to arrive at the sender. Based on that result, TCP applications and devices can extremely speedup data transmission and stop using the link earlier. This results in less power consumption. For the error rate (0.05), only TCP Hybla performs a little better.
5. Assessment of the Results
We have demonstrated, that our proposed approach (DCM+) owns a better behavior than the other TCP approaches used in this paper. It may change from one case to another, but DCM+ remains faster, provides higher throughput and shows less false drops. The simulations are done for different situations like packet error rates and sizes of the sent packets (MTU).
Following two cases are considered:
Case 1: same error rate, different MTU sizes
In the following we see, that unwanted drops are occurring as a side effect of lowering the MTU size. For example, if MTU = 600 bytes, we have a lower time to finish transmission compared with the case MTU = 1500, but it suffers 3 unwanted drops. On the other hand, if MTU = 1500 bytes, we have longest time to finish transmission (CTT), but only one unwanted drop. It is also clear, that the performance for MTU = 1200 is the best. It finishes transmission faster and suffers no unwanted drops, as shown in Figure 6.
Figure 6 gives a hint, that an additional increase of the performance of DCM+ may be possible if the used MTU size is optimized before the transmission.
Case 2: different error rates, same MTU size
Figure 5. Complete Transmission Time (CTT).
Figure 6. cwnd for different MTU sizes, but same error rate.
Figure 7. cwnd size for different error rates, but same MTU size (1500 bytes).
In Figure 7, the size of data to be transmitted is (100 MB), and the used error rates are: (1e−3, 1e−2). We see, that for the error rate = 1e−3, the transmission is much quicker (CTT is reduced by the half), and the throughput is around 200%. Besides, it does not make any false drops.
In Figure 8, we present a comparison of different TCP congestion control protocols with MTU = 1500 bytes, and error rate = 0.0075. The advantage of DCM+ over the other protocols is clear. DCM+ shows best performance among all tested approaches. It finishes transmission much faster; it has the highest throughput and it causes no congestions on the transmission link. The figure shows clearly, that the cwnd values are exactly tracking the available bandwidth. This is of great benefit for new devices, that may be currently using the same channel.
We have presented a protocol, that can be used in wireless, mixed and MANET networks. It is robust and adaptive for all changes in its environment. It has the ability to minimize the average delay and packet loss, but also to improve the throughput and the speed of the transmission even under high error rates. DCM+ is a new approach for managing congestions in mobile and wired networks. It is designed in similar fashion like TCP NewReno. It is an end-to-end technique, which will be used from the TCP sender to control the sent amount of data on the transmission link. It has a modified behavior in CA phase. It uses the BWE algorithm described in TCP Westwood+ protocol to estimate the available
Figure 8. Comparing performance of different CC schemes.
channel capacity. Thereafter, it calculates the appropriate value for cwnd depending on the feedback signals RTT and RTO, the parameter rateCA, and whether the calculated cwnd is less than ssth or not.
 Eckberg, A.E. and Luan, D.T. (1989) Meeting the Challenge: Congestion and Flow Control Strategies for Broadband Information Transport. 1989 IEEE Global Telecommunications Conference and Exhibition “Communications Technology for the 1990s and Beyond”, Dallas, TX, 27-30 November 1989, 1769-1773.
 Grieco, L. and Mascolo, S. (2004) Performance Evaluation and Comparison of Westwood+, New Reno, and Vegas. ACM SIGCOMM Computer Communication Review, 34, 25-38.
 Hamamreh, R. and Khader, D. (2019) DCM+: A Multi-Purpose Protocol for Congestion Control. 2019 IEEE 7th Palestinian International Conference on Electrical and Computer Engineering (PICECE), Gaza, Palestine, 26-27 March 2019, 1-7.
 Torres, R., Border, J., Choquette, G., Xu, J. and Jong, J.-H. (2012) Congestion Control Using RED and TCP Window Adjustment. MILCOM 2012-2012 IEEE Military Communications Conference, Orlando, FL, 29 October-1 November 2012, 1-6.
 Parsa, C. and Garcia-Luna-Aceves, J.J. (2000) Differentiating Congestion vs. Random Loss: A Method for Improving TCP Performance over Wireless Links. 2000 IEEE Wireless Communications and Networking Conference, Chicago, IL, 23-28 September 2000, 90-93.
 Hadi Hosseini, S.M. and Araabi, B.N. (2009) A Neuro-Fuzzy Control for TCP Network Congestion. In: Mehnen, J., Köppen, M., Saad, A. and Tiwari, A., Eds., Applications of Soft Computing. Advances in Intelligent and Soft Computing, Vol. 58, Springer, Berlin, Heidelberg, 93-101.
 El Khayat, I., Geurts, P. and Leduc, G. (2004) Enhancement of TCP over Wired/Wireless Networks with Packet Loss Classifiers Inferred by Supervised Learning. Tech. Report, Montefiore Inst., Belgium.
 Yang, P., Shao, J., Luo, W., Xu, L., Deogun, J.S. and Lu, Y. (2014) TCP Congestion Avoidance Algorithm Identification. IEEE/ACM Transactions on Networking, 22, 1311-1324.
 Dell’Aera, A., Grieco, L.A. and Mascolo, S. (2004) Linux 2.4 Implementation of Westwood+ TCP with Rate-Halving: A Performance Evaluation over the Internet. 2004 IEEE International Conference on Communications, Paris, 20-24 June 2004, 2092-2096.