## 1 Introduction  
A computer network is a collection of computers that are interconnected together for the purpose of resource sharing. With increasing real-time requirements, a computer network has to provide different types of applications and services. Today, billions of computers are connected to the internet and thousands of terabytes of data are being transmitted per hour. When too many packets arrive at one place, the network will not be able to handle the packets; this situation leads to congestion in the network. Congestion may occur when the load on the network is greater than the capacity of the network. At the point when the network is congested, the performance of the network may deteriorate or become worse in the realm of delay, packet loss, etc. Because of the explosive growth of the internet, congestion avoidance and control play an important role in transport layer functionality [1]. The objective of congestion control is to maximize the network performance in all circumstances. Transmission Control Protocol (TCP) is one of the transport layer protocols used for bulk data transfer. However, TCP is not always quite appropriate for transmitting real time multimedia applications like online video streaming applications due to the manner it handles the congestion [2]. On the internet, the majority of internet traffic is TCP based [3], so end systems should have to react to congestion over the network in order to achieve high network utilization and a fair share of bandwidth. TCP New Reno [4] is a variant of TCP, which is employed to regulate the congestion by adjusting the number of data packets that can be transmitted without affirmation. Moreover, once packet loss is identified in the network, TCPNew Reno reduces its congestion window to manage congestion. This accelerates to insufficient data transmission for continuous play back videos. To avoid the potential impedences to the internet, TFRC [5] is designed. The main objective of TFRC is to provide smoother throughput than TCP for real time applications and its working functionality can be represented by Figure 1.  
TFRC is an end to end transport layer congestion control mechanism for unicast streams in the best effort surroundings. TFRC can react to changes in transmission capacity and it can alter its sending rate based on round trip time and loss event rate. TFRC alters its sending rate depending on the TCP Reno equation as given below  
\[X=\frac{S}{RTT\sqrt{\frac{2 bp}{3}}+3*RTO\sqrt{\frac{3 bp}{8}}p(1+32p^{2})} \tag{1}\]  
where, X represents throughput in bytes per second, S denotes the packet length in bytes, RTT is round trip time, b indicates the number of packets that are acknowledged by one Acknowledgement (ACK), the loss event rate is denoted by 'p' and RTO represents retransmission time out value. This condition keeps up an unfaltering state sending rate to the network to avoid unexpected vacillations. By setting the parameter acknowledged by one ACK to 1 and by considering four times of round trip time as one retransmission time out value, TFRC throughput equation can be framed in terms of packet length, loss event rate and round trip time as follows  
\[X=\frac{S}{RTT\sqrt{\frac{2p}{3}}+12*RTT\sqrt{\frac{3p}{8}}p(1+32p^{2})} \tag{2}\]  
In view of the above condition, TFRC works as follows. At the initial step, the receiver measures loss event rate by using Average Loss Interval method and forwards this information to the sender. Sender calculates round trip time based on received information. Sender calculates its sending rate as a function of loss event rate and round trip time and this can be represented as f(S,p,RTT). The sender keeps up its sending rate in view of its computed rate from the above condition. Finally, TFRC sending rate is primarily a function of loss event rate and round trip time. TCP Friendly Rate Control protocol is primarily designed to present the smooth and best possible service for streaming applications which is supporting it best in the internet environment.