Reseaux - Cours 5 - Datagrammes IP_ARP_ICMP

  • Upload
    sadous

  • View
    233

  • Download
    0

Embed Size (px)

DESCRIPTION

HGJH FGHFTYTFYTFCVV V CXXX

Citation preview

  • 1/50

    Reseaux - Cours 5Datagrammes IP, ARP et ICMP

    Cyril Pain-Barre

    IUT Informatique Aix-en-Provence

    Semestre 1 - version du 13/11/2009

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 1/49

  • 2/50

    Datagrammes IP

    (RFC 791)

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 2/49

  • 3/50

    Datagramme IP sur Ethernet V2

    trame Ethernet v2 contenant un datagramme IP (EtherType en Hexa) :

    AdresseSource

    AdresseDestination 08 00 Datagramme IPPrambule CRC

    donnestype

    (de)multiplexage Ethernet v2 :

    donnes

    trame

    Ethernet V2

    ...IP

    le protocole destinataire des donnesest indiqu par le champ EtherType 0x0800

    ARP RARP

    0x80350x0806

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 3/49

  • 4/50

    Format du datagramme IP

    en-tete : nombre variable doctets (multiple de 4)

    donnees : nombre quelconque doctets (limite a` 65 315)

    30

    16 7 8 9

    20 1 2 3

    24 5 6 7 8 9

    31

    00 1 2 43 5 6 7 8 9

    10 1 2 3 4 5

    Donnes

    Adresse IP Destination

    Adresse IP Source

    Total de Contrle

    Dplacement

    Longueur TotaleTOSHLENVER

    Identification

    Time To Live Protocole

    Flags

    Bourrage

    taille

    var

    iabl

    e

    Options IP (ventuelles)

    taille

    var

    iabl

    epa

    rtie

    fixe

    (20 oc

    tets)

    en

    tte

    bits :

    65 535 octets max

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 4/49

  • 5/50

    Champ Version

    TOSVER HLEN Longueur Totale

    65 535 octets max

    DplacementFlags

    ProtocoleTime To Live

    Identification

    Total de Contrle

    Adresse IP Source

    Adresse IP Destination

    Options IP (ventuelles)Bourrage

    taille

    var

    iabl

    eta

    ille v

    aria

    ble

    parti

    e fix

    e (20

    octet

    s)en

    t

    te

    Donnes

    code sur 4 bits

    identifie la version du (format du) datagramme

    actuellement, la version est 4 (codee 0100 en binaire)

    dans le datagramme IPv6, ce champ est maintenu et vaut 6

    permet de sassurer que le datagramme sera correctement interprete

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 5/49

  • 6/50

    Champs Adresses

    TOSVER HLEN Longueur Totale

    65 535 octets max

    DplacementFlags

    ProtocoleTime To Live

    Identification

    Total de Contrle

    Options IP (ventuelles)Bourrage

    taille

    var

    iabl

    eta

    ille v

    aria

    ble

    parti

    e fix

    e (20

    octet

    s)en

    t

    te

    Donnes

    Adresse IP Source

    Adresse IP Destination

    adresse IP Source : (32 bits)identifie lhote a` lorigine du datagramme

    adresse IP Destination : (32 bits)identifie le destinataire final du datagramme

    IP Source IP Destination

    Ces adresses ne sont pas modifiees par les routeurs. Toutefois,en cas de NAT/NAPT (translation dadresse), la NATbox peut lesmodifier (voir second semestre).

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 6/49

  • 7/50

    Champ Longueur den-tete (HLEN)

    TOSVER HLEN Longueur Totale

    65 535 octets max

    DplacementFlags

    ProtocoleTime To Live

    Identification

    Total de Contrle

    Adresse IP Source

    Adresse IP Destination

    Options IP (ventuelles)Bourrage

    taille

    var

    iabl

    eta

    ille v

    aria

    ble

    parti

    e fix

    e (20

    octet

    s)en

    t

    te

    Donnes(internet) Header LENgth

    codee sur 4 bits

    indique le nombre de mots de 32 bits de len-tete (comprenant lesoptions) :

    en-tete de 20 a` 60 octets5 HLEN 15

    si HLEN > 5 alors il y a des options

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 7/49

  • 8/50

    Champ Longueur Totale

    TOSVER Longueur Totale

    DplacementFlags

    ProtocoleTime To Live

    Identification

    Total de Contrle

    Adresse IP Source

    Adresse IP Destination

    Options IP (ventuelles)Bourrage

    taille

    var

    iabl

    eta

    ille v

    aria

    ble

    parti

    e fix

    e (20

    octet

    s)

    Donnes

    en

    tte

    HLEN

    65 535 octets max

    codee sur 16 bits

    indique le nombre de total doctets du datagramme (en-tete + donnees)

    comprise entre 20 et 65 535

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 8/49

  • 9/50

    Champ Type Of Service (TOS)

    TOSVER HLEN Longueur Totale

    65 535 octets max

    DplacementFlags

    ProtocoleTime To Live

    Identification

    Total de Contrle

    Adresse IP Source

    Adresse IP Destination

    Options IP (ventuelles)Bourrage

    taille

    var

    iabl

    eta

    ille v

    aria

    ble

    parti

    e fix

    e (20

    octet

    s)en

    t

    te

    Donnes

    code sur 8 bits :0 1 2 3 4 5 6 7

    RTDPriorit 0 0

    inutiliss

    Priorite : de 0 a` 7distinction entre normal et controlerouteurs : infos trafic 6 et 7

    bits D, T et R : type dacheminement desire :D(elay) : delai dacheminement courtT(hroughput) : debit de transmission eleveR(eliability) : grande fiabilite

    le TOS constitue un souhait, souvent ignore

    routine

    priority

    immediate

    flash

    flash override

    critic

    internetwork control

    network control

    001

    000

    010

    011

    100

    101

    110

    111

    val2 significationPriorit

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 9/49

  • 10/50

    Champ Time To Live (TTL)

    TOSHLEN Longueur Totale

    65 535 octets max

    DplacementFlags

    Protocole

    Identification

    Total de Contrle

    Adresse IP Source

    Adresse IP Destination

    Options IP (ventuelles)Bourrage

    taille

    var

    iabl

    eta

    ille v

    aria

    ble

    parti

    e fix

    e (20

    octet

    s)en

    t

    te

    Donnes

    VER

    Time To Live

    code sur 8 bits

    indique par lemetteur pour limiter :

    la duree de vie du datagramme (en secondes)le nombre de routeurs traverses par le datagramme

    decremente par routeurs et stations traitant le datagramme :

    de 1 a` chaque traversee dun routeurdu temps passe en file dattente

    si atteint 0, le datagramme est detruit, et lemetteur est informe par unmessage ICMP

    evite quun datagramme ne circule indefiniment

    evite que des fragments ne soient gardes inutilement

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 10/49

  • 11/50

    Champ Protocole

    TOSHLEN Longueur Totale

    65 535 octets max

    DplacementFlagsIdentification

    Total de Contrle

    Adresse IP Source

    Adresse IP Destination

    Options IP (ventuelles)Bourrage

    taille

    var

    iabl

    eta

    ille v

    aria

    ble

    parti

    e fix

    e (20

    octet

    s)en

    t

    te

    Donnes

    VER

    Time To Live Protocole

    code sur 8 bits

    indique le protocole devant recevoir les donnees du datagramme

    les valeurs de ce champ sont gerees par lautorite centrale et accessiblessur le site www.iana.org

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 11/49

  • 12/50

    Champ Protocole

    TOSHLEN Longueur Totale

    65 535 octets max

    DplacementFlagsIdentification

    Total de Contrle

    Adresse IP Source

    Adresse IP Destination

    Options IP (ventuelles)Bourrage

    taille

    var

    iabl

    eta

    ille v

    aria

    ble

    parti

    e fix

    e (20

    octet

    s)en

    t

    te

    Donnes

    VER

    Time To Live Protocolequelques valeurs officielles :

    val10 protocole0 IP

    1 ICMP

    2 IGMP

    6 TCP

    17 UDP

    89 OSPF

    demultiplexage IP :

    donnes

    ...ICMP UDP TCP

    17 61

    IP

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 12/49

  • 13/50

    Champ Total de Controle den-tete (checksum)

    TOSHLEN Longueur Totale

    65 535 octets max

    DplacementFlagsIdentification

    Adresse IP Source

    Adresse IP Destination

    Options IP (ventuelles)Bourrage

    taille

    var

    iabl

    eta

    ille v

    aria

    ble

    parti

    e fix

    e (20

    octet

    s)en

    t

    te

    Donnes

    VER

    Time To Live Protocole Total de Contrle

    code sur 16 bits

    controle lintegrite de len-tete uniquement

    IP ne verifie pas si les donnees ont subi des erreurs detransmission

    calcule par lemetteur

    verifie lors dela reception (routeurs et destinataire) :

    stocker le checksumcalculer le checksumsi differents alors detruire le datagramme

    recalcule et modifie par les routeurs (car modifient au moins le TTL)

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 13/49

  • 14/50

    Champ Total de Controle den-tete : calcul

    TOSHLEN Longueur Totale

    65 535 octets max

    DplacementFlagsIdentification

    Adresse IP Source

    Adresse IP Destination

    Options IP (ventuelles)Bourrage

    taille

    var

    iabl

    eta

    ille v

    aria

    ble

    parti

    e fix

    e (20

    octet

    s)en

    t

    te

    Donnes

    VER

    Time To Live Protocole Total de Contrle

    TOSHLENVER

    Longueur Totale

    Identification

    DplacementFlags

    Time To Live Protocole

    Bourrage

    Options IP (ventuelles)

    val1ret1

    2

    1

    1

    2

    3

    4

    5

    mettre checksum 0

    calculer somme des motsde 16 bits de lentte

    ajouter ret1 val1

    ajouter ret2 val2

    checksum = complment 1 de val3

    val1

    val2ret2

    ret1

    +=

    3

    val2

    ret2

    val3

    checksum

    4

    5

    =

    +

    Source

    DestinationAdresse IP

    Adresse IP

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    16 bits

    ++++++++++++

    =

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 14/49

  • 15/50

    MTU et fragmentation

    TOSHLEN Longueur Totale

    65 535 octets max

    ProtocoleTime To Live Total de Contrle

    Adresse IP Source

    Adresse IP Destination

    Options IP (ventuelles)Bourrage

    taille

    var

    iabl

    eta

    ille v

    aria

    ble

    parti

    e fix

    e (20

    octet

    s)en

    t

    te

    Donnes

    VER

    Identification DplacementFlagsMaximum Transfer Unit (MTU) :

    taille max des donnees (charge utile)transportees sur un reseau physique

    Ethernet : 1 500 octetsToken Ring : 4 ou 16 KoX.25 : 128 octets recommandes (max 255)SMDS : 9 188 octetsFrame Relay : 1 600 octets

    . . . et donc des datagrammes

    IP fragmente tout datagramme plus grand que le MTU du reseau quidoit le transporter :

    MTU = 1500 MTU = 1000MTU = 4000

    chaque fragment est un datagramme achemine independamment(peut suivre une route differente des autres fragments) et peut etre a`son tour fragmente

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 15/49

  • 16/50

    Champs Fragmentation

    TOSHLEN Longueur Totale

    65 535 octets max

    ProtocoleTime To Live Total de Contrle

    Adresse IP Source

    Adresse IP Destination

    Options IP (ventuelles)Bourrage

    taille

    var

    iabl

    eta

    ille v

    aria

    ble

    parti

    e fix

    e (20

    octet

    s)en

    t

    te

    Donnes

    VER

    Identification DplacementFlags

    dplacementMD0identification

    16 bits 3 bits 13 bits

    flagstoujours 0

    identification : valeur identifiant le datagramme dorigine relativement a`ladresse IP Source

    bit D(ont Fragment) : le datagramme ne doit pas etre fragmente(detruit et message ICMP si impossible)

    bit M(ore) : a` 0 si ce datagramme est le dernier (ou seul) fragment

    deplacement (Offset) : indique la position du premier octet de donneesdans le datagramme dorigine. Cette position est deplacement 8. Vaut0 si pas de fragmentation

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 16/49

  • 17/50

    Reassemblage

    TOSHLEN Longueur Totale

    65 535 octets max

    ProtocoleTime To Live Total de Contrle

    Adresse IP Source

    Adresse IP Destination

    Options IP (ventuelles)Bourrage

    taille

    var

    iabl

    eta

    ille v

    aria

    ble

    parti

    e fix

    e (20

    octet

    s)en

    t

    te

    Donnes

    VER

    Identification DplacementFlags

    realise par le destinataire final :

    met en attente les fragments des datagrammes incompletsles reordonnedetruit tous les fragments dun datagramme si le TTL de lun deuxpasse a` 0 (et envoie un message ICMP a` lemetteur)

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 17/49

  • 18/50

    Resolution dadresse

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 18/49

  • 19/50

    Necessite de la resolution dadresse

    situation : une station/routeur S a un datagramme a` transmettre a` unestation/routeur D du meme reseau. D est ladresse IP de la destinationfinale du datagramme (remise directe) ou celle dun routeur obtenue parconsultation de la table de routage (remise indirecte)

    IP

    HteRseau

    IP

    HteRseaupaquet,trame,cellule...commutation/routage

    Datag. IP

    rsolutiondadresse

    (adresses IP)

    (adresses physiques)

    la transmission doit se faire en utilisant le service de la couchehote-reseau (reseau physique)

    la couche hote-reseau nutilise pas les adresses IP mais des adressesphysiques (adresses MAC)

    la resolution dadresse est le mecanisme permettant dobtenirladresse physique (de linterface/carte reseau) de la station possedantune certaine adresse IP

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 19/49

  • 20/50

    Methodes possibles pour la resolution dadresse

    resolution directe

    ladresse physique est determinee comme une fonction deladresse IP

    methode simple a` mettre en uvre si les adresses physiquessont configurables

    interrogation dun serveur

    un serveur est charge de collecter les adresses physiques et IPdes hotes du reseau

    les stations interrogent le serveur pour resoudre les adresses

    methode souvent utilisee lorsque le reseau ne permet pas ladiffusion

    mais la resolution nest plus possible si le serveur devientinjoignable. . .

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 20/49

  • 21/50

    Resolution dynamique par ARP

    Pour les reseaux permettant la diffusion, la methode privilegiee estARP (Address Resolution Protocol), definie dans la RFC 826.

    ARP a lavantage detre a` la fois dynamique et decentralisee :

    les changements dassociation adresse IP/adresse MAC sontautomatiquement et rapidement pris en compteaucun serveur nest necessaire et une panne dune station naaucun impact global

    ARP a ete originellement defini pour IP et Ethernet. Mais ilest plus general et peut etre utilise sur tout type de reseaupermettant la diffusion, pour le compte de differentsprotocoles reseau (dont IP)

    IP sur Ethernet utilise systematiquement ARP

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 21/49

  • 23/50

    Principe de la resolution par ARP

    194.199.116.39194.199.116.10

    194.199.116.115

    194.199.116.2

    194.199.116.22194.199.116.5

    rseau 194.199.116.0

    (permettant la diffusion)

    S

    D194.199.116.39

    194.199.116.10

    194.199.116.115

    194.199.116.2

    194.199.116.22194.199.116.5

    requte (broadcast) : qui est 194.199.116.2 ?

    1S

    D

    194.199.116.39194.199.116.10

    194.199.116.115

    194.199.116.2

    194.199.116.22194.199.116.5

    requte (broadcast) : qui est 194.199.116.2 ?

    2

    2 2

    22

    S

    D194.199.116.39

    194.199.116.10

    194.199.116.115

    194.199.116.2

    194.199.116.22194.199.116.5

    3

    rponse (unicast) : moi, voil mon adresse MAC

    S

    D

    1 S envoie en broadcast une requete ARP signifiant quilsouhaite obtenir ladresse physique correspondant a` D

    2 la requete est recue et traitee par toutes les stations du reseau

    3 seule la station dadresse D repond en envoyant en unicast a`S une reponse ARP contenant ladresse physique demandee

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 22/49

  • 24/50

    Format du datagramme ARP

    8 16 310bits :

    L. @phy L. @pro Opration (1 ou 2)

    ProtocoleType de rseau

    adresse physique source

    adresse physique destination

    adresse protocole source

    adresse protocole destination

    taille

    var

    iabl

    e

    la taille du datagramme ARP depend des protocoles en jeu

    la taille (en octets) des adresses physiques (comme Ethernet) estindiquee par le champ Longueur adresses physiques (L. @phy)la taille (en octets) des adresses protocole (comme IP) est indiquee par lechamp Longueur adresses protocole (L. @pro)

    les requetes et les reponses ont le meme format ; le champ Operationindique sil sagit dune requete (Operation vaut 1) ou dune reponse(Operation vaut 2)

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 23/49

  • 25/50

    Datagramme ARP : type de reseau et protocole

    Type de rseau Protocolebits : 0 8 16 31

    taille

    var

    iabl

    eL. @phy L. @pro Opration (1 ou 2)

    adresse protocole destination

    adresse physique destination

    adresse protocole source

    adresse physique source

    Type de reseau precise le reseau physique utilise et donc le typedadresse recherchee

    Protocole precise la couche reseau utilisee et donc le type dadresse a`partir duquel la resolution doit etre operee

    les valeurs que peuvent prendre ces champs sont definies par lIANA(www.iana.org) :

    Type de reseau vaut 0x0001 pour EthernetProtocole vaut 0x0800 pour IP

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 24/49

  • 26/50

    Datagramme ARP : adresses

    bits : 0 8 16 31

    L. @phy L. @pro Opration (1 ou 2)

    ProtocoleType de rseau

    adresse physique destination

    adresse protocole destination

    adresse protocole source

    adresse physique sourceta

    ille

    varia

    ble

    quil sagisse dune requete ou dune reponse :

    adresse physique source contient ladresse physique de lemetteur dudatagrammeadresse protocole source contient son adresse reseau

    adresse physique destination est inconnue pour une requete(00:00:00:00:00:00 pour Ethernet), et celle du destinataire pour unereponse

    adresse protocole destination contient ladresse reseau du destinataire(dans une requete, cest ladresse a` resoudre)

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 25/49

  • 27/50

    Requete ARP pour IP sur Ethernet V2

    adresses de lemetteur

    IP : 194.199.116.5ethernet : 08:00:05:0e:ab:51

    adresses de la cible

    IP : 194.199.116.2ethernet (recherchee) : 08:00:07:5c:10:0a

    Trame Ethernet V2 (en hexadecimal) :

    08 06prambule 08:00:05:0e:ab:51ff:ff:ff:ff:ff:ff

    destination typesource

    CRCDatagramme ARP (requte)donnes

    (broadcast)

    Requete ARP (en binaire) :

    0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1Ethernet (1)

    Type rseau : Protocole :IP (0x0800) 6

    L. @ phy : L. @ pro :4

    Opration :requte (1)

    1 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 10 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0 1 Ethernet source (08:00:05:0e:ab:51)

    IP source (194.199.116.5)

    IP destination (194.199.116.2)Ethernet destination (inconnue)00000000

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 26/49

  • 28/50

    Reponse ARP pour IP sur Ethernet v2

    emetteur de la reponse

    IP : 194.199.116.2ethernet : 08:00:07:5c:10:0a

    destinataire de la reponse

    IP : 194.199.116.5ethernet : 08:00:05:0e:ab:51

    Trame Ethernet V2 (en hexadecimal) :

    08 06prambule

    destination typesource

    CRC

    donnes

    Datagramme ARP (rponse)08:00:05:0e:ab:51 08:00:07:5c:10:0a(unicast)

    Reponse ARP (en hexadecimal) :

    0 8 0 0 0 7 5 c 1 0 0 ac 2 c 7 7 4 0 20 8 0 0 0 5 0 e a b 5 1c 2 c 7 7 4 0 5

    0 6 0 4 0 0 0 20 0 0 1 8 0 00Ethernet source (08:00:07:5c:10:0a)

    Ethernet destination (08:00:05:0e:ab:51)IP source (194.199.116.2)

    IP destination (194.199.116.5)

    Ethernet (1)Type rseau :

    Opration : rponse (2)

    IP (0x0800)Protocole : L. @ phy : 6

    L. @ pro : 4

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 27/49

  • 29/50

    Optimisations dARP

    cache (memoire temporaire) ARP obligatoire stocke sur les hotes :contient une liste dassociations adresse MAC, adresse IP evite demettre une nouvelle requete lorsque lassociation a deja` eteobtenueune association a une duree de vie limitee (environ 20 minutes)chaque fois quune association est confirmee, sa duree de vie est remise a`20 minles associations dont la duree de vie expire sont supprimees

    traitement de la requete :les requetes etant envoyees en broadcast, toutes les stations les traitentor elles incluent ladresse MAC et ladresse IP de lemetteuren recevant une requete, les stations mettent a` jour leur cache avec lesinfos sur lemetteur

    emission dune requete ARP fictive si changement de carte (et doncdadresse MAC) :

    en placant sa propre adresse IP comme celle rechercheepersonne ne repondra mais tout le monde aura mis a` jour son cache avecla nouvelle adresse MAC

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 28/49

  • 30/50

    ICMP :

    Internet Control and Error Message Protocol

    (RFC 792, 1122, 950, 1256)

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 29/49

  • 31/50

    Statut et role dICMP

    ICMP est un module obligatoire dIP

    qui assure deux fonctions principales :

    rendre compte dun proble`me reseautester laccessibilite dune machine

    les messages ICMP sont de deux natures :

    les messages derreurs : suite a` une erreur constatee sur un datagramme(qui entrane le plus souvent sa destruction)les messages dinterrogation/information : messages divers contribuantau (ou informant sur le) bon fonctionnement des equipements

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 30/49

  • 32/50

    Transport des messages ICMP

    Les messages ICMP sont encapsules dans des datagrammes IP (champProtocole vaut 1) :

    enqueueTrame(ou PDU hterseau)

    entteICMP donnes ICMPMessage ICMP

    donnes trameentte

    entteIPDatagramme IP donnes IP

    mais IP utilisant ICMP, les deux sesituent au meme niveau

    les protocoles de transport (TCP etUDP) utilisent aussi ICMP pour certaineserreurs (sur la station destinataire)

    Transport (TCP et UDP)

    IP & ICMP

    HteRseau

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 31/49

  • 33/50

    IP : un service non fiable

    les causes rendant impossible la remise dun datagramme peuvent etrenombreuses :

    panne de ligne de transmission, ou dun processeurdestinataire deconnecteTTL insuffisantcongestion des routeurs intermediaireschecksum erronemauvaises tables de routage. . .

    neanmoins, les erreurs ne sont pas toutes detectables

    lorsquune erreur (dans la remise dun datagramme) est detecteepar un routeur ou la station destinataire, un rapport derreur(message ICMP) est envoye a` lemetteur (dorigine) dudatagramme

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 32/49

  • 34/50

    Les messages derreur ICMP

    metteur destinataire

    erreur !!

    Internet

    message ICMP

    le message inclut au moins 28 octets (len-tete et les 64 premiers bits)du datagramme ayant cause lerreur, contenant les en-tetes desprotocoles de niveau superieur, ce qui permet notamment de determinerle processus emetteur pour linformer

    il nest envoye qua` lemetteur du datagramme qui, parfois, ny peut rien(exemple dune mauvaise table de routage dun routeur intermediaire)

    aucun message derreur nest envoye si le datagramme en causecontient un message ICMP

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 33/49

  • 35/50

    Messages ICMP

    destines au module ICMP du logiciel IP

    pas de precaution (securite, priorite) particulie`re pour acheminement :possibilite de perte, duplication, etc.

    tous les messages ICMP commencent par les 3 champs :

    Type(8 bits)

    Code(8 bits)

    Total de Contrle(16 bits)

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 34/49

  • 36/50

    Messages ICMP : Type et Code

    Code Total de ContrleType

    rponse une demande decho

    destination inacessible

    limitation de production la source

    redirection (changement de route)demande decho

    annonnce de routeur

    sollicitation de routeur

    TTL de datagramme expirproblme de paramte dun datagrammedemande dhorodatage

    demande de masque de sousrseau

    rponse une demande dhorodatage

    rponse une demande de masque de sousrseau18

    17

    14

    13

    12

    11

    9

    10

    8

    5

    4

    3

    0

    valeur (dcimal) signification

    Total de ContrleType Code

    le champ Type(code sur 8 bits)indique la nature dumessage :

    le champ Code (8 bits) est utilise pourpreciser le message

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 35/49

  • 37/50

    Messages ICMP : Total de Controle

    le champ Total de Controle (ou checksum) :

    est code sur 16 bitsporte sur (controle) la totalite du message ICMPcalcule de la meme manie`re que le checksum IP

    CodeType Total de Contrle

    suite du message ICMP

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 36/49

  • 38/50

    Test daccessibilite

    permet de sassurer quune station est joignable et en etat decommuniquer

    exploite par la commande ping

    echange de messages ECHO :

    Type (0 ou 8) Code (0) Total de Contrle

    Donnes optionnelles

    ...

    Numro de squence (16 bits)Identificateur (16 bits)

    demande decho (Type = 8)reponse a` une demande decho (Type = 0)

    le Code est toujours a` 0

    Identitificateur permet dassocier la reponse a` la demande

    Numero de Sequence incremente a` chaque demande

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 37/49

  • 39/50

    Exemple de ping (sous Linux)

    $ ping www.free.fr

    PING www.free.fr(212.27.48.10) 56(84) bytes of data.

    64 bytes from www.free.fr(212.27.48.10): icmp_seq=1 ttl=107 time=17.6 ms

    64 bytes from www.free.fr(212.27.48.10): icmp_seq=2 ttl=107 time=16.6 ms

    64 bytes from www.free.fr(212.27.48.10): icmp_seq=3 ttl=107 time=17.2 ms

    64 bytes from www.free.fr(212.27.48.10): icmp_seq=4 ttl=107 time=16.7 ms

    ---www.free.fr ping statistics---

    4 packets transmitted, 4 received, 0% packet loss, time 3012ms

    rttmin/avg/max/mdev= 16.619/17.094/17.662/0.441 ms

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 38/49

  • 40/50

    Compte rendu de destination inaccessible

    envoye a` lAdresse Source dun datagramme IP lorsquunestation/routeur se rend compte quil ne peut pas atteindre sadestination (ordinateur ou processus)

    messages avec Type = 3

    Type (3) Total de ContrleCode (0 12)

    Inutilis (32 bits 0)

    Entte et 64 premiers bits du datagramme IP

    au m

    oin

    s28

    oct

    ets

    le Code precise la nature du proble`me

    commes les autres messages derreur, contient le debut du datagrammeayant provoque lerreur

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 39/49

  • 41/50

    Codes de compte rendu de destination inaccessible

    Type (3) Total de ContrleCode (0 12)

    Inutilis (32 bits 0)

    Entte et 64 premiers bits du datagramme IP

    plusieurs codes ont ete definis :

    rseau de destination inconnu

    ordinateur de destination inconnu

    ordinateur source isol

    6

    7

    8

    5

    9 communication avec le rseau de destination interdite par ladministrateur rseau

    10 communication avec lordinateur destinataire interdite par ladministrateur rseau

    chec de routage la source

    rseau inacessible pour le service demand

    ordinateur inaccessible pour le service demand12

    11

    0

    ordinateur inaccessible

    rseau inaccessible

    protocole inaccessible

    port inacessible

    2

    3

    4

    1

    valeur(dcimal)

    fragmentation ncessaire mais bit Dont Fragment positionn

    signification

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 40/49

  • 42/50

    Message de controle de la congestion

    appele aussi message de limitation de production de la source(Source Quench)

    envoye par un routeur a` lemetteur dun datagramme detruit pour causede saturation (congestion)

    un message par datagramme detruit

    le message contient le debut du datagramme

    le recepteur doit alors reduire ses envois pour cette destination

    format (Type = 4, Code = 0) :

    Type (4) Total de ContrleCode (0)

    Inutilis (32 bits 0)

    Entte et 64 premiers bits du datagramme IP

    au m

    oin

    s28

    oct

    ets

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 41/49

  • 43/50

    Message de redirection

    appele aussi message de modification de la route

    envoye par un routeur a` lemetteur (source) dun datagramme, situesur le meme reseau, si le routeur nest pas le meilleur choix

    format (Type = 5) :

    Type (5) Total de ContrleCode (0 3)

    Adresse IP dun routeur

    Entte et 64 premiers bits du datagramme IP

    au m

    oin

    s28

    oct

    ets

    le Code precise pourquoi il faut changer de route :

    0 : changer de route pour atteindre le reseau1 : changer de route pour atteindre lordinateur2 : changer de route pour le type de service et le reseau3 : changer de route pour le type de service et lordinateur

    Adresse IP dun routeur est ladresse du routeur qui aurait du etre utilise

    lemetteur doit en tenir compte et modifier sa table de routageCyril Pain-Barre Datagrammes IP, ARP et ICMP 42/49

  • 44/50

    Message de duree de vie expiree

    envoye a` lemetteur (source) dun datagramme dans lun des deux cassuivants :

    le TTL a expire sur un routeur (Code = 0)le delai de reassemblage des fragments a expire sur lordinatairedestinataire (Code = 1)

    format (Type = 11) :

    Type (11) Total de ContrleCode (0 ou 1)

    Inutilis (32 bits 0)

    Entte et 64 premiers bits du datagramme IP

    au m

    oin

    s28

    oct

    ets

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 43/49

  • 45/50

    Message de proble`me de parame`tre

    envoye par un routeur ou lordinataire destinataire a` lemetteur (source)dun datagramme, lorsque celui-ci comporte une erreur dans un champ

    format (Type = 12) :

    Type (12) Total de ContrleCode (0 ou 1)

    Entte et 64 premiers bits du datagramme IP

    au m

    oin

    s28

    oct

    ets

    Inutilis (24 bits 0)Pointeur

    le Code precise sil faut tenir compte du champ Pointeur :

    0 : tenir compte du Pointeur1 : ignorer Pointeur (qui devrait etre a` 0). Dans ce cas, il sagit dunparame`tre manquant (comme une option qui aurait du etre presente)

    Pointeur, si utilise, indique le numero de loctet du datagramme recuqui comporte lerreur

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 44/49

  • 46/50

    Synchronisation horloges/Estimation temps de transit

    messages echanges entre 2 ordinateurs pour synchroniser leur horlogeou estimer le temps de transit

    format :

    Type (13 ou 14) Total de ContrleCode (0)

    Identificateur Numro de squence

    Horodatage de lmission

    Horodatage de la rception

    Horodatage de la transmission

    ou` Type indique la nature du message : 13 pour une demandedhorodatage, et 14 pour une reponse a` une demande dhorodatage

    le Code est toujours a` 0

    Identificateur et Numero de sequence sont utilises pour associer lesreponses aux demandes

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 45/49

  • 47/50

    Synchronisation horloges/Estimation temps de transit

    les 3 champs horodatage contiennent les dates, exprimees enmillisecondes ecoulees depuis le 1er janvier 1970 a` 0h00 :

    demission de la demande

    de reception de la demande

    denvoi de la reponse

    plusieurs echanges sont necessaires pour une synchronisation correcte

    Le protocole NTP (Network Time Protocol) a specifiquement etedeveloppe pour synchroniser son horloge avec des serveurs dereference (et des horloges atomiques).Sa version actuelle (version 3) est definie par la RFC 1305.

    Type (13 ou 14) Code (0) Total de Contrle

    Numro de squenceIdentificateur

    Horodatage de la rception

    Horodatage de la transmission

    Horodatage de lmission

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 46/49

  • 48/50

    Message dobtention du masque de sous-reseau

    permet a` une station de demander son masque de sous-reseau. Lademande est adressee (par ordre de preference) en unicast a` un routeur,en multicast 224.0.0.2 (All Routers) ou en broadcast 255.255.255.255

    un routeur du reseau repondra en unicast en indiquant le masque

    format : Type (17 ou 18) Total de ContrleCode (0)

    Identificateur Numro de squence

    Masque de sousrseau

    ou` :

    Type indique sil sagit dune demande (17) ou dune reponse (18)Code est a` 0Identificateur et Numero de sequence sont utilises pour associer lesreponses aux demandesMasque contient le masque dans une reponse (a` 0 dans une demande)

    Peu utilise car generalement des protocoles de configuration automatiquessont employes, tels que BOOTP et DHCP (etudies au second semestre).

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 47/49

  • 49/50

    Message dannonce dun routeur

    envoye par les routeurs toutes les 10 minutes et destine aux stations deleurs reseaux (224.0.0.1 ou a` defaut en broadcast)

    format (Type = 9, Code = 0) :

    Type (9) Total de ContrleCode (0)

    Adresse IP du routeur 1

    Dure de vieNombre dadresses Taille adresse

    Adresse IP du routeur 2

    Priorit du routeur 1

    Priorit du routeur 2

    ...selo

    n le

    nom

    bre

    dad

    ress

    es

    Nombre dadresses indique le nombre dadresses de routeursTaille adresse 4 donne la taille en octets des adressesDuree de vie indique le temps en secondes de validite des infos(generalement 30 min)a` chaque adresse est associee une priorite ; a` utiliser par ordre de prioritecroissante

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 48/49

  • 50/50

    Message de sollicitation dun routeur

    permet a` un ordinateur venant de demarrer de demander aux routeursdenvoyer immediatement un message dannonce de routeur

    ce message est envoye en multicast 224.0.0.2 (All Routers) ou, a`defaut, en broadcast

    les routeurs recevant ce message sont censes y repondre de`s quepossible

    format (Type = 10, Code = 0) :

    Type (10) Total de ContrleCode (0)

    Rserv (32 bits 0)

    Cyril Pain-Barre Datagrammes IP, ARP et ICMP 49/49

    Datagrammes IPARP : Address Resolution ProtocolICMP : Internet Control and Error Message Protocol