2015-08-05 5 views
0

# Sous-question 1limite pas BANDWITH, mais les paquets par seconde dans linux

tc avec tous ses qdisc s est moyen idéal pour limiter la bande passante, mais est-il un moyen de Linux pour limiter pps des paquets outcoming?

Pourquoi je le demande. Normalement, vous ne pensez qu'à une seule ressource: la bande passante (octets par seconde), mais quand une application commence à générer énormément de petits paquets (par exemple, les requêtes http GET à différents sites contenant relativement peu d'octets) alors probablement pps sera la ressource.

# 2 Sous-question

Alors, je veux partager tout mon trafic en deux groupes - le groupe A avec de petits pps et la bande passante (priorité élevée), et le groupe B avec de grands pps et une faible priorité. Et puis je veux limiter le résumé (des deux groupes) pps sortant, priorisant les paquets du groupe A.

P.S. Bien sûr, je veux partager le canal commun entre ces deux groupes. Donc je ne peux pas limiter seulement B, parce que quand A n'utilise pas du tout le canal, B doit en utiliser 100%.

Est-ce possible? Comment?

Répondre

0

Ok, voici la décision à ce problème. Vous pouvez utiliser iptables de telle manière

sudo iptables -I OUTPUT 1 -m owner --uid-owner debian-tor -j NFQUEUE --queue-num 1 
sudo iptables -A OUTPUT         -j NFQUEUE --queue-num 0 

Cela va rediriger tout le trafic tor à la file d'attente numéro 1, et tout autre trafic à la file d'attente numéro 0.

étape suivante consiste à écrire l'application de l'espace utilisateur, qui lira les paquets des files d'attente et émettra des verdicts - accepter ou supprimer.

Here is excellente description de la façon de construire cette application

Et here is la mise en œuvre de cette application. Main part de l'ensemble de l'application est en TScheduler::operator()