wget의 tc 클래스 속도는 50Kbps입니다! = 50K/초?

wget의 tc 클래스 속도는 50Kbps입니다! = 50K/초?

다음 테스트 규칙 설정을 가져옵니다.

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

(저는 또한 아무런 행운도 없이 iptables --set-mark를 사용해 보았습니다. 그래서 기본적으로 간단한 "간단한" tc 규칙으로 돌아갔습니다.)

이 예일하다어떤 의미에서,내 :80 패키지를 표시했습니다.그리고 그것들을 제한해라하지만 50Kbps 미만...

  • wget설명하다:

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

    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
    
  • 변화:

    classid 1:5 htb rate 50Kbps ceil 50Kbps
    

    도착하다

    classid 1:5 htb rate 1Kbps ceil 1Kbps
    

    wget에서 생성됨 ~ 34.7K/s

  • 그리고 tc말했다:

    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
    

나는 다음 지침을 따랐습니다.

인바운드/아웃바운드:80 트래픽을 제한하려고 할 때 내가 뭘 잘못하고 있나요?

답변1

셰이핑을 사용하여 들어오는 트래픽의 속도를 제한할 수 없습니다. 이렇게 하려면 감독 기능을 사용해야 하지만 그 효과는 제한될 수 있습니다.

쉐이핑은 네트워크 인터페이스에서 패킷이 전송되는 속도를 제어합니다. 설정한 규칙은 네트워크 송신을 제어합니다.

패킷은 상대방이 보낸 속도로 도착합니다. 정책은 지정된 속도를 초과하는 패킷을 삭제하여 패킷이 입력 대기열에 공급되는 속도를 제한할 수 있습니다. 그런 다음 TCP는 전송 속도를 조정해야 합니다. 혼잡 제어가 없는 프로토콜(UDP 및 이를 기반으로 하는 프로토콜)은 패킷이 손실될 때 속도가 느려지지 않으므로 정책은 발신자의 속도에 영향을 미치지 않습니다.

Linux 트래픽 셰이핑의 규제는 수신 필터를 통해 수행됩니다. 에서 시작하다http://lartc.org/howto/lartc.adv-qdisc.ingress.html.

관련 정보