- Leren
- Informatica & ICT
- Informatica
- Computernetwerken en internetprotocollen
- Congestiebeheersing in netwerken
Congestiebeheersing in netwerken
GemiddeldLes 4 van 8 in Cursus Computernetwerken en internetprotocollen
Wat je leert
- Beschrijf hoe verkeer dat de capaciteit van een verbinding overschrijdt, wachtrijen, vertraging en verlies veroorzaakt, waarom daardoor netwerkcapaciteit verloren gaat en wat de twee algemene manieren zijn om congestie in een netwerk te voorkomen.
- Volg hoe belasting bij een knelpuntwachtrij leidt tot vertraging en verliesDefinieer congestie en de knelpuntverbinding en volg hoe de wachtrij van een router groeit wanneer verkeer sneller aankomt dan de verbinding het kan verzenden.
- Leg de kosten van congestie en congestie-instorting uitLaat zien hoe hertransmissies, onnodige duplicaten en pakketten die laat op een lang pad worden verworpen capaciteit verspillen, en hoe onbeheerst zendende systemen de nuttige doorvoersnelheid naar nul kunnen brengen.
- Vergelijk eind-tot-eindcongestiebeheersing en netwerkondersteunde congestiebeheersingDeel methoden voor congestiebeheersing in naar de herkomst van het congestiesignaal, de gebruikte signalen en de regeling van een venster of een snelheid.
- Volg hoe belasting bij een knelpuntwachtrij leidt tot vertraging en verlies
- Volg hoe een TCP-zender met zijn congestievenster via slow start en congestievermijding de beschikbare bandbreedte aftast, terugschakelt met snelle hertransmissie, snel herstel en time-outs, en welke doorvoersnelheid dat gedrag oplevert.
- Leg het verband tussen het congestievenster en de verzendsnelheidGebruik het congestievenster, het ontvangstvenster en de rondlooptijd om te berekenen hoe snel een TCP-zender verzendt en hoeveel gegevens op een pad onderweg moeten zijn.
- Volg slow start en congestievermijdingBereken hoe cwnd groeit tijdens slow start en congestievermijding en leg uit wanneer de zender van de ene naar de andere modus overschakelt.
- Leg uit hoe TCP reageert op verlies: time-outs, snelle hertransmissie en snel herstelPas de regels toe die TCP volgt na een time-out of drie dubbele ontvangstbevestigingen en volg de verschillen tussen TCP Tahoe, Reno en NewReno.
- Schat de doorvoersnelheid van TCP aan de hand van het zaagtandpatroonGebruik het zaagtandmodel en de formule voor de verliesfractie om de doorvoersnelheid van een langdurige TCP-verbinding te schatten en ontdek waarom klassiek TCP moeite heeft met snelle, lange paden.
- Leg het verband tussen het congestievenster en de verzendsnelheid
- Leg uit waarom additieve toename en multiplicatieve afname concurrerende verkeersstromen naar gelijke aandelen leiden, meet de eerlijkheid van de verdeling en herken de omstandigheden in de praktijk die ongelijke aandelen veroorzaken.
- Laat zien waarom AIMD convergeert naar een eerlijke en efficiënte verdelingGebruik het beeld van twee verkeersstromen van Chiu en Jain om te laten zien hoe additieve toename en multiplicatieve afname twee zenders naar gelijke aandelen van een verbinding leiden.
- Beoordeel de eerlijkheid van de verdeling tussen verkeersstromen in de praktijkMeet de eerlijkheid van de verdeling met de index van Jain en max-min-eerlijkheid en leg uit hoe RTT-verschillen, parallelle verbindingen, niet-reagerend verkeer en verschillende algoritmen de verdeling veranderen.
- Laat zien waarom AIMD convergeert naar een eerlijke en efficiënte verdeling
- Beschrijf waarom volle buffers lange vertragingen veroorzaken, hoe actief wachtrijbeheer pakketten vroeg verwerpt of markeert en hoe expliciete congestiemelding een congestiesignaal naar de zender brengt zonder pakketten te verliezen.
- Leg bufferbloat en actief wachtrijbeheer uitLeg uit waarom grote buffers die pas bij een volle wachtrij verwerpen en zenders die op verlies reageren blijvende wachtrijen veroorzaken, en hoe RED en CoDel wachtrijen kort houden door vroeg in te grijpen.
- Beschrijf expliciete congestiemelding in IP en TCPVolg de ECN-codepunten en TCP-vlaggen van router naar ontvanger naar zender en leg uit hoe TCP voor datacenters en L4S frequente markeringen gebruiken voor zeer lage vertraging.
- Leg bufferbloat en actief wachtrijbeheer uit
- Leg uit hoe CUBIC zijn venster laat groeien als functie van de tijd sinds het laatste verlies, hoe vertragingsgebaseerde en modelgebaseerde algoritmen zoals Vegas en BBR voorkomen dat buffers vollopen, en wat de afwegingen daarbij zijn.
- Leg uit hoe CUBIC het congestievenster vergrootBereken het venster van CUBIC met de kubische groeifunctie en leg de mildere afname, de Reno-vriendelijke modus en de afhankelijkheid van tijd in plaats van RTT uit.
- Leg vertragingsgebaseerde regeling uit en beschrijf hoe BBR het pad modelleertLeg uit hoe Vegas wachtrijvorming afleidt uit vertraging, hoe BBR de bandbreedte van het knelpunt en de minimale RTT schat om met de juiste snelheid te verzenden, en hoe CUBIC en BBR zich tot elkaar verhouden.
- Leg uit hoe CUBIC het congestievenster vergroot
- Leg uit waarom TCP moeilijk te veranderen is, hoe QUIC boven op UDP een betrouwbaar en veilig transportprotocol opbouwt en hoe QUIC verlies detecteert en congestie beheerst.
- Leg uit waarom transportprotocollen verstarren en hoe het ontwerp van QUIC daarop inspeeltLeg uit hoe middleboxes en kernelimplementaties de ontwikkeling van TCP vertragen en hoe de streams, gecombineerde handshake, versleuteling en verbindings-ID's van QUIC de beperkingen van TCP aanpakken.
- Beschrijf verliesdetectie en congestiebeheersing in QUICLeg uit hoe pakketnummers en ontvangstbevestigingen van QUIC verliesdetectie verbeteren en pas de regels van de standaardcongestieregelaar toe voor het initiële venster, herstel, aanhoudende congestie, ECN en gespreide pakketverzending.
- Leg uit waarom transportprotocollen verstarren en hoe het ontwerp van QUIC daarop inspeelt
Congestiebeheersing in netwerken: uitleg
1Waarom congestie de nuttige aflevering vertraagt
Ook een snelle zender kan een langzaam pad tegenkomen. Meerdere ingangen kunnen één uitgangsverbinding voeden en hun gezamenlijke verkeer moet de capaciteit daarvan delen. Volg wat er met pakketten gebeurt wanneer die capaciteit opraakt en onderscheid nuttige aflevering van verkeer dat wordt besteed aan herhalingen en pakketten die uiteindelijk verloren gaan. De uitdaging voor de zender is om overbelasting op tijd te herkennen en te verminderen, met eigen waarnemingen of terugkoppeling van routers.
1.1 Van een drukke verbinding naar een groeiende wachtrij
Congestie begint wanneer verkeer gedurende langere tijd sneller een deel van een netwerk bereikt dan dat deel kan verwerken. Pakketten wachten in de uitgangsbuffer van een router, de wachtrij. Het knelpunt is de verbinding met de minste beschikbare capaciteit voor dit verkeer langs zijn pad.
Volg het overschot
Stel dat een router 12 Mbps ontvangt voor een uitgangsverbinding die 10 Mbps kan verzenden. De uitgang kan niet sneller werken om de ingang bij te houden. Elke seconde blijft 2 megabit wachten, oftewel 250.000 bytes na deling door 8. Een aanvankelijk lege buffer van 1.000.000 bytes raakt vol in:
Een pakket dat achter die hoeveelheid wachtende gegevens aansluit, wacht totdat de verbinding de gegevens ervoor heeft verzonden:
Zodra de buffer vol blijft, vervoert de uitgang nog steeds maar 10 Mbps. Van de 12 Mbps die aankomt, wordt ongeveer 2 Mbps verworpen, een zesde van het aangeboden verkeer. Deze berekeningen behandelen aankomst en vertrek als constante snelheden; de timing van afzonderlijke pakketten zorgt voor kleine variaties.
Bepaal of de wachtrij leegloopt
Een korte burst verschilt van aanhoudende overbelasting. Een wachtrij kan een burst opvangen en leeglopen wanneer de aankomstsnelheid onder de uitgangssnelheid daalt. Als constante aankomsten precies overeenkomen met de uitgangssnelheid, blijft een bestaande wachtrij bestaan: elk vertrekkend pakket wordt vervangen door een aankomend pakket. Als de aankomstsnelheid aanhoudend boven de uitgangssnelheid ligt, groeit de wachtrij totdat de buffer vol is.
Werkelijk verkeer is ongelijkmatig. Zelfs als de gemiddelde benutting onder de volledige capaciteit ligt, laten bursts pakketten wachten. Dicht bij de capaciteit is er weinig tijd over om die bursts weg te werken, waardoor de gemiddelde vertraging sterk stijgt. Congestie verhoogt vooral de wachtrijcomponent van pakketvertraging; verwerking, transmissie en propagatie zijn afzonderlijke componenten.
Benoem welke snelheid je bedoelt
| Snelheid | Wat wordt meegeteld |
|---|---|
| Aangeboden belasting | Verkeer dat het netwerk in wordt gestuurd, inclusief hertransmissies |
| Doorvoersnelheid | Pakketten of bytes die per seconde worden afgeleverd |
| Nuttige doorvoersnelheid | Nieuwe nuttige applicatiegegevens die per seconde worden afgeleverd, eenmaal geteld |
Een snelheidsverschil kan het knelpunt zichtbaar maken: een lokaal netwerk van 1 Gbps kan een toegangsverbinding van 50 Mbps voeden. Aggregatie heeft hetzelfde effect wanneer meerdere ingangen van een router één uitgang delen. Eén ingang kan weinig verkeer lijken te leveren, terwijl de som de uitgang overbelast.
Kies de juiste grens
Stroomregeling beschermt de buffer van de ontvanger met het bekendgemaakte ontvangstvenster. Congestiebeheersing beschermt het pad tussen de eindpunten. Een ontvanger kan ruim voldoende vrij geheugen hebben terwijl een router op het pad pakketten verwerpt.
Een grotere routerbuffer kan een langere burst opvangen, maar aanhoudende overbelasting vult elke eindige buffer en verhoogt de wachttijd. Een snellere knelpuntverbinding neemt dat capaciteitstekort weg. Een andere verbinding begrenst dan het pad; die raakt pas overbelast wanneer het verkeer de daar beschikbare capaciteit overschrijdt.
Belangrijkste punten
- Bij congestie groeien wachtrijen wanneer de aanhoudende aankomstsnelheid de beschikbare uitgangssnelheid overschrijdt.
- Een wachtrij loopt leeg onder de capaciteit en blijft bestaan bij een constante aankomstsnelheid die precies gelijk is aan de capaciteit.
- Reken wachtende bytes om naar bits voordat je door de transmissiesnelheid deelt om de wachttijd te bepalen.
- Nuttige doorvoersnelheid telt nuttige gegevens eenmaal; aangeboden belasting omvat hertransmissies.
- Stroomregeling beschermt de ontvanger; congestiebeheersing beschermt het netwerkpad.
1.2 Waarom een druk netwerk heel weinig kan afleveren
Een volledig benutte verbinding is alleen nuttig wanneer het verkeer bijdraagt aan de aflevering van nieuwe gegevens. Congestie verbruikt capaciteit op manieren die de nuttige aflevering kunnen doen dalen, terwijl het netwerk druk blijft.
Tel de kosten
Wachtrijvertraging komt eerst. Een videogesprek kan moeilijk te volgen worden voordat pakketten worden verworpen, omdat spraak te laat aankomt. Betrouwbaarheid alleen kan die vertraging niet herstellen.
Verloren pakketten veroorzaken een tweede kostenpost: een zender die betrouwbare overdracht verzorgt, verzendt ze opnieuw. Als een verbinding van 10 Mbps pakketten van gelijke grootte vervoert en 20% gegevens herhaalt die al over die verbinding zijn verzonden, vervoert hoogstens 8 Mbps nieuwe gegevens:
De nuttige doorvoersnelheid voor de applicatie is lager als je rekening houdt met headers en eventueel verlies elders. De activiteit op de verbinding doet de voortgang van de applicatie dus groter lijken dan die is.
Sommige hertransmissies zijn onnodig. Een pakket kan in een lange wachtrij staan wanneer de timer van de zender afloopt. Het vervangende pakket komt dan in hetzelfde drukke netwerk terecht. Beide exemplaren kunnen aankomen, maar de ontvanger bewaart de gegevens slechts eenmaal. Wachtrijvorming heeft een vertragingsprobleem omgezet in extra aangeboden belasting.
Kijk naar de verbindingen vóór een verwerping
Een verwerping dicht bij de bestemming kan werk op meerdere eerdere verbindingen verspillen. Stel je voor dat een pakket verbindingen A en B passeert voordat het in de wachtrij voor C wordt verworpen. De transmissies op A en B hebben capaciteit gebruikt zonder dat pakket af te leveren. Als dit patroon zich herhaalt, blijft op eerdere verbindingen minder capaciteit over voor verkeer dat zijn bestemming wel had kunnen bereiken.
Als de aangeboden belasting stijgt, stijgt aanvankelijk ook de doorvoersnelheid. Bij voldoende verwerpingen verderop leidt een hogere belasting er echter toe dat meer verkeer werk veroorzaakt dat wordt verspild. De eind-tot-einddoorvoersnelheid kan een piek bereiken en vervolgens dalen. Congestie-instorting is het uiterste geval: de aangeboden belasting blijft hoog terwijl de nuttige doorvoersnelheid naar nul daalt.
In oktober 1986 daalde de doorvoersnelheid tussen Lawrence Berkeley Laboratory en UC Berkeley van 32 kbps naar 40 bps, een daling met een factor 800. Het werk van Jacobson en Karels uit 1988 introduceerde een samenhangende reactie: slow start, congestievermijding, een betere schatting van de rondlooptijd en exponentiële wachttijdverlenging voor timers. Vensterregeling en verstandig ingestelde timers pakken verschillende delen van de terugkoppellus aan.
Zoek het bruikbare werkgebied
Het knikpunt en het instortingspunt van Raj Jain beschrijven twee grenzen. Voorbij het knikpunt levert extra belasting weinig extra doorvoersnelheid maar veel meer vertraging op. Voorbij het instortingspunt daalt de doorvoersnelheid doordat verlies en verspild werk overheersen. Congestiebeheersing streeft naar efficiënte aflevering dicht bij het knikpunt en blijft daarbij uit de buurt van instorting.
Het internet heeft geen centrale regelaar die elke zender een snelheid toewijst. Elke zender moet reageren op de terugkoppeling die hij ziet. Als één zender met een vaste hoge snelheid blijft verzenden terwijl andere terugschakelen, kan die hun capaciteit innemen en de overbelasting verergeren.
Hertransmissie maakt een bytestroom betrouwbaar, maar maakt verlies niet kosteloos. Herstel verbruikt capaciteit en vertraagt de aflevering van de ontbrekende gegevens; wachten op een hertransmissietimer kan de verbinding veel langer stilleggen dan snel herstel.
Belangrijkste punten
- Wachtrijvertraging kan interactief verkeer schaden voordat pakketten verloren gaan.
- Hertransmissies en onnodige duplicaten verbruiken capaciteit zonder nieuwe applicatiegegevens toe te voegen.
- Een verwerping verderop verspilt de eerdere transmissies die het pakket hebben vervoerd.
- Congestie-instorting combineert veel netwerkactiviteit met zeer weinig nuttige aflevering.
- Het knikpunt markeert toenemende vertraging met weinig winst in doorvoersnelheid; het instortingspunt markeert dalende doorvoersnelheid.
- Elke zender draagt eraan bij de aangeboden belasting binnen de capaciteit van het pad te houden.
1.3 Hoe zenders leren wanneer ze moeten vertragen
Een zender ziet niet rechtstreeks elke routerwachtrij op zijn pad. Congestiebeheersing is een terugkoppelproces: observeer de aflevering, bepaal wat de waarnemingen betekenen en pas de hoeveelheid of snelheid van het verkeer aan dat het netwerk binnenkomt.
Bepaal waar de terugkoppeling vandaan komt
Bij eind-tot-eindregeling leiden eindpunten congestie af uit verlies of vertraging zonder expliciet bericht van een router. Reno gebruikt verlies. Vegas gebruikt veranderingen in de rondlooptijd. BBR bouwt een padmodel op uit metingen van afleveringssnelheid en RTT.
Bij netwerkondersteunde regeling geeft een router expliciete terugkoppeling. ECN markeert een pakket dat naar de ontvanger onderweg is en de ontvanger meldt de markering in zijn ontvangstbevestiging. Oudere ATM-methoden konden een expliciete toegestane snelheid melden. Een router kan ook rechtstreeks een bericht naar de zender terugsturen, een afrempakket. ICMP Source Quench op het internet gebruikte die aanpak en werd in 2012 uitgefaseerd.
Interpreteer signalen zorgvuldig
| Signaal | Wat het biedt | Wat de zender kan misleiden |
|---|---|---|
| Verlies | Aanwijzing dat pakketten niet zijn aangekomen | Beschadiging op een draadloze verbinding kan verlies zonder congestie veroorzaken |
| Stijgende RTT | Een vroege waarschuwing voor extra wachttijd | Een routewijziging kan de RTT ook verhogen |
| Expliciete markeringen | Een congestiewaarschuwing van een router zonder verlies van gemarkeerde gegevens | Het pad en de eindpunten moeten het mechanisme ondersteunen |
Bij wachtrijen die pas bij een volle buffer verwerpen, komt verlies normaal nadat de buffer vol is. Actief wachtrijbeheer kan pakketten eerder verwerpen of markeren. Dit verandert het moment waarop een signaal aankomt, maar niet de noodzaak voor de zender om te reageren.
De minimaal waargenomen RTT is nuttig omdat die de rondlooptijd van een pad met weinig wachtrijvorming benadert. Een RTT boven dat minimum wijst op wachttijd, maar een eindpunt moet metingen over een langere periode interpreteren. Noch één wisselvallige meting, noch elk verloren draadloos pakket geeft met zekerheid de oorzaak aan.
Regel een venster of een snelheid
Een venstergebaseerde zender begrenst de hoeveelheid onbevestigde gegevens onderweg. Als ontvangstbevestigingen terugkomen, ontstaat ruimte voor nieuwe gegevens. Een snelheidsgebaseerde zender stelt een doelsnelheid in en gebruikt meestal gespreide pakketverzending, waarbij pakketten over de tijd worden verdeeld. De regelingen hangen samen:
Zo komt 100.000 bytes per 50 ms overeen met 2.000.000 bytes/s, oftewel 16 Mbps, wanneer het venster de werkzame grens is. Een snelheidsgebaseerde regelaar kan ook een venster gebruiken als bovengrens voor onbevestigde gegevens.
Weeg meerdere doelen af
Efficiëntie betekent dat de beschikbare capaciteit van het knelpunt bezet blijft. Eerlijke verdeling gaat over hoe concurrerende verkeersstromen die capaciteit delen. Lage vertraging vereist korte wachtrijen; stabiliteit voorkomt grote, herhaalde schommelingen; reactievermogen betekent aanpassen wanneer capaciteit of concurrentie verandert. Een regel die een pad snel vult, kan nog steeds slecht zijn in het laag houden van vertraging of het delen met andere algoritmen.
De regelaar van TCP draait meestal in het besturingssysteem. Die van QUIC draait meestal in een applicatiebibliotheek. UDP levert geen regelaar, dus applicaties die UDP gebruiken, moeten zelf voor congestiebeheersing zorgen. Het dragende protocol neemt de verplichting om op congestie te reageren niet weg.
Belangrijkste punten
- Eind-tot-eindregelaars leiden congestie af; netwerkondersteunde regelaars krijgen expliciete terugkoppeling van routers.
- Verlies, vertraging en expliciete markeringen verschillen in timing en in de beperkingen van hun interpretatie.
- Vensterregeling beperkt gegevens onderweg; gespreide pakketverzending verdeelt pakketten volgens een gekozen snelheid over de tijd.
- Efficiëntie, eerlijke verdeling, vertraging, stabiliteit en reactievermogen moeten samen worden beoordeeld.
2Hoe TCP zijn venster vergroot en herstelt
TCP regelt hoeveel onbevestigde gegevens het in het netwerk laat. Ontvangstbevestigingen laten die hoeveelheid groeien; verlies laat die krimpen. Volg het venster in segmenten om de groeiregels duidelijk te zien en reken daarna om naar bytes en seconden om een snelheid te schatten. Door onderscheid te maken tussen een time-out en herstel na dubbele ontvangstbevestigingen, begrijp je de verschillende dalingen in een vensterreeks en zie je waarom klassiek TCP moeite heeft om te herstellen op snelle paden met lange rondlooptijden.
2.1 Het venster, de rondlooptijd en het pad
Het congestievenster, cwnd, is een grens die de zender stelt aan onbevestigde gegevens onderweg. Het wordt gemeten in bytes, hoewel uitwerkingen vaak segmenten van maximale grootte tellen. Het is geen veld in de TCP-header. De ontvanger maakt een andere grens bekend: het ontvangstvenster, rwnd.
Pas beide grenzen toe
Nieuwe transmissies moeten binnen zowel de stroomregeling als de congestiebeheersing passen. De bruikbare grens is:
Als cwnd 30.000 bytes is en rwnd 18.000 bytes, bepaalt de grens van de ontvanger de ruimte. Als nog 12.000 bytes onbevestigd zijn, kan de zender nog 6.000 bytes verzenden. Na een verlaging van het congestievenster kunnen bestaande gegevens de nieuwe grens overschrijden; de zender wacht dan op ontvangstbevestigingen voordat hij meer toevoegt.
De maximale segmentgrootte, MSS, telt applicatiegegevens zonder headers. Een Ethernet-MTU van 1.500 bytes min een IPv4-header van 20 bytes en een TCP-header van 20 bytes laat 1.460 bytes over, zonder opties. Standaarden gebruiken SMSS voor de MSS van de zender.
Reken een venster om naar een snelheid
Een zender die door het venster wordt beperkt, levert ongeveer één venster per RTT af. Voor een cwnd van 65.536 bytes en een RTT van 50 ms:
Vermenigvuldig met 8 om ongeveer 10,5 Mbps te krijgen. Deze schatting vereist ook voldoende applicatiegegevens, een minstens even groot ontvangstvenster en een pad dat de resulterende snelheid aankan.
Vul het pad zonder de wachtrij te vullen
Het bandbreedte-vertragingsproduct, BDP, is de bandbreedte van het knelpunt maal de minimale RTT zonder wachtrijen. Voor 100 Mbps en 40 ms:
Delen door 8 geeft 500.000 bytes, ongeveer 342 segmenten van 1.460 bytes. Eén BDP aan gegevens onderweg houdt dit geïdealiseerde knelpunt bezet zonder blijvende wachtrij. Bij minder gegevens blijft capaciteit ongebruikt; overtollige gegevens wachten en verhogen de gemeten RTT. Als je het BDP berekent met een al verhoogde RTT, zie je wachtende gegevens ten onrechte aan voor gegevens die het pad nodig heeft.
De verzendklok op basis van ontvangstbevestigingen helpt het tempo vast te houden. Als pakketten het knelpunt verlaten, komen bevestigingen terug en maken die ruimte voor vervangende pakketten. In een stabiele toestand helpen vertrekkende pakketten zo het moment van nieuwe aankomsten te bepalen. Dit is het idee van pakketbehoud achter het zelfklokkende gedrag van TCP.
Bepaal het startpunt en de drempel
Het initiële venster van RFC 5681 varieert van twee tot vier segmenten volgens SMSS: vier tot en met 1.095 bytes, drie tot en met 2.190 bytes en daarboven twee. RFC 6928 staat een initieel venster van maximaal tien segmenten toe. Een uitwerking die bij één segment begint, is nuttig voor het onderwijs, maar beweert niet dat alle nieuwe verbindingen daar beginnen.
ssthresh, de slow-startdrempel, bepaalt de groeimodus. Daaronder gebruikt TCP slow start; daarboven congestievermijding. Bij gelijkheid staat RFC 5681 beide toe. Een hoge initiële drempel laat een nieuwe zender de capaciteit via slow start ontdekken.
Belangrijkste punten
- cwnd is interne toestand van de zender; rwnd wordt door de ontvanger bekendgemaakt.
- Nieuwe gegevens moeten binnen beide vensters passen nadat rekening is gehouden met bytes die al onderweg zijn.
- MSS telt applicatiegegevens zonder IP- en TCP-headers.
- Een door het venster begrensde snelheid is ongeveer het bruikbare venster gedeeld door de RTT.
- Het BDP gebruikt de RTT zonder wachtrijen; overtollige gegevens onderweg bouwen een wachtrij op.
- De verzendklok op basis van ontvangstbevestigingen koppelt nieuwe transmissies aan aflevering via het knelpunt.
- Het initiële venster en ssthresh bepalen hoe een uitwerking begint en groeit.
2.2 Exponentiële groei, daarna één segment per rondlooptijd
TCP moet eerst ontdekken hoeveel verkeer het pad kan verwerken. Slow start vergroot het venster snel vanaf een klein startpunt. Congestievermijding tast daarna voorzichtiger af zodra de slow-startdrempel is bereikt.
Tel ontvangstbevestigingen tijdens slow start
RFC 5681 verhoogt cwnd met maximaal één SMSS voor elke ontvangstbevestiging van nieuwe gegevens:
waarbij N het aantal nieuw bevestigde bytes is. Met één ACK per volledig segment en voldoende gegevens om elk venster te vullen, maakt elk verzonden segment in de volgende ronde ruimte voor twee: één vervangend segment en één door het vergrote venster.
Vanaf 1 MSS zijn de waarden per ronde 1, 2, 4, 8, 16, 32 en 64 MSS. Na zes RTT's is 64 MSS bereikt. Bij 100 ms per RTT is dat 0,6 s. De naam verwijst naar een veiligere start dan het direct verzenden van een heel ontvangstvenster; de groei zelf is exponentieel.
Uitgestelde ontvangstbevestigingen veranderen de telling. Als de ontvanger één ACK per twee volledige segmenten verzendt, geeft de eenvoudige regel per ACK ongeveer 1,5 keer zoveel groei per RTT. Venstergroei op basis van bevestigde bytes, beschreven in RFC 3465, gebruikt nieuw bevestigde bytes om de afhankelijkheid van de ACK-frequentie aan te pakken.
Schakel tussen groeimodi
Kies voor een uitwerking met een initiële cwnd van 1 MSS en ssthresh van 8 MSS bij gelijkheid voor congestievermijding. De reeks wordt:
De eerste drie veranderingen verdubbelen het venster. Latere veranderingen voegen één MSS per RTT toe. Verlies kan beide fasen onderbreken. Implementaties met HyStart++ (RFC 9406) kunnen slow start ook eerder verlaten wanneer de vertraging stijgt.
Leg additieve toename uit
Een veelgebruikte regel per ACK tijdens congestievermijding is:
Bij 10 MSS voegt één ACK ongeveer 0,1 MSS toe. Tijdens de ronde komen ongeveer tien ACK's aan, zodat de totale toename ongeveer één MSS is. De toename per ACK wordt kleiner naarmate cwnd groeit, zodat de toename per ronde ongeveer constant blijft.
Dit verschil doet ertoe op een groot pad. Van 16 naar 32 MSS duurt één RTT bij ideale slow start, maar zestien RTT's bij congestievermijding. De langzamere groei verkleint de kans op een plotselinge overschrijding zodra de zender een bruikbare schatting van de capaciteit heeft.
Herken een herstart
Slow start is niet beperkt tot het begin van een verbinding. Een hertransmissietime-out zet cwnd terug op één segment. Ook een inactieve periode die langer duurt dan de hertransmissietime-out vereist een herstart met hoogstens het initiële venster, omdat de eerdere verzendklok en capaciteitsschatting mogelijk niet meer bij het pad passen.
Congestievermijding houdt cwnd niet op een vaste veilige waarde. Het blijft capaciteit toevoegen totdat terugkoppeling over congestie aankomt. Op een pad waar pas bij een volle wachtrij wordt verworpen, bouwt dit voortdurende aftasten vaak een blijvende wachtrij op voordat verlies de zender aangeeft terug te schakelen.
Belangrijkste punten
- Met één ACK per segment verdubbelt ideale slow start cwnd elke RTT.
- Uitgestelde ontvangstbevestigingen vertragen de eenvoudige groeiregel per ACK.
- Congestievermijding voegt ongeveer één MSS per RTT toe, niet per ACK.
- ssthresh scheidt de groeimodi; een uitwerking moet bij gelijkheid een keuze maken.
- Time-outs en lange inactieve perioden kunnen een nieuwe slow start vereisen.
2.3 Verschillende soorten verlies leiden tot verschillend herstel
TCP kan een ontbrekend segment afleiden uit een timer of uit dubbele ontvangstbevestigingen. Dat onderscheid is belangrijk: een time-out geeft minder aanwijzingen dat het netwerk nog verkeer aflevert dan drie dubbele ACK's.
Stel de nieuwe drempel in
Reno gebruikt de hoeveelheid gegevens die daadwerkelijk onbevestigd is, FlightSize, om het volgende in te stellen:
FlightSize ligt tijdens een volledig actieve overdracht vaak dicht bij cwnd, maar ze hoeven niet gelijk te zijn als de applicatie weinig gegevens verzendt. De ondergrens voorkomt dat de drempel onder twee segmenten daalt.
Na een time-out verzendt de zender opnieuw, zet cwnd op één SMSS en begint opnieuw met slow start. Herhaalde time-outs voor dezelfde gegevens verdubbelen de hertransmissietimer. Deze exponentiële wachttijdverlenging voorkomt dat een aanhoudende storing een even aanhoudende stroom nieuwe pogingen veroorzaakt.
Herstel voordat de timer afloopt
Drie dubbele ACK's laten zien dat na een gat drie latere segmenten zijn aangekomen. Ze betekenen niet dat drie segmenten verloren zijn gegaan. Eén of twee dubbele bevestigingen kunnen ontstaan doordat pakketten in een andere volgorde aankomen. Daarom wacht TCP op de derde voordat snelle hertransmissie het ontbrekende segment verzendt.
Reno gaat dan over op snel herstel. Stel dat FlightSize 12 MSS is. De nieuwe drempel is 6 MSS en Reno stelt tijdelijk in:
De drie extra segmenten houden rekening met pakketten waarvan is gebleken dat ze het netwerk hebben verlaten. Elke volgende dubbele ACK vergroot cwnd tijdelijk met één MSS, zodat de zender kan blijven verzenden wanneer het venster dat toelaat. Wanneer een ACK de cumulatieve ontvangstbevestiging verder brengt, verkleint Reno cwnd naar 6 MSS en hervat het congestievermijding.
| Gebeurtenis met 12 MSS onbevestigd | Tahoe | Reno |
|---|---|---|
| Time-out | cwnd wordt 1 MSS | cwnd wordt 1 MSS |
| Derde dubbele ACK | Opnieuw verzenden en herstarten bij 1 MSS | Opnieuw verzenden en herstel beginnen bij 9 MSS |
| Geslaagd herstel | Groeien via slow start | Verkleinen naar 6 MSS en daarna additief groeien |
Met een initieel venster van 1 MSS en ssthresh van 8 MSS groeit cwnd vóór het verlies via 1, 2, 4, 8, 9, 10, 11 naar 12 MSS. Reno gaat uiteindelijk verder met 6, 7, 8, 9. Tahoe begint opnieuw met 1, 2, 4, bereikt de nieuwe drempel van 6 en gaat verder met 7, 8.
Herstel meerdere gaten in één venster
Klassiek Reno verlaat de herstelfase bij de eerste ACK voor nieuwe gegevens. Als die ACK slechts een deel van de oorspronkelijke hoeveelheid gegevens onderweg bevestigt, blijft er een ander gat over. Reno kan opnieuw verlagen of een time-out krijgen.
NewReno (RFC 6582) blijft bij zo'n gedeeltelijke ACK in de herstelfase en verzendt het volgende ontbrekende segment opnieuw. Het verlaat de herstelfase wanneer alle gegevens die bij het begin van het herstel onbevestigd waren, zijn bevestigd. SACK meldt ontvangen blokken expliciet; herstel op basis van SACK kan meerdere gaten binnen één rondlooptijd vinden en herstellen.
Eén congestieperiode hoort normaal één verlaging te veroorzaken, ook als meerdere pakketten verloren gaan. NewReno en herstel op basis van SACK handelen dit betrouwbaarder af dan klassiek Reno. CUBIC gebruikt bij gewone congestiesignalen een andere afnamefactor en behoudt 70%, maar begint na een time-out ook opnieuw bij één segment.
Belangrijkste punten
- Reno stelt ssthresh in op basis van FlightSize, met een minimum van twee SMSS.
- Een time-out zet cwnd terug op één SMSS en herhaalde time-outs verlengen de wachttijd van de timer.
- Drie dubbele ACK's starten snelle hertransmissie; ze wijzen op latere aankomsten na een gat.
- Reno vergroot cwnd tijdelijk tijdens snel herstel en verkleint het bij het verlaten van de herstelfase naar ssthresh.
- NewReno blijft bij gedeeltelijke ACK's in de herstelfase om meerdere verliezen te herstellen.
- SACK meldt ontvangen blokken zodat de zender meer dan één gat kan vinden.
- Tahoe begint na verlies dat via dubbele ACK's is gedetecteerd opnieuw met slow start; Reno gaat na herstel normaal additief verder.
- Verlagingen van het congestievenster horen bij congestieperioden, niet bij elk afzonderlijk verloren pakket.
2.4 Schat de snelheid van een langdurige overdracht
Klassiek Reno vergroot zijn venster steeds opnieuw en verkleint het na congestie. Het resulterende zaagtandpatroon geeft een bruikbare schatting voor een stabiele toestand wanneer de RTT ongeveer constant is, snelle hertransmissie verlies detecteert en time-outs en slow start ontbreken.
Bereken het gemiddelde venster
Laat het piekvenster W segmenten zijn. Een halvering levert een bereik van W/2 tot W op, met een gemiddelde van 0,75 W. Vermenigvuldig met MSS voor het aantal bytes per rondlooptijd en deel daarna door de RTT:
Voor W van 24 segmenten, een MSS van 1.460 bytes en een RTT van 80 ms is de pieksnelheid 3,504 Mbps. Het gemiddelde is ongeveer 2,63 Mbps. Bedenk dat je een venster in segmenten met de segmentgrootte moet vermenigvuldigen; bij een venster dat al in bytes is uitgedrukt, hoeft dat niet.
Breng doorvoersnelheid in verband met verlies
De benadering van Mathis drukt hetzelfde Reno-achtige gedrag uit met de verliesfractie L:
Als MSS in bytes en RTT in seconden is uitgedrukt, is T in bytes/s. Bij een MSS van 1.460 bytes, een RTT van 0,1 s en een verliesfractie van 0,0001 is de noemer 0,001 s. Het resultaat is 1.781.200 bytes/s, na vermenigvuldiging met 8 ongeveer 14,25 Mbps.
Bij een vaste verliesfractie halveert een verdubbeling van de RTT de doorvoersnelheid. Bij een vaste RTT moet de verliesfractie tot een kwart dalen om de doorvoersnelheid te verdubbelen, omdat de noemer de vierkantswortel van de verliesfractie bevat. Een verliesfractie van 0,0001 betekent 0,01%, niet 0,0001%.
Bekijk het probleem bij hoge transmissiesnelheden
Een pad van 10 Gbps met een RTT zonder wachtrijen van 100 ms heeft 1 miljard bits, oftewel 125.000.000 bytes, onderweg nodig om het volledig te benutten. Met segmenten van 1.500 bytes zijn dat ongeveer 83.333 segmenten. Na halvering van dat venster moeten er weer ongeveer 41.667 segmenten bij komen. Reno voegt er één per RTT toe, dus dat duurt ongeveer 4.167 s, bijna 70 minuten.
Die 83.333 segmenten vormen het venster dat nodig is om op één moment met 10 Gbps te verzenden. Een Reno-zaagtandpatroon met een gemiddelde van 10 Gbps heeft een hogere piek nodig, omdat het gemiddelde venster maar driekwart van de piek is. Volgens de formule voor de verliesfractie is voor een blijvend gemiddelde van 10 Gbps bij deze MSS en RTT ongeveer één verloren segment op 4,7 miljard nodig.
Controleer andere grenzen
Een regelaar kan niet sneller afleveren dan het knelpunt toelaat en een klein ontvangstvenster kan eerder de grens vormen dan cwnd. Gebruik de laagste toepasselijke grens. Time-outs verlagen de snelheid tot onder die van het eenvoudige model en de overdracht van een klein object kan volledig tijdens slow start eindigen. De voltooiingstijd hangt sterk af van de opstartronden en het initiële venster, waardoor de formule voor langdurige overdrachten die overdracht slecht beschrijft.
Een snellere toegangsverbinding helpt daarom alleen als die een werkzame beperking wegneemt. Een lange RTT, verlies of een klein venster kan één verbinding ver onder de capaciteit van de verbeterde verbinding houden.
Belangrijkste punten
- Een Reno-zaagtandpatroon van W/2 tot W heeft een gemiddeld venster van ongeveer 0,75 W.
- Volgens het model van Mathis is de doorvoersnelheid evenredig met 1/RTT en 1/√L.
- Gebruik segmenten, bytes, bits en seconden consistent bij het berekenen van snelheden.
- Op paden met een groot BDP herstelt Reno langzaam, omdat de groei slechts één segment per RTT is.
- De capaciteit van het knelpunt en het ontvangstvenster blijven onafhankelijke bovengrenzen.
- Voor korte overdrachten en verbindingen met veel time-outs is meer nodig dan een model voor de stabiele toestand.
3Hoe verkeersstromen een gedeelde verbinding verdelen
Een verbinding bezet houden en die eerlijk delen zijn afzonderlijke doelen. Twee verkeersstromen kunnen alle capaciteit gebruiken terwijl één daarvan bijna alles neemt. Volg hoe gelijke additieve toenamen en evenredige afnamen hun snelheden veranderen en onderzoek wat er gebeurt als hun omstandigheden verschillen. Maten voor eerlijke verdeling helpen de uitkomst te beschrijven, maar om een maat te interpreteren moet je ook weten wie de verkeersstromen vertegenwoordigen en hoeveel verkeer elke stroom nodig heeft.
3.1 Waarom AIMD verkeersstromen naar gelijke aandelen leidt
Als K actieve verkeersstromen allemaal meer capaciteit willen dan een knelpunt kan bieden, is een gelijk aandeel per stroom R/K, waarbij R de beschikbare snelheid is. Efficiëntie gaat over de vraag of hun snelheden samen R zijn. Eerlijke verdeling gaat over de gelijkmatigheid waarmee ze die snelheid delen.
Zet twee snelheden in een diagram
In een Chiu-Jain-diagram zijn de horizontale en verticale coördinaat de snelheden van de twee verkeersstromen. De efficiëntielijn is:
De lijn van gelijke verdeling is de diagonaal waarop de snelheden gelijk zijn. Hun snijpunt is de eerlijke verdeling met volledige benutting. Op een verbinding van 10 Mbps is dat 5 Mbps per stroom. Punten onder de efficiëntielijn laten capaciteit ongebruikt; punten erboven bieden meer verkeer aan dan de verbinding kan vervoeren.
Onderscheid de twee aanpassingen
Additieve toename voegt dezelfde hoeveelheid toe aan elke snelheid. Vanaf 8 en 1 Mbps geeft 0,5 Mbps erbij voor elk een snelheid van 8,5 en 1,5 Mbps. Het verschil blijft 7 Mbps, maar de kleinere stroom wint meer ten opzichte van zijn beginsnelheid. In het diagram beweegt het punt evenwijdig aan de diagonaal van gelijke verdeling.
Multiplicatieve afname vermenigvuldigt beide snelheden met dezelfde factor. Halvering van 9 en 2 Mbps levert 4,5 en 1 Mbps op. Hun verhouding blijft gelijk, terwijl het absolute verschil van 7 naar 3,5 Mbps daalt. Het punt beweegt naar de oorsprong en neemt de overbelasting snel weg.
Dit zijn verschillende betekenissen van verbetering: gelijke toevoeging verbetert het relatieve evenwicht; evenredige verlaging verkleint het absolute verschil. Door beide te herhalen voorkom je dat het verschil weer groeit terwijl de capaciteit opnieuw wordt afgetast.
Volg enkele cycli
Begin bij 8 en 1 Mbps op de verbinding van 10 Mbps. Voeg per stap per stroom 0,5 Mbps toe en verlaag pas nadat het totaal de capaciteit overschrijdt. Na twee toenamen zijn de snelheden 9 en 2, samen 11. Halvering geeft 4,5 en 1.
Na nog vijf toenamen bereiken ze 7 en 3,5, samen 10,5. Halvering geeft 3,5 en 1,75. De verschillen waren 7; 3,5; en 1,75 Mbps. Een volgende gelijktijdige halvering maakt het volgende verschil 0,875 Mbps. De stromen naderen gelijke aandelen terwijl hun totaal rond de beschikbare capaciteit blijft schommelen.
Vergelijk andere aanpassingsregels
| Regel | Wat gebeurt er met ongelijke snelheden |
|---|---|
| Additieve toename, additieve afname | Gelijke optellingen en aftrekkingen behouden het absolute verschil |
| Multiplicatieve toename, multiplicatieve afname | Gelijke evenredige veranderingen behouden de verhouding tussen de snelheden |
| Multiplicatieve toename, additieve afname | Groei bevoordeelt de grotere stroom en het evenwicht kan verslechteren |
| Additieve toename, multiplicatieve afname | Herhaalde cycli naderen gelijke aandelen en efficiënt gebruik |
Deze convergentie veronderstelt gelijke RTT's, gelijktijdige terugkoppeling over congestie, overeenkomstige reacties en stromen die lang genoeg actief blijven. De additieve stap van Reno is ongeveer één MSS per RTT en de afnamefactor is een half. Andere positieve additieve stappen en afnamefactoren tussen nul en één leiden tot hetzelfde fundamentele convergentieargument. Werkelijke stromen hoeven niet aan alle aannames te voldoen, dus een ongelijk paar op één moment laat op zichzelf niet zien dat AIMD faalt.
Belangrijkste punten
- Efficiëntie gaat over de som van de snelheden; eerlijke verdeling gaat over de verdeling ervan.
- Gelijke additieve toenamen behouden het absolute verschil en verbeteren tegelijk het relatieve evenwicht.
- Gelijke multiplicatieve afnamen behouden de verhouding en verkleinen tegelijk het absolute verschil.
- Herhaalde AIMD-cycli convergeren bij gelijke RTT's, terugkoppeling en reacties.
- Eerlijke verdeling beschrijft het delen op lange termijn terwijl de snelheden blijven schommelen.
3.2 Meet de verdeling en verklaar ongelijke uitkomsten
Gelijke aandelen zijn een nuttig uitgangspunt, maar verkeersstromen kunnen in de praktijk verschillen in vraag, RTT, aantal verbindingen en congestieregelaar. Een uitspraak over eerlijke verdeling vereist een duidelijk antwoord op “eerlijk tussen welke verkeersstromen?”
Bereken de index van Jain
Voor niet-negatieve stroomsnelheden met een totaal groter dan nul is de index van Jain:
Snelheden van 8 en 2 Mbps geven een som van 10 en een kwadratensom van 68, dus de index is ongeveer 0,735. Gelijke snelheden geven 1. Als één van n stromen alles ontvangt, is de index 1/n.
De index meet gelijkheid, niet benutting. Twee stromen van elk 1 Mbps en twee stromen van elk 5 Mbps hebben beide een index van 1, hoewel ze verschillende hoeveelheden van een verbinding van 10 Mbps gebruiken. Controleer de totale snelheid afzonderlijk.
Houd rekening met beperkte vraag
Max-min-eerlijkheid geeft verkeersstromen met een lage vraag wat ze nodig hebben en verdeelt daarna de resterende capaciteit onder stromen die nog meer willen. Op een verbinding van 12 Mbps willen drie stromen 2, 8 en 10 Mbps. Het aanvankelijke gelijke aandeel is 4 Mbps. De eerste heeft maar 2 nodig, zodat 10 Mbps overblijft voor de andere twee. De verdeling is dus 2, 5 en 5 Mbps.
Om een van de hogere snelheden te verhogen, zou je een stroom moeten verlagen die al een gelijke of lagere snelheid heeft. Die eigenschap definieert max-min-eerlijkheid. De ongelijke verdeling kan passend zijn, ook al daalt de gelijkheidsmaat van Jain onder 1.
Herken voordelen tussen verkeersstromen
Reno groeit eenmaal per RTT. Bij dezelfde verliesfractie is de geschatte doorvoersnelheid omgekeerd evenredig met de RTT: een stroom met 20 ms kan ongeveer vier keer de snelheid van een stroom met 80 ms bereiken. Gelijke toegang tot het knelpunt neemt dat tijdsvoordeel niet weg.
De verdeling geldt ook per verbinding. Bij negen bestaande verbindingen kan een applicatie die er één toevoegt ongeveer een tiende van de verbinding krijgen. Als die in plaats daarvan elf vergelijkbare verbindingen toevoegt, wordt het aandeel elf twintigste, oftewel 55%. HTTP/2 en HTTP/3 multiplexen veel verzoeken over één verbinding, terwijl HTTP/1.1-clients vaak meerdere verbindingen openen.
Een UDP-applicatie met een vaste snelheid kan blijven verzenden terwijl TCP-verkeersstromen terugschakelen. UDP zelf levert geen regelaar; RFC 8085 vraagt applicaties geschikte congestiebeheersing toe te voegen. Een TCP-vriendelijke stroom gebruikt onder dezelfde omstandigheden niet meer bandbreedte dan vergelijkbaar TCP-verkeer. TFRC gebruikt de TCP-doorvoervergelijking om een gelijkmatigere snelheid te ondersteunen.
Houd rekening met de wachtrij en het algoritme
Een fifo-wachtrij dwingt geen gelijke aandelen per verkeersstroom af. De uitkomst hangt af van het gedrag van de zenders. Eerlijke wachtrijbediening, waaronder de planning per stroom in FQ-CoDel, geeft stromen afzonderlijke wachtrijen en bedieningskansen.
De groei van CUBIC en Reno verschilt op paden met een groot BDP. Ook het delen tussen BBR en CUBIC hangt af van de versie en buffergrootte; vroege BBR-versies konden agressief zijn bij kleine buffers. Geen enkele gelijkheidsberekening op zichzelf stelt vast dat verschillende regelaars op elk pad gelijkmatig naast elkaar zullen werken.
Belangrijkste punten
- De index van Jain meet gelijkheid; controleer de benutting afzonderlijk.
- Max-min-eerlijkheid voldoet aan kleine vragen voordat de resterende capaciteit wordt verdeeld.
- Kortere RTT's en meer parallelle verbindingen kunnen het aandeel van een zender vergroten.
- UDP-applicaties hebben eigen congestiebeheersing nodig; TCP-vriendelijk verkeer beperkt het bandbreedtegebruik tot dat van vergelijkbaar TCP-verkeer.
- Fifo-wachtrijen laten de verdeling over aan zenders, terwijl eerlijke wachtrijbediening elke verkeersstroom bedient.
- Algoritmeversies en buffergrootte kunnen veranderen hoe verkeersstromen naast elkaar werken.
4Hoe routers eerder voor congestie waarschuwen
Een grote buffer kan pakketverlies verhullen en tegelijk een interactieve verbinding pijnlijk traag maken. Routers kunnen die wachttijd verkorten door op een aanhoudende wachtrij te reageren voordat die overloopt. Volg het verschil tussen detectie op basis van wachtrijlengte en op basis van vertraging en volg daarna een ECN-markering van een router naar de zender. Hetzelfde idee van markeren ondersteunt verschillende reacties van zenders in klassiek TCP, beheerde datacenters en internetontwerpen met lage vertraging.
4.1 Behoud nuttige buffering zonder blijvende wachtrij
Een wachtrij die bij een volle buffer verwerpt accepteert pakketten totdat de buffer vol is en verwerpt daarna nieuwe aankomsten. Zenders die op verlies reageren, blijven naar boven aftasten totdat ze een congestiesignaal ontvangen. Bij een grote buffer van dit type kan dat signaal pas aankomen nadat een lange wachtrij is ontstaan.
Bereken de vertraging die in een buffer schuilgaat
Een buffer van 2.000.000 bytes vóór een uplink van 20 Mbps bevat 16 miljoen bits. Als die vol is, wacht een pakket achter die gegevens:
Een upload kan de doorvoersnelheid dus hoog houden en tegelijk bijna een seconde vertraging toevoegen aan een gesprek dat de uplink deelt. Bufferbloat betekent aanhoudende overmatige vertraging door grote buffers en verkeersgedrag dat die gevuld houdt.
Buffering heeft nog steeds een doel: korte bursts moeten ergens kunnen wachten. In het eenvoudige model met één Reno-verkeersstroom kan ongeveer één BDP aan bufferruimte de verbinding direct na een halvering van het venster bezet houden. Een veel grotere buffer voegt wachttijd toe zonder de transmissiesnelheid van de verbinding te verhogen.
Signaleer congestie vóór overloop
Actief wachtrijbeheer, AQM, verwerpt of markeert pakketten vroeg om aan te geven dat zenders hun belasting moeten verlagen. Een fysieke overloop is niet langer de enige manier om congestie aan te kondigen. RFC 7567 beveelt brede toepassing van AQM aan.
Willekeurige vroegtijdige detectie, RED, bewaakt een voortschrijdend gemiddelde van de wachtrijlengte. Onder een minimumdrempel geeft RED geen signaal. Tussen twee drempels verwerpt of markeert RED met een toenemende kans. Boven de maximumdrempel geeft RED bij elke aankomst een signaal. Het gemiddelde voorkomt dat één korte burst op aanhoudende overbelasting lijkt, maar het is moeilijk drempels te kiezen die bij verschillende snelheden en belastingen werken.
Meet de wachttijd rechtstreeks
CoDel, beheerste vertraging, meet de verblijftijd van een pakket: de tijd in de wachtrij. De standaarddoelwaarde is 5 ms en het interval is 100 ms. Als zelfs de minimaal waargenomen verblijftijd een interval lang boven de doelwaarde blijft, is er een blijvende wachtrij. CoDel verwerpt of ECN-markeert dan pakketten en verhoogt de signaalfrequentie zolang de overmatige vertraging aanhoudt.
Het minimum over een interval is van belang. Een burst kan kortstondig veel vertraging veroorzaken maar kort daarna leeglopen; een wachtrij waarvan de vertraging nooit klein wordt, vereist ingrijpen. Dankzij de vertragingsmeting werken de standaardinstellingen van CoDel bij uiteenlopende verbindingssnelheden.
| Mechanisme | Wat het bewaakt | Wanneer het signaleert |
|---|---|---|
| Verwerpen bij volle wachtrij | Of de buffer vol is | Bij overloop |
| RED | Gemiddelde wachtrijlengte | Met een bepaalde kans wanneer drempels worden overschreden |
| CoDel | Aanhoudende wachttijd van pakketten | Wanneer de vertraging boven de doelwaarde blijft |
FQ-CoDel combineert afzonderlijke wachtrijen per verkeersstroom met CoDel. Door de stromen te scheiden helpt het voorkomen dat een grote overdracht elk klein interactief pakket achter de eigen achterstand plaatst.
Vroege signalen kunnen ook globale synchronisatie verminderen, waarbij veel stromen tegelijk pakketten verliezen, tegelijk halveren en de verbinding tijdelijk onvoldoende benutten. Willekeurige vroege signalen spreiden reacties over de tijd. Bij verkeer met ECN-ondersteuning kan AQM een waarschuwing via een markering versturen en het pakket toch afleveren.
Belangrijkste punten
- Bufferbloat is aanhoudende wachtrijvertraging, ook wanneer de doorvoersnelheid hoog blijft.
- De wachttijd is het aantal wachtende bits gedeeld door de uitgangssnelheid.
- AQM signaleert congestie voordat de fysieke buffer overloopt.
- RED volgt de gemiddelde wachtrijlengte; CoDel volgt aanhoudende wachttijd.
- FQ-CoDel combineert wachtrijen per verkeersstroom met de vertragingsregeling van CoDel.
- Vroege, verspreide signalen verminderen gelijktijdig verlies en gelijktijdige vensterverlagingen.
4.2 Volg een ECN-waarschuwing terug naar de zender
Expliciete congestiemelding, ECN, laat een router een pakket afleveren en waarschuwen dat congestie ontstaat. De markering verandert het gedrag van de zender zonder ontbrekende gegevens te veroorzaken die opnieuw moeten worden verzonden.
Lees het IP-codepunt
Het ECN-veld bestaat uit twee bits in de IPv4-byte voor het type dienstverlening (Type of Service) of het IPv6-veld voor de verkeersklasse (Traffic Class).
| Bits | Betekenis |
|---|---|
| 00 | Not-ECT: het transportprotocol heeft geen ECN-ondersteuning aangegeven |
| 10 | ECT(0): transport met ECN-ondersteuning |
| 01 | ECT(1): transport met ECN-ondersteuning; ook de L4S-aanduiding |
| 11 | CE: congestie ondervonden |
Bij de klassieke TCP-handshake volgens RFC 3168 zet de SYN van de client ECE en CWR. De SYN-ACK van een server die ECN accepteert, zet ECE. Na de onderhandeling markeert klassiek TCP gegevenspakketten met ECT(0).
Volg de terugkoppellus
Een AQM dat een pakket met ECN-ondersteuning als congestiewaarschuwing zou verwerpen, kan het codepunt veranderen in CE en het pakket doorsturen. Een Not-ECT-pakket kan die waarschuwing niet dragen en wordt verworpen wanneer het AQM moet signaleren. Een volledig volle buffer verwerpt nog steeds pakketten, ook pakketten met ECN-ondersteuning.
De ontvanger meldt CE terug door ECE, de ECN-terugmelding, in zijn ACK's te zetten. De ontvanger blijft dat doen totdat hij CWR, congestievenster verkleind, van de zender ontvangt. Deze vlaggen melden en bevestigen de terugkoppeling; hun aanwezigheid betekent niet dat gegevens verloren zijn gegaan.
Begin bij klassiek ECN in Reno-stijl met een cwnd van 20 MSS. Nadat ECE aankomt, verlaagt de zender cwnd naar 10 MSS en zet hij CWR op het volgende nieuwe gegevenssegment. De ontvanger stopt met terugmelden zodra CWR aankomt. Herhaalde terugmeldingen uit hetzelfde venster vereisen geen herhaalde halveringen. De waarschuwing keert terug via het pad van de ontvangstbevestiging, dus de reactie heeft te maken met terugkoppelvertraging.
ECN bepaalt het signaal; het congestiealgoritme levert de verlagingsregel. Reno halveert, terwijl CUBIC bij een ECN-gebeurtenis normaal 70% behoudt. Beide eindpunten en een markerend knelpunt moeten ECN ondersteunen om deze terugkoppellus te laten werken.
Gebruik de fractie markeringen
DCTCP, TCP voor datacenters, gebruikt frequente markeringen in een beheerde omgeving. Het schat de fractie gemarkeerde bytes met een afgevlakte waarde alfa:
waarbij M de recent gemarkeerde fractie is. Sommige implementaties gebruiken voor g de waarde 1/16. Het verlaagt het venster met:
Bij alfa van 0,2 wordt een venster van 100 verlaagd naar 90; bij alfa van 1 halveert het. DCTCP heeft compatibele markering en terugkoppeling nodig. Als je het in één gewone wachtrij met klassiek TCP mengt, kunnen ongelijke aandelen ontstaan.
L4S, de experimentele architectuur in RFC 9330 tot en met 9332, brengt een verwante schaalbare reactie naar internetpaden. ECT(1) duidt schaalbaar verkeer aan en een gekoppeld AQM-systeem met twee wachtrijen scheidt dit van klassiek verkeer terwijl de behandeling van beide wordt afgestemd. Frequente markeringen bij een korte wachtrij streven naar een wachtrijvertraging van ongeveer een milliseconde. ECT(1) alleen garandeert die vertraging niet: de regelaar en het gedrag van het knelpunt maken het ontwerp compleet.
Belangrijkste punten
- CE markeert een afgeleverd pakket; verkeer met ECN-ondersteuning kan bij overloop nog steeds worden verworpen.
- Klassiek TCP onderhandelt over ECN, meldt CE terug via ECE en bevestigt zijn reactie met CWR.
- De regelaar kiest hoeveel hij verlaagt; ECN levert het congestiesignaal.
- DCTCP gebruikt de gemarkeerde fractie om de verlaging in beheerde omgevingen te bepalen.
- L4S combineert ECT(1), schaalbare congestiebeheersing en gekoppeld wachtrijbeheer.
5Hoe CUBIC en BBR zich aanpassen aan moderne paden
Een pad met een groot bandbreedte-vertragingsproduct heeft veel gegevens onderweg nodig. Reno kan er na een verlaging te lang over doen om dat venster te herstellen. CUBIC verandert hoe het venster in de tijd groeit, terwijl BBR de afleveringssnelheid en de RTT zonder wachtrijen van het pad schat. Vergelijk wat elk algoritme meet, hoe het capaciteit aftast en wat zijn gedrag betekent voor vertraging en het delen met ander verkeer.
5.1 Gebruik tijd om het CUBIC-venster te laten groeien
CUBIC pakt de langzame groei van Reno op snelle paden over lange afstanden aan. Het venster volgt de verstreken tijd sinds een congestieverlaging en reageert daardoor anders dan bij een vaste toename van één segment per RTT. RFC 9438 specificeert CUBIC; het is de standaard in belangrijke TCP-stacks van Linux, Windows en Apple.
Onthoud het laatste congestiepunt
Bij gewoon verlies of een ECN-congestiegebeurtenis legt CUBIC zijn venster vast als Wmax. Bij een volledig benut venster behoudt de afnamefactor van 0,7 70% van de hoeveelheid onbevestigde gegevens. Reno zou de helft behouden. Een hertransmissietime-out is anders: CUBIC volgt Reno terug naar een venster van één segment en slow start, terwijl het de drempel instelt met de afnamefactor van CUBIC.
Voor de standaard kubische groeiperiode na een verlaging is het doelvenster in segmenten:
Tijd t is in seconden. Wanneer het verlaagde venster 0,7 Wmax is, is de terugkeertijd naar de oude piek:
Werk de curve uit
Bij een Wmax van 100 segmenten is het verlaagde venster 70. De waarde onder de derdemachtswortel is 75, dus K is ongeveer 4,22 s. Na één seconde is de curve ongeveer 86,7 segmenten; na twee seconden 95,6; na drie seconden 99,3. Bij K bereikt de curve 100.
Onder de oude piek is de groei aanvankelijk snel en vertraagt die daarna. Dit concave gebied nadert voorzichtig een punt waar eerder congestie optrad. Rond de piek ligt een relatief vlak plateau. Daarboven versnelt het convexe gebied om capaciteit af te tasten die mogelijk nu beschikbaar is. Na zeven seconden bereikt de voorbeeldcurve ongeveer 108,6 segmenten.
Leg het RTT-voordeel en de beperking ervan uit
Reno heeft 50 RTT's nodig om van 50 terug te groeien naar 100 segmenten: 5 s bij een RTT van 100 ms en 10 s bij een RTT van 200 ms. De terugkeertijd van de kubische curve hangt af van de vastgelegde piek en de verstreken tijd, dus de terugkeer in 4,22 s hangt niet rechtstreeks af van het aantal ACK's.
CUBIC berekent ook een Reno-vriendelijke schatting. Het gebruikt een gelijkwaardige AIMD-toename van ongeveer 0,53 segmenten per RTT met een afnamefactor van 0,7 en kiest deze schatting wanneer die boven het kubische doel ligt. Paden met een korte RTT kunnen daardoor sneller herstellen dan de zuiver kubische terugkeertijd. Tijdgebaseerde groei vermindert een belangrijke bron van voorkeur op basis van RTT; ze maakt niet elke werkelijke verdeling onafhankelijk van de RTT.
Pas de onthouden piek aan
Als congestie onder de vorige piek terugkeert, verlaagt snelle convergentie van CUBIC de onthouden Wmax. Een nieuwe gebeurtenis bij 90 segmenten na een eerdere piek van 100 geeft:
Het direct verlaagde venster is 63 segmenten. De onthouden piek en het nieuwe huidige venster hebben verschillende taken: de ene bepaalt de vorm van toekomstige groei, het andere begrenst wat nu wordt verzonden.
CUBIC blijft op verlies reageren, met ECN als alternatief signaal. Het kan een blijvende wachtrij opbouwen op een pad waar pas bij een volle wachtrij wordt verworpen. Sneller herstel en een mildere gewone verlaging verbeteren het gebruik van paden met een groot BDP, maar geen van beide garandeert op zichzelf een lage wachtrijvertraging.
Belangrijkste punten
- CUBIC behoudt normaal 70% na verlies of een ECN-gebeurtenis, maar begint na een time-out opnieuw bij één segment.
- Het kubische doel hangt af van de verstreken seconden en het onthouden congestievenster.
- De groei vertraagt rond de oude piek en versnelt daarboven.
- De Reno-vriendelijke schatting kan boven de kubische curve liggen, vooral bij korte RTT's.
- Snelle convergentie verlaagt de onthouden piek wanneer congestie daaronder terugkeert.
- CUBIC blijft een regelaar die op verlies reageert en kan blijvende wachtrijen opbouwen.
5.2 Schat het pad met vertragings- en afleveringsmetingen
Verlies is niet het enige teken van een druk pad. Vertraging kan wachtende gegevens zichtbaar maken, terwijl afleveringsmetingen kunnen helpen schatten hoeveel bandbreedte het pad biedt. Vegas en BBR gebruiken deze waarnemingen op verschillende manieren.
Schat de wachtende gegevens van Vegas
Vegas vergelijkt een verwachte snelheid op basis van de minimale basisrondlooptijd met de werkelijke snelheid op basis van de gemeten RTT. Hun verschil, vermenigvuldigd met de basisrondlooptijd, schat de wachtende gegevens van de verkeersstroom.
Bij een cwnd van 50 segmenten, een basisrondlooptijd van 40 ms en een gemeten RTT van 50 ms is de verwachte aflevering 1.250 segmenten/s en de werkelijke aflevering 1.000 segmenten/s. De schatting van de wachtrij is:
Vegas groeit onder een ondergrens en krimpt boven een bovengrens. Als verkeer dat op verlies reageert de gedeelde wachtrij blijft vullen, ziet Vegas steeds vertraging en schakelt het terug, waardoor het een klein aandeel kan overhouden.
Bouw het tweedelige model van BBR op
BBR schat de bandbreedte van het knelpunt uit recente maximale afleveringssnelheden en de minimale RTT met een filter van 10 s. Hun product schat het BDP. Het ideale doel is een volledig benutte verbinding met ongeveer één BDP onderweg en weinig wachtende gegevens.
Een geschatte bandbreedte van 50 Mbps en een minimale RTT van 30 ms geven 1,5 miljoen bits, oftewel 187.500 bytes, per BDP. Een gebruikelijke congestievensterfactor van 2 begrenst onbevestigde gegevens op ongeveer 375.000 bytes. De snelheid voor gespreide pakketverzending is een afzonderlijke regeling: de factor voor de verzendsnelheid maal de geschatte bandbreedte. Een bovengrens staat gegevens onderweg toe; die vereist niet dat de zender met tweemaal de bandbreedte verzendt.
Volg de toestanden van BBR versie 3
| Toestand | Hoofdtaak | Gedrag volgens conceptversie 3 |
|---|---|---|
| Startup | Capaciteit ontdekken | Verzenden met ongeveer 2,77 keer de schatting; stoppen wanneer groei stagneert of verlies hoog is |
| Drain | Opstartwachtrij verwijderen | Verzenden met ongeveer 0,5 keer de schatting |
| ProbeBW | Bandbreedte testen en gebruiken | Factoren voor de verzendsnelheid: Up 1,25, Down 0,9, Cruise 1,0, Refill 1,0 |
| ProbeRTT | Minimale RTT vernieuwen | Gegevens onderweg gedurende minstens 200 ms en één rondlooptijd verlagen naar ongeveer een half BDP |
De groeitoets van Startup is minder dan 25% groei van de afleveringssnelheid gedurende drie rondes. ProbeRTT wordt hoogstens ongeveer eenmaal per 5 s gepland. Op het voorbeeldpad richt ProbeBW Up zich op 62,5 Mbps en Down op 45 Mbps. Deze details van versie 3 zijn vastgelegd in het BBR-internetconcept, niet in een gepubliceerde BBR-RFC.
Vergelijk terugkoppeling en afwegingen
Reno en CUBIC verhogen totdat verlies of ECN congestie signaleert. BBR verzendt gespreid op basis van een bandbreedte- en RTT-model. Het bouwt tijdens Startup en ProbeBW Up bewust kort een wachtrij op, dus “modelgebaseerd” betekent niet “bouwt nooit een wachtrij op”.
BBR versie 1 negeerde verlies grotendeels. Versie 3 gebruikt zwaar verlies, ongeveer 2% in een ronde, om overschrijding te beperken en het naast elkaar werken te verbeteren. Het kan op lange paden met willekeurig verlies een hogere doorvoersnelheid behouden, maar kan niet perfect vaststellen waarom een pakket verloren ging. De specifieke ECN-reactie staat nog open in het concept; elke verbinding die ECN-ondersteuning aangeeft, moet op CE reageren als congestie. Buffergrootte, RTT, versie en concurrerende algoritmen blijven van belang voor een eerlijke verdeling.
Belangrijkste punten
- Vegas leidt wachtende gegevens af uit verwachte en werkelijke snelheden met behulp van de basisrondlooptijd.
- BBR modelleert bandbreedte en minimale RTT en regelt daarna de gespreide pakketverzending en de grenzen voor gegevens onderweg afzonderlijk.
- BBR Startup en ProbeBW tasten bewust boven de geschatte afleveringssnelheid af.
- Drain en ProbeRTT verminderen wachtende gegevens voor verschillende meetdoelen.
- BBR versie 3 gebruikt zwaar verlies om overschrijding te beperken; het negeert congestie niet.
- BBR is modelgebaseerd, terwijl Vegas rechtstreeks op toenemende vertraging reageert.
- De algoritmeversie en padomstandigheden beïnvloeden het naast elkaar werken en de wachtrijvorming.
6Waarom QUIC zich kan ontwikkelen terwijl het netwerk wordt gedeeld
Een transportontwerp moet werken via apparatuur die al in gebruik is. TCP-uitbreidingen kunnen worden vertraagd door middleboxes en updatecycli van besturingssystemen. QUIC vervoert een versleuteld transportprotocol via UDP, zodat applicaties nieuw gedrag gemakkelijker kunnen invoeren. Volg hoe streams, pakketnummers en uitgebreidere ontvangstbevestigingen aflevering en herstel verbeteren, terwijl de zender principes voor congestiebeheersing blijft volgen die bekend zijn uit TCP.
6.1 Breng transportfuncties onder in een versleuteld ontwerp op basis van UDP
Een protocol verstart wanneer bestaande apparaten zo sterk afhankelijk zijn van de huidige vorm dat veranderingen moeilijk zijn in te voeren. Middleboxes inspecteren TCP-headers en kunnen onbekende opties of vlaggen weigeren. Implementaties in de kernel verspreiden nieuw gedrag ook via updates van het besturingssysteem, vaak langzaam.
Herken de kosten die QUIC aanpakt
TCP is verder ontwikkeld met SACK, ECN, vensterschaling en nieuwe congestieregelaars. Toch blijft de structuur van belang voor webverkeer. Een conventionele nieuwe TCP-verbinding met TLS heeft de TCP-handshake nodig vóór de TLS-handshake. De enkele geordende bytestroom betekent ook dat één ontbrekend segment de aflevering van latere bytes blokkeert, inclusief gegevens voor niet-gerelateerde verzoeken. Dit is blokkering door het eerste element op transportniveau.
De adressen en poorten van een verbinding kunnen een ander obstakel vormen wanneer een apparaat tussen netwerken beweegt. QUIC, gestandaardiseerd in RFC 9000, verandert deze onderdelen van het transportontwerp terwijl het zijn pakketten via UDP vervoert. HTTP/3 werkt boven op QUIC.
Combineer de handshakes
QUIC integreert TLS 1.3 met de transporthandshake. Bij een eenvoudige uitwisseling met een RTT van 80 ms, verwaarloosbare verwerkingstijd en geen verlies verzendt een nieuwe TCP-verbinding met TLS 1.3 het verzoek na twee RTT's en ontvangt die de eerste antwoordbytes na drie: 240 ms. Een nieuwe QUIC-verbinding kan die na twee RTT's ontvangen: 160 ms.
Een hervatte QUIC-verbinding kan vroege applicatiegegevens meesturen met de eerste reeks pakketten, 0-RTT genoemd. Het eerste antwoord kan dan na één RTT aankomen, in dit voorbeeld 80 ms. Vroege gegevens kunnen opnieuw worden afgespeeld, dus beperken applicaties die tot handelingen die veilig kunnen worden herhaald. De term 0-RTT beschrijft wanneer de verzending kan beginnen, niet een onmiddellijk antwoord.
Scheid streams, niet alle gedeelde grenzen
QUIC vervoert onafhankelijke, geordende bytestromen. Als een pakket gegevens voor afbeelding 1 bevat, blokkeert verlies daarvan niet de aflevering van al ontvangen gegevens voor afbeeldingen 2 en 3 in afzonderlijke streams. Een pakket met meerdere streams kan elk van de vervoerde streams beïnvloeden. Alle streams delen nog steeds de congestieregelaar van de verbinding, dus verlies kan hun totale beschikbare snelheid verlagen.
QUIC levert betrouwbare aflevering van streams boven op UDP. Het biedt ook stroomregeling per stream en per verbinding. UDP is de drager, geen vervanging voor deze transportfuncties.
Bescherm veranderbare details
QUIC versleutelt pakketladingen, inclusief alle transportframes. Headerbescherming dekt pakketnummers en enkele bits van de eerste byte. Velden die nodig zijn voor routering en onderhandeling, zoals verbindings-ID's en de versie, blijven zichtbaar. Door veranderbare transportdetails te verbergen, krijgen middleboxes minder gedrag waarvan ze afhankelijk kunnen worden.
Verbindings-ID's identificeren een verbinding onafhankelijk van de huidige IP-adressen en poorten. Met padvalidatie kan een verbinding migreren wanneer een telefoon van wifi naar mobiele toegang overschakelt, zonder een volledig nieuwe verbinding te beginnen.
QUIC is meestal een bibliotheek in de gebruikersruimte. Een applicatie-update kan daardoor een transportverbetering uitbrengen zonder te wachten totdat elke kernel van een besturingssysteem verandert. Die flexibiliteit geeft de applicatie ook verantwoordelijkheid voor correcte verliesdetectie, beveiliging, stroomregeling en congestiebeheersing.
Belangrijkste punten
- Verstarring ontstaat wanneer bestaande apparatuur protocolwijzigingen moeilijk maakt.
- QUIC combineert transport- en TLS-opbouw en kan 0-RTT-gegevens ondersteunen die gevoelig zijn voor herhaling.
- Onafhankelijke streams voorkomen dat geordende aflevering van niet-gerelateerde streams op transportniveau volledig stilvalt.
- Versleuteling van de nettolading en headerbescherming verbergen de meeste veranderbare transportdetails.
- Verbindings-ID's ondersteunen migratie buiten een vast adres- en poorttupel.
- QUIC voegt betrouwbaarheid, stroomregeling en congestiebeheersing toe boven op UDP.
6.2 Gebruik duidelijkere verliessignalen met bekende congestiebeheersing
QUIC verbetert wat een zender uit ontvangstbevestigingen kan afleiden, maar moet nog steeds overbelasting van het pad voorkomen. RFC 9002 definieert verliesdetectie en een standaardregelaar die op NewReno lijkt. Implementaties kunnen andere geschikte algoritmen gebruiken, waaronder CUBIC of BBR.
Identificeer elke verzending
Pakketnummers nemen toe en worden binnen een pakketnummerruimte nooit herhaald. Opnieuw verzonden gegevens reizen in frames binnen een nieuw pakket met een nieuw nummer. Een ACK kan daardoor de aangekomen verzending identificeren en voorkomt de onduidelijkheid bij TCP tussen een oorspronkelijk segment en de hertransmissie ervan.
ACK-frames melden ontvangen bereiken en de bevestigingsvertraging van de ontvanger. Na de handshake gebruikt de zender een gevalideerde, begrensde bevestigingsvertraging bij het aanpassen van RTT-schattingen; hij trekt niet blindelings een willekeurige vertraging van de ontvanger van elke meting af.
QUIC verklaart een pakket verloren wanneer een pakket met een minstens drie nummers hoger pakketnummer is bevestigd, of via de tijdsdrempel zodra een later pakket is bevestigd. De aanbevolen tijdsdrempel is 9/8 van de hoogste van de meest recente en de afgevlakte RTT. Een time-out voor een meetpakket, PTO, zet de zender ertoe aan testpakketten te verzenden die ontvangstbevestigingen uitlokken. Alleen het aflopen van een PTO laat cwnd niet instorten.
Stel venstergrenzen in bytes in
Voor maximale datagramgrootte d is het initiële venster volgens RFC 9002:
Bij een d van 1.200 bytes is het resultaat 12.000 bytes. Bij een d van 1.500 bytes is het 14.720 bytes. Het minimale congestievenster is twee datagrammen van maximale grootte, dus die paden hebben minima van respectievelijk 2.400 en 3.000 bytes.
In de standaardregelaar halveert verlies of een nieuw CE-congestiesignaal cwnd, met het minimum als ondergrens, en stelt ssthresh in op het verlaagde venster. Een herstelperiode voorkomt een nieuwe verlaging bij verder verlies van pakketten die vóór het begin van het herstel zijn verzonden. Een ontvangstbevestiging voor een tijdens het herstel verzonden pakket beëindigt de periode. Daarna hervat de zender de normale groei.
Herken aanhoudende problemen
Aanhoudende congestie is een sterkere aanwijzing dan het eenmaal aflopen van een timer. Ze vereist een voldoende lange reeks verloren pakketten die een ontvangstbevestiging uitlokken, zonder tussentijds bevestigd pakket en met een eerdere RTT-meting. De tijdsdrempel is:
Bij een afgevlakte RTT van 100 ms, een variatie van 10 ms, een maximale bevestigingsvertraging van 25 ms en een verwaarloosbare timergranulariteit is de drempel 495 ms. Het verliesinterval dat aan de voorwaarden voldoet, moet die waarde overschrijden. De regelaar verlaagt cwnd dan naar twee datagrammen, het minimumvenster.
Houd terugkoppeling en timing bruikbaar
QUIC-ACK's kunnen cumulatieve aantallen ECT(0), ECT(1) en CE melden. Nadat de werking van ECN op het pad is gevalideerd, behandelt de zender een nieuwe stijging van CE als een congestiegebeurtenis zonder dat pakketverlies nodig is.
Gespreide pakketverzending verdeelt transmissies over de tijd. Een snelheid van ongeveer 1,25 keer cwnd gedeeld door de afgevlakte RTT is één voorgestelde aanpak; burstgrenzen kunnen hetzelfde doel dienen. Een heel venster in één keer verzenden veroorzaakt een burst, ook wanneer de gemiddelde snelheid aanvaardbaar is. Invoering in de gebruikersruimte maakt nieuwe regelaars gemakkelijker uit te brengen, maar elke stack moet nog steeds verantwoord bandbreedte delen.
Belangrijkste punten
- Unieke pakketnummers identificeren verzendingen; ontvangen bereiken lokaliseren gaten.
- Aanpassing voor bevestigingsvertraging volgt de regels voor validatie en de handshake.
- Pakket- en tijdsdrempels detecteren verlies; PTO verzendt testpakketten voor terugkoppeling.
- De standaardregelaar halveert eenmaal per herstelperiode en respecteert een minimum van twee datagrammen.
- Aanhoudende congestie vereist een verliesinterval dat aan de voorwaarden voldoet en langer is dan de tijdsdrempel.
- Gevalideerde ECN-aantallen kunnen congestie signaleren zonder verwerping.
- Gespreide pakketverzending of burstgrenzen voorkomen dat het volledige venster in één burst wordt verzonden.
Congestiebeheersing in netwerken: voorbeelden
1Volg verkeer door een knelpunt
13 stappen
- 1IntroductieEen verbinding kan bezet blijven terwijl een applicatie wacht
Meerdere snelle ingangen voeden één langzamere uitgang, een knelpunt. De router moet het overschot vasthouden, zodat dezelfde verkeersstroom een hoge doorvoersnelheid en een lange wachttijd kan ervaren.
Volg eerst de wachtrij en bekijk daarna het werk dat geen nieuwe gegevens aflevert (nuttige doorvoersnelheid en congestie-instorting). Bepaal ten slotte welk soort terugkoppeling de zender kan vertellen zijn gedrag te veranderen. Deze drie invalshoeken verklaren waarom activiteit alleen een slechte maat is voor de toestand van het netwerk.
- 2UitlegVergelijk aankomsten met vertrek
Het knelpunt is de verbinding met de minste beschikbare capaciteit voor het verkeer op zijn pad. Wanneer de aankomstsnelheid aanhoudend hoger is dan de uitgangssnelheid, hoopt het overschot zich op in de uitgangswachtrij.
Onder de uitgangssnelheid laat de overgebleven capaciteit de wachtrij leeglopen. Als de constante aankomstsnelheid precies gelijk is aan de uitgangssnelheid, blijft een bestaande wachtrij onveranderd: elk vertrekkend pakket wordt vervangen door een aankomend pakket. Een korte overbelasting kan worden opgevangen als daarna een rustigere periode volgt.
- 3VoorbeeldBepaal hoe snel de wachtrij groeit
Een lege routerbuffer ontvangt 15 Mbps terwijl de uitgang 11 Mbps verzendt. Bepaal eerst het overschot:
Reken het overschot om naar bytes per seconde:
Dit is de snelheid waarmee wachtende gegevens zich ophopen. Als je de volledige aankomstsnelheid gebruikt, tel je gegevens mee die de uitgangsverbinding al heeft verzonden.
- 4VoorbeeldReken wachtende gegevens om naar wachttijd
Behoud dezelfde uitgang van 11 Mbps. Een buffer van 1.000.000 bytes raakt na 2 s vol door het overschot van 500.000 bytes/s.
Wanneer de buffer vol is, staan er 8.000.000 bits vóór een nieuw aansluitend pakket. De geschatte wachttijd is:
De uitgangssnelheid bepaalt hoe lang het duurt voordat gegevens die al wachten vertrekken. Het ingangsoverschot bepaalt hoe snel die achterstand is ontstaan.
- 5UitdagingVoorspel wat er met een wachtrij gebeurt als de belasting daalt
Een wachtrij bevat 300.000 bytes. De uitgang is 12 Mbps en de constante aankomstsnelheid daalt naar 8 Mbps. Hoe lang duurt het voordat de bestaande wachtrij leegloopt?
---reveal---
De netto afnamesnelheid is 4 Mbps, oftewel 500.000 bytes/s. Dus:
Als je door de volledige uitgangssnelheid deelt, negeer je nieuwe pakketten die blijven aankomen terwijl de oude achterstand wordt weggewerkt.
- 6UitlegVolg wat een hertransmissie vervangt
Nuttige doorvoersnelheid telt nieuwe nuttige applicatiegegevens eenmaal. Doorvoersnelheid telt afgeleverd verkeer, terwijl aangeboden belasting alles omvat wat het netwerk in wordt gestuurd.
Een zender die betrouwbare overdracht verzorgt, vervangt verloren gegevens, maar die herhalingen verbruiken verbindingstijd. Als een timer afloopt terwijl een origineel alleen vertraagd is, kunnen twee exemplaren door het pad reizen en met succes aankomen. De applicatie ontvangt dat deel van de gegevens nog steeds maar eenmaal.
- 7VoorbeeldHoud rekening met werk dat verderop verloren gaat
Een pakket reist over verbindingen A en B en wordt daarna verworpen in de wachtrij vóór C. Beide eerdere transmissies hebben al capaciteit verbruikt, maar het pakket bereikt zijn bestemming nooit.
Naarmate meer verkeer laat verloren gaat, kunnen eerdere verbindingen een steeds groter deel van hun tijd besteden aan pakketten die hun bestemming niet zullen bereiken. De eind-tot-eindaflevering kan dalen terwijl die verbindingen bezet blijven. Dit is één weg naar congestie-instorting, niet simpelweg een volle wachtrij bij één router.
- 8UitdagingOnderscheid gebruikte capaciteit van nuttige voortgang
Een verbinding van 16 Mbps wordt volledig benut. Van de even grote pakketten herhaalt 25% gegevens die de verbinding eerder heeft vervoerd. Wat is, zonder rekening te houden met headers en verlies verderop, de hoogst mogelijke snelheid van nieuwe gegevens?
---reveal---
Slechts driekwart is nieuw:
De overige 4 Mbps kan nuttig zijn om de betrouwbaarheid te herstellen, maar voegt geen nieuwe gegevens toe aan de snelheid die hier wordt geteld.
- 9KernpuntWeet wat er verandert bij het knikpunt en instortingspunt
Voorbij het knikpunt geeft een grotere aangeboden belasting weinig extra doorvoersnelheid terwijl de vertraging sterk stijgt. Voorbij het instortingspunt daalt de doorvoersnelheid doordat verlies en verspild werk overheersen.
Deze punten beschrijven verschillende problemen: inefficiënte wachttijd kan optreden voordat de nuttige aflevering instort. Een regelaar moet het knelpunt productief bezet houden en tegelijk het werkpunt met hoge vertraging vermijden dat een grote buffer kan verhullen.
- 10UitlegBepaal waar de waarschuwing vandaan komt
Bij eind-tot-eindregeling leidt de zender congestie af uit verlies, RTT of afleveringsmetingen. Een router geeft geen expliciete congestiemelding.
Bij netwerkondersteunde regeling verstuurt de router een waarschuwing. Bij ECN markeert de router een pakket op weg naar de ontvanger en meldt de ontvanger die markering terug. De melding geldt nog steeds als netwerkondersteund, ook al komt die terug in een ontvangstbevestiging van een eindpunt.
- 11VerbandOnderscheid het signaal van de verzendregeling
Verlies kan ontstaan door overloop van een wachtrij of beschadiging op een draadloze verbinding. Een stijging van de RTT kan komen door een wachtrij of een routewijziging. Een markering meldt expliciet congestie, maar vereist compatibele ondersteuning op het pad.
Na interpretatie van het signaal kan de zender een venster begrenzen of een snelheid voor gespreide verzending kiezen. Dit zijn keuzes voor de regeling, los van de herkomst van het signaal. Ongeveer één venster per RTT verbindt de hoeveelheid onderweg met de bereikte snelheid.
- 12UitdagingKies een bruikbaar terugkoppelpad
Een download houdt een grote routerbuffer gevuld. De ontvanger heeft ruim voldoende vrij geheugen. De router begint congestie te markeren en de ontvanger meldt de markeringen terug. Wat voor regeling is dit en waarom kan die de vertraging van de download aanpakken?
---reveal---
Dit is netwerkondersteunde congestiebeheersing. De zender kan het verkeer naar het overbelaste pad verminderen, zodat de routerwachtrij kan krimpen. Meer ruimte bij de ontvanger zou die wachtrij niet laten leeglopen, omdat de beperkende capaciteit in het netwerk ligt.
- 13SamenvattingBekijk belasting, nuttige aflevering en terugkoppeling samen
Voorspel de groei van de wachtrij uit aankomsten min vertrek; bepaal de wachttijd uit wachtende bits gedeeld door de uitgangssnelheid. Controleer daarna hoeveel werk op de verbinding nieuwe applicatiegegevens aflevert.
Verlies, vertraging en expliciete terugkoppeling vertellen een zender verschillende dingen. Een bruikbare congestieregelaar interpreteert die signalen en past het verkeer aan, zodat het pad gegevens efficiënt aflevert zonder buitensporige wachtrijen in stand te houden.
2Volg een TCP-venster van opstart tot en met herstel
20 stappen
Sla deze les op om elke Walkthrough stap voor stap te volgen.
- 1IntroductieLees eerst het venster en daarna de snelheid
- 2UitlegHoud rekening met zowel de grens van de zender als die van de ontvanger
- 3VoorbeeldSchat een door het venster begrensde snelheid
- 4VoorbeeldBereken hoeveel gegevens nodig zijn om een pad te vullen
- 5UitdagingBepaal welke grens werkelijk beperkend is
- 6UitlegWaarom slow start snel groeit
- 7VoorbeeldVerander de regel bij de drempel
- 8TipBenoem in elke uitwerking de fase
- 9UitdagingVolg de omschakeling zonder een ronde over te slaan
- 10UitlegOnderscheid een gat van een stil pad
- 11VoorbeeldBegin snel herstel met tijdelijke venstervergroting
- 12VoorbeeldBeëindig herstel bij de drempel
- 13UitdagingGebruik FlightSize en verklein het venster correct
- 14UitlegBereken het gemiddelde van het zaagtandvenster
- 15VoorbeeldReken het gemiddelde om naar bits per seconde
- 16VerbandBekijk waarom verlies en RTT van belang zijn
- 17UitdagingVerander twee modelinvoeren tegelijk
- 18KernpuntEen hoog BDP vergroot het probleem van langzaam herstel
- 19UitdagingCombineer de snelheidsschatting met stroomregeling
- 20SamenvattingBekijk groei, herstel en grenzen als afzonderlijke beslissingen
3Volg eerlijke verdeling van een ideaal paar naar echte gebruikers
12 stappen
Sla deze les op om elke Walkthrough stap voor stap te volgen.
- 1IntroductieVraag wie de capaciteit ontvangt
- 2UitlegTeken de twee doellijnen
- 3VoorbeeldBekijk het verschil en de verhouding afzonderlijk
- 4UitdagingKies een aanpassing die de relatieve verdeling verandert
- 5VerbandWeet wanneer de ideale convergentie geldt
- 6UitlegGebruik de index van Jain voor gelijkheid
- 7VoorbeeldBereken een score en de benutting
- 8VoorbeeldVerdeel de rest na een kleine vraag
- 9UitdagingBepaal de juiste groep voor een eerlijkheidsscore
- 10KernpuntZowel zenders als wachtrijen bepalen de uitkomst
- 11UitdagingOnderscheid gelijkheid van efficiënt AIMD-gedrag
- 12SamenvattingOnderscheid een verdeling van de verklaring ervoor
4Volg een vroege congestiewaarschuwing
13 stappen
Sla deze les op om elke Walkthrough stap voor stap te volgen.
- 1IntroductieWeinig verlies kan een lange wachttijd verhullen
- 2VoorbeeldMeet de wachttijd in een grote buffer
- 3UitlegRED geeft een vroeg signaal met een bepaalde kans
- 4UitlegCoDel onderzoekt of de vertraging ooit klein wordt
- 5UitdagingInterpreteer een vertragingsverloop
- 6VerbandOnderscheid bediening per verkeersstroom van regeling van wachtrijvertraging
- 7UitlegMarkeer een afgeleverd pakket
- 8VoorbeeldSluit de klassieke TCP-terugkoppellus
- 9UitdagingVerwerk herhaalde terugmeldingen van één gebeurtenis
- 10VoorbeeldStem een DCTCP-reactie af op gemarkeerd verkeer
- 11VerbandL4S combineert gedrag van eindpunten en wachtrijen
- 12UitdagingLeg aflevering zonder time-out uit
- 13SamenvattingVolg detectie, markering en reactie
5Vergelijk de groei van CUBIC met het padmodel van BBR
14 stappen
Sla deze les op om elke Walkthrough stap voor stap te volgen.
- 1IntroductieKies wat de regelaar moet leren
- 2UitlegBegin met een mildere gewone verlaging
- 3VoorbeeldBepaal de kubische terugkeertijd
- 4VoorbeeldBereken een punt onder de oude piek
- 5KernpuntDe zuivere curve is maar één mogelijkheid
- 6UitdagingGebruik de twee verschillende onthouden waarden van CUBIC
- 7VoorbeeldLaat Vegas wachtende segmenten afleiden
- 8UitlegBouw het bandbreedte-vertragingsmodel van BBR op
- 9VoorbeeldBereken het model voordat je factoren toepast
- 10VerbandTast af en maak daarna ruimte om te meten
- 11UitdagingVertaal een model naar regelinstellingen
- 12TipHoud versie en terugkoppelregels bij de hand
- 13UitdagingOnderscheid een RTT-waarschuwing van een padmodel
- 14SamenvattingVergelijk metingen, groei en wachtrijvorming
6Volg QUIC van verbindingsopbouw tot herstel na congestie
15 stappen
Sla deze les op om elke Walkthrough stap voor stap te volgen.
- 1IntroductieVerander het transportprotocol zonder zijn taak los te laten
- 2UitlegBegrijp waarom TCP-wijzigingen kunnen stagneren
- 3VerbandBescherm details die moeten kunnen veranderen
- 4VoorbeeldVergelijk de tijd tot het eerste antwoord
- 5VoorbeeldOnderscheid volgorde binnen streams van het delen van een verbinding
- 6UitdagingCorrigeer een bewering over transport op basis van UDP
- 7UitlegGeef elke verzending een eigen identiteit
- 8VoorbeeldDetecteer een gat voordat je terugkoppeling uitlokt
- 9VoorbeeldBereken het initiële venster en het minimumvenster
- 10UitdagingVerlaag eenmaal voor een verliesperiode met eerder verzonden gegevens
- 11VoorbeeldBepaal een tijdsdrempel voor aanhoudende congestie
- 12VerbandVervoer ECN-aantallen in ACK's
- 13TipControleer wanneer bytes vertrekken, niet alleen hoeveel
- 14UitdagingVerbind onafhankelijke aflevering met een gedeelde reactie
- 15SamenvattingHoud invoeringsvoordelen en congestieverplichtingen bij elkaar
Congestiebeheersing in netwerken: oefenvragen
Set 1: Lees congestiesignalen en vensterwijzigingen10 Oefenvragen
Vraag 1 van 10
Toon antwoordVerberg antwoord
Vraag 2 van 10
Toon antwoordVerberg antwoord
Vraag 3 van 10
Toon antwoordVerberg antwoord
Vraag 4 van 10
Toon antwoordVerberg antwoord
Vraag 5 van 10
Toon antwoordVerberg antwoord
Vraag 6 van 10
Toon antwoordVerberg antwoord
Vraag 7 van 10
Toon antwoordVerberg antwoord
Vraag 8 van 10
Toon antwoordVerberg antwoord
Vraag 9 van 10
Toon antwoordVerberg antwoord
Vraag 10 van 10
Toon antwoordVerberg antwoord
Set 2: Breng snelheden, eerlijke verdeling en transportterugkoppeling met elkaar in verband10 Oefenvragen
Sla deze les op om elk antwoord te zien en elke set te oefenen.
Vraag 1 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 2 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 3 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 4 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 5 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 6 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 7 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 8 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 9 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 10 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Set 3: Analyseer wachtrijen en herstelperioden10 Oefenvragen
Sla deze les op om elk antwoord te zien en elke set te oefenen.
Vraag 1 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 2 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 3 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 4 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 5 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 6 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 7 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 8 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 9 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 10 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Set 4: Pas de regels toe wanneer omstandigheden veranderen10 Oefenvragen
Sla deze les op om elk antwoord te zien en elke set te oefenen.
Vraag 1 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 2 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 3 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 4 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 5 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 6 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 7 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 8 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 9 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 10 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Set 5: Redeneer over verschillende modellen en transportgedrag10 Oefenvragen
Sla deze les op om elk antwoord te zien en elke set te oefenen.
Vraag 1 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 2 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 3 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 4 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 5 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 6 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 7 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 8 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 9 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 10 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Kom je niet uit je eigen opgave? Huiswerkhulp
Kernbegrippen
A
Aangeboden belasting
Aanhoudende congestie
Actief wachtrijbeheer (AQM)
Additieve toename
Additieve toename en multiplicatieve afname (AIMD)
B
Bandbreedte-vertragingsproduct (BDP)
Basisrondlooptijd
BBR
Beheerste vertraging (CoDel)
Benadering van Mathis
Bevestigd pakketnummerbereik
Bevestigingsvertraging
Blijvende wachtrij
Blokkering door het eerste element
Bufferbloat
C
Chiu-Jain-diagram
Congestie
Congestie ondervonden (CE)
Congestie-instorting
Congestiesignaal
Congestievenster (cwnd)
Congestievenster verkleind (CWR)
Congestievermijding
CUBIC
CUBIC-terugkeertijd K
D
Doorvoersnelheid
E
ECN-terugmelding (ECE)
Eerlijke wachtrijbediening
Eerlijkheidsindex van Jain
Efficiëntielijn
Eind-tot-eindcongestiebeheersing
Expliciete congestiemelding (ECN)
F
Factor voor de verzendsnelheid
G
Gedeeltelijke ontvangstbevestiging
Gespreide pakketverzending
Globale synchronisatie
H
Herstelperiode
Herstelprobleem bij hoge transmissiesnelheden
Hertransmissie
Hertransmissietime-out (RTO)
Hoeveelheid verzonden onbevestigde gegevens (FlightSize)
I
Initieel venster
Instortingspunt
K
Knelpunt
Knikpunt
L
L4S
Lijn van gelijke verdeling
M
Max-min-eerlijkheid
Maximale segmentgrootte (MSS)
Multiplicatieve afname
N
Netwerkondersteunde congestiebeheersing
NewReno
Nuttige doorvoersnelheid
O
Oneerlijke verdeling door verschillen in rondlooptijd
Onnodige hertransmissie
Ontvangstvenster (rwnd)
P
Pakketdrempel
Pakketnummerruimte
Parallelle verbindingen
ProbeBW
ProbeRTT
Protocolverstarring
Q
QUIC
QUIC-stream
R
Reno-vriendelijk gebied
Rondlooptijd (RTT)
S
Selectieve ontvangstbevestiging (SACK)
Slow start
Slow-startdrempel (ssthresh)
Snel herstel
Snelheidsgebaseerde regeling
Snelle convergentie
Snelle hertransmissie
Stroomregeling
T
TCP Vegas
TCP voor datacenters (DCTCP)
TCP-vriendelijk verkeer
Tijdelijke venstervergroting
Tijdsdrempel
Time-out voor een meetpakket (PTO)
Transport met ECN-ondersteuning (ECT)
U
Uitgangswachtrij
Uitgestelde ontvangstbevestiging
V
Vensterfactor
Venstergebaseerde regeling
Venstergroei op basis van bevestigde bytes
Verbindingsmigratie
Verblijftijd
Verliesfractie
Verwerpen bij een volle wachtrij
Verzendklok op basis van ontvangstbevestigingen
Vroege 0-RTT-gegevens
W
Willekeurige vroegtijdige detectie (RED)
Wmax
Z
Zaagtandmodel
- 1Pakketschakeling
- 2Applicatielaag
- 3Transportlaag
- 4Congestiebeheersing in netwerken
- 5Netwerklaag datavlak
- 6Besturingsvlak
- 7Datalinklaag
- 8Beveiliging in computernetwerken
Over deze les
Door StudeliFout melden
Maak je eigen Studiemateriaal
Maak van je aantekeningen, slides en documenten Leermodules, Oefenvragen, Flashcards en 6 andere tools.