Ftp download mi u idealnim uslovima (kada ne ide nikakav upload) iznosi 410KB/s. Kada startujem maksimalni upload (ping -s 1420 -i 0 ....) bez traffic shapinga se potpuno uguši, a sa traffic shapingom padne na oko 150-200KB/s. Nisam baš zadovoljan. Medjutim, kada uradim upload sa nekim manjim paketima (ping -s 230 -i 0 ....) dešava se da download padne na čak nekih 40-50 KB/s, sa čime sam još manje zadovoljan.
Prvo sam probao hfsc shaping, a onda i htb sa prioritetima, ali rezultati su skoro identični.
Code:
tc qdisc add dev $DEV root handle 1: hfsc default 10
tc class add dev $DEV parent 1: classid 1:1 hfsc sc rate ${RATEUP}kbit ul rate ${RATEUP}kbit
# DEFAULT:
tc class add dev $DEV parent 1:1 classid 1:10 hfsc ls rate $[${RATEUP}/10]kbit ul rate ${RATEUP}kbit
# ACK:
tc class add dev $DEV parent 1:1 classid 1:12 hfsc sc m1 $[${RATEUP}/10]kbit d 30ms m2 $[${RATEUP}/10]kbit ul rate ${RATEUP}kbit
tc filter add dev $DEV parent 1: prio 1 protocol ip handle 2 fw flowid 1:12
iptables -t mangle -A SIPSHAPER -p tcp -m tcp --tcp-flags SYN,RST,ACK,FIN ACK -m length --length :80 -j MARK --set-mark 2
#ovo je samo deo skripte, pa se ne čudite što su obe klase na ${RATEUP}/10
tc qdisc add dev $DEV root handle 1: hfsc default 10
tc class add dev $DEV parent 1: classid 1:1 hfsc sc rate ${RATEUP}kbit ul rate ${RATEUP}kbit
# DEFAULT:
tc class add dev $DEV parent 1:1 classid 1:10 hfsc ls rate $[${RATEUP}/10]kbit ul rate ${RATEUP}kbit
# ACK:
tc class add dev $DEV parent 1:1 classid 1:12 hfsc sc m1 $[${RATEUP}/10]kbit d 30ms m2 $[${RATEUP}/10]kbit ul rate ${RATEUP}kbit
tc filter add dev $DEV parent 1: prio 1 protocol ip handle 2 fw flowid 1:12
iptables -t mangle -A SIPSHAPER -p tcp -m tcp --tcp-flags SYN,RST,ACK,FIN ACK -m length --length :80 -j MARK --set-mark 2
#ovo je samo deo skripte, pa se ne čudite što su obe klase na ${RATEUP}/10
Code:
tc qdisc add dev $DEV root handle 1: htb default 20
tc class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}kbit burst 6k
# high prio class 1:10:
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${UPLINK}kbit \
burst 6k prio 1
# bulk & default class 1:20 - gets slightly less traffic, and a lower priority:
tc class add dev $DEV parent 1:1 classid 1:20 htb rate $[9*$UPLINK/10]kbit \
burst 6k prio 20
# both get Stochastic Fairness:
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
# TOS Minimum Delay (ssh, NOT scp) in 1:10:
tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \
match ip tos 0x10 0xff flowid 1:10
# To speed up downloads while an upload is going on, put ACK packets in
# the interactive class:
tc filter add dev $DEV parent 1: protocol ip prio 10 u32 \
match ip protocol 6 0xff \
match u8 0x05 0x0f at 0 \
match u16 0x0000 0xffc0 at 2 \
match u8 0x10 0xff at 33 \
flowid 1:10
tc qdisc add dev $DEV root handle 1: htb default 20
tc class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}kbit burst 6k
# high prio class 1:10:
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${UPLINK}kbit \
burst 6k prio 1
# bulk & default class 1:20 - gets slightly less traffic, and a lower priority:
tc class add dev $DEV parent 1:1 classid 1:20 htb rate $[9*$UPLINK/10]kbit \
burst 6k prio 20
# both get Stochastic Fairness:
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
# TOS Minimum Delay (ssh, NOT scp) in 1:10:
tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \
match ip tos 0x10 0xff flowid 1:10
# To speed up downloads while an upload is going on, put ACK packets in
# the interactive class:
tc filter add dev $DEV parent 1: protocol ip prio 10 u32 \
match ip protocol 6 0xff \
match u8 0x05 0x0f at 0 \
match u16 0x0000 0xffc0 at 2 \
match u8 0x10 0xff at 33 \
flowid 1:10