Por que a ethernet tem um tamanho de quadro mínimo especificado?

12

Eu acho que o mínimo é 64 bytes. Por que esse mínimo é necessário?

user46749
fonte

Respostas:

16

Fazendo uma leitura rápida, parece que está relacionado à parte de detecção de colisão do CSMA / CD. Se os quadros fossem muito pequenos na mídia de transmissão antiga, algumas colisões seriam indetectáveis. Continuando meu tema de analogias de automóveis hoje, é pela mesma razão que não permitimos bicicletas em rodovias de alta velocidade - simplesmente não é seguro para elas.

mfinni
fonte
3
+1, eu não sabia que cerca de bicicletas ...
Kyle Brandt
6
A detecção de colisão com +1 é o motivo. 64 bytes é 0.04ms a velocidades Ethernet de 10Mb. Qualquer menor e colisão passaria despercebida (em 1982).
sysadmin1138
Se estou entendendo, a razão para o mínimo de 64 bytes é dar tempo suficiente para outras estações perceberem isso?
CodyBugstein #
1
Você pode explicar por que as colisões seriam indetectáveis?
problemofficer
1
Tenho certeza de que uma colisão de bicicleta em uma rodovia de alta velocidade seria detectável. De qualquer maneira, bicicletas são permitidas nas Interestaduais na maioria dos estados do oeste dos EUA, então não tenho certeza de quão apropriada é a analogia. :)
Michael Hampton
4

Além da resposta do mfinni (absolutamente correta), definir um tamanho mínimo de quadro permite que você gaste vários ciclos de recebimento verificando as somas de verificação dos seus quadros. Em Ye Olde Days, pode-se imaginar facilmente um chip que processa um bit por ciclo, mas leva muitos ciclos para calcular uma soma de verificação em um caminho dedicado que corre paralelo ao caminho de recebimento. O recebimento de muitas mensagens curtas pode resultar nessa lógica de soma de verificação, sendo confundida com o acionamento de várias operações simultâneas. Descartar qualquer coisa abaixo de um determinado limite de tamanho permite evitar esse problema de maneira simples.

BMDan
fonte
Eu acredito que esta resposta está errada; tem a ver com o atraso de propagação na detecção de meio e colisão.
Andrew Wagner
@ AndrewWagner, como eu já disse na minha resposta, a resposta do mfinni acima, que é sobre detecção de colisão, está correta. Meu argumento foi que essa "peculiaridade" da especificação também permite que os projetistas de hardware tomem alguns atalhos por conta própria.
BMDan
2

A Ethernet foi projetada para funcionar em um meio compartilhado (o éter!). Os remetentes são capazes de perceber quando o sinal com o qual eles dirigem o éter é diferente do que está no éter.

Infelizmente, todas as mídias têm um atraso de propagação (infelizmente, mesmo a luz viaja a uma velocidade finita).

Suponha que você envie um quadro muito curto. Para detectar se o receptor transmite exatamente ao mesmo tempo em que estava recebendo seu quadro, você deve aguardar o sinal que eles enviam para alcançá-lo; portanto, você deve esperar / ouvir duas vezes o atraso de propagação do meio antes de saber se houve uma colisão no lado receptor.

Agora, em vez de apenas ouvir (enviando silêncio) durante esse período, você também pode seguir em frente e enviar algumas informações úteis durante esse período.

Portanto, o padrão define o tamanho mínimo do quadro como a quantidade de dados que você pode enviar DUAS VEZES o atraso de propagação do pior caso na mídia compartilhada.

Portanto, se você está insatisfeito porque os quadros grandes parecem "não otimizados" para sua pequena mensagem, pense nesse espaço extra no pacote como uma oportunidade para encontrar mais alguma coisa para enviar, caso contrário você teria que enviar zeros.

É claro que existem muitas outras maneiras de lidar com colisões e atrasos de propagação em um padrão de rede local, mas não seria a Ethernet, e acho que todos podemos concordar que a Ethernet é muito boa.

Andrew Wagner
fonte
Pergunta: Entendo por que você precisa de um mínimo ou de 2 x PDonde vêm 64 bytes? Não deveria depender do comprimento / tipo do cabo? 64 bytes parece arbitrária
CodyBugstein
Ele volta à antiga troca de eficiência VS complexidade. Você pode criar algum sistema para medir automaticamente a rede e selecionar um tamanho mínimo de pacote apropriado, mas isso adicionaria complexidade não trivial para um ganho relativamente pequeno.
Peter Green
0

Para que o CSMA / CD funcione corretamente, você deseja uma detecção de colisão consistente.

Se o receptor vê uma colisão e o remetente não vê, o pacote será perdido. Da mesma forma, se o remetente vê uma colisão, mas o receptor não recebe um pacote duplicado depois que o remetente retransmite. Nem é desejável.

Como os dados trafegam a uma velocidade finita, era necessário um tamanho mínimo de pacote para garantir que, se ocorresse uma colisão, acontecesse em todos os lugares. Quanto maior o tamanho mínimo do pacote, maior e / ou mais rápido você pode aumentar a rede antes da quebra do CSMA / CD.

Quanto ao porquê de 64 bytes não sei ao certo, mas espero que seja apenas um número redondo que "parecia certo no momento", dadas as velocidades em que estavam operando, o tamanho esperado das redes Ethernet e o tamanho esperado de pacotes de nível superior.

Peter Green
fonte
0

O tamanho mínimo de pacote de 64 bytes não é um número arbitrário. Em uma camada física 10Base5 (coaxial "Fat Ethernet", a das camadas físicas originalmente especificadas, com os cabos mais longos permitidos) resulta em um comprimento mínimo de pacote, em microssegundos, duas vezes o tempo de ida e volta do comprimento máximo cabo, com 2500 metros, composto por cinco segmentos de 500 metros com quatro repetidores. Isso é para garantir que os pacotes transmitidos de lados opostos do cabo colidam totalmente em cada ponto do cabo, para detecção confiável de colisão em todos os nós.

Curiosidades:

  • É o dobro do valor mínimo para uma sobrecarga de segurança
  • A detecção de colisão no cabo coaxial pode ser feita por um comparador de tensão analógico (uma vez que os pacotes colididos resultam duas vezes a tensão normal do sinal)
  • A velocidade da eletricidade no cabo de cobre é de cerca de 200000 quilômetros por segundo
  • Cada bit na Ethernet 10Base5 tem 20 metros de comprimento no cabo
PkP
fonte