Congestion Control in TCP is the algorithm that controls allocation of network resources for a number of competing users sharing a network. The nature of computer networks, which can be described from the TCP protocol perspective as unknown resources for unknown traffic of users, means that the functionality of the congestion control algorithm in TCP requires explicit feedback from the network on which it operates. Unfortunately this is not the way it works with TCP, as one of the fundamental principles of the TCP protocol is to be end-to-end, in order to be able to operate on any network, which can consist of hundreds of routers and hundreds of links with varying bandwidth and capacities. This fact requires the Congestion Control algorithm to be adaptive by nature, to adapt to the network environment under any given circumstances and to obtain the required feedback implicitly through observation and measurements. In this thesis we propose a new TCP end-to-end congestion control algorithm that provides performance improvements over existing TCP congestion control algorithms in computer networks in general, and an even greater improvement in wireless and/or high bandwidth- delay product networks.