Comparative Study on Various Congestion Control Protocols: TCP, XCP and RCP

— Today’s modern era of high speed multimedia transmission is demanding faster data transmission of huge amount of data. As a result data traffic is growing faster than capacity of exciting network. So it becomes inescapable to deal with Congestion control. Various congestion protocols are used for avoiding congestion in network. TCP is the most popular congestion protocol in the Internet but it has some limitations, such as fail to utilize network link optimally in high bandwidth-delay product networks, and come out with high load and overhead in the network. To nullify these limitations, several congestion protocols like explicit Control Protocol and Rate Control Protocol have been proposed. These protocols have been proposed previously to work in wired and wireless networks and environments and also have pros and cons. Here we present evaluation study of these protocols that can be taken as a base to building a enhanced version of existing protocol.


INTRODUCTION
ONGESTION control is an important issue of computer network.The motivation of this research is to address this issue and trying to solve the Problem of large data transfer in high bandwidth delay networks.This paper aims with providing comparison between existing protocols which will help in building a new approach for this.
Congestion is a problem that occurs on shared networks when multiple users contend for access to the same resources (bandwidth, buffers, and queues).When two packets arrive at the same time then receiver node can only transmit one and either buffer or drop the other.If many packets arrive in a short period of time, the node cannot keep up with the arriving traffic and the buffer may eventually overflow.Now according to researchers Koushik Reddy Ramasani et al., (2014) congestion means, "Increase in network load results in a decrease of useful work done".Here flow control means preventing fast sender from overriding slow receiver and congestion control means preventing set of senders from overloading network.Moving to factors that cause congestion are [Dr. Atul M Gosai et al., 2013]:  Packet arrival rate can't cope up with the outgoing link capacity. Insufficient buffer memory to store arriving packets  Busty traffic  Slow processor Next section covers protocols for congestion control mechanism like TCP, XCP and RCP and discusses their positives and negatives.In section III we concluded with the performance evaluation of these established protocols.

Transmission Control Protocol
According to Nandita Dukkipati (2007)    Doesn't respond well to packet loss due to bit errors and handoff

Explicit Control Protocol
The researcher of paper Magnus Proebster et al., (2009) had given the objective of XCP is efficiently uses the available link capacity, and also distributes the available bandwidth fairly between concurrent connections.These objectives can be achieved by Congestion controller (CC) and a fairness controller (FC), respectively.While the CC periodically computes an aggregate feedback, denoting the required change of the congestion window of all flows, the FC distributes this aggregate feedback fairly between packets, without keeping any per flow state.Where, d0 = a moving average of the RTT measured across all flows, C = link capacity, y(t) = measured input traffic rate during the last update interval (d0 in this case), q(t) = instantaneous queue size, α, β = parameters chosen for stability and performance.
According  2009), the design objective of RCP protocol is to achieve very short flow completion time, i.e., all flows are completed as fast as possible.In order to fulfil this goal RCP requires the processor sharing scheduling algorithm when distributing the link capacity among all flows.
Magnus Proebster et al., (2009), stated that all routerassisted congestion control schemes require additional packet processing in the end-systems and also in all routers.This result in deployment challenges.
However, it is proved that router-assisted congestion control can indeed be implemented at high link speeds.The results show that XCP needs very complex processing procedure in routers, whereas RCP have lower processing requirements.Besides that, the performance of XCP capable routers might be limited due to synchronization issues.RCP does not have this drawback.
According to Nandita Dukkipati & Nick McKeown (2007), FCT is time from when the first packet of a flow is sent (in TCP, this is the SYN packet) until the last packet is received.To minimize FCT for each router a well known method is to use processor-sharing (PS) i.e. a router divides outgoing link bandwidth equally among ongoing flows.
There are three main reasons why TCP and XCP come out with such long FCTs:

Extending Flows to last many Round Trip Times (RTT) in spite of they are Capable of Finishing within one/few RTTs
In tcp flows that have entered AIMD phase have long FCTs because AIMD increases the window size s even slowly.
While in xcp, it gradually reduces the window size of existing flows and increases the window size of new flows, making sure the traffic is never over-subscribed.It takes multiple RTTs for most flows to reach their fair share rate (which is changing as new flows arrive).Many flows complete before they reach their fair share rate.

Filling up Buffers
TCP will try to fill the buffers at the bottleneck linkuntil a packet is dropped.While this leads to high utilization of the bottleneck link, it increases queuing delay, RTT and the FCT.

Timeouts and Retransmissions due to Packet Losses (TCP)
Flows experience packet losses when the buffer overflows.Part of the link utilization is contributed by the retransmitted packets.We recently described a simple congestion control algorithm called the Rate Control Protocol (RCP) that greatly reduces FCTs for a broad range for network and traffic characteristics.Nandita Dukkipati & Nick McKeown (2007A), emulate processor sharing in RCP.In RCP, a router assigns a single rate, R (t), through which all flows pass.Here, the basic idea is: If there is spare capacity available, then share it equally among all flows.Furthermore if there is a queue building up, then the link capacity is insufficient and the flow rate is decreased evenly.This is clearly shown in figure 3.  When a router receives a packet it uses RTTp to update its moving average of the RTT of flows passing through it, d0.
3) The source transmits at rate Rp, which corresponds to the smallest offered rate along the path.4) Each router periodically updates its local R(t) value according to Equation (4) below.
where, d0 = a moving average of the RTT measured across all flows, R(t−d0) = last updated rate, C = link capacity, y(t) = measured input traffic rate during the last update interval (d0 in this case), q(t) = instantaneous queue size, N(t) = router's estimate of the number of ongoing flows (i.e., number of flows actively sending traffic) at time t α, β = parameters chosen for stability and performance.

III. COMPARATIVE STUDY
Magnus Proebster et al., (2009) stated the comparison of RCP with XCP and TCP.The main difference between XCP and RCP is in the kind of feedback that flows receive.XCP gives a window increment or decrement over the current window size of the flow (which is small for all newly starting flows).At any time XCP flows could have different window sizes and RTTs and therefore different rates.XCP continuously tries to meet the point where all flows have the fair-share rate, by slowly reducing the window sizes of the flows with rates greater than fair-share and increasing windows of the flows with rates less than fair-share (while avoiding over-subscription).New flows start with a small window, and the convergence could take several RTTs especially if there is little or no spare capacity.If the flows arrive as a Poisson process with heavy-tailed flow sizes, then most of the flows finish by the time they reach their fair share.
In RCP, all flows (new and old) receive the same rate feedback which is their equilibrium rate.This helps flows finish quickly.XCP is computationally more complex than RCP since it gives different feedback values to each flow, and involves multiplications and additions for every packet.RCP maintains a single rate for all flows and involves no perpacket computation.Router-assisted congestion control is a promising solution for the Future Internet.
According to Dr. Atul Gonsai et al., (2013), the new protocols XCP and RCP can utilize links more efficiently and fairer than state-of the-art TCP mechanisms, since they do not only rely on packet losses to signal congestion.However, they require some limited additional processing in routers.Following figure shows the comparison of performance of TCP, XCP and RCP by taking parameters as Flow completion time and flow length.These results confirm that RCP is indeed better suited, since RCP provides a fast start for short flows.Its performance comes closest to the minimum possible FCT.With the chosen parameters, RCP approximates processor sharing (PS).An interesting effect is that TCP has a shorter FCT for very long flows.But this comes at the cost of larger delays for short flows which are limited by slow-start and results in a longer average FCT.

IV. CONCLUSION
In this paper we have reviewed mechanism of various congestion control protocol TCP, XCP and RCP.Also present the performance comparison of this protocol by taking different parameters like window size, flow length, and flow completion time.As a result RCP and TCP perform well with minimal flow completion time.TCP come up with minimal FCT at cost of large delays and RCP also have problem regarding coexisting with non RCP traffic and non RCP bottlenecks.To solve this we are going to propose a new enhances version of protocol RCP.The future work will be concentrated on the implementation of enhanced RCP protocol.

Figure 1 :
Figure 1: TCP's Congestion Control Mechanism The goal of Slow-Start is to keep a new sender from overflowing network buffers, while at the same time increasing the congestion window fast enough and avoiding performance loss while the connection is operating with a small window [Manjeet Kaur Bedi et al., 2012].Slow-Start increases the congestion window by one MSS for each new acknowledgment received, which results in the window doubling after each window's worth of data is acknowledged.With this exponential increase, RTT log2W (where RTT stands for round-trip time) time is required to reach a window of size W. A connection enters Slow-Start on newly starting or on experiencing a packet retransmission timeout, and exits Slow-Start when it detects a packet loss or when the congestion window has reached a dynamically computed threshold, ssthresh.More specifically, ssthresh is set to half of the current congestion window when packet loss was detected.TCP exits Slow-Start to enter the Congestion Avoidance phase, where it continues to probe for available bandwidth, but more cautiously than in Slow-Start.During periods when no packet losses are observed, TCP performs an Additive Increase of the window size, by 1 MSS each time a full window is acknowledged (i.e., increases the congestion window as,  =  + 1  (1) on receiving each acknowledgment packet).Lu´ıs Barreto & Susana Sargento (2010) paper found the problems with TCP in wired network are as following :  Can't deal with today's increasing bandwidth demands  Unable to utilize network link optimally  Time consuming in finding fair transmission rate Lu´ıs Barreto & Susana Sargento (2010) paper found the problems with tcp In wireless network are as following: Doesn't respond well to packet loss due to bit errors and handoff

Figure 2 :
Figure 2: Principle Function of Explicit Congestion Control CC matches input traffic to link capacity and drains the queue by using MIMD mechanism which gives equation for aggregate traffic changes by following equation,  =   -  (2) FC divides Δ between flows by using AIMD mechanism.If Δ > 0 then divide Δ equally between flows.So equation for feedback is, F=  ∁ −   −    0

Figure 3 :
Figure 3: Processor Sharing in RCP

Figure 5 :
Figure 5: Comparing Flow Completion Time and Processor Sharing of TCP, XCP and RCP Chia-Hui Tai et al., (2008) found that RCP too have some limitations regarding adapting into a network include co-existing with non RCP traffic and non RCP bottlenecks.
Following three main characteristics make RCP simple and practical: The flow rate is picked by the routers and it is based on very little information such as the current queue occupancy and the aggregate input traffic rate. Each router assigns a single rate, R(t), through which all flows pass.Rp into the acknowledgment packets, so as to notify the source.The packet header also carries an RTT field, RTTp, where RTTp is the source's current estimate of the RTT for the flow.

Table 1 :
Comparison for the Congestion Control Protocol