Ursprungligen inskrivet av Tjofras
Ett ämne man inte ser så ofta är optimering av TCP.
Men något som faktiskt kan öka överföringshastigheter ganska dramatisk utan att man behöver köpa ny hårdvara är att öka TCP:s Windowsize.
TCP i sig är ett ganska invecklat kapitel, men lite enkelt så finns det en buffer på både sändar och mottagar sidan.
Storleken på dessa buffrar bestämmer hur mycket data som kan vara påväg (skickat men inte mottaget) mellan två noder (datorer).
Är dessa buffrar små och tiden det tar att skicka mellan noderna är lång kommer detta att begränsa överföringshastigheten.
Vi tar ett litet exempel, i Windows XP är windowsizen satt till 17 520 bytes som standard (kan ha ändrats med nått service pack till 65k).
Vi ska nu ladda hem något från en kompis.
Vi testar först att pinga och ser att vi har ungefär 50ms ping.
Med dessa värden kan vi räkna ut den maximala överföringen med en TCP koppling.
överföringshastighet(bytes/s) = windowsize(bytes) / ping(s)
I detta fall blir då den maximala överföringshastigheten 17520/0.05 = 350000 bytes/s.
Vilket är ungefär 2.6Mbit/s.
Vilket kanske inte är så kul om man har en uppkoppling som ska klara 10Mbit/s (ännu värre med 100Mbit/s såklart).
50ms ping kanske är lite högt räknat när man räknar inom Sverige,
men om man ska ladda hem något från USA så får man räkna med 150ms+ och då blir det ju ännu värre
(max överföringshastighet vid 150ms blir då 0.9Mbit/s).
För att se vilken windowsize du har kan du gå in på följande sida
http://www.speedguide.net/analyzer.php .
"Default TCP Receive Window (RWIN)" är storleken på ditt window.
Dom visar även vilken din maximala överföringshastighet är vid olika svarstider.
Så nu till det roliga, hur ändrar man dessa värden ?
Man kan gå in och rota i registret såklart, men det är inget jag gillar. Därimot har jag hittat ett väldigt bra verktyg för att ändra detta SG TCP Optimizer (http://www.speedguide.net/downloads.php).
Man kan ställa in "TCP Receive Window" manuellt om man vill.
Det som är viktigt är att kryssrutan för "Window Scaling" är ikryssad (annars är max windowsize ~65k).
Men har man en 10 Mbits lina eller mer rekomenderar jag att ni drar upp "Connection Speed" mätaren till 10k+ och klickar i "Optimal Settings".
Jag själv har en 100Mbit/s lina från BBB och jag har satt mitt Receive window manuellt till 2 044 000 vilket borde räcka för dom flesta.
En sak man kan tänka på om man sätter det manuellt är att det ska vara en jämn multipel av MSS (vilket är 1460 i nästan alla fall).
Så i mitt exempel har jag 1400*1460(MSS) = 2 044 000.
Ett tips till er som tvivlar, tanka tex filen
ftp://ftp.kernel.org/pub/dist/knoppix-dvd/KNOPPIX_V5.0.1DVD-2...
om ni får mellan 100-300kb/s på en uppkoppling som ska klara mer så vet ni att ni har för ett för litet windowsize.
Testa gärna igen efter att ni optimerat och se vilken skillnad ni får.
En liten kort sammanfattning skadar kanske inte.
Om man har RWIN (http://www.speedguide.net/analyzer.php) satt till ett lågt värde (17520 - 65000) och man har en hyffsad uppkoppling (10Mbit/s eller snabbare) bör man fundera på att öka detta eftersom detta kommer att begränsa uppkopplingen vid vanliga överföringar.
Några fler exempel:
Windowsize på 17 520 bytes:
-Ping 200ms = max ~0.6Mbit/s
-Ping 50ms = max ~2.7Mbit/s
-Ping 10ms = max ~13Mbit/s
Windowsize på 65 535 bytes:
-Ping 200ms = max ~2.5Mbit/s
-Ping 50ms = max ~10Mbit/s
-Ping 10ms = max ~50Mbit/s
Windowsize på 1 027 840 bytes:
-Ping 200ms = max ~40Mbit/s
-Ping 50ms = max ~150Mbit/s
-Ping 10ms = max ~800Mbit/s
Och allt detta är per TCP koppling så detta är ju inte ett max på vad eran uppkoppling klarar.
Vid använding av bittorent eller liknande är detta sällan ett problem.
Men vi "vanlig" nerladdning via FTP eller HTTP så spelar det större roll.
Om det av någon anledning skulle uppstå något problem så går det att återställa inställningarna via "File->Restore Backed up settings" eller "File->RestoreWindows Default Settings" (alltid bra att veta om nått skiter sig)
Om ni inte kommer upp i ungefär 300kb/s när ni laddar hem testfilen så är det med största sanolikhet inte windowsizen som begränsar er utan något annat.