Abstract
During periods of congestion, TCP flows back off and adjust the sending rate. This behavior makes TCP a conservative protocol and helps to avoid congestion collapse. Flows, like UDP, do not respond to congestion and keep sending packets. This causes other TCP flows sharing the same link to back off. Unresponsive flows waste resources by taking their shares in the upstream and dropping packets later when the downstream is congested. We use the Differentiated Services (DiffServ) architecture to solve this problem. With the help of core routers of DiffServ networks, we detect congestion due to unresponsive flows an using edge routers we control/shape these flows. We describe how core routers detect congestion and inform edge routers about it. We design an algorithm to regulate unresponsive flows dynamically. Our rate control algorithm works well in a variety of situations. The goal of this work is to ensure that TCP does not starve due to unresponsive flows as well as to stop bandwidth waste in upstream path when packets are dropped in the downstream because of unresponsive flows.