Re: dummynet und ADSL

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Thu, 25 Nov 2004 16:41:21 +0100

On Thu, Nov 25, 2004 at 06:11:01AM +0100, Oliver Lehmann wrote:
> Oliver Fromme wrote:
>
> > Oliver Lehmann <lehmann(at)ans-netz.de> wrote:
> > > In diesem Fall waere das ganze etwas nutzlos, da ich fuer ADSL min 2
> > > queues brauche (incomming, outgoing). Wenn nun aber z.B. keine
> > > Priorisierung der incomming und outgoing Connections auf _einer_ Skala
> > > moeglich ist, wird mir z.B. jede outgoing, Bytes pumpende, Connection
> > > die Leitung fuer incomming zu 99% dicht machen....
> >
> > Nö, incoming und outgoing sollten doch unabhängig vonein-
> > ander sein, auch bei ADSL.
> >
>
> Ok, ich hab mir fuer mein TDSL jetzt mal folgendes gebastelt:
>
> ipfw pipe 1 config bw 15KByte/s
>
> ipfw queue 1 config pipe 1 weight 10
> ipfw queue 2 config pipe 1 weight 50
> ipfw queue 3 config pipe 1 weight 90
>
> ipfw add 1000 queue 1 ip from 10.0.0.0/24 to any out via tun0
> ipfw add 1002 queue 2 ip from 10.0.1.0/24 to any out via tun0
> ipfw add 1004 queue 3 ip from any to any out via tun0 tcpflags ack

Die Regeln sind nicht einwandfrei:
1. gehen Packete potentiell mehrfach durch die Pipe.
2. gehen Packete an der Pipe vorbei.

Es ist wichtig, dass wirklich jedes Packet genau einmal durch die
Pipe geht, ansonsten passen die Packete der Pipe nicht zur
physikalischen Leitung.

Was du brauchst ist folgendes:
ipfw pipe 1 config bw 15KByte/s
ipfw queue 1 config pipe 1 weight 10
ipfw queue 2 config pipe 1 weight 50
ipfw queue 3 config pipe 1 weight 90
ipfw queue 4 config pipe 1 weight 90
ipfw add 1000 queue 1 ip from 10.0.0.0/24 to any out via tun0
ipfw add 1001 sktipto 1007 ip from 10.0.0.0/24 to any out via tun0
ipfw add 1002 queue 2 ip from 10.0.1.0/24 to any out via tun0
ipfw add 1002 sktipto 1007 ip from 10.0.1.0/24 to any out via tun0
ipfw add 1004 queue 3 ip from any to any out via tun0 tcpflags ack
ipfw add 1004 sktipto 1007 ip from any to any out via tun0 tcpflags ack
ipfw add 1006 queue 4 ip from any to any out via tun0
ipfw add 1007 log ip from any to any

> wenn ich jetzt von 10.0.1.51 etwas aus dem internet ziehe, komme ich so auf
> meine 120kByte/sec. Fange ich nun aber an, etwas aus dem internet von mir
> hier zu hause etwas zu ziehen (ueber http, wird auf 10.0.0.21 weiter-geNAT-tet)
> sinkt meine 1. Verbindung auf 90 KB/sec ab, waerend die Verbindung von mir
> ins Netz sich irgendwo bei 6KB/sec einpendelt.

Das Ack Flag dürfte bei so ziemlich bei jedem Packet gesetzt sein, womit
die ausgehende Bandbreite letzlich auf 7,5KByte/s begrenzt.
In Wirklichkeit willst du das nicht am Ack festmachen, sondern eher an der
Packetgröße.
Nachteil dabei ist, dass die Packetreihenfolge durcheinander geraten wird
und somit zu Ineffizienz führt.

Das du für eingehende Packete eine getrennte Pipe konfigurieren willst
ist ja schon im Thread erwähnt worden.
Das dumme daran ist, dass die Begrenzung dann greift, wenn das Packet
schon über die Leitung drüber ist.
Du musst also ein ein gutes Stück unter der verfügbaren Bandbreite
gehen um einen Spielraum für Schwankungen zu schaffen, ansonsten
Begrenzt der Router auf der Gegenseite, wils nicht mehr ins DSL passt.
In den allermeisten Fällen reicht es aber die ausgehende zu behandeln.

> Wenn outgoing und incomming unabhaengig voneineander sein sollten, darf das
> so nicht passieren, oder? mein T-DSL1000 macht mehr als 15KB/sec up ueber
> alles. Somit sehe ich nicht, wiso mein upload nicht 15KB/sec bringt, und
> mein gleichzeitiger Download bei seinen 120KB/sec bleibt sondern absackt...

TCP Verbindungen sind halt immer bidirektional, selbst wenn diese
Halbseitig geschlossen sind und somit für Nutzdaten nur noch
unidirektional arbeiten.
Ein weiterer Punkt ist, dass du zusätzliche Latenzzeit schaffst, was
für die maximale Bandbreite eine Vergrößerung der TCP Buffer
erforderlich macht.

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd(at)bwct.de                                  info(at)bwct.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 25 Nov 2004 - 16:42:18 CET

search this site