Ursprungligen inskrivet av BasseBaba
eftersom denna fråga varit uppe ett tio till hundratal gånger, och den varje gång börjar felaktigt besvaras så är det dags att ta och gå igenom vad begreppen står för.
duplex handlar enbart om att kunna skicka och ta emot data samtidigt.
halv duplex går att likna vid walkie-talkies, först pratar person A lite som sedan lämnar linjen öppen för B att svara.
full duplex däremot, är som en telefon, du kan prata och lyssna samtidigt, den ena personens tal stör inte ut den andras i transmissionsmediet.
(sedan att vi som människor inte använder den så är en annan sak)
halv duplex vid nätverkskommunikation över ethernet hade alltså blivit något i stil med att man skickar respektive tar emot vartannat paket.
både kabelmodem och adsl tillämplar full duplex, teknikerna använder olika frekvenser för up respektive downstream-kommunikation, det vill säga teknikerna kan skicka och ta emot data i sina angivna hastigheter samtidigt.
däremot är dom flesta dsl och kabelmodemteknikerna _inte_ SYMMETRISKA.
för att ta ett exempel så är en 10/10 lina symmetrisk, och en 8/1 assymetrisk.
dvs. olika förhållande mellan up och downstream.
och det är denna symmetri som skapar problem vid tillämpande av TCP/IP protokollet.
TCP/IP är felkorrigernade, orkar inte gå in på för mkt detaljer med enkelt beskrivet kan man se det såhär:
A ska skicka 100 paket till B. A börjar skicka t.ex 10 paket till B.
När B har tagit emot dessa 10 skickar han ett kvitto till A där han säger "nu har jag fått 10 paket, skicka nästa 10"
detta funkar fint sålänge du bara tankar ner, för då är din upstream fri till att skicka iväg dessa kvitton.
MEN, när du nu börjar skicka iväg en massa data till en annan person C, så kommer följande scenario:
A har skickat sina 10 paket.
B har tagit emot 10 paket.
Men B är så upptagen med att skicka packet till C att svaret till A dröjer.
Nu tror A antingen att du inte kan ta emot fler paket, eller att paketen har försvunnit på vägen.
Detta leder till att A antingen väntar, eller börjar skicka om paketen.
Detta resulterar till att B (dvs Du som laddar ner) får en minskad hastighet.
vill du nu göra något åt detta kan du antingen
1. använda netlimiter och begränsa din upstream till runt 80%
2. installera någon sorts paketfilter som prioriterar ackarna.
edit:
jag vågar inte sätta mitt liv på denna beskrivning, men detta är vad ajg har fått ut av all efterforskning i ämnet.
har även sett fungerande lösningar där en prio. av ackpaket löst hastighetsproblemen till ~95% så jag skulle bli väldigt förvånad om någon har en annan vettigare förklaring att komma med.