O quadro inteiro deve ter pelo menos 64 bytes. Isso não é apenas a carga, inclui os cabeçalhos e a sequência de verificação de quadros. O FCS ocupa 4 bytes no final. Um cabeçalho Ethernet consiste em dois endereços MAC de 6 bytes mais um campo do tipo 2 bytes, 14 bytes no total. 64-4-14 = 46. Os pacotes IPv4 possuem um cabeçalho adicional de pelo menos 20 bytes no topo do cabeçalho Ethernet, tornando o tamanho mínimo da carga útil de 26 bytes. TCP e UDP adicionam mais cabeçalhos.
Outra coisa a se notar é que o tamanho de um quadro de comprimento mínimo no fio é realmente maior que 64 bytes - há um preâmbulo de 8 bytes / início do delimitador de quadros e um intervalo entre quadros de 12 bytes que é anexado a cada pacote, criando um 64 o pacote de bytes ocupa 64 + 8 + 12 = 84 bytes no fio.
A resposta de 41 bytes na outra pergunta está considerando apenas os cabeçalhos TCP e IP. Se você enviar um pacote TCP com 0 bytes de dados, ele terá 40 bytes de cabeçalhos; não é possível tornar um pacote TCP válido menor que isso. Mas se você tentar enviar esse pacote, ele será zero preenchido para 46 bytes antes do Ethernet FCS ser anexado.
A razão pela qual isso foi feito originalmente com a Ethernet foi garantir um comprimento mínimo de quadro no fio, para que colisões pudessem ser detectadas de maneira confiável por todos os dispositivos no comprimento máximo especificado do cabo. Isso é necessário porque as primeiras encarnações da 10M Ethernet usavam um meio coaxial compartilhado e os dispositivos conectados tinham que ser capazes de detectar quando dois deles tentavam transmitir no meio compartilhado ao mesmo tempo. Redes Ethernet 10M e 100M um pouco menos antigas sobre par trançado que foram construídas com hubs em vez de comutadores também precisavam ser capazes de detectar colisões. No entanto, a maioria das redes Ethernet modernas são comutadas e não usam uma mídia compartilhada; portanto, isso não é mais estritamente necessário, mas ainda faz parte das especificações por motivos de compatibilidade. Os quadros menores que 64 bytes são chamados quadros runt,
Na especificação ethernet original, 64 bytes preenchiam o cabo de ponta a ponta, permitindo que colisões fossem detectadas por todos os hosts. O padrão ethernet original também especificou 14 bytes para o cabeçalho e 4 bytes para a sequência de verificação de quadros. Isso é 18 bytes. subtraia 18 de 64 e você obtém 46 como a carga útil mínima. Desde então, você pode adicionar uma tag VLAN de quatro bytes. Portanto, com a tag VLAN, o tamanho mínimo da carga útil é 42. Sem a tag VLAN, o tamanho mínimo da carga útil permanece 46.
fonte
O tamanho mínimo do quadro Ethernet foi definido para as variantes half-duplex originais. Com o half duplex, você precisa detectar e propagar com segurança as colisões enquanto elas ocorrem. Um sinal precisa se propagar pela maior distância entre duas estações em um segmento, permitir a detecção de colisão e propagar o sinal de interferência para o remetente enquanto ele ainda está transmitindo. Juntando tudo, você acaba com 512 bits ou 64 bytes em um quadro.
Para Fast Ethernet (100 Mbit / s), o cabo coaxial inerentemente half-duplex foi abandonado e apenas a mídia com capacidade full-duplex é usada (= mídia com caminhos de sinal dedicados por direção). Isso acelera consideravelmente a detecção de colisões e permite usar o mesmo tamanho mínimo de quadro, mesmo que um quadro na Fast Ethernet seja muito mais curto no tempo.
A Gigabit Ethernet inicialmente incluiu um modo half-duplex, exigindo preenchimento para aumentar o tamanho mínimo do pacote Ethernet (não o tamanho do quadro ). O GbE half-duplex não era realmente usado em nenhum lugar e agora está obsoleto.
A Ethernet full-duplex comutada torna essas considerações obsoletas. No entanto, a Ethernet se baseia na compatibilidade - todas as variantes da camada física podem coexistir e interagir entre si. Portanto, o tamanho mínimo de quadro nunca foi alterado e um antigo nó half-duplex de 10 Mbit / s ainda pode funcionar em uma rede moderna de vários gigabits sem muito barulho.
No entanto, há muita confusão sobre esses detalhes e muita coisa é citada incorretamente. A referência é IEEE 802.3 Cláusula 4.4.2 parâmetros MAC .
fonte