O que determina o grau de paralelismo que pode ocorrer em uma rede?

7

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.

Sean Long
fonte
2
Tópico muito amplo. No DSL que você tem em casa, é altamente paralelo entre o modem doméstico e o DSLAM do extremo oposto (símbolos diferentes enviados em diferentes frequências). O seu telefone sem fio em casa é paralelo. A Ethernet óptica é serial, a menos que você ultrapasse 10GE (e até 10GE em multimodo de curto alcance pode ser paralelo). Uma vez que o pacote está realmente na Internet, existem várias tecnologias como ECMP e 802.1AX para introduzir paralelismo, mas não está dentro de um único pacote. Espero que alguém possa ter uma resposta mais coesa.
ytti
Vou tentar esclarecer um pouco, não percebi que era tão dependente da configuração local (meu pensamento era que, se alguma coisa a NIC ajudar a dividi-la).
Sean Long
Ah, e nada disso tem a ver com os threads do speedtest que o paralelismo não é visível para a rede. Isso é apenas um código lento que empurra os pacotes para fora e, para compensar o código lento, você executa mais ao mesmo tempo, mas não apresenta paralelismo no nível de pacote.
ytti

Respostas:

6

o que determina o grau de paralelismo que pode ocorrer em uma rede?

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.

Mike Pennington
fonte
5

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.

Brett Lykins
fonte