Entête ETHERNET

Entête ETHERNET

1 – L’histoire d’Ethernet

Le premier LAN Ethernet fut conçu au milieu des années 1970 par Robert Metcalfe et son assistant David Boggs. Le débit original était de 2,94 Mbps. Robert Metcalfe était un membre de la direction de recherche pour Xerox. Il travaillait au centre de recherche Palo Alto au USA (PARC : Palo Alto Research Center) où certains des premiers PC ont été construits. Robert Metcalfe quitta Xerox en 1979 pour promouvoir l’utilisation du PC (personal computer) et du LAN (Local Areas Network). Il a réussit à convaincre les entreprises Digital Equipment, Intel et Xerox de travailler ensemble pour promouvoir l’Ethernet comme un standard.

entete-ethernet robert metcalfe photoentete-ethernet robert metcalfe croquis original

Jusqu’au début des années 1990, Ethernet n’était qu’une technologie parmi d’autres bien d’autres tel que Token Ring (IEEE 802.5), FDDI (802.7), ATM et etc. La technologie Ethernet a conquis depuis la majeure partie du marché. Cela grâce aux point suivants :

  • Première technologie LAN haut débit grand public
  • Les autres technologies sont sensiblement plus complexes
  • Usage d’un protocol entièrement décentralisé (CSMA/CD) synonyme de simplicité. Toutes les stations sont égales vis-à-vis du réseau, il n’y a pas d’équipement maître de contrôle du réseau
  • Il est possible de connecter ou retirer une machine du réseau sans perturber le fonctionnement de l’ensemble
  • Un coût de l’équipement beaucoup plus faible que ses technologies concurrentes

De plus, Ethernet paraît être en bonne position pour conserver son statut de technologie prédominante pendant encore de nombreuses années.

Une RFC spécifique a été écrite spécialement pour l’interaction entre l’entête Ethernet et un datagramme IP. (Un Erratum est paru)

2 – Définition du protocole Ethernet

La technologie Ethernet se décline dans de nombreuses variantes tel que :

  • Deux topologies différentes qui sont bus et étoile
  • Multi supports permettant d’être capable de faire usage de câbles coaxiaux, de fils en cuivre à paires torsadées ou de fibres optiques.
  • Une Offre d’une large gamme de débit avec 10 Mbps, 100 Mbps, 1 Gbps et 10 Gbps

L’Ethernet est basé sur un principe de dialogue sans connexion et donc sans fiabilité. Les trames sont envoyées par l’adaptateur sans aucune procédure de type « handshake » avec l’adaptateur destinataire. Le service sans connexion d’Ethernet est également non-fiable, ce qui signifie qu’aucun acquittement, positif ou négatif, n’est émis lorsqu’une trame passe le contrôle CRC avec succès ou lorsque celle-ci échoue. Cette absence de fiabilité constitue sans doute la clé de la simplicité et des coûts modérés des systèmes Ethernet. Ce service de couche 2 du modèle OSI est similaire au service en mode datagramme de couche 3 assuré par IP et au service sans connexion de couche 4 d’UDP.

3 – Ethernet CSMA/CD

Les noeuds d’un réseau LAN Ethernet sont reliés les uns aux autres par un canal à diffusion. Lorsqu’un adaptateur transmet une trame, tous les autres adaptateurs la reçoivent. Ethernet repose sur un algorithme d’accès multiple CSMA/CD, signifiant Carrier Sense Multiple Access with Collision Detection C’est un protocole permettant la discussion sur un réseau de type Ethernet.

Voici les règles schématiques du protocole de discussion CSMA/CD :

  • Les adaptateurs peuvent commencer à transmettre à n’importe quel moment
  • Les équipements ne transmettent jamais lorsqu’ils détectent une activité sur le canal
  • Les périphériques interrompent leur transmission dès qu’ils détectent l’activité d’un autre adaptateur au sein du canal (détection de collisions)
  • Avant de procéder à la retransmission d’une trame, les adaptateurs patientent pendant une durée aléatoire relativement courte

Voici le fonctionnement détaillé étape par étape du dialogue sur un réseau Ethernet :

  1. L’adaptateur Ethernet obtient un datagramme de la couche Réseau. Il prépare alors une trame en ajoutant les entêtes  Ethernet avant et après ce datagramme. Puis il place cette trame Ethernet dans sa mémoire tampon
  2. Si l’adaptateur Ethernet ne détecte aucune activité sur le média physique, il commence à transmettre la trame préparée. Si le média est occupé, il se met en attente jusqu’à la fin du signal d’énergie (plus 96 fois la durée d’un bit) et commence alors la transmission de la trame
  3. Pendant la transmission, l’adaptateur continu de surveiller qu’il n’y a aucun autre signal en provenance d’un autre adaptateur. Si c’est le cas, il poursuit la transmission de la trame jusqu’au bout
  4. Si l’adaptateur Ethernet détecte le début d’une autre transmission, il interrompt la sienne et envoie un signal de brouillage de 48 bits
  5. Après cette interruption, l’adaptateur entre dans une phase d’attente exponentielle appelée « exponential backoff phase ». Après la nième collision consécutive au cours de la transmission d’une trame, un adaptateur choisit de façon aléatoire une valeur K dans l’ensemble {0, 1, 2,…, 2m-1}, dans lequel m=min(n,10). Il attend ensuite K x 512 fois la durée d’un bit, puis revient à l’étape 2. Ce tirage aléatoire permet d’éviter que les deux adaptateurs transmettent de nouveau ensemble.

Voici les astuces et avantages employés par le protocole CSMA/CD :

  • Le rôle des signaux de brouillage est d’informer tous les autres adaptateurs des collisions qui se produisent sur le média
  • La norme Ethernet impose des limites à la distance entre 2 stations au sein d’un LAN. Cette limite permet de garantir que si un adaptateur choisit une valeur de K inférieure à celle de tous les autres adaptateurs impliqués dans une collision, il pourra transmettre sa trame sans risquer une nouvelle collision
  • L’avantage d’une attente exponentielle est que cela permet de s’adapter au nombre d’adaptateurs impliqués dans une collision

4 – Structure de l’entête Ethernet

Voici un exemple d’une trame Ethernet saisie avec Ethereal. Vous trouverez ci-dessous sa structure basé sur 14 octets.

entete-ethernet entete ethernet 14 octets

Voici un exemple d’une trame Ethernet 802.1Q saisie avec Ethereal. Vous trouverez ci-dessous sa structure basé sur 18 octets.

entete-ethernet entete 802 1q vlan

5 – Définition des différents champs

5.1 – Préambule

Ce champ est codé sur 7 octets et permet de synchroniser l’envoi. Chacun des octets vaut 10101010 et cette série permet à la carte réceptrice de synchroniser son horloge.

5.2 – SFD

Ce champ est codé sur 1 octet et indique à la carte réceptrice que le début de la trame va commencer. La valeur de SFD (Starting Frame Delimiter) est 10101011.

5.3 – Adresse destination

Ce champ est codé sur 6 octets et représente l’adresse MAC (Medium Access Control) de l’adaptateur destinataire. Dans le cadre d’un broadcast, l’adresse utilisée est FF-FF-FF-FF-FF-FF.

Cette adresse est ce que l’on appelle l’adresse physique d’une carte Ethernet (Hardware address). En fait cette adresse est divisée en deux parties égales :

  • Les trois premiers octets désignent le constructeur. C’est le l’organisation OUI (Organizationally Unique Identifier) gérer par l’IEEE, qui référence ces correspondances.
  • Les trois derniers octets désignent le numéro d’identifiant de la carte, dont la valeur est laissée à l’initiative du constructeur qui possède le préfixe

L’association de l’IEEE et du constructeur assure ainsi l’unicité de l’attribution des numéros d’adresse MAC.

5.4 – Adresse source

Ce champ est codé sur 6 octets et représente l’adresse MAC (Medium Access Control) de l’adaptateur émetteur.

Cette adresse est ce que l’on appelle l’adresse physique d’une carte Ethernet (Hardware address). En fait cette adresse est divisée en deux parties égales :

  • Les trois premiers octets désignent le constructeur. C’est le l’organisation OUI (Organizationally Unique Identifier) gérer par l’IEEE, qui référence ces correspondances.
  • Les trois derniers octets désignent le numéro d’identifiant de la carte, dont la valeur est laissée à l’initiative du constructeur qui possède le préfixe

L’association de l’IEEE et du constructeur assure ainsi l’unicité de l’attribution des numéros d’adresse MAC.

5.5 – Ether Type

Ce champ est codé sur 2 octets et indique le type de protocole inséré dans le champ donnée. Voici un extrait des différentes correspondances :

  • 0x6000 – DEC
  • 0x0609 – DEC
  • 0x0600 – XNS
  • 0x0800 – IPv4
  • 0x0806 – ARP
  • 0x8019 – Domain
  • 0x8035 – RARP
  • 0x809B – AppleTalk
  • 0x8100 – 802.1Q
  • 0x86DD – IPv6

Dans le cadre d’une trame VLAN taggé 802.1Q, ce champs doit être à 0x8100 afin de spécifier l’ajout des 4 octets suivants.

5.6 – 802.1Q

5.6.1 – Priorité

Ce champ est codé sur 3 bits et représente une information sur la priorité de la trame. Il y a donc 8 niveaux où 000 représente une priorité basse et 111 une haute.

5.6.2 – CFI

Ce champ est codé sur 1 bit et doit être marqué à 0. CFI (canonical format indicator) est utilisé pour des raisons de compatibilité entre les réseaux Ethernet et les réseaux de type Token ring.

5.6.3 – VLAN ID

Ce champ est codé sur 12 bits et représente le numéro du VLAN. Il est donc possible d’intégrer la trame dans 1 VLAN parmi 4096 possibilités. La valeur 0 indique qu’il n’y a pas de VLAN, c’est souvent  utilisée dans le cas où l’on désire appliquer une priorité sans avoir besoin de la notion de VLAN.

5.6.4 – EtherType

Ce champ est codé sur 2 octets et indique le type de protocole inséré dans le champ donnée. Voici un extrait des différentes correspondances :

  • 0x6000 – DEC
  • 0x0609 – DEC
  • 0x0600 – XNS
  • 0x0800 – IPv4
  • 0x0806 – ARP
  • 0x8019 – Domain
  • 0x8035 – RARP
  • 0x809B – AppleTalk
  • 0x86DD – IPv6

5.7 – Données

Ce champ est codé entre 46 et 1500 octets et contient les données de la couche 3. Dans le cas de TCP/IP, c’est ici que vient se loger le datagramme IP. L’unité de transfert maximale est le MTU (Maximale Transfer Unit) et sa valeur est classiquement de 1500 octets. Si la taille des données est inférieure à 46 octets, alors elle devra être complétée avec des octets de bourrage (padding) et c’est la couche réseau qui sera chargée de les éliminer.

5.8 – FCS

Ce champ est codé sur 4 octets et représente la séquence de contrôle de trame. Il permet à l’adaptateur qui réceptionnera cette trame de détecter toute
erreur pouvant s’être glissée au sein de la trame.

Les erreurs binaires sont principalement créées par les variations d’affaiblissement du signal et l’induction électromagnétique parasite dans les câbles Ethernet ou les cartes d’interface. La valeur de FCS (Frame Check Sequence) est le résultat d’un calcul polynomial appelé CRC (Cyclic Redundancy Code). A la réception de la trame, la couche liaison effectue le même calcul et compare les deux résultats qui doivent être égaux afin de valider la conformité de la trame reçue.

6 – Les types d’équipements Ethernet

6.1 – Le répéteur (Repeater)

entete-ethernet equipement repeteur repeater

Cet équipement agît au niveau 1 du modèle OSI. Sa fonction est de répéter un signal électrique en le régénérant. L’avantage est de pouvoir augmenter la distance physique, cependant, l’inconvénient est qu’il répète aussi le bruit du fait qu’il n’applique aucun filtre ni contrôle.

6.2 – Le HUB (Concentrateur)

 

entete-ethernet equipement hub concentrateur

Cet équipement agît au niveau 1 du modèle OSI. Sa fonction est d’interconnecter plusieurs cartes d’interfaces ensembles. Ainsi, chaque signal électrique reçu est rediffusé sur tous les autres ports du HUB.

Dans le cadre d’un HUB 100Mbps, on obtient un débit partagé de 100Mbps pour l’ensemble de équipement Ethernet raccordé.

6.3 – Le commutateur (Switch)

entete-ethernet equipement commutateur switch

Cet équipement agît au niveau 2 du modèle OSI. Identiquement à un HUB, sa fonction est d’interconnecter plusieurs cartes d’interfaces ensembles. Cependant, lorsqu’il réceptionne une trame, il compare l’adresse MAC de destination avec sa table de correspondance. Ainsi, il ne diffuse cette trame uniquement sur le port physique concerné.

Dans le cadre d’un Switch 100Mbps, on obtient un débit dédié de 100Mbps par équipement Ethernet raccordé. les caractéristiques principales à vérifier lors de la sélection d’un Switch sont :

  • Le nombre d’adresse MAC maximum qui peuvent mise en mémoire
  • Le nombre de paquet par seconde (PPS) que la matrice de fond de panier peux commuter

6.4 – Le pont (Bridge)

entete-ethernet equipement pont bridge

Cet équipement agît au niveau 2 du modèle OSI. Il permet d’interconnecter deux réseaux de Liaison différente. Par exemple, on trouvera fréquemment des ponts permettant de relier des réseaux :

  • Ethernet et WIFI
  • Ethernet et Token Ring

6.5 – Le routeur (Gateway)

entete-ethernet equipement routeur gateway passerelle

Cet équipement agît au niveau 3 du modèle OSI. Il permet de relier plusieurs réseau IP différents. Pour cela, lorsqu’il reçoit une trame, il compare l’adresse IP destination du datagramme avec sa table de routage et route ce datagramme sur l’interface de sortie correspondante.

6.6 – Synthèse des équipements Ethernet

Voici une synthèse comparative des différents équipements Ethernet :

entete-ethernet comparaison equipement modele osi

7 – Les vidéos

8 – Suivi du document

Création et suivi de la documentation par _SebF

Modification de la documentation par _SebF

  • Ajout du chapitre 5.6.4 afin de bien préciser que l’entête 802.1Q recopie le champ Ethertype

Modification de la documentation par Renaud ERBA

  • Correction dans le chapitre 5.7 sur la taille minimum des données à 46 octets.

9 – Discussion autour de l’entête Ethernet

Vous trouverez un complément d’information sur les faiblesses des réseaux Ethernet en terme de sécurité. Pour cela, rendez-vous sur la documentation Attaques Ethernet et VLAN

Vous pouvez poser toutes vos questions, faire part de vos remarques et partager vos expériences à propos de l’entête Ethernet. Pour cela, n’hésitez pas à laisser un commentaire ci-dessous :

Commentaire et discussion

17 commentaires sur la page : “Entête ETHERNET”

  1. Comment assurer que la taille de la trame ethernet est suffisamment grande pour pouvoir attendre suffisamment la détection de collision ? Dans le cas d’IEEE 802.3 on a un champ longueur qui permet d’introduire des bits de bourrage après le champ « données », mais dans le cas Ethernet, on a un champ type à la place, donc pas de champ longueur, donc si on met des bits de bourrage on ne pourrait pas les distinguer des données ?

    1. Lu Massyl,

      Je ne comprend pas toute tes questions. Ca se mélange un peu 🙂
      Alors voici un bout de réponse :
      La taille est donnée par l’Ether Type qui trouvera alors la taille en couche 3.

      @+
      Sebastien FONTAINE

  2. Bonjour,

    Je suis enseignant. Dans le cadre de mes cours sur les réseaux, m’autorisez-vous à utiliser votre travail comme support.

    Bien cordialement

    André Forys

    1. Lu Forys,

      L’objectif premier de Frameip.com est le partage, alors oui pas de soucis et avec plaisirs 🙂
      Juste stypuler la provenance et l’auteur.

      @+
      Sebastien FONTAINE

  3. bjr chez moi je ne comprend rien pour ce l’utilisation de ce logiciel si vous pouvez nous aider mais aussi je besoin de faire le hacking suis etudiant en troisieme annee de graduat en gestion informatique

    1. Lu Cheima,

      Où vois tu un champ vide ?
      Sur 12 bits, c’est le champs VLAN ID. Etant sur 12 bits, cela donne 4096 combinaisons décimales.

      @+
      Sebastien FONTAINE

  4. Bonjour je suis nouveau étudiant en réseau et je souhaite savoir comment calculer la taille moyenne d une trame sur tous réseau , si il y’a une formule comme par exemple celle du débit = quantité / temps

    merci

    1. Lu Teddy,

      La taille moyenne dépend déjà de quelle couche OSI tu parles. Après, le basique serait de prendre en compte tout.

      Alors dans ce cas, cela dépend de ton réseau de couche 2. Un exemple, dans le cas d’un LAN réseau Ethernet avec du flux dit classique (DNS, Serveur de fichier, Impression, Surf, messagerie …), la taille moyesse sera 1400 (pour un max de 1518.

      @+
      Sebastien FONTAINE

  5. Hello,

    Merci pour cet article magistral !

    La composition des trames est fascinante ! Je n’ai pas encore regardé les vidéos mais j’ai téléchargé Wireshark afin de pouvoir ouvrir les 2 liens que tu fournis en exemples.

    A ce propos, quelle est la législation en vigueur en France pour le téléchargement de ce type d’outil ? (l’article 323-3-1 du code pénal pourrait-t-il s’appliquer en l’absence de motif légitime ?).

    Sinon, sur le texte proprement dit, ça aurait été super de faire l’analyse d’une des deux trames que tu proposes en téléchargement (de préférence la plus longue 802.1Q), d’autre part, la seule chose qui me semble encore floue après ma lecture c’est d’avoir des exemples de VLAN ID sur 12 bits.

    Cordialement,

    1. Lu Anthony,

      Aucun soucis avec Wireshark, ce n’est pas de la retro-ingenierie sécuritaire. Donc il reste un outil lambda d’analyse réseau aidant 🙂 De toute façon, les critères légal ou pas sur des outils de se style sont basé sur leurs usages. Donc si tu ne fais pas de hacking et que tu fais du réseau, alors tu peux dormir tranquille 🙂

      Sinon, tu trouveras un peu de description sur les Vlan ici :
      http://www.frameip.com/attaque-ethernet-vlan/#22-82118021q ainsi que les Vidéo 7.2 et 7.3.

      @+
      Sebastien FONTAINE

  6. Bonjour,

    J’ai un problème sur la compréhension du à la transmission en « tour par tour » des paquets, je m’explique.
    Par exemple si l’on joue à un jeu vidéo en étant connecté en Ethernet, comment la connexion peut elle être continue si l’envoie de paquet n’est pas continu ? Est-ce tellement rapide que cela paraît continu pour le jeu ?

    Merci d avance.

    1. Bonjour,

      Je suppose que vous faites référence au protocole CSMA/CD.

      Ethernet permet à la carte réseau de votre ordinateur de communiquer avec votre box Internet. Le protocole CSMA/CD intervient à ce niveau la. Il n’y a pas de notions de connexion, juste de paquets envoyés d’une carte Ethernet (celle de l’ordinateur) à un autre (celle de la box), et de gestion de collision entre ces paquets.

      Ensuite, votre box internet va envoyer ces paquets sur Internet et les acheminer au bon endroit (le serveur de jeu par exemple) en s’assurant de leur intégrité. Il s’agit grosso modo du rôle respectivement des protocoles IP et TCP, encapsulés dans la section « données » de la structure de l’en-tête Ethernet (voir les schémas correspondant dans l’article).

      TCP est responsable de l’ouverture de la connexion entre un client (votre jeu sur l’ordinateur) et un serveur (le serveur de jeu), et de maintenir cette connexion ouverte. Très très très grossièrement cela signifie échanger régulièrement des paquets entre le client et le serveur jusqu’à ce que l’une des parties décide de fermer la connexion (lorsque vous quittez le jeu).

      IP est responsable d’emmener les paquets TCP au bon endroit (jusqu’au serveur de jeu).

      Ethernet est responsable d’envoyer les paquets IP sur les différents câbles réseaux qui vous relient au serveur de jeu.

      Je vous encourage à lire les documentations sur les modèles OSI et TCP/IP qui éclaireront certainement votre lanterne:

      http://www.frameip.com/osi/
      http://www.frameip.com/tcpip/

      Cordialement

      1. Merci de votre réponse, j’avais déjà lu les deux articles mais mal assimilé l’histoire des différentes couches je pense.

        Donc si je comprend bien les « histoires de collisions » ont lieu seulement entre l’envoie des paquets de l’ordinateur jusqu’à la box ?
        De fait si une seule machine est connectée en Ethernet, il y a aucun risque de collision ?

        Je débute dans ce domaine, j essaye de bien saisir les notions.

        1. Ces notions ne sont en effet pas évidentes à saisir au premier coup d’œil ?

          « Donc si je comprend bien les « histoires de collisions » ont lieu seulement entre l’envoie des paquets de l’ordinateur jusqu’à la box »
          De façon générale, il peut y avoir des collisions chaque fois que deux équipements Ethernet sont connectés ensemble. Donc, chez toi (je me permets de tutoyer ? ), entre ta box et ton ordi, en effet.

          « De fait si une seule machine est connectée en Ethernet, il y a aucun risque de collision ? »
          Si. Prenons l’exemple de ta box et ton ordi: ton ordi envoie des paquets vers la box et ta box des paquets vers ton ordi. Si les 2 émettent au même moment, il peut y avoir des collisions.

          Si tu as un moment et es intéressé tu peux t’amuser à installer Wireshark (https://www.wireshark.org/) sur ton ordinateur. Ils s’agit d’un sniffer (http://www.frameip.com/sniffers-anti-sniffers/ et http://www.frameip.com/sniffers-reseaux-commutes/) qui permet capturer le trafic qui passe par ta carte Ethernet. Tu verras le détail de tous les paquets qui passent, avec les différents protocoles, et leurs structures octets par octets (incluant l’en-tête Ethernet). Je pense qu’ainsi les choses te paraitront beaucoup plus claires.

          Ci-joint un petit tuto rapide sur la façon de l’utiliser : https://lafibre.info/tcpip/realiser-une-capture-wireshark-pas-a-pas/

          1. Aah ! Oui je vois maintenant, celà paraît logique !
            Je vais essayer Wireshark !

            Merci de ta réponse !

          2. En général, aujourd’hui, on a plus de topologie de réseau avec plus de 2 stations sur un même medium (câble par exemple) car on utilise des switchs donc la collision est déjà limitée à la tentative de transmission simultanée entre 2 stations.
            De plus les liaisons, si elles sont full duplex, n’ont plus de collision possible.
            Par exemple, j’ai pris un switch au hasard, le d-link dgs105, il est full duplex (voir datasheet).
            A mon avis dans un reseau ethernet cablé 10/100/1000 base T classique il n’y a plus de collision.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *