The Van Jacobson congestion control algorithm is an important and complex part of the TCP stack. It is complex because implements closed-loop control and important since is in charge of avoiding Interent congestion collapse. Classic (Tahoe/Reno) Van Jacobson TCP congestion control and its modifications (New Reno etc.) are based on an increasing/decreasing paradigm to probe the network capacity. The probing phase is made of a quick phase (exponential slow-start) and a gentle phase (linear congestion avoidance). The decrease phase is multiplicative, i.e. the congestion window and the slow-start threshold are reduced by half after congestion. Westwood+ TCP is a sender-side only modification of the classic TCP based on adaptively setting the congestion window after congestion by taking into account the capacity available at the end of the probing cycle. The key idea of TCP Westwood+ is to exploit the stream of returning ACK packets to estimate the capacity available for the TCP connection. The issue of e2e bandwidth estimation is an interesting one by itself and we will show that, due to ACK compression, it is necessary to employ an anti-compression procedure that plays in packet networks the role of a classic anti-aliasing filter in analog-digital signal processing. Ns-2 simulations and Linux implementations will illustrate the performace of Westwood+ TCP that results to be significantly more efficient over lossy channels, such as in the case of radio links affected by fading and shadowing. A comparison with the preformance of New Reno and Vegas TCP will be developed using computer simulations. Considering Vegas is still of interest since the new Fast TCP is, in authors words, "a high speed version of Vegas". We have found that Vegas not only is unable to coexist with Reno but alsoit is not able to use network capacity in the presence of reverse traffic , like any RTT based congestion detection algorithm. Recent experiments at SLAC Laboratory have confirmed this also for Fast TCP. To conclude we will take a look at TCP congestion control from a control theoretic perspective based on the Smith principle.