Es ist eigentlich ziemlich hart Forming pro Anwendung mit den Linux-Kernel-Tools, es sei denn, die Anwendung verwendet bestimmte IP-Adressen und/oder Ports, die Sie anpassen können.
Angenommen, dass dies der Fall ist, dann müssen Sie auf iptables
und insbesondere fwmarks lesen. Sie müssen auch auf tc
nachlesen. In Kombination können diese zwei Werkzeuge tun, was Sie wollen. Die Linux Advanced Routing & Traffic Control ist ein guter Anfang.
Angenommen, Ihre Anwendung verwendet keine vorhersehbaren Ports/IP-Adressen, dann müssen Sie einen Userspace-Shaper wie Trickle verwenden. Dies fügt sich zwischen der Anwendung und dem Kernel ein und formt den Datenverkehr für diese Anwendung im Benutzerbereich.
Ich glaube nicht, dass es irgendwelche direkte Python-Bindungen für irgendwelche dieser Werkzeuge gibt, aber es wäre einfach, sie mit Python zu skripten und die ausführbaren Dateien direkt aufzurufen.
+1 für Python-Zeiger. – whatnick