Linux-netværk og TCP/IP for udviklere · Lektion

Justering af TCP congestion control

Forstå og justér Linux-algoritmer til TCP congestion control som CUBIC og BBR for at forbedre throughput og latenstid på virkelige netværk.

Lektion 4 af 413 trin

Justering af TCP congestion control er en gratis Linux-netværk og TCP/IP for udviklere-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Linux-netværk og TCP/IP for udviklere, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Linux-netværk og TCP/IP for udviklere-kurset indeholder 4 lektioner i alt.

Hvad overbelastningsstyring gør

TCP-overbelastningsstyring afgør, hvor hurtigt en afsender må transmittere uden at overbelaste netværket.

Den styrer afvejningen mellem gennemløb og forsinkelse, og den rigtige algoritme kan ændre ydeevnen markant.

Overbelastningsvinduet

Overbelastningsvinduet (cwnd) begrænser, hvor mange ikke-bekræftede bytes der er undervejs. Algoritmer øger og reducerer cwnd som reaktion på ACK'er og signaler om pakketab.

Et for lille vindue spilder båndbredde; et for stort vindue medfører pakketab og bufferbloat.

Tabbaseret kontra latensbaseret

Der findes to familier:

  • Tabbaserede (CUBIC, Reno) vokser, indtil pakker går tabt
  • Latens- eller modelbaserede (BBR) estimerer båndbredde og RTT for at undgå at fylde buffere

BBR klarer sig ofte bedst på forbindelser over lange afstande med pakketab.

Visning af tilgængelige algoritmer

Se, hvilke algoritmer kernen har indlæst.

sysctl net.ipv4.tcp_available_congestion_control

Kontrol af den aktuelle algoritme

CUBIC er standard i Linux. Bekræft, hvad der er aktivt.

sysctl net.ipv4.tcp_congestion_control

Aktivering af BBR

Indlæs BBR-modulet, og angiv det derefter som standard. BBR fungerer bedst sammen med kødisciplinen fq.

sudo modprobe tcp_bbr
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
sudo sysctl -w net.core.default_qdisc=fq

Permanentgørelse af ændringer

Runtime-ændringer med sysctl går tabt ved genstart. Gør dem permanente i /etc/sysctl.d/.

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

Justering af bufferstørrelser

Overbelastningsstyring kan kun fylde et vindue i det omfang, bufferne tillader. For forbindelser med høj båndbredde-forsinkelses-produkt skal du hæve de maksimale værdier for automatisk justering.

net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

Båndbredde-forsinkelses-produktet

Optimal vinduesstørrelse = båndbredde x round-trip-tid. En forbindelse på 1 Gbps med 100 ms RTT kræver cirka 12,5 MB buffer for at forblive fuldt udnyttet.

For små buffere begrænser gennemløbet uanset algoritmen.

Observation af forbindelser

Undersøg live sockettilstand, cwnd og RTT med ss for at bekræfte, at justeringen virker.

ss -tin

Måling af effekten

Benchmark før og efter med et værktøj som iperf3 over en ægte netværksforbindelse. Mål altid både gennemløb og forsinkelse, fordi aggressiv justering kan forbedre den ene på bekostning af den anden.

iperf3 -c remote-host -t 30

Hurtig kontrol

Test din viden om overbelastningsstyring.

Opsummering

Du kan nu justere TCP-overbelastningsstyring:

  • Forstå cwnd og båndbredde-forsinkelses-produktet
  • Sammenligne tabbaserede (CUBIC) og modelbaserede (BBR) algoritmer
  • Aktivere BBR med qdisc'en fq og gøre indstillingen permanent
  • Dimensionere tcp_rmem/tcp_wmem-buffere korrekt
  • Kontrollere med ss -tin og benchmarke med iperf3

Dette bygger videre på dine lektioner om kerneparametre og benchmarking.

Gratis at komme i gang

Lær Linux-netværk og TCP/IP for udviklere med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Justering af TCP congestion control” gratis?

Ja — hele teksten til “Justering af TCP congestion control” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Linux-netværk og TCP/IP for udviklere-kurset, skal du opgradere til CoddyKit PRO. Linux-netværk og TCP/IP for udviklere-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Justering af TCP congestion control”?

Forstå og justér Linux-algoritmer til TCP congestion control som CUBIC og BBR for at forbedre throughput og latenstid på virkelige netværk. Du øver dig i Linux-netværk og TCP/IP for udviklere med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Linux-netværk og TCP/IP for udviklere?

Der kræves ingen tidligere erfaring. Linux-netværk og TCP/IP for udviklere på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Justering af TCP congestion control”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Linux-netværk og TCP/IP for udviklere-lektion?

Ja. Alle Linux-netværk og TCP/IP for udviklere-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Netværksparametre i kernen
  2. Finjustering og optimering af NIC
  3. Benchmarking af netværksgennemstrømning
  4. Justering af TCP congestion control
← Tilbage til Linux-netværk og TCP/IP for udviklere