This paper presents a simple and effective control scheme for TCP congestion control that minimizes packet losses and guarantees an efficient network utilization. Contrary to most of the control strategies presented in literature, which are in general defined and tuned for an specific case of study, the structure proposed in this paper is capable to deal with most of the situations giving a good performance: small buffer high-speed networks, networks with high delays between sender and receiver, mobile networks and stress operation. To do it, a simple adaptive model for the queue dynamics of TCP protocol is developed and a Smith predictor-based controller, simple from the implementation standpoint, is designed to perform the congestion control. Simulations using NS-2 network simulator allow to validate the proposed model and controller in several case studies.