In this paper, we consider the joint problem of congestion control and scheduling with multi-class Quality of Service (QoS) requirements. Generally, the joint problem is formulated as a Network Utility Maximization (NUM) problem and can be decomposed into a congestion control problem and a scheduling problem. Usually, the congestion control problem can be solved in a distributed manner by tracking per-destinationqueue for every flow, which requires that every node should maintain many queues, each corresponding to one destination. With QoS constraints imposed on the congestion control problem, it is hard to obtain an explicit distributed solution. To address this, we propose 1) using per-next-hop-queue instead of perdestination-queue, which considerably reduces queuing overhead, 2) a Sliding Mode (SM) approach to designing a distributed controller for the congestion control problem while satisfying multi-class QoS requirements in the multi-path and multi-hop scenario. We also prove the...