Olhando para a entrada Ethernet na Wikipedia, não consigo descobrir como é indicado quanto tempo o quadro Ethernet tem. O campo de cabeçalho EtherType / Length aparentemente pode indicar um tipo de quadro ou um comprimento explícito, e suponho que, no caso de um tipo de quadro, ele tenha que fazer alguma outra lógica para descobrir quanto tempo o pacote é. Por exemplo, se o campo EtherType for 0x0800, isso indica uma carga útil IPv4 e, portanto, a NIC receptora precisaria examinar os primeiros 32 bits da carga útil para encontrar o comprimento do pacote IP e, portanto, descobrir o comprimento total de o quadro Ethernet e saiba quando procurar a soma de verificação de fim de quadro e o intervalo entre quadros.
Este som está correto? Eu também olhei para a especificação IEEE 802.3 para Ethernet (parte 1, de qualquer maneira) que parece corroborar isso, mas é bastante opaca.
fonte
Respostas:
A subcamada de codificação física é responsável por delimitar os quadros e enviá-los para a camada MAC.
Na Gigabit Ethernet, por exemplo, o esquema de codificação 8B / 10B usa um grupo de códigos de 10 bits para codificar um byte de 8 bits. Os dois bits extras informam se um byte é informações ou dados de controle. As informações de controle podem ser Configuração, Start_of_packet, End_of_packet, IDLE, Carrier_extend, Error_propagation.
É assim que uma NIC sabe onde um quadro começa e termina. Isso também significa que o comprimento do quadro não é conhecido antes de ser totalmente decodificado, análogo a uma sequência terminada em NULL em C.
fonte
O artigo que você realmente deseja responder à sua pergunta é http://en.wikipedia.org/wiki/Ethernet_II_framing ; que diz:
fonte
Logicamente, existem apenas três opções:
Um desses funciona na Ethernet porque não há outras opções disponíveis atualmente para redes modernas;) 1 e 3 estão errados para a Ethernet, então você está correto!
fonte
Demorou um pouco para resolver isso uma vez antes e outra vez agora. Não há muitas informações disponíveis, o que é surpreendente, pois é uma pergunta tão óbvia. Finalmente, decidi pela solução em que os campos de comprimento nos cabeçalhos dos pacotes são usados. Veja o seguinte link
http://www3.rad.com/networks/infrastructure/lans/etherform.htm#_ieee
fonte