Estou tentando aprender mais sobre como uma rede (LAN e Internet) lida com tráfego, e uma parte disso é a questão do paralelismo.
Na documentação do Speedtest.net, ao descrever exatamente como o teste funciona, ele menciona que "até 4 threads" podem ser usados, sem descrever em que consistem esses threads.
Minha pergunta é: o que determina o grau de paralelismo que pode ocorrer em uma rede? Sei que quando um sinal chega ao servidor de destino, tudo depende dos recursos e do programa de recebimento do servidor. Mas como o paralelismo funciona através da rede?
Por exemplo, a placa de interface de rede aceita a solicitação e a divide para uma transferência mais rápida através do cabo? Ou apenas empacota tudo em pedaços maiores e deixa um roteador / switch fazer isso?
Especificamente, estou tentando entender isso no sentido de rede de negócios, portanto não estou preocupado com coisas como um modem a cabo local ou um adaptador DSL local.
fonte
Respostas:
Vamos basear algumas coisas ...
O Speedtest.net configura 4 soquetes TCP paralelos em javascript entre o navegador da web e o servidor de largura de banda. O Speedtest.net transfere dados em massa sobre esses soquetes e cronometra os resultados para obter medições de taxa de transferência.
4 Fluxos TCP paralelos ajudam a superar a latência e a perda de pacotes no caminho entre o speedtest ... os fluxos TCP paralelos são muito melhores para superar esses desafios do que um único soquete TCP ... Consulte esta resposta do superusuário para obter um exemplo de como você pode fazer isso na linha de comando do linux.
Realmente não importa se os fluxos são paralelos entre os mesmos hosts ou hosts diferentes, a Ethernet pode lidar com milhares de fluxos paralelos simultâneos ... nem sequer sabe o número exato de soquetes paralelos que existem além da largura de banda que consomem.
fonte
Suponho que você esteja falando principalmente sobre Ethernet 10/100/1000. O principal a entender é que, no que diz respeito à Ethernet, só pode haver um quadro enviado por vez (um enviado e um recebido se estiver operando em Full Duplex). Não há "paralelismo" no sentido de mais de um quadro saindo da NIC a qualquer momento. É aqui que entra em discussão uma discussão sobre buffers e filas, que não abordarei aqui.
O sistema que usa a placa de rede é capaz de sustentar muitos fluxos diferentes de tráfego, destinados a muitos locais diferentes (ou todos no mesmo local). No entanto, eles não saem da NIC ao mesmo tempo.
Eu recomendaria a leitura do artigo da Wikipedia sobre Ethernet ou o livro O'Reilly Ethernet: The Definitive Guide para obter mais informações. Ambos o vinculam a muitas fontes relevantes.
Como o ytti apontou nos comentários acima, isso também pode variar bastante com base nas tecnologias de conexão de dados / rede que estamos discutindo.
fonte