The Performance of Transport Protocols Namely TCP
Added on - 13 Sep 2019
Abstract—this paper studied and compared the performance of transport protocols namely TCP (Rubic) and TCP (Westwood) bymeans of network simulation.Keywords—tcp, congestion avoidanceI.INTRODUCTIONTransmission Control Protocol (TCP) uses a networkcongestion-avoidance algorithm that includes variousaspects of an additive increase/multiplicative decrease(AIMD) scheme, with other schemes such as slow-start toachieve congestion avoidance. The TCP congestion-avoidance algorithm is the primary basis for congestioncontrol in the Internet. There are two classic TCP variants, TCP Tahoe and TCPReno. The two algorithms were named after the 4.3BSDoperating system.The “Tahoe” algorithm first appeared in4.3BSD-Tahoe that was developed to support the CCIPower 6/32 “Tahoe” minicomputer, and was available tonon-AT&T licensees as part of the “4.3BSD NetworkingRelease 1.” Enhancements were implemented to 4.3BSD-Reno and released as “Networking Release 2” and later“4.4BSD-Lite”.  Tahoe and Reno are similar where bothconsider retransmission timeout (RTO) and duplicate ACKsas packet loss events. The main difference is in how theyreact to duplicate acknowledgement:Tahoe: If three duplicate ACKs are received, it performsa fast retransmit, sets the slow start threshold to half of thecurrent congestion window, reduces the congestion windowto 1 MSS, and resets to slow-start state.Reno: If three duplicate ACKs are received, it alsoperforms a fast retransmit but skip the slow-start phase bysetting the threshold value equivalent to the new congestionwindow, then go into the Fast Recovery state.In both Tahoe and Reno, if an ACK times out (RTOtimeout), slow start is used, and both algorithms reducecongestion window to 1 MSS.In Fast Recovery state, TCP retransmits the missing packet,then waits for an acknowledgment of the entire transmitwindow before returning to congestion avoidance. If there isno acknowledgment, TCP Reno experiences a timeout andenters the slow-start state.II.TCP CONGESTION CONTROL OVER VIEWA.OperationTCP uses a congestion control strategy to avoidcongestive collapse. It maintains a congestion window foreach connectionso it controls the total number ofunacknowledged packets in end-to-end transit. This issimilar to TCP's sliding window used for flow control.There is mechanism called slow start that TCP uses toincrease the congestion window after a connection isinitialized and after a timeout. It starts with a windowdouble the maximum segment size (MSS). Even though theinitial rate is low, it increase rapidly:Congestion windowincreases by 1 MSS for every packet acknowledged, thatmeans the congestion window doubles for every round-triptime (RTT).the slow start algorithm enters a new state ifthe congestion window exceeds the ssthresh threshold that iscongestion avoidance. As a result of having large initialssthresh in some implementations (e.g., Linux), the firstslow start usually ends after a loss. Nevertheless, ssthresh isupdated at the end of each slow start and will affectsubsequent slow starts caused by timeouts.In congestion avoidance state, the congestion window isincreased additively by one MSS every RTT, as long asnon-duplicate ACKs are received. In case of packet loss, thepossibility of duplicate ACKs being received is very high(duplicate ACKs could be prompted as result of a lot ofpacket reordering on the stream). B.Congestion windowIn (TCP), the congestion window is “one of the factorsthat determines the number of bytes that can be outstandingat any time”.  The congestion window is maintained bythe sender, where the TCP window size is maintained by thereceiver. The congestion window main objective is to controlthe link between the sender and the receiver and stop it fromgetting overloaded with too much traffic. It is measured byapproximating how much congestion there is between towends (sender & receiver) and the value maintainedindependently at each host. When a connection is set up, the congestion windowvalue is set to a small multiple of the (MSS) allowed on thatconnection. Additional alteration in the congestion windowis applied by an Additive Increase/Multiplicative Decreaseapproach (AIMD).So, if all segments are received and theacknowledgments reach the sender on time, there will besome constant added to the window size. The window willkeep increasing exponentially until a timeout occurs or thereceiver reaches its limit (a threshold value "ssthresh"). Afterthis the congestion window increases linearly at the rate of 1/(congestion window) packets on each new acknowledgementreceived. On timeout:1.Congestion window is reset to 1 MSS2."ssthresh" is set to half the congestion windowsize before packet loss started3."slow start" is initiated.
As part of TCP tuning, the system administrator couldmodify the maximum window size limit, or the constantadded during additive increase.C.Slow startSlow-start is part of the congestion control strategy used byTCP. Slow-start is used in conjunction with otheralgorithms to avoid sending more data than the network iscapable of transmitting, that is, to avoid causing networkcongestion. Slow-start begins initially with a congestion window Size(cwnd) of 1, 2 or 10.  the value of Congestion windowincreases by 1 MSS for every packet acknowledged, thatmeans the congestion window doubles for every round-triptime (RTT) ("although it is not exactly exponential becausethe receiver may delay its ACKs, typically sending oneACK for every two segments that it receives"). Thetransmission rate will be increased with slow-start algorithmuntil either a loss is detected, or the receiver's advertisedwindow (rwnd) is the limiting factor, or the slow startthreshold (ssthresh) is reached. If a loss event occurs, TCPassumes that it is due to network congestion and takes stepsto decrease the load on the network. Depending on the usedTCP congestion avoidance algorithm, these measurementsvaries. Once ssthresh is reached, TCP changes from slow-start algorithm to the linear growth (congestion avoidance)algorithm. At this point, the window is increased by 1segment for each RTT.Although the strategy is referred to as "Slow-Start", itscongestion window growth is quite aggressive, moreaggressive than the congestion avoidance phase.  Beforeslow-start was introduced in TCP, the initial pre-congestionavoidance phase was even faster.The behavior upon packet loss depends on the TCPcongestion avoidance algorithm that is used.III.TCP CUBICTCP CUBIC is also known as window-basedcongestion control. In TCP CUBIC, protocols are appliedusing window sizesw. The number of packets in thenetwork are limited tow, and the source rate is equal towmultiplied by the message size divided by round trip time(RTT), in bits per second (bps). In casewis too small, thelink capacities will underutilization, and in case it is toolarge, congestion occurs.CUBIC does depend on the size ofthe last congestion event at the time instead of ACKs forwindow size increases. In this manner, congestion ismitigated over time, with continual improvement. It is thedefault protocol used for congestion control in Linuxkernels 2.6-3.1IV.TCP WESTWOODTCP Westwood used for congestion control for bothwired and wireless networks. A sender-side modification ofTCP Reno, it modifies the basic congestion windowalgorithm in order to decrease end-to-end congestion, withthe greatest improvement visible in wireless networks. TCPWestwood monitors the sender’s bandwidth nonstop andACK return rates then adjusts for congestion accordingly. Itdoes not inspect or intercept packets at proxy notes. “Fasterrecovery” method, in which picking a slow start thresholdconsistent with wireless networking capabilities, and takinginto account packet loss as a feature of wireless networks,instead of viewing it as network congestion. TCP Westwoodis very effective in mixed wired/wireless networks, withthroughput improvements of 550% possible when applied.V.SIMULATIONSimulations were completed over three different networkscenarios, normal, Lossy, and LFN, for each TCP variant.The congestion window size (CWND) were then recordedacross each network. Results were plotted in the respectivegraphs. The congestion windows over time indicate theamount of congestion that occurred, allowing fordocumentation of the best means of congestion control foreach network type. It was assumed that the simulationswould depict normal network traffic for each of the threedifferent network scenarios.A.SetupThe simulation program simulates file transfer usingTCP over a network with a bottleneck link. To completethis simulation, the scenario implemented consisted of asimple network of N clients talking to N servers througha single backbone link. This topology, referred to as adumbbell network, is illustrated below. The applicationused here is a simple TCP Bulksender that keepssending bytes up until the total bytes in the file havebeen sent.Network topology:backbone line is between node 0 and node 1clients are on the left side (even node numbers)servers are on the right side (odd nodenumbers)Figure 1: Dumbbell networkn2 ---+ +--- n3| |n0 -- n1| |n4 ---+ +--- n5