Permalänk
Medlem

Optimera TCP

Ett ämne man inte ser så ofta är optimering av TCP. Dom flesta av oss har väll sett popups som lovar att öka våra överföringshastigheter och sänka våran ping. Många av dess är nog fortfarande bara bluff och båg (samt spyware). 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 10Mbits 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)

Edit:
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.

Edit2:
Detta gäller inte Windows Vista.
Vista har en funktion som heter TCP autotuning som är tänkt att ta hand om detta problem. (Det verkar även funka hyffsat)

Permalänk
Medlem

Nice, jag har ofta stört mig på dåliga nerladdningshastigheter från framförallt USA och det här verkar hjälpa.

Nerladdningen på filen det länkades till ökade från 150 KB/s till 450-650KB/s! Tack
EDIT: Detta med 15Mbit/s ADSL ("upp till" 24Mbit)

Jag röstar för sticky!

Visa signatur

WS: DFI LP UT X38T2R (Gigabyte X38-DQ6 = Trasigt)| Intel C2D E6750 | 4*1 GiB Twinmos PC2-6400 | ATI Radeon HD4870 1GB | WD Caviar XL "AAKS" SATA 500GB | Antec Neopower 480W | Antec SLK3700-BQE
Server: DFI LP NF4 Ultra | AMD 3000+ "winchester" | 2*512MiB PC3200 | ATI Radeon HD2400pro | 1000GB WD GP, 3*320GB Seagate 7200.10, 250GB WD2500 PATA, 200GB Maxtor DM10 SATA = 2410GB

Permalänk
Medlem

Ah, verkar som ett vettigt program, får testa lite senare, men jag röstar oxå för en sticky!

Permalänk
Medlem

Inte illa!

FTP: ftp://ftp.kernel.org/pub/dist/knoppix-dvd/KNOPPIX_V5.0.1DVD-2...

Före: ~450 KB/s
Efter: ~1450 KB/s

//MrIbra

Permalänk
Medlem

Det är kul att se att det verkligen ger så stora ökningar, även på ADSL Det finns dock andra saker som kan sätta begränsingar för ADSL-användare tex att uploaden inte hinner med att "acka" alla paket. Men det kanske är mer vid bittorent och liknande tjänster som man märker av det.

Permalänk
Medlem

För mig så hjälpte inte det, 30/30mbit , tankade först i 115kb/sec och runt 100kb/sec efter optimeringen...

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av zka
För mig så hjälpte inte det, 30/30mbit , tankade först i 115kb/sec och runt 100kb/sec efter optimeringen...

Det behöver inte bero på optimeringen, det kan också bero på andra flaskhalsar. Exempelvis så får du inte bättre hastighet trots optimering om din leverantör inte har kapacitet tillräckligt för att du ska kunna nyttja din fulla bandbredd mot det nätet/destinationen.

Visa signatur

N/A

Permalänk
Medlem

Eller det faktumet att större fönster inte alltid gör det bättre. TCP gillar inte paketförluster alls när vi kommer upp i riktigt snabba uppkopplingar. Men det gäller att testa sig fram

Permalänk
Medlem

Jo, det är klart att det finns undantag för allt...

Faktum är dock att folk med snabba uppkopplingar mycket ofta har mycket lågt ställda fönsterinställningar, vilket helt i onödan tvingar ner hastigheterna...

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Medlem

Väldigt intressant, tål att läsa på sig lite tror jag

Visa signatur

Alldeles för mycket för att få plats med kompletta hårdvarulistor i den här lilla ¤#%@!/ rutan.

Permalänk

Hmm... fick ca 100 kb/s först, sedan initialt 500kb/sec, för att sluta vid 800kb/sec.... SKOJ!

Jag undrar lite om det finns risker för om det blir fel vid överföringen, att filerna blir korrupta osv... att man tvångsmatar och det inte hinns med riktigt... svårt att förklara... jag är kass på nätverk mm så jag vet inte riktigt. Funkar det att göra såhär utan att man förlorar nåt på det är det bara att testa!!

Visa signatur

AMD Phenom II X4 965 BE @ 3.8 GHz[] 8 Gb Corsair XMS3 1600 MHz [] HIS 6950 2Gb [] Creative X-Fi Platinum [] Antec P182 [] Corsair 550W []

Asus EEE PC 1000H (2 gb minne)

Permalänk
Medlem

det negativa som kan hända är att det går långsammare

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Funkificator
Hmm... fick ca 100 kb/s först, sedan initialt 500kb/sec, för att sluta vid 800kb/sec.... SKOJ!

Jag undrar lite om det finns risker för om det blir fel vid överföringen, att filerna blir korrupta osv... att man tvångsmatar och det inte hinns med riktigt... svårt att förklara... jag är kass på nätverk mm så jag vet inte riktigt. Funkar det att göra såhär utan att man förlorar nåt på det är det bara att testa!!

nej, tcp kör någon form av crc om jag inte missminner mig. Med andra ord det finns någon inbyggd checksum. Fungerar lite som .sfv filerna gör (om du vet vad det är), fast för varenda byte

edit: felstavning

Visa signatur

'Let's put it this way: if you need to ask a lawyer whether what you do is "right" or not, you are morally corrupt. Let's not go there. We don't base our morality on law.' - Linus Torvalds

Permalänk

Det gick snabbare för mig (hahah hahah) så då är väl allt frid och fröjd då...

Visa signatur

AMD Phenom II X4 965 BE @ 3.8 GHz[] 8 Gb Corsair XMS3 1600 MHz [] HIS 6950 2Gb [] Creative X-Fi Platinum [] Antec P182 [] Corsair 550W []

Asus EEE PC 1000H (2 gb minne)

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av varget
det negativa som kan hända är att det går långsammare

Vad kan göra att det går långsammare? Vid packetloss kommer sändaren antingen att få Tripple-ACK eller en Timeout. Men mottagaren kommer väll aldrig att kasta bort paket? även om paket kommer i oårdning så kommer dom ju att sparasi bufferten.

Det enda negativa jag kan komma på är att det går åt mer minne för den större bufferten. Vilket man kanske ska tänka på. Tex om man sätter bufferten till 200kb och man drar igång nått Bittorent program som öppnar 100 anslutningar. Då blir det sammanlagt 20Mb i bara bufferutrymme.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av soft0
nej, tcp kör någon form av crc om jag inte missminner mig. Med andra ord det finns någon inbyggd checksum. Fungerar lite som .sfv filerna gör (om du vet vad det är), fast för varenda byte

edit: felstavning

Njae... Det är bara på länklagret som det görs någon meningsfull felkontroll (CRC).
TCP ser bara till att saker som inte kommer fram skickas om (vilket t.ex. händer när länklagret upptäcker fel vid CRC-kontrollen).

Och nej, det här är inget konstigt som skall medföra risk för fel utan snarare frågan om att anpassa inställningarna efter verkligheten.

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av evil penguin
Njae... Det är bara på länklagret som det görs någon meningsfull felkontroll (CRC).

Joo tcp (och även IP) har en checksum på 16bitar för felkontroll. Ethernet har dock ett 32bitars fält för felkontroll. (dock har IP bara checksum på headern)

Detta har man för att det finns inget som garanterar att länklagret eller nätlagret ska ha någon felkontroll alls. Det är ju inget som säger att man måste köra ip över ethernet

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Tjofras
Vad kan göra att det går långsammare? Vid packetloss kommer sändaren antingen att få Tripple-ACK eller en Timeout. Men mottagaren kommer väll aldrig att kasta bort paket? även om paket kommer i oårdning så kommer dom ju att sparasi bufferten.

Det enda negativa jag kan komma på är att det går åt mer minne för den större bufferten. Vilket man kanske ska tänka på. Tex om man sätter bufferten till 200kb och man drar igång nått Bittorent program som öppnar 100 anslutningar. Då blir det sammanlagt 20Mb i bara bufferutrymme.

Nej nej det handlar inte om att kasta bort paket. Det handlar om länkuttnyttjandet. När vi tappar ett paket så kommer tcp reagera så som att det är max för länken. Problemet är ju inte när ett paket tappas utan när paket efter paket tappas. Tyvärr så stämmer ordspråket "ett fel kommer sällan ensamt". Om man analyserar paketfel så har de en tendens att uppkomma just "skuraktigt". Vid stora fönsterstorlekar så har tcp problem att bibehålla full länkuttnyttjande när det kommer just skurar av fel. Grafen ser ryckig ut då.

Varför infaller inte detta med mindre fönstestorlek då?
Sannorlikheten för felen kvarstår men vi överför relativt sett mindre data per tidsenhet så vi har längre tid mellan paketfelen samt en lägre gräns på fönsterstorleken att uppnå på denna längre tid. Så här ser man ofta att grafen är rank och fin med nått/några få hack som går ner relativt lite.

Nu kanske ni tycker att man dynamiskt skulle kunna mäta tidsfördöjningen mellan server och klienten i en start fas så får man alltid bra värden. Men problemt är då vad har vi för bandbredd på just denna länk? Det är ett värde som troligen varierar sekund för sekund. Bara för att du har 10Mbit/s beryder inte att länken mellan dig och servern kan bihålla det konstant. Skatta brandbredd på länkar är inte helt trivialt.

Nu ska jag inte får det att låta som att allt är dåligt och använd 1k för det funka 85 när minnes priserna var hemska och paketförluster i näten var lika många som de som kom fram. Jag försöker bara förklara att det finns en gräns när det inte längre är värt det. Men faktum är att vi i dagens läge efterfrågar information som kanske fins ett fåtal km från oss till andra sidan jordklotet utan att ens fundera på det. Så normalt sett så behöver man ens inte tänka på den övregränsen eftersom vi gör så ofantligt många typer av anslutningar vars fördröjning och paketförluster varierar stort. Testa, funkar det dålig ändra till nått lägre. Och standard värdena i XP är inte optimerade för 10 eller 100Mbit/s Internet så ädra för all del dem!

Den största anledningen till att låga världen lever kvar är precis vad du sagt, det tar mer minne och förr var minne dyrt.

fotnot: fett med creds för att du orka skriva en så bra och välformulerad artikel-likande inlägg på ett forum som består av "min router startar om hälp mig"-trådar

Permalänk
Medlem

Tack för att du tar dig tid att diskutera detta. Bra och välskriven vet jag inte om jag kan hålla med om
Insiprationen till detta fick jag av en riktigt bra kurs i nätverk på universitet och en dag insåg jag att ping borde spela roll på överföringshastigheten vid TCP. Något som jag aldrig hade tänkt på förut. Efter lite mer undersökning så visade ju det sig att det var ett problem för folk med någolunda snabba uppkopplingar också. Men tillbaka till TCP

Menar du att det blir skillnad om man har olika storlekar på windowsize men dessa aldrig bromsar upp överföringen? Eller säger du att det är bra att ha ett för litet windowsize som gör att överföringen bromsas?

Jag förstår inte riktigt vad du menar eftersom fönstret är ju ett så kallat sliding window och sålänge det inte fylls upp så borde det inte spela någon roll.

Ett problem som jag kan se är om vi säger att servern skickar iväg en stor mängd paket och ett av de tidiga paketen försvinner så kommer servern att behöva skicka om allt efter det pakete som droppades. Men detta borde inte försämmra överföringshastigheten vid större fönsterstorlekar. Det enda är väll att servern har skickat mer data i "onödan". Men detta problem verkar dom ha löst med Selective Acknowledgements.

Jag har faktiskt försökt leta nackdelar med stora windowsizes men utan framgång så jag skulle vara väldigt tacksam om du kunde gå in lite mer noggrant på vad som gör att man får lägre länkuttnyttjandet vid större fönsterstorlekar.

Permalänk
Medlem

Att tänka på om man kör torrents: http://www.azureuswiki.com/index.php/Increase_download_speed

"I've most often seen [poor performance] with people running on Windows who 'tweak' their TCP send and receive buffers to be very large in search of higher bandwidth.

Buffered data is obsolete data and causes serious problems in the responsiveness of the protocol to changes in the peer state. Since data and requests share the same TCP socket, buffering lots of data means that your request for a block may have to wait 10's of seconds before it even gets transmitted, by which time the peer you are talking to may have decided that you aren't interested in his data after all, or your own client may decide that the peer you are talking to is snubbing you. Either of these is disastrous to download rates."

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Tjofras
Joo tcp (och även IP) har en checksum på 16bitar för felkontroll. Ethernet har dock ett 32bitars fält för felkontroll. (dock har IP bara checksum på headern)

Detta har man för att det finns inget som garanterar att länklagret eller nätlagret ska ha någon felkontroll alls. Det är ju inget som säger att man måste köra ip över ethernet

Precis, istället för ethernet kanske man får för sig att använda brevduvor istället
http://www.blug.linux.no/rfc1149/

Visa signatur

flippy @ Quakenet

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Tjofras
...
Menar du att det blir skillnad om man har olika storlekar på windowsize men dessa aldrig bromsar upp överföringen? Eller säger du att det är bra att ha ett för litet windowsize som gör att överföringen bromsas?

Jag förstår inte riktigt vad du menar eftersom fönstret är ju ett så kallat sliding window och sålänge det inte fylls upp så borde det inte spela någon roll.
...

utan att krongla tilldet så skippar jag alla triviala agoritmer som används

Vårt fönster kommer börja på ett litet värde för att öka för varje mottaget paket tills vi slår i taket på vår fönsterstorlek. Om vi nu får ett paketfel så kommer vi sänka den nuvarnde fönsterstorleken enligt den algoritm vi använder. Sedan kommer den sakta men säkert öka den igen. Under denna tid så uttnyttjar vi inte länken till fullo. Men om vi bara tappar ett paket så återhämtar sig tcp snabbt och fint. Problemet uppstår när vi tappar ett tillpaket innan vi har återhämtat oss och uppnått fulla fönsterstorleken.

Om vi har en för liten fönsterstorlek så kommer vi begränsa vår hastighet till just denna, vi kommer slå i taket på fönsterstorleken i stort sett hela tiden.
Det jag mena var om vi har en given paketförlusthalt så kommer paketfelen tidsmässigt infalla tätare på en snabbare tcp-ström ty sannorlikheten att paketfel kommer eftervarandra innan man kommigt upp till sin max hastighet ökar.

oj nu har jag lämnat dator i ett antal timmar igen... aja jag lägger upp detta och hoppas det är vettigt

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Tjofras
Joo tcp (och även IP) har en checksum på 16bitar för felkontroll. Ethernet har dock ett 32bitars fält för felkontroll. (dock har IP bara checksum på headern)

Detta har man för att det finns inget som garanterar att länklagret eller nätlagret ska ha någon felkontroll alls. Det är ju inget som säger att man måste köra ip över ethernet

Mjo, men jag skrev "meningsfull", vilket kanske i och för sig var att ta i lite väl...

Man kan ju trots allt tänka sig fel som introduceras vid andra tillfällen än just vid överföringen öven en länk på vägen och i det läget så kompletterar ju TCP-checksumman länklagrets felkontroll (som nästan alla länklager tillhandahåller, inte bara ethernet) i och med att den gäller hela vägen från paketets källa till dess destination. Detta trots att TCP-checksumman är galet mycket svagare än t.ex. den CRC-kontroll som görs i ethernet.

I dagsläget är dock IP-checksumman i princip meninglös, den räknas ju också om vid varje hopp, så till skillnad från TCP-checksumman så tillför den egentligen inget när man har ett länklager med stark felkontroll, vilket normalt är fallet. (IP-checksumman är dessutom borttagen i IPv6!)

Om man inte har routrar som i sig gör slarvsylta av payloaden så är det i praktiken länklagrets felkontroll som är den som spelar roll.

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Medlem

för linux: http://dsd.lbl.gov/TCP-tuning/linux.html

0% [ ] 14,252,664 837.72K/s ETA 1:43:56
#ping ftp.kernel.org
PING zeus-pub.kernel.org (204.152.191.37) 56(84) bytes of data.
64 bytes from zeus-pub2.kernel.org (204.152.191.37): icmp_seq=1 ttl=53 time=240 ms

bra? dåligt?

Visa signatur

(defmacro lisp-bootstrap (expr) expr)

Permalänk
Medlem

Bra guide
tomasc: Googla på tuning linux TCP, jag brukar köra detta:
sysctl -w net.ipv4.tcp_timestamps=1
sysctl -w net.ipv4.tcp_window_scaling=1
sysctl -w net.ipv4.tcp_sack=1
sysctl -w net.core.rmem_max=12000000
sysctl -w net.core.wmem_max=12000000
sysctl -w net.core.rmem_default=12000000
sysctl -w net.core.wmem_default=12000000
sysctl -w net.ipv4.tcp_rmem='12000000 12000000 12000000'
sysctl -w net.ipv4.tcp_wmem='12000000 12000000 12000000'
sysctl -w net.ipv4.tcp_mem='12000000 12000000 12000000'
sysctl -w net.core.netdev_max_backlog=30000
sysctl -w net.core.optmem_max=2000000

Visa signatur

fd. Teknikchef, Bahnhof

Permalänk
Medlem

shit vilken skillnad.

Gick från 245kb till 1450kb/s.

Man tackar

Visa signatur

| Arctic Cooling T1 | X2 3800 + Zalman 7700-alcu | Asus A8N-SLI Deluxe | Kingston ValueR. PC3200 4*512 |
| GB HD2600 512mb |

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av tomasc
för linux: http://dsd.lbl.gov/TCP-tuning/linux.html

0% [ ] 14,252,664 837.72K/s ETA 1:43:56
#ping ftp.kernel.org
PING zeus-pub.kernel.org (204.152.191.37) 56(84) bytes of data.
64 bytes from zeus-pub2.kernel.org (204.152.191.37): icmp_seq=1 ttl=53 time=240 ms

bra? dåligt?

Utan att veta vad du har för upkoppling är det ganska svårt att veta
Men om ditt windowsize är 200 000 eller mindre är det fortfarande det som sätter gränsen.

kolla på http://www.speedguide.net/analyzer.php så ser du vilket windowsize du har (RWIN).

Citat:

Ursprungligen inskrivet av varget
Se ovan

Vill man inte ha ett så stort recive window så att det aldrig fylls? Den enda gången ett recive window ska fyllas är väll när man har en applikation som läser för sakta från socketen (flow control). I alla andra fall ska det vara congesion windowet som sätter gränsen? Så det borde inte vara någon skillnad så länge congestion windowet är mindre än recive windowet.

Eller säger du att det finns tilfällen då man kan uppnå en högre överföringshastighet med ett mindre recive window?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Tjofras

Eller säger du att det finns tilfällen då man kan uppnå en högre överföringshastighet med ett mindre recive window?

precis, när paketfelen uppkommer så tätt att tcp aldrig hinner återhämta sig skulle det kanske vart mer fördelaktigt att haft mindre fönsterstorlek.

Permalänk
Hedersmedlem

Bra skrivet du, jag la in en länk i samlingstråden för det här forumet.

Visa signatur

Det kan aldrig bli fel med mekanisk destruktion

Permalänk
Medlem

Tack!!
Hade faktiskt pillat med det där tidigare när jag hade stora problem med routern men hade tydligen fel värde Fick ganska exakt 300k/s på test filen, och efter att ha optimaliserat så fick jag över 800k/s Helt godkänt med Telia 8000 alltså!

Visa signatur

Surf/jobbdator: i7 3770K | GA-Z77-D3H | 16 GB | Intel 510 + 750 GB | HD6870 2GB | 30'' | P180B
Server: Phenom X4 9500 | GA-MA78G-DS3H | 8 GB | 5.4 TB | YY-0221
Speldator: IBM PC XT | 8088 4.77 MHz | 640k | 10 MB HDD | EGA | 360k/720k diskett