donné l'adresse IP de A, IP_A, et le masque de A, MASQ_A donné l'adresse IP du destinataire B, A souhaite envoyer un paquet à B A vérifie que B est sur son réseau local (le réseau sur lequel il a une interface) IP_A & MASQ_A = AD-RESEAU_A IP_B & MASQ_A = AD-RESEAU_? (attention pas le masque de B... A ne connait pas le masque de B, seul B le connait...) Si AD-RESEAU_A = AD-RESEAU_? Alors B est sur le réseau local de A A cherche l'adresse MAC de B sur son réseau local A consulte son cache ARP (une table qui associe les adresses IP avec les adresses MAC des machines sur son réseau local ; les entrées non actives sont nettoyées très régulièrement ; une association est enregistrée si une trame quelconque arrive ou bien à la suite d'une requête ARP qui demande la MAC du propriétaire d'une certaine IP). (cas1)Si MAC_B est présente Alors A encapsule le paquet IP dans une trame avec l'adresse de destinataire MAC_B et l'envoie à B Si B ne "meurt" pas (coupure de courant, rupture d'un cable...) Alors B recevra la trame de A (SUCCESS) Sinon Personne ne répond ; A n'a aucun moyen de joindre B la tentative d'envoie s'arrête là (FAIL) Sinon A sonde son réseau local pour trouver B A utilise le protocole ARP (qui vise à trouver l'adresse MAC d'une IP donnée ; le protocole consiste à envoyer une trame avec une adresse MAC de diffusion (pour atteindre toutes les machines du domaine) et avec le contenu d'une requête ARP qui demande "who-has" IP_B Si B est physiquement connecté (on le sait en observant le schéma) et que son adresse IP est correctement configurée Alors B répond avec une trame ARP et communique donc son adresse MAC à A ; on boucle sur (cas1) Sinon Personne répond ; A n'a aucun moyen de joindre B la tentative d'envoie s'arrête là (FAIL) (attention A ne repart pas en 1. et ne va pas explorer (cas2) (cas2) Sinon Si A a une adresse IP de passerelle configurée (on dit aussi GATEWAY ou GW) ; cette adresse correspond à un routeur c-a-d une machine avec au moins deux interfaces c-a-d la connaissance d'au moins deux réseaux locaux et donc la possibilité de faire circuler un paquet de l'un vers l'autre. Alors on boucle en 1.1. avec l'adresse IP_GW à la place de B. dans le cas idéal le paquet est transmis à la GW qui reproduira à son tour le même comportement que A en débutant à 1. En fait il y a une légère différence, voir ci-dessous le cas où A est un routeur. Sinon A n'a aucun moyen de joindre B la tentative d'envoie s'arrête là (FAIL) Si A est un routeur, cela signifie q'il s'agit d'une machine avec au moins deux interfaces c-a-d la connaissance d'au moins deux réseaux locaux et par conséquence des adresses IP distinctes avec leur configuration propre (adresse IP et masque) sur chacun de ces réseaux. En tant que routeur A utilisera une table de routage (on ne dit pas comment elle est construite ou mise à jour ici), la table de routage a les colonnes suivantes AdrRéseau:MasqueSurCeRéseau:InterfaceDeSortie:IPPasserelle AdrRéseau:MasqueSurCeRéseau permet d'identifier la bonne interface vers laquelle dirigée (comme en 1. sauf que là c'est celle qui "match le mieux qui gagne") ; si le réseau n'est pas directement accessible (n'est pas un réseau direct) alors le paquet est transmis à l'attention de la Passerelle qui sera alors renseignée. (voir la correction de l'exercice 16 pour comprendre le mécanisme de routage ; pas besoin de rentrer dans les détails maintenant)