To really understand QoS, 1st step is to get familiar with underlying technology.
Some unordered links:
https://www.coverfire.com/articles/queueing-in-the-linux-network-stack/
http://wiki.linuxwall.info/doku.php/en:ressources:dossiers:networking:traffic_control