Gå til innhold

Traffic Shaping


Anbefalte innlegg

ADSL er jo som kjent asymmetrisk, selv har jeg en 704/128-linje fra Telenor. Som sikkert flere har merket med fildelingsprogrammer, går det veldig dårlig med upload og download samtidig. Download-hastigheten faller betraktelig når båndbredden for upload brukes.

 

Såvidt jeg forstår, kommer dette av at når man laster ned ip-pakker sendes det request'er etter nye pakker, disse requestene må da dele båndbredde med uploads, og uunngåelig, requestene kommer ikke frem kjapt nok, og download-hastigheten synker.

 

Er det noen her som har jobbet med dette problemet? Finnes det en måte å separere request-trafikk fra vanlig upload-trafikk?

Eller har dere brukt andre metoder for å regulere båndbredden over visse porter?

 

Bruker Mandrake 8.2 med rpppoe og Bastille-firewall.

Klienten min er Windows XP.

 

Har også testet ut CBQ.init-script uten hell. Med CBQ klarer jeg å avgrense båndbredden på visse porter, men request-pakker blir også sendt ut på samme port, og da er jeg like langt.

 

Vet at NextGenTel ikke benytter pppoe, har dere som benytter NGT samme problemer?

 

 

 

[ Denne Melding var redigert av: tarpoon på 2002-07-17 14:48 ]

Lenke til kommentar
Videoannonse
Annonse

Problemet er kjent og relativt enkelt å løse.

 

Symptomene dine stemmer, men analysen er litt gal. Problemet er at når du laster opp så prøver gatewayen din eller hva det er som har kontakt med ADSL modemet å smokke ut så mye som mulig, og som kjent har du 10mbit til adsl modemet. Det som skjer er at når du laster opp kjører du full bufferene på ADSL modemet ved at maskinen kjører data for fort ut til modemet. Dette dreper all interaktivitet, ja. [ED: Fult buffer fører til at pakker blir droppet... både utgående _og innkommende_]

 

Måten det løses på er å traffic shape devicet som sender ut til ADSL modemet så det ikke overgår hastigheten på adsl modemet, så køen blir liggende på Linux boksen og ikke på modemet... jeg løser deg slik selv:

 

tc qdisc add dev ppp0 root tbf rate 125kbit latency 80ms burst 1800

 

Vet ikke om dette er ultimat. Dette fører til at du ikke overgår 125kbit ut til modemet. Du bør ha LAVERE enn det modemet sies å klare. Burst er så mye du kan overgå denne hastigheten... Som jeg har nevnt tidligere er ikke traffic shaping det jeg kan best (enda), men denne linja vil sansynligvis hjelpe. Triks gjerne med hastigheten....

 

_________________

Kristian Lyngstøl

"If A equals success, then the formula is A=X+Y+Z. X is work. Y is play. Z is keep your mouth shut." -Albert Einstein

 

<font class=editedby>[ Denne Melding var redigert av: nesquik på 2002-07-18 01:53 ]</font>

Endret av nesquik
Lenke til kommentar

Genialt hvis det fungerer. Hadde du bare sagt det før kunne vi unngått ett par hundre poster om half/full duplex og at det liksom var grunnen til lav download pluss upload hastighet. Men det er fortsatt litt rart at folk med samme linje og samme modem får forskjellige resultater. Har også opplevd at samlet hastighet varierer mye etter når på døgnet og hvilke maskiner jeg kommuniserer med og det passer vel ikke helt inn i teorien.

Lenke til kommentar
  • 1 år senere...
tc qdisk add dev ppp0 root tbf rate 125kbit latency 80ms burst 1800

Vakkert!

Nettverk er ikke helt min sterke side, men kan dette gjennomføres på en enkeltklient? Jeg har NGT, og der er router og modem i samme boks, så det er ingen Linux-maskin som sitter og styrer alt her. Alle maskinene er koblet via en switch til NGT-routeren, og er alle like glade i å krangle om båndbredde. Spesielt problematisk er det at serveren kaprer hver eneste bit av min 384 kb/s upload i ny og ne for å dele ut noe over HTTP, FTP eller SSH (og for den slags skyld er det også et problem at den en gang i blant kaprer hele min omtrent 1 Mb/s download for å motta mail). En sjelden gang i blant hender det nemlig at jeg spiller (på en annen maskin), og da er det litt surt å få en enorm ping i et par sekunder hver gang det ovenfornevnte skjer.

Kan tc brukes til å gjøre det du forklarer, på en klientmaskin? All maskinens trafikk går over eth0, og jeg vil gjerne begrense inn/ut-farten på alle forbindelser ut på Internett (altså alle forbindelser som går via routeren, 10.0.0.1), men IKKE trafikken til andre maskiner i det lokale nettverket (altså alle forbindelser som går andre steder i 10.0.0.0/24 enn 10.0.0.1).

 

Edit: Leif.

Endret av gspr
Lenke til kommentar
Akkurat det som står der... men... ehm, jeg legger meg nu... så blir litt kort svar. Om du ikke får det til så send en post til skal jeg se på det i morgen på jobb eller noe sånt :)

Saken er den at jeg ikke har noen ppp0, da jeg har bruker en standalone-router. Jeg vil derfor begrense trafikk over eth0, men KUN trafikk som skal videre til routeren (10.0.0.1) og senere Internett - ikke trafikk som skal til addresser i 10.0.0.0/24.

Lenke til kommentar
Det som skjer er at når du laster opp kjører du full bufferene på ADSL modemet ved at maskinen kjører data for fort ut til modemet. Dette dreper all interaktivitet, ja. Fult buffer fører til at pakker blir droppet... både utgående _og innkommende_

er det muligt å route internet gjennom en server mellom adsl modemet og lokalnettet, som i tilfelle benytter seg av

tc qdisc add dev ppp0 root tbf rate 125kbit latency 80ms burst 1800

eller vil en upload fra lokalnettet ha samme effekt på linux boksen? ('bufferene' blir fylld opp der og pakker inn/ut blir droppet)

Endret av dvj
Lenke til kommentar
er det muligt å route internet gjennom en server mellom adsl modemet og lokalnettet, som i tilfelle benytter seg av

tc qdisc add dev ppp0 root tbf rate 125kbit latency 80ms burst 1800

eller vil en upload fra lokalnettet ha samme effekt på linux boksen? ('bufferene' blir fylld opp der og pakker inn/ut blir droppet)

Ja det er mulig, og det er akkurat det jeg gjør hjemme.

 

 

Når det gjelder dette med at du ikke har ppp0 så kan du bytte ut ppp0 med eth0. Dette vil jo desverre shape _all_ trafikken, ikke bare den mot internett. Om du gir meg en dag eller to (jeg er litt opptatt for tiden), så skal jeg se om det er en enkel og grei måte å løse dette på.

 

Når det gjelder trickle, så er det et program jeg ikke har forsøkt å bruke selv. Men det er viktig å skjønne at det har en helt annen funksjonalitet, og sansynligvis trekker mer CPU enn tc. tc opprerer mot kernelen, mens trickle er et program som legger seg mellom _alle_ programmene du kjører og tar over deres kontroll av nettverket transparent ovenfor programmet. Personlig syns jeg det høres ut som en dårlig ide sammenlignet med tc. Altså, for å "tegne" litt:

 

Jeg antar at du bare har 5 programmer, sannheten er selvsagt en annen:

Trickle: 
PROGRAM - TRICKLE \ 
PROGRAM - TRICKLE - \ 
PROGRAM - TRICKLE -  - - - - KERNELEN - NETTVERKET 
PROGRAM - TRICKLE - /
PROGRAM - TRICKLE /
TC: 
PROGRAM -\ 
PROGRAM -  \ 
PROGRAM - -  - - - KERNELEN (TC) - NETTVERKET 
PROGRAM -  /
PROGRAM -/ 

Lenke til kommentar

ja, ok jeg er med på den siste da. men finnes det ingen programer slike som netlimiter til linux eller *nix da? dette er veldig rart da?

 

men går det ikke ann å fikse litt på den trickle kode, å lage det om til noe sann som det netlimiter gjør da? jeg leste litt på den i natt da, men jeg er ikke stødig i hverken c med alle du structene som var det og det hjelper det lite at det er så mange extra saker der for alle bsd variantene.

 

men jeg tror at vi alle er ute etter et program som har samme funksjon som det netlimiter har.. å kunne sette maks upload til 80% på et fil delings program. for vi som har adsl og noe programmer som deler ut vet at da klikker det for hele linjen.

 

er det noen andre som har funnet noen andre triks å dele da?

Lenke til kommentar

Jeg har aldri prøvd netlimiter, men jeg antar utifra din beskrivelse at det er noe av det samme som trickle, så trickle kan være noe for deg om du er interessert i å begrense nettbruken til enkelte programmer.

 

Når det gjelder "vanlig" internett-forbindelser så vil nok neppe cpu-bruken trickle skaper være noe flaskehals heller, tror nok du må opp i 50+ Mbit før det blir noe problem. (og når man runder 100mbit begynner man uansett å få andre problemer enn cpu-bruk... )

 

For morro skyld skal jeg eksperimentere litt med TC i natt, selv om ingen som leser denne tråden nødvendigvis velger å bruke det... Jeg har 11 timer med jobb forran meg der jeg har en del tid til leking, så kanskje jeg kommer med en fantastisk post senere i natt som løser shaping-problematikken for samtlige og skaper fred i midtøsten... Eller kanskje ikke, vi får se.

Lenke til kommentar
Det fungerer utmerket ja. Det er faktisk det trafficshaping er lagd for...

 

Gøy å få svar på en post jeg la inn 18/07-2002 forresten ;)

Jeg bumpet tråden fordi den ga en FLOTT forklaring på noe jeg har lurt på lenge. Og jeg tenker meg at flere kunne ha nytte av denne informasjonen!

 

Meeeeeeeen - dessverre så tenke ikke jeg så langt som tydligvis resten gjorde, vi med NGT har et problem, eth0 går jo også til lokalnettet! - Det vi ser etter er en traffic shaper som funker KUN mot en gitt IP adresse - det skal i realiteten fungere, men det gjenstår å se om noen har tenk på det før. Og laget noe morsomt for oss :)

 

- Uansett så er det alltids mulig å sette en Linux box til å trafficshape mellom router og nettverk, men denne bør ha digert minne og jeg vil ikke tro at det er en særlig god løsning.

 

Uansett så er dette noe man burde opplyse NGT om, siden bufferen deres er laaaav :p -- Meen, jeg lurer, hva skjer med Windows og dette? - Er det likt? kan TENKE meg mange CS folk kan bli henrykte av å få slik informasjon :p - selv om de ant. klikker når folk så mye som pinger noen andre når de spiller da :p

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...