Um fornecedor de software com quem trabalho requer conexões Ethernet gigabit para uma configuração clássica de software cliente-servidor. Para minha surpresa pergunta por que eles precisariam transferir uma quantidade tão grande de dados entre cliente e servidor, o fornecedor respondeu que eles não transferem pacotes grandes, mas sim muitos pacotes pequenos. Ele me disse que, pela experiência deles, isso funciona muito mais rápido em conexões gigabit do que em conexões de 10 ou 100 megabits.
Tendo entendido a Ethernet como uma conexão serial e a velocidade de transferência sendo limitada principalmente pelo meio (fibra, cobre, etc.), estou confuso. Existe uma explicação teórica para o fenômeno explicada pelo fornecedor que posso estar faltando? Minha formação não é exatamente em hardware, então talvez existam medidas de otimização em padrões gigabit que de alguma forma otimizem para este caso especial.
Então, supondo que eu teria que enviar 1.000.000 de pacotes de apenas alguns bytes cada, há uma razão pela qual isso poderia ser mais rápido na Ethernet gigabit do que na Ethernet 10/100 megabit?
Responder1
A taxa de pacotes (pps) é um resultado direto da divisão da velocidade da linha pelo tamanho do pacote. Como tal, ele escalalinearmentecom velocidade da linha.
O tamanho mínimo do quadro Ethernet é de 84 bytes enquanto o máximo (desconsiderando Jumbo Frames) é de 1.538 bytes. Como tal, as seguintes taxas de quadros são possíveis:
- 100 Mbit/s: 8.127 f/s a 148.809 f/s
- 1 GBit/s: 81.274 f/s a 1.488.096 f/s
Mais largura de banda é sempre melhor em termos de rendimento. Pode ser pior em termos de latência e provavelmente consumirá mais energia.
Responder2
se eu tiver um pacote de 5kb, por que importaria se a linha fosse capaz de transmitir 10, 100 ou 1000mbit?
A linhanão émedido em "megabits", é medido em megabitspor segundo. É uma unidade de taxa que se aplica igualmente a qualquer tamanho de dados – assim como “quilômetros por hora” se aplica igualmente a qualquer distância. (Por exemplo, viajar 10 metros a 20 km/h ainda é dez vezes mais rápido do que fazê-lo a 2 km/h.)
As unidades podem ser reduzidas se você desejar – por exemplo, 1 km/h pode ser convertido em ~0,27 m/s. Da mesma forma, 1 Gb/s pode ser convertido em 1 kb/µs. Esse ainda é o mesmo valor, mas você pode ver que a transferência de 5 kilobits a 1 kb/µs (1 Gb/s) leva 5 microssegundos – dez vezes mais rápido que 50 µs.
[Espero ter acertado as contas]
Então, supondo que eu teria que enviar 1.000.000 de pacotes de apenas alguns bytes cada, há uma razão pela qual isso poderia ser mais rápido na Ethernet gigabit do que na Ethernet megabit?
É chamado de “Gigabit Ethernet” porque sua taxa de transferência de dados é de 1 Gbps (gigabits por segundo). Na verdade, isso não é uma capacidade, mas umataxa de clock fixa.Por exemplo, se você enviar um gigabit, ele será transferido em um segundo a 1 Gbps. Mas se você enviar 10 megabits, eles serão transferidos em 0,01 segundos,ainda em 1 Gbps,e o link permanecerá inativo pelos 0,99 segundos restantes.
Em outras palavras, ele não muda de marcha dependendo do tamanho do pacote. Quer você envie X Gb consistindo em pacotes grandes ou X Gb consistindo em pacotes pequenos, eles sãosempreenviado na mesma taxa de 1 Gbps, que é sempre 10 vezes mais rápida que 100 Mbps.
Tendo entendido a Ethernet como uma conexão serial e a velocidade de transferência para pequenos pacotes sendo limitada principalmente pelo meio (fibra, cobre, etc.),
Nem todas as conexões seriais funcionam da mesma forma. A taxa de bits que você pode obter no mesmo meio pode variar, dependendo docodificaçãoemodulaçãoque você usa para colocar esses bits no fio. (Além de algumas outras coisas que não tenho conhecimento.) Além disso, Gigabit Ethernet (e similarmente USB 3.2, PCI-e, SATA e muitos outros links seriais) usa múltiplas pistas para enviar vários blocos de dados simultaneamente.