Ethernet
1
Introduction
• Norme de 1985 (10Base5) : Câble coaxial (épais)
• Ethernet = Réseau local
• Basé sur la méthode d 'accès CSMA/CD
• CSMA : Carrier Sense Multiple Access (Accès multiple avec écoute de la
porteuse)
• CD : Collision Detection (Détection de collision)
2
Principes
• Une station qui veut émettre
• Regarde si le câble est libre
• Si oui, elle envoie sa trame
• Si non elle attend que le câble soit libre
• Si 2 stations émettent ensemble, il y a collision
• Les 2 trames sont inexploitables
• Les 2 stations détectent la collision, elles ré-émettront leur trame ultérieurement
• Ethernet est un réseau
• Probabiliste
• Sans chef d'orchestre
• Égalitaire
• Comparaison avec une réunion sans animateur entre gens polis
3
Format d'une trame IEEE 802.3
Taille du Champs en octet
7 1 6 6 2 de 46 à 1500 4
Préambule SFD @ DEST @ SRC Lg DATA FCS
DATA
• Longueur des trames (avec préambule et SFD) :
• 26 octets réservés au protocole
• Longueur minimale : 72 octets
• Longueur maximale : 1526 octets
4
Format d'une trame IEEE 802.3
• Espace inter-trames minimal de 9.6 µs
• espace inter-trames 9.6 µs
• Utilisation du réseau dans un délai relativement faible.
• Une machine ne peut émettre toutes ses trames en même temps : seulement les unes à la
suite des autres.
• Cet espace inter-trames permet :
• Aux circuits électroniques de récupérer l’état de repos du média
• Aux autres machines de reprendre la main à ce moment là
5
Trame IEEE 802.3 : Préambule
Taille du Champs en octet
7 1 6 6 2 de 46 à 1500 4
Préambule SFD @ DEST @ SRC Lg DATA FCS
DATA
• Taille : 7 octets identiques (10101010) <=> Simple suite continue
de bit à 0 et de bit à 1
6
Trame IEEE 802.3 : SFD
Taille du Champs en octet
7 1 6 6 2 de 46 à 1500 4
Préambule SFD @ DEST @ SRC Lg DATA FCS
DATA
• SFD : Start Frame Delimitor
• Marque le début de la trame
• Taille : 1 octet
• SFD = 10101011
7
Trame IEEE 802.3 : Adresses
Taille du Champs en octet
7 1 6 6 2 de 46 à 1500 4
Préambule SFD @ DEST @ SRC Lg DATA FCS
DATA
• Adresses IEEE 802.3 ou Ethernet : 48 bits (6 octets).
• syntaxe : [Link] ou [Link] …...
• 1er bit transmit : spécifie une adresse individuelle (0) ou de groupe (1)
• 2ième bit transmit : spécifie si l'adresse est administré localement (0) ou
universellement par IEEE (1)
8
Trame IEEE 802.3 : Adresses
Taille du Champs en octet
7 1 6 6 2 de 46 à 1500 4
Préambule SFD @ DEST @ SRC Lg DATA FCS
DATA
• Exemples :
• Broadcast (diffusion) : [Link]
• Multicast (groupe) : 1er Bit à 1 (1er octet d'adresse impair) :
• IP (RFC1112) 01-00-5E-00-00-00 à 01-00-5E-7F-FF-FF
• Spanning Tree 01-80-C2-00-00-00 ou HP Probe 09-00-09-00-00-01
• Individuelle : 1er Bit à 0 (1er octet d'adresse pair) :
• [Link] ou [Link]
9
Trame IEEE 802.3 : Adresses
Taille du Champs en octet
7 1 6 6 2 de 46 à 1500 4
Préambule SFD @ DEST @ SRC Lg DATA FCS
DATA
• Administration locale :
• 2ième bit transmis à 1 => 1er octet 02,03,06,07,0A,0B,0E,0F,12…
• Connue par le réseau sur lequel elle est connectée
• Administration universelle :
• 2ième bit transmis à 0 => 1er octet 00,01,04,05,08,09,0C,0D,10 ...
• Attribuée par IEEE
• [Link] (obtention d'un N°)
10
Trame IEEE 802.3 : Adresses
Taille du Champs en octet
7 1 6 6 2 de 46 à 1500 4
Préambule SFD @ DEST @ SRC Lg DATA FCS
DATA
• Les 3 derniers octets étant librement alloués par le fabricant
• (256)3 = 16.78 millions de possibilités pour le fabricant
• Cisco [Link]XX:XX:XX Sun [Link]XX:XX:XX
• Cabletron [Link]XX:XX:XX HP [Link]XX:XX:XX
48 bits
24 bits 24 bits
OUI Assigned by each organization
11
Trame IEEE 802.3 : Adresses
Taille du Champs en octet
7 1 6 6 2 de 46 à 1500 4
Préambule SFD @ DEST @ SRC Lg DATA FCS
DATA
• L'adresse destinataire peut donc représenter :
• L'adresse physique d'une machine locale
• L'adressage d'un groupe de machines (multicast)
• Toutes les machines du réseau local (broadcast)
• L'adresse source représente seulement :
• L'adresse physique de la station émettrice
12
Unicast Frame Forwarding
48 bits
7 bits 0
Host A Host B
unicast
Host C Host D
Broadcast Frame Forwarding
48 bits
FF FF FF FF FF FF
Host A Host B
broadcast
Host C Host D
Multicast Frame Forwarding
48 bits
7 bits 1
Host A Host B
multicast
Host C Host D
Trame IEEE 802.3 : Longueur
Taille du Champs en octet
7 1 6 6 2 de 46 à 1500 4
Préambule SFD @ DEST @ SRC Lg DATA FCS
DATA
• Taille : 2 octets (valeur ≤ 1500)
• Donne le nombre d'octets utilisé par les données dans la trame
• Ce champ est différent dans une trame Ethernet
16
Trame Ethernet : Type données
Taille du Champs en octet
7 1 6 6 2 de 46 à 1500 4
Préambule SFD @ DEST @ SRC TYPE Data FCS
DATA
• Taille : 2 octets
• Norme : "Si la valeur du champ taille > 1500 alors la trame peut être
ignorée, détruite ou utilisée à d'autres fins que IEEE802.3" => permet la
compatibilité avec Ethernet
17
Trame Ethernet II
6 bytes 6 bytes 2 bytes 46-1500 bytes 4 bytes
[Link] [Link] Type Data FCS
0x0800 IP 2048 (0x0800)
0x0806 ARP 2054 (0x0806)
• Le type de trame Ethernet II est associé à des protocoles dont la
valeur de type est supérieure à 1536 (0x600).
Trame IEEE 802.3 : Données
Taille du Champs en octet
7 1 6 6 2 de 46 à 1500 4
Préambule SFD @ DEST @ SRC Lg DATA FCS
DATA
• 1 < Taille du champs de données utiles < 1500 octets
• Padding : Ajout d'octet(s) sans signification pour envoyer moins de 46
octets de données
=> Longueur minimale de la trame : 72 octets
19
Trame IEEE 802.3 : FCS
Taille du Champs en octet
7 1 6 6 2 de 46 à 1500 4
Préambule SFD @ DEST @ SRC Lg DATA FCS
DATA
• FCS : Frame Check Sequence
• Contrôle à la réception de la trame par calcul
• Calcul = CRC (Cyclic Redundancy Check) (Division polynomiale)
• CRC sur champs destination, source, longueur et données
• Taille : 4 octets
20
Sous Couche LLC
• LLC : Logical Link Control
• Contrôle la transmission de données
21
MAC : Transmission d'une trame
• La sous-couche LLC a fait un appel "transmet-trame".
• La couche MAC :
• Ajoute préambule, SFD, padding si nécessaire
• Assemble les champs : @source, @destinataire, taille, données et padding
• Calcule le FCS et l'ajoute à la trame
• Transmet la trame à la couche physique :
• Si "écoute porteuse" faux depuis 9.6 µs au moins, la transmission s'effectue.
• Sinon, elle attend que "écoute porteuse" devienne faux,
• Attend 9.6 µs et commence la transmission (suite de bits).
22
MAC : Transmission d'une trame
Créer la trame
OUI
Transmission en cours ?
NON
Commencer la transmission
OUI
NON
Détection Collision ?
Brouillage
Transmission finie ? Comptabiliser la tentative
NON
OUI
Trop de tentatives ?
OUI
Transmission réussie
NON
Abandon Calcul de l'attente
Trop de tentatives Attente
23
MAC : Réception d'une trame
• La sous-couche LLC a fait un appel "reçoit-trame".
• La couche MAC est à l'écoute du signal "écoute porteuse",
• Reçoit tous les trains de bits qui circulent sur le câble :
• Les limites des trames sont indiquées par le signal "écoute porteuse"
• Ôtes le préambule et le SFD
• Analyse l'adresse du destinataire dans la trame
• Si l'adresse de destination de la trame est différente de l'adresse de la station =>
poubelle
• ....
24
MAC : Réception d'une trame garder vocabulaire
• Si l'adresse destination est ou inclue la station :
• Elle découpe la suite de bits reçus en octet, puis en champs
• Transmet à la sous-couche LLC les champs :
• @destination, @source, taille et données
• Calcule le FCS et indique une erreur à la couche LLC si :
• FCS incorrect
• Trame trop grande: >1526 octets (avec préambule et SFD) (giants)
• Longueur de la trame n'est pas un nombre entier d'octets (erreur d'alignement)
• Trame trop petite: < 72 octets (trame avec collision) (runts)
25
MAC : Réception d'une trame
Réception
NON
Fin de réception ?
OUI
OUI
Trame trop courte ?
NON
Adresse OK ? NON
OUI
Calcul CRC
Taille Correcte ? Multiple de 8 bits ?
NON OUI NON OUI
Désassemblage de la trame Erreur Erreur
Erreur Transmission LLC Alignement CRC
26
Couche Physique
• Fonctions de la couche physique
• Permet de recevoir et d'émettre des suites d'éléments binaires
• Détecte la transmission par une autre station,
• pendant que la station n'émet pas : écoute porteuse
• pendant que la station émet : détection de collision
27
Collisions : Problématique
• Une station regarde si le câble est libre avant d'émettre (écoute porteuse)
• Mais le délai de propagation d'une trame sur le réseau n'est pas nul : une station peut
émettre alors qu'une autre a déjà commencé à émettre (inter-trame ≤ Slot-time)
• Quand ces 2 trames émises presque simultanément se "rencontrent", il y a collision
• Avec un réseau très grand (et donc un temps de propagation d'une trame très long), ceci
est inefficace => LIMITES
28
Collision : exemple
écoute porteuse faux
A A commence à émettre B
A B
écoute porteuse faux
A B commence à émettre B
29
Collision : exemple
A (1) Propagation du signal émis par A B
(2) Émission de B
(3) Collision
(4) Propagation du signal en collision
A B
(5) Réception du signal en collision par A
(6) Arrêt d'émission de A
Temps maximum écoulé = Aller + Retour ≈ 50 μs ≈ temps d'émission de 63 octets
30
Collisions : Solutions
• Minimiser le temps pendant lequel une collision peut se produire
• Temps maximum de propagation d'une trame = Temps aller/retour
• Temps aller/retour = Round Trip Delay ≈ 50 µs ≈ 63 octets => une collision ne
peut se produire que sur le chemin Aller (collision window).
• On fixe un Slot Time = 51.2 µs (-> 64 octets) : le temps d'acquisition du canal : une
collision ne peut se produire que durant ce temps
• La station émettrice ne peut se déconnecter avant la fin du slot time pour avoir la
certitude que la transmission se soit passée sans collision
• Pour tenir ce temps maximum (RTD), on impose des limitations :
• Longueur, nombre de segments et de boîtiers traversés par une trame ...
31
Collisions : Détection
• Réseau probabiliste
• Émetteur :
• Émet au minimum après 9.6µs
• Écoute le signal "détection de collision" pendant 51.2 µs (64 octets) à partir
du début d'émission
• S'arrête d'émettre quand il détecte une collision
• Récepteur :
• réception d'une trame < 72 octets => collision
32
Collisions : En envoi de trame
• Couche MAC transmet la suite de bits à la couche physique
• Pendant le début de la transmission (Slot Time = 512 bits), elle teste le signal
"détection de collision" que lui fournit la couche physique
• S'il y a collision, la station commence par renforcer cette collision en envoyant un
flot de 4 octets (jam) pour prévenir toutes les machines du réseau
33
Collisions : En réception de trame
• Si la trame est de taille erronée :
• Longueur minimale trame correcte : 72 octets
• Longueur maximale trame erronée : 64 octets
• Donc toutes trames reçues de longueur < 72 octets est rejetée
34
Collisions : Ré-émission
• La station attend = R x 51,2 µs = R x "Slot Time"
• R entier, 0 ≤ R < 2K avec K = min (n,10)
• n = nombre de ré-émissions déjà faites (modulo 10)
• Elle émet à nouveau, 15 ré-émissions maximum
• Si la 15ième ré-émission échoue, la couche physique retourne le statut "Trop
d'erreurs de collision" à la couche directement supérieure
• Exemples de valeur de R :
• 1) 0 ou 1
• 2) [Link]
• 3) [Link].[Link]
• ....
35