Prioriteit bij toewijzing bandbreedte

Pagina: 1
Acties:

  • Tsjipmanz
  • Registratie: Oktober 2000
  • Laatst online: 18:19

Tsjipmanz

Der Rudi ist da

Topicstarter
Een vraag die meer theoretisch is dan praktisch, maar waar ik eigenlijk nog nooit een duidelijk antwoord op heb kunnen vinden.

Stel dat je binnen OS meerdere processen hebt die downloadbandbreedte willen gebruiken, laten we zeggen 4 processen, uTorrent, een usenet client, Spotify, en een browser. De theoretische 'aanbod-downloadsnelheid' voor elk van die processen is onbeperkt, maar de limiet van je eigen provider is 4 MB/s.

Mijn vraag is: hoe wordt nu bepaald hoeveel bandbreedte elk proces krijgt? In de praktijk is het nooit evenwichtig verdeeld, ik heb altijd het idee dat het behoorlijk arbitrair is, maar misschien is het op een first come first serve principe? Of worden er misschien toch bepaalde scheduling algoritmes gebruikt? Gebeurt dit door het OS, of op nog een lager niveau, in bv de netwerklaag of zelfs op packet niveau?

Ik heb wel gezien dat er er software is waarmee je de hoeveelheid bandbreedte die een bepaalde applicatie 'mag' gebruiken kan beperken, maar dat geeft nog geen inzicht in hoe de originele toewijzing verloopt.

Disclaimer: ik weet niet zeker of dit hier thuishoort, maar heb deze vraag hier geplaatst na overleg met een mod.

There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -


  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 28-11 09:35

leuk_he

1. Controleer de kabel!

Op de netwerk layer wordt per TCP verbinding een vorm van "network congestion control" (google dit) toegepast. Dus end to end wordt op die manier geprobeerd de maximale hoeveelheid verkeer over 1 tcp connectie te sturen.

Heel (te?...) simpel gesteld: de capaciteit wordt verdeeld over alle verbindingen, totdat de capciteit op is en de netwerk response trager wordt.

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


  • dion_b
  • Registratie: September 2000
  • Laatst online: 23:35

dion_b

Moderator Harde Waren

say Baah

Nog simpler:
Als je geen expliciete QoS gebruikt, gaat het gewoon op de grote stapel.

Je OS heeft een TCP stack, als een app iets wil versturen, dan gooit het die data richting TCP stack. Dat komt daar in een buffer terecht en zodra de lijn beschikbaar is gaat het (netjes in pakketten geknipt enzo) erop. Heb je meerdere apps, dan gooien ze allemaal hun data richting die TCP stack en wordt het gewoon op volgorde van binnenkomst (FIFO) behandeld.

Omgekeerd is nog eenvoudiger: als er data vanaf het netwerk binnenkomt wordt het door de TCP-stack verwerkt. Zodra iets ontvangen is stuurt de TCP stack het naar de toepassing die op de betreffende poort staat te luisteren. Welke volgorde dat gebeurt is puur volgorde van binnenkomst vanaf het netwerk.

Oslik blyat! Oslik!