En regardant l' entrée Ethernet sur Wikipedia, je ne peux pas comprendre comment il est indiqué la longueur de la trame Ethernet. Le champ d'en-tête EtherType / Length peut apparemment indiquer soit un type de trame soit une longueur explicite, et je suppose que dans le cas d'un type de trame, il doit faire une autre logique pour déterminer la longueur du paquet. Par exemple, si le champ EtherType est 0x0800, cela indique une charge utile IPv4, et donc la carte réseau de réception devra examiner les 32 premiers bits de la charge utile pour trouver la longueur du paquet IP, et donc pour déterminer la longueur totale de la trame Ethernet, et savoir quand chercher la somme de contrôle de fin de trame et l'écart intertrame.
Est-ce que cela semble correct? J'ai également examiné la spécification IEEE 802.3 pour Ethernet (partie 1, de toute façon) qui semble corroborer cela, mais elle est assez opaque.
la source
Réponses:
La sous-couche de codage physique est chargée de délimiter les trames et de les envoyer à la couche MAC.
En Gigabit Ethernet, par exemple, le schéma de codage 8B / 10B utilise un groupe de codes 10 bits pour coder un octet 8 bits. Les deux bits supplémentaires indiquent si un octet est une information de contrôle ou des données. Les informations de contrôle peuvent être Configuration, Start_of_packet, End_of_packet, IDLE, Carrier_extend, Error_propagation.
C'est ainsi qu'une carte réseau sait où commence et se termine une trame. Cela signifie également que la longueur de la trame n'est pas connue avant qu'elle ne soit entièrement décodée, comme une chaîne terminée par NULL en C.
la source
L'article auquel vous voulez vraiment répondre est http://en.wikipedia.org/wiki/Ethernet_II_framing ; qui dit:
la source
Logiquement, il n'y a que trois options:
L'un de ces travaux en Ethernet car il n'y a aucune autre option actuellement disponible pour la mise en réseau moderne;) 1er et 3e sont mauvais pour Ethernet, donc vous avez raison!
la source
Il a fallu un certain temps pour résoudre ce problème une fois auparavant et de nouveau maintenant. Pas beaucoup d'informations disponibles, ce qui est surprenant car c'est une question tellement évidente. J'ai finalement opté pour la solution qui utilise les champs de longueur dans les en-têtes de paquets. Voir le lien suivant
http://www3.rad.com/networks/infrastructure/lans/etherform.htm#_ieee
la source