The paper addresses the issue of providing Quality of Service (QoS) guarantees in the Internet. After a brief discussion of Internet traffic characteristics, we consider the possibility of performing multiplexing with predictable performance for stream and elastic traffic using open–loop and closed–loop control, respectively. QoS depends essentially on providing sufficient capacity to handle expected demand. We argue that flow awareness is additionally necessary to ensure that traffic is directed over routes with available capacity and to avoid congestion collapse in case of overload. Proposed flow–aware controls allow simple volume–based charging and the development of an economic model similar to that of the telephone network.