1. Faire communiquerlesmachinesentre elles,lacouche 2
La couche 1 n'a plusde secretspourvous: voussavezcâblerunréseauetmaîtrisezle matériel
associé.
Maintenant,il seraitbiende pouvoirenvoyerdesinformationsd'une machineàune autre,de
s'ouvrirau grand monde,de rêverd'unmonde de communication...OKje m'emporte.
Commençonsparcomprendre lacouche 2 et nousaurons déjàfaitungrand pas !
Vousallezvoirque dansce chapitre etle suivantnousallonsaborderbeaucoupde notionsqui vous
serontutilesenréseau.Il esttrèsimportantde bienmaîtrisercesnotions,ne négligezdoncpasces
chapitresetlessuivants.
La couche 2, sesrôles
Comme nousl'avonsvudans unchapitre précédent,lacouche 2 se nomme la couche liaison,ouplus
précisément,liaisonde données.Cependant,ce qu'il ya à retenirn'estpasdans le nom, maisbien
dans le rôle.
Le rôle donné àla couche 2 estde connecterdesmachinessurunréseaulocal.
Plusexactement,l'objectif estde permettre àdesmachinesconnectéesensemblede communiquer.
Nousallonsdoncdansce chapitre voirce qu'il fautmettre enœuvre pourétablirune
communicationentre deux ouplusieursmachines.
Ceci étant,nousallonsunpeuvite enbesogne,carla couche 2 possède unautre rôle importantqui
estla détectiondeserreursde transmission.J'ai bienditdétection,etnonpascorrection,la
différence estimportante,carlacouche 2 verra leserreurs,etfermeralesyeux surcelles-ci.
Si avec tout celaonn'arrive pas à parler,je n'ai plusqu'à changerde métier!
Un identifiant,l'adresseMAC
Pourparlerensemble quandnoussommesdeux,ce n'estpasbiencompliqué :je parle etl'autre
écoute (dumoinslaplupartdu temps...).
Dèsque le nombre de participantsaugmente,çadevientpluscompliqué,carl'onpeutvouloir
s'adresserà une personne enparticulierpourlui communiquerune informationsecrète.
En réseauc'estpareil,onveutparfoisparlerà toutle monde maisaussi,laplupartdu temps,parlerà
une machine enparticulier. Etpourpouvoirparlerà une machine enparticulier,il vabienfalloirêtre
capable de l'identifier.Leschercheursontdonccréé un identifiantparticulieràlacouche 2 qui
permettraitde distinguerlesmachinesentre elles,il s'agitde l'adresse MAC!
Waouh ! Une machine a donc une adresse MACpour être identifiée ?
Pas exactementenfait.Vuque noussommesencouche 2,etdonc encore prochesde lacouche 1,
l'adresse MACesten liaisonavecle matériel,etnotammentlacarte réseau.
2. L'adresse MAC est donc l'adresse d'une carte réseau.
Notationde l'adresse MAC
Un peude calcul binaire
Attention,sortezvoscerveaux,il vafalloirfaire ducalcul binaire.Etenréseau,onva enfaire
beaucoup,beaucoup.Doncautants'y mettre dèsmaintenant!
Euh, c'estquoi le binaire ?
Le binaire estunsystème de numérationenbase 2.Globalement,celaveutdire qu'onne peut
compterqu'avec1 et0, contrairementausystème de numérationdécimal que nousavons
l'habitude d'utiliserdanslequel onse sertdeschiffres de 0à 9.
Hima Bachirou Pas besoin
Maintenantque noussommesdesprosdu binaire,nouspouvonsnousattaqueràl'adresse MAC.
Sauf que l'adresse MACs'écrit enhexadécimal...
Quoi ? On se moque de nous,on travaille le binaire,onse saigne aux quatre veinesetonne s'ensert
même pas?
Mais si ! Car quandon a comprisle binaire,l'hexadécimal n'estpasbiencompliqué.À l'inverse du
binaire pourlequel nousn'avionsque 0et 1 comme chiffresànotre disposition,enhexadécimal
nousen avons16 !
Moi je connaisleschiffresde 0à 9, maisil existeraitd'autreschiffres?
Oui,enfaitnousutilisonssimplementlespremièreslettresde l'alphabetaprès9.En hexadécimal
nousavonsdonc :
Citation
0, 1, 2, 3, 4, 5, 6, 7, 8, 9... a, b,c, d, e etf !
Par exemple,10en hexadécimal s'écrita.
11 s'écritb, etc.
Tout nombre décimal peuts'écrire comme lasomme de puissancesde 16.
Je vaisvous épargnerlescalculs,maisle principeestle même.Notreadresse MACs'écriradoncen
hexadécimal.
En voici une pourl'exemple:00:23:5e:bf:45:6a
Codage de l'adresse MAC
Noussavonsmaintenantde quoi estcomposée l'adresse MAC,maispourlavoirplusendétail,nous
allonsdéjàvoirsataille.
L'adresse MAC estcodée sur 6 octets.
3. Un octet estune unité informatique indiquantune quantitéde données.
Par exemple,quandvousachetezundisque dur,vousconnaissezsataille ennombre d'octets.Un
disque 40 Go fera 40 gigaoctets,soit40 000 000 000 octets!
Un octet représente 8bits.Un bitestune valeurbinaire.
Comme nousl'avonsvuavant, une valeurbinaire peutêtre soit0,soit1. Un bit peutdonccoder
deux valeurs,deux bitspeuventcoderquatre valeurs,troisbits8valeurs,etc.Dansl'exemple de
deux bits,chacund'eux peutprendre lesvaleurs0ou1 ; quandon lescouple onpeutdonc prendre
lesvaleurs:00, 01, 10, 11
Ceci donne bien4 valeursdifférentes.Vouspouvezessayeravec3 ou 4 bitsde trouvertoutesles
combinaisonspossibles.
En fait,on endéduitque x bitspeuventcoder2x valeurs!
Ce qui nousdonne pourun octet,qui représente 8bits: 1 octet = 28 = 256 valeurs!
Un octet estdonc comprisentre 0 et...255 (puisqu'ondémarre à0)
Notre adresse MACest codée sur48 bits.Combiencelareprésente-t-ild'octetsetde valeurs
possibles (enpuissancesde 2) ?
1 octet= 8 bits,donc48 bits= 48/8 octets= 6 octets.
L'adresse MAC estcodée sur 6 octets.
Vuque l'adresse MACest codée sur48 bits,elle peutprendre 248 valeurs.Soit...281 474 976 710
656 valeurs!Soitplusde 280 mille milliardsd'adressesMACpossibles!Çafait beaucoup...
Trucs et astuces!
Si vous voulezavoirune idée de lavaleurdécimaled'une grande puissancede 2,c'est facile.
Prenonspourexemple248 :
248=210×210×210×210×28
Or, 210 vaut à peuprès1000 (1024 exactement).
Nousavonsdonc 248 = 1000 * 1000 * 1000 * 1000 * 256.
Soit256 mille milliards...facile,etplusbesoinde calculette!
Nousavonsdonc beaucoup,beaucoup...beaucoupd'adressesMAC.
Ça tombe bien,car chaque adresse MACva être unique aumonde.
Chaque carte réseaua donc sa propre adresse MAC,unique aumonde.
Commentc'estpossible,ça?On ne se trompe jamais?
Normalementnon.Unconstructeurqui fabrique descartesréseauvaacheterdesadressesMAC,ou
plusexactementdesmorceauxd'adressesMAC.
Les troispremiersoctetsde l'adresse représententle constructeur.
4. Ainsi,quandunconstructeurveutproduire lescartes,il achète troisoctetsqui lui permettrontde
donnerdesadressesàsescartes.Par exemple,j'achète lasuite de troisoctets:00:01:02. Toutesles
cartes réseauque je vaisproduire vontcommencerparcestroisoctets,par exemple:
00:01:02:00:00:01 ; puis: 00:01:02:00:00:02 ; etc.
Si je choisistoujourslestroisderniersoctetsdifférentspourlescartesque je produis,je suissûr
qu'aucune autre carte réseaun'aura lamême adresse MAC,car je suisle seul àposséderlestrois
premiersoctets00:01:02 etj'ai faitattentionàce que lestroisderniersne soientpasidentiques.
Récapitulons:
L'adresse MAC estl'adresse d'une carte réseau.
Elle estunique aumonde pourchaque carte.
Elle estcodée sur6 octets(soit48 bits).
Grâce à l'adresse MAC,je suisdonccapable d'envoyerdesinformationsàlacarte réseaud'une
machine !
Une adresse MACspéciale
Parmi lesadressesMAC,il y ena une particulière,c'estl'adressedanslaquelletouslesbitssontà1,
ce qui donne ff:ff:ff:ff:ff:ff.
Cette adresse estappeléel'adresse de broadcast.
L'adresse de broadcastest une adresse universellequi identifien'importequellecarte réseau.
Elle me permetainsi d'envoyerunmessage àtouteslescartesréseaux desmachinesprésentessur
monréseau,enune seule fois.
Toute machine qui reçoitune trame qui a, comme adresse MAC de destination,l'adressede
broadcast, considère que latrame lui estdestinée.
Et maintenant?
Maintenant,noussavonsrelierlesordinateursentreeux grâce àla couche 1 etlesidentifiergrâce à
l'adresse MACde couche 2.
Il seraitbiende définirunlangage pourpouvoirlesfaire communiquer!
Un protocole,Ethernet
Le langage de couche 2, c'est quoi ?
Nousallonsdevoirdéfinirunlangage pourcommuniquerentre machines.Ce langage permettrade
définirle formatdesmessagesque lesordinateursvonts'échanger.Etle gagnantest...Ethernet!En
réseau,ontraduitlangage par protocole,pourfaire pluspro.
Ethernetn'estpasle seul protocole de couche 2, maisil estde trèsloinle plusutilisé aujourd'hui.
À quoi sertun protocole ?
5. L'objectif desréseaux estde pouvoirs'échangerdesinformations.Étantdonné que nousdiscutons
entre desmachinestrèsdifférentes,qui elles-mêmesontdessystèmesd'exploitationtrèsdifférents
(Windows,MacOS, Linux,etc.),nousdevonscréerunlangage de communicationcommunpourse
comprendre.C'estle protocole.
Nousavonsvu que des0 etdes1 allaientcirculersurnoscâbles.Nousallonsdoncrecevoirdes
chosesdugenre : 001101011110001100100011111000010111000110001...
Ce qui ne veutpas dire grand-chose...tantque nousne nousentendonspassur leursignification.Le
protocole vaainsi définirquellesinformationsvontêtre envoyées,etsurtoutdansquel ordre.
Dans notre message,nousallonsaumoinsdevoirenvoyer:
l'adresse de l'émetteur;
l'adresse dudestinataire;
le message proprementdit.
Ainsi,nouspouvonstrèsbiendire que les48 premierscaractèresque nousallonsrecevoir
représententl'adresseMACde l'émetteur(puisque l'adresse MACfait48 bits) les48 suivants
l'adresse durécepteur,puisenfinle message.
Le protocole vadonc définirle formatdesmessagesenvoyéssurle réseau.
Plusexactement,nousallonsappelerce message,une trame.
La trame estle message envoyé surle réseau,encouche 2.
Format d'une trame Ethernet
Nousavonsdonné unformat d'exemple dansle paragraphe précédent,maisnousallonsvoirle vrai
formatutilisé.Intéressons-nousd'abordaux adressesMAC.Laquelle placerenpremier?L'émetteur
ou le récepteur?
Pourrépondre à cette question,nousallonsnousmettre danslapeaud'une machine qui
réceptionne unmessage.
Est-ce plusintéressantde connaître l'adresse de celuiqui nousenvoie le message,oucellede celui à
qui il estdestiné ?
Eh bienleschercheursontestimé qu'il étaitplusintéressantde connaître l'adresse dudestinataire,
car ainsi nous pouvonsimmédiatementsavoirsi le messageestpournousoupas. S'il estpour nous,
nousen continuonslalecture.S'il n'estpaspournous,ce n'est pasla peine de passerdutempsà le
lire...poubelle !
Nousallonsdoncpositionnerenpremierl'adresse MACdudestinataire,suivie de l'adresse MACde
l'émetteur(aussi appelée adresse MACsource).
Adresse MACDST (destinataire) Adresse MACSRC (source) Suite dumessage ???
6. Trame Ethernet
Et ensuite ?
Ensuite,nousavonsbesoind'une informationunpeu particulière.Pourlacomprendre,vousdevez
vousrappelerdumodèle OSI...Bond'accord,je vousaide avecun schéma(voirlafigure suivante)!
Nousavonsvu que,lorsde l'envoi d'une information,nousparcouronslescouchesde hautenbas
(voirlafigure suivante).
Noussommesdoncpasséspar lacouche 3 avant de passerpar la couche 2. La couche 3 peutdonc
indiqueràlacouche 2 quel estle protocole qui a été utiliséencouche 3.
Et c'est utile,carà l'arrivée,quandlacouche 2 de la machine réceptrice reçoitlesdonnées,qu'elle
voitque l'adresse MACde destinationestbienlasienne,elledoitenvoyerlesinformationsàla
couche 3, etdonc au bonprotocole de couche 3.
Il est doncnécessaire d'indiquerdanslatrame quel protocole de couche 3 a été utilisé quandle
message aété envoyé etqu'il atraversé lescouchesdumodèle OSIde hauten bas.
Notre trame devientdonc:
Adresse MACDST
(destinataire)
Adresse MACSRC
(source)
Protocole de couche
3
Suite dumessage
???
Trame Ethernet
Nousavonspresque tout!
Pourquoi presque ?!
Parce qu'il nousmanque l'essentiel :
l'informationàenvoyer;
nousn'avonstoujourspas réglé le problèmede ladétectiond'erreurs.
Pourl'information,nousallonslaplacerjuste aprèsle protocole de couche 3. De plus,nousallons
enchaîneravecle code de correctiondeserreurs,ouCRC.
Qu'est-ce que le CRC?
Le CRC estune valeurmathématiquequi estreprésentativedesdonnéesenvoyées.
En gros celaveutdire que c'est unnombre qui sera différentpourchaque message.
Imaginonsqu'une machine A envoieunmessage àune machine B.
7. Lors de l'envoi,A calcule le CRC(une valeurX) etle metà la finde la trame.
B reçoitle message etfaitle même calcul que A avec la trame reçue (une valeurY).
B compare la valeurqu'elle acalculée (Y) aveclavaleurque A avaitcalculée etmise àla finde la
trame (X).
Si ellessontégales,bingo!Latrame envoyée parA estbienidentique àlatrame reçue par B.
Si ellessontdifférentes,gloups!Il y a euune erreurlors de la transmission.Latrame reçue par B
n'estapparemmentpaslamême que celle envoyée parA.Il y a euun problème quelquepart,mais
nousl'avonsdétecté !
La trame complète
Nousavonsmaintenanttouslesélémentsde latrame etavonsdoncla trame complète :
Adresse MACDST
(destinataire)
Adresse MACSRC
(source)
Protocole de couche
3
Donnéesà
envoyer
CRC
Trame Ethernet
Quelle taille pourlatrame ?
Il y a desélémentsqui ne varientjamaisd'une trame àl'autre.L'ensemblede cesélémentsest
appelé en-tête ou,dansle casde lacouche 2, en-tête Ethernet.Ilssontindiquésici enrouge.
Adresse MACDST Adresse MACSRC Protocole de couche 3 Donnéesàenvoyer CRC
Trame Ethernet
Ceten-tête ne variantpas,nouspouvonsdéfinirsataille :
lesadressesMACfontchacune 6 octets;
le protocole de couche 3 est codé sur 2 octets;
le CRC estcodé sur 4 octets.
Ce qui donne untotal de 18 octetspourl'en-tête Ethernet.
Mais la trame a-t-elle besoind'une tailleminimale?Et d'une taille maximale ?
La réponse estoui.Lataille minimale permettrade garantirque,lorsd'une collision,lamachine
ayant provoqué lacollisiondétecteracelle-ci (l'explicationétantunpeucomplexe etpeuutileici,je
vousenferai grâce).
La taille minimale estde 64 octets,pourune trame Ethernet.
La raisonde la taille maximaleesttoutautre.
S'il n'y avaitpas de taille maximale,il seraitpossible qu'unemachine envoieune gigantesque trame
qui occuperaittoutle réseau,empêchantlesautresmachinesde communiquer.C'estpouréviterce
8. genre de problème qu'une taille maximale aété choisie.
La taille maximaleestde 1518 octets,pourune trame Ethernet.
Au passage,onse rendcompte que si onenlève les18octetsd'en-tête àla taille maximale,nous
tombonssurun chiffre rondde 1500 octetsde donnéespourlesdonnéesàenvoyer!
Noussavonsdonc maintenanttoutde latrame Ethernet! Récapitulonsunpeu,enobservantun
échange de donnéesentre deuxmachinesA etB.
Une applicationsurlamachine A veutenvoyer desdonnéesàune autre applicationsurune machine
B.
Le message parcourtlescouchesdumodèle OSIde hautenbas.
La couche 3 indique àla couche 2 quel protocole aété utilisé.
La couche 2 peutalors formerlatrame etl'envoyersurle réseau.
La machine Breçoitla trame et regarde l'adresse MACde destination.
C'estelle !elle litdonclasuite de latrame.
Grâce à l'informationsurle protocole de couche 3 utilisé,elle peutenvoyerlesdonnées
correctementàla couche 3.
Le message remonte lescouchesdumodèle OSIetarrive àl'applicationsurlamachine B.
Waouh ! Noussavonscommuniquerentre machinessurunréseaulocal !
Enfinpresque,carnousn'avonspas encore vucommentconnecterplusieursmachinesentreelles,et
celava se faire grâce à un matériel particulier...
on saitmaintenantque le rôle principal de lacouche 2 estde connecterlesmachinessurunréseau
local ;
elle permetaussi de détecterleserreurs;
le protocole utiliséencouche 2est le protocole Ethernet;
lescartesréseauont une adresse qui estl'adresse MAC;
l'adresse MACestcodée sur 6 octets,soit48 bits;
chaque adresse MACest unique aumonde ;
il existe une adresse particulière,l'adresse de broadcastqui permetde parleràtout le monde,
ff:ff:ff:ff:ff:ff ;
Vousconnaissezlesprincipesde lacouche 2 etnousallonsmaintenantétudierendétail
l'équippementqui permetde connecterlesmachinesentre elles,le switch.