Buffer Bloat » Historique » Version 22
Laurent GUERBY, 09/05/2012 09:15
1 | 22 | Laurent GUERBY | {{>toc}} |
---|---|---|---|
2 | 22 | Laurent GUERBY | |
3 | 1 | Laurent GUERBY | h1. Buffer Bloat |
4 | 1 | Laurent GUERBY | |
5 | 1 | Laurent GUERBY | * http://bufferbloat.net |
6 | 21 | Jocelyn Dealande | * Bonne vulgarisation/explication du principe en Français : http://linuxfr.org/news/sortie-du-noyau-linux-3-3#toc_11 |
7 | 1 | Laurent GUERBY | * http://queue.acm.org/detail.cfm?id=2071893 |
8 | 12 | Laurent GUERBY | * via obinou change default queue : http://www.bufferbloat.net/issues/305 |
9 | 13 | Laurent GUERBY | * BSD Add the Enhanced Round Trip Time (ERTT) Khelp module to allow support for delay-based congestion control algorithms. http://caia.swin.edu.au/freebsd/5cc/ |
10 | 14 | Laurent GUERBY | * http://lwn.net/Articles/470641/ |
11 | 15 | Laurent GUERBY | * http://en.wikipedia.org/wiki/Datagram_Congestion_Control_Protocol |
12 | 19 | Laurent GUERBY | * http://netoptimizer.blogspot.com/2010/12/buffer-bloat-calculations.html |
13 | 19 | Laurent GUERBY | * http://gettys.wordpress.com/ |
14 | 20 | Laurent GUERBY | * pps from userspace http://info.iet.unipi.it/~luigi/netmap/ |
15 | 22 | Laurent GUERBY | * http://tech.slashdot.org/story/12/05/09/0325228/controlling-bufferbloat-with-queue-delay |
16 | 22 | Laurent GUERBY | * Controlling Queue Delay http://queue.acm.org/detail.cfm?id=2209336 |
17 | 22 | Laurent GUERBY | * http://www.readwriteweb.com/enterprise/2012/05/good-news-for-solving-bufferbloat-codel-provides-no-knobs-solution.php |
18 | 22 | Laurent GUERBY | * http://www.cringely.com/2012/05/beginning-of-the-end-for-bufferbloat/ |
19 | 2 | Laurent GUERBY | |
20 | 2 | Laurent GUERBY | h2. QoS |
21 | 2 | Laurent GUERBY | |
22 | 2 | Laurent GUERBY | * tc qdisc par IP source |
23 | 2 | Laurent GUERBY | http://lists.tetalab.org/pipermail/tetaneutral/2011-April/000129.html |
24 | 1 | Laurent GUERBY | * ebtable packet flow chart http://ebtables.sourceforge.net/br_fw_ia/PacketFlow.png |
25 | 5 | Laurent GUERBY | * tc openwrt theory http://wiki.openwrt.org/doc/howto/tc/tc.theory |
26 | 4 | Laurent GUERBY | * tc openwrt howto http://wiki.openwrt.org/doc/howto/tc |
27 | 8 | Laurent GUERBY | * doc HTB http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm |
28 | 8 | Laurent GUERBY | * http://www.faqs.org/docs/Linux-HOWTO/ADSL-Bandwidth-Management-HOWTO.html |
29 | 9 | Laurent GUERBY | * [PATCH net-next] sch_red: Adaptative RED AQM http://www.spinics.net/lists/netdev/msg182750.html |
30 | 9 | Laurent GUERBY | * http://icir.org/floyd/papers/adaptiveRed.pdf |
31 | 17 | Laurent GUERBY | * QFQ http://info.iet.unipi.it/~luigi/qfq/ |
32 | 1 | Laurent GUERBY | * linklayer ADSL and overhead tc options http://git.coverfire.com/?p=linux-qos-scripts.git;a=blob;f=src-3tos.sh;hb=HEAD |
33 | 19 | Laurent GUERBY | |
34 | 6 | Laurent GUERBY | |
35 | 6 | Laurent GUERBY | Partage de bande passante ADSL |
36 | 6 | Laurent GUERBY | |
37 | 6 | Laurent GUERBY | <pre> |
38 | 7 | Laurent GUERBY | # Version du 20111207 |
39 | 6 | Laurent GUERBY | function do_qos { |
40 | 6 | Laurent GUERBY | tc qdisc add dev $DEV root handle 1: htb default 1 |
41 | 6 | Laurent GUERBY | tc class add dev $DEV parent 1: classid 1:1 htb rate $RATE |
42 | 1 | Laurent GUERBY | for IP in $IP_LIST; do |
43 | 7 | Laurent GUERBY | tc class add dev $DEV parent 1:1 classid 1:$IP htb rate 1kbit ceil $RATE |
44 | 6 | Laurent GUERBY | tc filter add dev $DEV protocol ip parent 1:0 prio 1 u32 match ip $DIR 91.224.148.$IP flowid 1:$IP |
45 | 6 | Laurent GUERBY | done |
46 | 6 | Laurent GUERBY | } |
47 | 6 | Laurent GUERBY | |
48 | 6 | Laurent GUERBY | DIR=dst #on gw then RATE= ADSL download speed |
49 | 6 | Laurent GUERBY | #DIR=src #on local machine then RATE= ADSL upload speed |
50 | 1 | Laurent GUERBY | |
51 | 6 | Laurent GUERBY | DEV=tapstg |
52 | 7 | Laurent GUERBY | RATE=11000kbit # src 700kbit |
53 | 6 | Laurent GUERBY | IP_LIST=$(seq 129 144) |
54 | 1 | Laurent GUERBY | do_qos |
55 | 6 | Laurent GUERBY | |
56 | 6 | Laurent GUERBY | DEV=tapthd |
57 | 7 | Laurent GUERBY | RATE=5500kbit # src TODO |
58 | 1 | Laurent GUERBY | IP_LIST=$(seq 194 207) |
59 | 6 | Laurent GUERBY | do_qos |
60 | 6 | Laurent GUERBY | |
61 | 6 | Laurent GUERBY | DEV=tapmon |
62 | 7 | Laurent GUERBY | RATE=480kbit # src 96kbit |
63 | 1 | Laurent GUERBY | IP_LIST=$(seq 114 115) |
64 | 1 | Laurent GUERBY | do_qos |
65 | 1 | Laurent GUERBY | |
66 | 7 | Laurent GUERBY | </pre> |
67 | 7 | Laurent GUERBY | |
68 | 7 | Laurent GUERBY | Pour supprimer un qdisc : |
69 | 7 | Laurent GUERBY | |
70 | 7 | Laurent GUERBY | <pre> |
71 | 7 | Laurent GUERBY | tc qdisc del dev tapxxx root |
72 | 7 | Laurent GUERBY | </pre> |
73 | 7 | Laurent GUERBY | |
74 | 7 | Laurent GUERBY | Pour afficher : |
75 | 7 | Laurent GUERBY | |
76 | 7 | Laurent GUERBY | <pre> |
77 | 7 | Laurent GUERBY | tc -p -s -d qdisc show dev tapxxx |
78 | 7 | Laurent GUERBY | tc -p -s -d class show dev tapxxx |
79 | 7 | Laurent GUERBY | tc -p -s -d filter show dev tapxxx |
80 | 6 | Laurent GUERBY | </pre> |
81 | 10 | Laurent GUERBY | |
82 | 10 | Laurent GUERBY | Documentation : |
83 | 10 | Laurent GUERBY | |
84 | 10 | Laurent GUERBY | <pre> |
85 | 10 | Laurent GUERBY | # tc qdisc add htb help |
86 | 10 | Laurent GUERBY | What is "help"? |
87 | 10 | Laurent GUERBY | Usage: ... qdisc add ... htb [default N] [r2q N] |
88 | 10 | Laurent GUERBY | default minor id of class to which unclassified packets are sent {0} |
89 | 10 | Laurent GUERBY | r2q DRR quantums are computed as rate in Bps/r2q {10} |
90 | 10 | Laurent GUERBY | debug string of 16 numbers each 0-3 {0} |
91 | 10 | Laurent GUERBY | |
92 | 10 | Laurent GUERBY | ... class add ... htb rate R1 [burst B1] [mpu B] [overhead O] |
93 | 10 | Laurent GUERBY | [prio P] [slot S] [pslot PS] |
94 | 10 | Laurent GUERBY | [ceil R2] [cburst B2] [mtu MTU] [quantum Q] |
95 | 10 | Laurent GUERBY | rate rate allocated to this class (class can still borrow) |
96 | 10 | Laurent GUERBY | burst max bytes burst which can be accumulated during idle period {computed} |
97 | 10 | Laurent GUERBY | mpu minimum packet size used in rate computations |
98 | 10 | Laurent GUERBY | overhead per-packet size overhead used in rate computations |
99 | 10 | Laurent GUERBY | linklay adapting to a linklayer e.g. atm |
100 | 10 | Laurent GUERBY | ceil definite upper class rate (no borrows) {rate} |
101 | 10 | Laurent GUERBY | cburst burst but for ceil {computed} |
102 | 10 | Laurent GUERBY | mtu max packet size we create rate map for {1600} |
103 | 10 | Laurent GUERBY | prio priority of leaf; lower are served first {0} |
104 | 10 | Laurent GUERBY | quantum how much bytes to serve from leaf at once {use r2q} |
105 | 10 | Laurent GUERBY | |
106 | 10 | Laurent GUERBY | TC HTB version 3.3 |
107 | 10 | Laurent GUERBY | </pre> |