An optimization approach for congestion control in network routing with quality of service requirements