TCP Westwood+ is a sender-side only modification of the TCP Renoprotocol stack that optimizes the performance of TCP congestion control over both wireline and wireless networks. TCP Westwood+ is based on end-to-end bandwidth estimation to set congestion window and slow startthreshold after a congestion episode, that is, after three duplicate acknowledgments or a timeout. The bandwidth is estimated by properly low-pass filtering the rate of returning acknowledgment packets. The rationale of this strategy is simple: in contrast with TCP Reno, which blindly halves the congestion window after three duplicate ACKs, TCP Westwood+ adaptively sets a slow start threshold and a congestion window which takes into account the bandwidth used at the time congestion is experienced. TCP Westwood+ significantly increases throughput over wireless links and fairness compared to TCP Reno/New Reno in wired networks. TCP Westwood+ is an evolution of TCP Westwood. The main idea of Westwood TCP, which is an end-to-end bandwidth estimation for setting control windows after congestion, was proposed by Saverio Mascolo. He came out with the idea after reading the chapter on TCP congestion control in the book Data Networks by Larry Peterson. The first implementation of TCP Westwood in ns2 was done at University of California, Los Angelesin 1999. The name "Westwood" was chosen by S. Mascolo as due homage to the home of UCLA where he was a visiting researcher at that time. Main collaborators were prof. Mario Gerla, Dr. Claudio Casetti and Dr. Medy Senadidi. After that, went back to Italy and "his evolution of Westwood TCP" was named Westwood+. The main novelty of Westwood+ was the algorithm used to estimate the available bandwidth end-to-end. In fact, it was soon discovered that the Westwood bandwidth estimation algorithm did not work well in the presence of reverse traffic due to ack compression. This phenomenon was explained in terms of aliasing effects. The new version Westwood+ was implemented for the first time in the kernel of Linux 2.2 by Roberto Ferorelli and in the kernel of Linux 2.4 and 2.6 by Angelo Dell'Aera, both working at Politecnico di Bari as undergraduate students in 2003 and 2004.