tc taxa de classe 50Kbps! = 50K / s no wget?

3

Obteve a seguinte configuração de regras de teste:

tc qdisc add dev wlan0 root handle 1: htb
tc class add dev wlan0 parent 1: classid 1:1 htb rate 1000Mbps
tc class add dev wlan0 parent 1:1 classid 1:5 htb rate 50Kbps ceil 50Kbps burst 1kbit cburst 1kbit
tc qdisc add dev wlan0 parent 1:5 handle 5:0 sfq perturb 5
tc filter add dev wlan0 parent 1:0 protocol ip u32 match ip dport 80 0xffff classid 1:5
tc filter add dev wlan0 parent 1:0 protocol ip u32 match ip sport 80 0xffff classid 1:5

(Eu tentei isso com o iptables --set-mark também, mas sem qualquer sorte, então eu retornei às regras tc simples "simples").

Este exemplo funciona no sentido de que, marca meus: 80 pacotes e os limita mas não a 50Kbps ...

  • wget diz:

    0% [ ] 4,142,336    490K/s
    
  • tc -s class show dev wlan0 diz:

    root@bt:~/Desktop/tk_net# tc -s class show dev wlan0
    class htb 1:5 parent 1:1 leaf 5: prio 0 rate 400000bit ceil 400000bit burst 128b cburst 128b 
     Sent 7234 bytes 113 pkt (dropped 0, overlimits 0 requeues 0) 
     rate 3584bit 7pps backlog 0b 0p requeues 0 
     lended: 113 borrowed: 0 giants: 0
     tokens: 17500 ctokens: 17500
    
    class htb 1:1 root rate 8000Mbit ceil 8000Mbit burst 0b cburst 0b 
     Sent 7234 bytes 113 pkt (dropped 0, overlimits 0 requeues 0) 
     rate 3584bit 7pps backlog 0b 0p requeues 0 
     lended: 0 borrowed: 0 giants: 0
     tokens: 15 ctokens: 15
    
  • Mudando:

    classid 1:5 htb rate 50Kbps ceil 50Kbps
    

    para

    classid 1:5 htb rate 1Kbps ceil 1Kbps
    

    gera ~ 34.7K / s no wget

  • e tc dizem:

    root@bt:~/Desktop/tk_net# tc -s class show dev wlan0
    class htb 1:5 parent 1:1 leaf 5: prio 0 rate 8000bit ceil 8000bit burst 127b cburst 127b 
     Sent 44799 bytes 644 pkt (dropped 112, overlimits 0 requeues 0) 
     rate 2544bit 4pps backlog 0b 0p requeues 0 
     lended: 641 borrowed: 0 giants: 0
     tokens: 1124984 ctokens: 1124984
    
    class htb 1:1 root rate 8000Mbit ceil 8000Mbit burst 0b cburst 0b 
     Sent 44601 bytes 641 pkt (dropped 0, overlimits 0 requeues 0) 
     rate 4208bit 7pps backlog 0b 0p requeues 0 
     lended: 0 borrowed: 0 giants: 0
     tokens: 15 ctokens: 15
    

Eu segui estas instruções:

O que estou fazendo errado ao tentar limitar a entrada / saída: 80 tráfego?

    
por Torxed 19.12.2012 / 09:09

1 resposta

8

Você não pode usar a formatação para limitar as taxas de tráfego de entrada. Para isso, você precisa usar policiamento e pode ter eficácia limitada.

A modelagem controla a taxa na qual os pacotes são enviados por uma interface de rede. As regras que você definiu controlam a saída da rede.

Os pacotes chegam a qualquer taxa que o outro lado esteja enviando. O policiamento pode ajudar, limitando a taxa em que os pacotes são alimentados na fila de entrada, descartando pacotes que excedem essa taxa determinada. O TCP deve então ajustar sua taxa de envio. Protocolos sem controle de congestionamento (UDP e protocolos baseados nele) não diminuirão quando os pacotes forem descartados, portanto, o policiamento não terá efeito sobre a taxa do remetente.

O policiamento com a modelagem de tráfego do Linux é feito com um filtro de ingresso. Comece com o link .

    
por 19.12.2012 / 10:06