Il est en fait assez difficile façonner par application à l'aide des outils du noyau Linux, à moins que l'application utilise des adresses IP spécifiques et/ou ports que vous pouvez rechercher des correspondances sur.
En supposant que c'est le cas, alors vous aurez besoin de lire sur iptables
et en particulier fwmarks. Vous aurez également besoin de lire sur tc
. En combinaison, ces deux outils peuvent faire ce que vous voulez. Le Linux Advanced Routing & Traffic Control est un bon point de départ.
En supposant que votre application n'utilise pas un ensemble prévisible de ports/adresses IP, vous devez utiliser un shaper d'espace utilisateur tel que Trickle. Cela s'insère entre l'application et le noyau et forme le trafic pour cette application dans l'espace utilisateur.
Je ne pense pas qu'il y ait des liaisons python direct pour l'un de ces outils, mais il serait simple de les utiliser de script python et simplement appeler directement les exécutables.
+1 pour les pointeurs python. – whatnick