Martin Højriis Kristensens hjemmeside

Hvorfor bliver min downloadhastighed lavere når jeg uploader samtidig?

Offentliggjort 13/09-07 af makr (version: 1.2) i Internet
Ofte kan man opleve at man ikke kan belaste sin forbindelse maksimalt i begge retninger.
Dette er en egenskab ved TCP der er den protokol der bruges til de fleste internet-applikationer.

TCP er en forbindelsesorienteret protokol, hvilket vil sige at den selv holder øje med om de pakker den sender når sikkert frem i den anden ende.
For at kunne dette er protokollen nød til at bede computeren i den anden ende om at sende "bekræftigelsespakker", de såkaldt ACK-pakker når pakkerne er modtaget korrekt.
Hvis den afsendende computer ikke modtager disse pakker holder den enten op med at sende eller forsøger at gensende de pakker den tror er gået tabt (afhængig af situation).

Det betyder, at når du belaster din upstream fuldstændigt kan du ikke sende ack-pakker til det site du downloader fra hurtigt nok, og så falder din downstream.

Der er forskellige måder at undgå problemet på.
Man kan sætte sit receive window højere (spørg i en OS-gruppe), hvilket betyder at man modtager flere pakker inden man sender ack. Dette har dog uheldig effekt hvis man downloader fra langsomme linjer.
Man kan opprioritere disse ack-pakker så de får forrang over små pakker, men det er ikke alle OS'er og routere der kan det.
Endelig kan man indstille det program der uploader (hvis det fx er en ftp) til kun at undnytte fx 80% af upstream. Så vil der være plads til ack-pakkerne.

Problemet er størst på asymmetriske forbindelser (fordi upstream hurtigere bruges op), men findes overalt.