I. INTRODUCTION AND MOTIVATION
Network Quality of Service (QoS) is especially important
for the new generation of Internet applications such as voiceover-
IP, video-on-demand and peer-to-peer (P2P)
applications. Some core networking technologies like Ethernet
were not designed to support prioritized traffic or guaranteed
performance levels, making it much more difficult to
implement QoS solutions across the Internet. The goal of QoS
is to provide guarantee on the ability of a network to deliver
predictable performance. Elements of network performance
within the scope of QoS often include availability (uptime),
bandwidth (throughput), latency, and error rate.
Traffic control is used to manage traffic for Quality of
Service (QoS). It helps to improve network latency, service
availability and bandwidth utilization by attempting to
prioritize network resources and guarantee bandwidth levels
based on predefined policies. Traffic control requires elements
such as admission control (to discard or mark packets), traffic
classifier (to sort or separate packets into queues), scheduler
(to arrange packets into queues), and shaper (to delay packets
to meet a desired rate).
Linux offers a very powerful tool for traffic control, namely
tc [1]. tc is a useful Linux command line tool for configuring
the kernel structures required to support traffic control. The tc
command line utility has an arcane and complex syntax, even
for a simple operation. This makes it extremely difficult for a
novice user to properly operate traffic control on Linux. As a