TCP funkar så att den kontrollerar att det som skickats stämmer med det som kommit fram. Det flödar alltså inte data bara i en riktning som med UDP, utan i båda. Servern skickar lite grann till dig, din dator beräknar en kontrollsiffra och skickar tillbaka. Stämmer det inte så skickar servern samma sak igen.
"Lite grann" i fallet med TCP är 1460 bytes.
Men, dagens överföringshastigheter är ju så höga att det skulle gå betydligt långsammare om man bara skulle ta emot 1460 bytes åt gången, skicka tillbaka kontrollsiffra som kontrolleras innan nästa del skickas. Därför har man en buffert som man fyller först och kontrollerar allt på en gång.
Som du förstår så gör ju en för liten buffert att det går långsammare, men som du nu märkt så gör ju även en för stor buffert att det går långsammare.
Den optimala storleken på bufferten är bandbredden du har till servern du ska kommunicera med multiplicerat med tiden det tar för data att gå fram och tillbaka. Ping-tiden med andra ord.
Säg nu att du kan komma upp i 20 Mbit/s mot TPTEST-servern och att pingen är 10 ms. Då bör bufferten alltså vara: (20/8) * 0,01 = 25,6 kB = 26214 bytes.
26214 bytes ligger ganska nära 32768 som du har i den snabbaste inställningen, och ganska långt ifrån 62500 och 98304 som du har i de långsammare inställningarna och som alltså är för mycket.
Men observera alltså att det är för mycket för testservern. Det är inte säkert att det är för mycket när du laddar ner från andra ställen. Jag menar, skulle ping-tiden ligga på 50 ms i stället, då behöver du ju större buffert (131072 bytes), ja till och med större än den största inställningen du har nu.




