Você tem que entender que mesmo quando está baixando, você também está enviando dados (cabeçalhos) para buscar o recurso apropriado e dizer ao servidor que está pronto para receber o próximo pacote.
Se toda a sua largura de banda de upload estiver entupida, esses pacotes serão atrasados até que você possa enviá-los, o que diminui sua velocidade de download.
O mesmo se aplica na outra direção. Ao fazer o upload de um arquivo, dependendo do protocolo, sua máquina espera uma certa resposta entre as partes. Essa resposta consome a largura de banda de download e, se não houver largura de banda disponível, o recebimento desse pacote será atrasado, reduzindo a velocidade de upload.
Para atingir o desempenho máximo, tente limitar seus recursos de forma que eles fiquem limitados a ~ 90% da largura de banda disponível em ambos os lados. Dessa forma, você tem um ~ 10% sempre disponível para mensagens de protocolo.