Různé síťové služby mají na síť různé požadavky. Například služby jako Voice over IP nebo IP-TV požadují stálou přenosovou rychlost a jsou citlivé na zpoždění, narozdíl třeba od e-mailu, kde nezáleží na rychlosti, ale na tom, jestli pakety dojdou všechny. Ke klasifikaci slouží pojem kvalita služby, známý jako QoS (Quality of Service). Můžeme ho definovat jako souhrn těchto vlastností:
Integrated services je model založený na protokolu Resource ReSerVation Protocol (RSVP). Je vhodný jen pro menší sítě, protože požaduje, aby všechny routery na trase měly uložené informace o svých datových tocích. Ve větších sítích jsou tímto routery nadměrně zatěžovány, takže v Internetu se IntServ nepoužívá.
Differentiated services je daleko používanější než IntServ. Třídí jednotlivé pakety do tříd a do hlavičky IP paketu do pole TOS ukládá informaci o tom, ke které třídě paket náleží. Pole TOS je často označováno jako DS. Režii mají na starosti pouze vysílající a přijímající router.
U odchozího provozu se toto omezování nazývá shaping a děje se pomocí zahazování, zpožďování a přeřazování paketů tak, aby nepřekročily šířku pásma (V Linuxu se pouze zahazuje).
Neboli omezení šířky pásma na vstupním rozhraní. V podstatě není možné, protože to, jak ostatní počítače vysílají, ovlivnit nemůžeme. Lze ovšem využít jednu vlastnost TCP: pokud budeme zahazovat pakety na vstupu, tak druhá strana zpomalí jejich vysílání. Někdy nám může pomoci předřazení virtuálního rozhraní (toto rozhraní je ale pak vystaveno stejnému problému, jaký mělo rozhraní původní).
Do jádra přidat (počet IMQ zařízení stačí 2):
CONFIG_IMQ (Network device support/IMQ (intermediate queueing device) support)
CONFIG_IP_NF_TARGET_IMQ (Networking options/IP: Netfilter Configuration/IMQ target support)
Je třeba mít podporu pro iptables a QoS.
Příkaz tc (traffic control)
tc qdisc del dev eth0 root tc qdisc add dev eth0 root handle 1:0 htb default 11 tc class add dev eth0 parent 1:0 classid 1:1 rate 128kbit tc class add dev eth0 parent 1:1 classid 1:11 rate 64kbit ceil 128kbit tc class add dev eth0 parent 1:1 classid 1:12 rate 32kbit
Pakety čekají ve frontě a pořadí jejich odeslání určují disciplíny qdisc (Queue disciplin).