This paper presents a hop-by-hop congestion control for highspeed networks. The control policy relies on the data exchange between adjacent nodes of the network (nearest-neighbour interaction). The novelty of this paper consists in the extensive use of Internal Model Control (IMC) to set the rates of the traffic flows. As a result, the proposed congestion control provides upper-bounds of the queue lengths in all the network buffers (overflow avoidance), avoids wasting the assigned capacity (full link utilisation) and guarantees the congestion recovery. Numerical simulations prove the effectiveness of the scheme.