78
IP - ICMP - UDP - TCP Cours de R´ es ea ux Tuyˆ et Trˆ am DANG NGOC <[email protected]> Univ ersi e de Cergy-Pontoise 2012–2013 Tuyˆ et Trˆ am DANG NGOC  IP - ICMP - UDP - TCP  1 / 47

cours-A3.ip-protocole.pdf

Embed Size (px)

Citation preview

  • IP - ICMP - UDP - TCPCours de Reseaux

    Tuyet Tram DANG NGOC

    Universite de Cergy-Pontoise

    20122013

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 1 / 47

  • Plan

    1 Encapsulation

    2 Ethernet

    3 IPDatagramme IP

    4 ICMPICMP : Echo Request (8), Echo Reply (0)ICMP : Destination Unreachable (3)ICMP : Source Quench (4)ICMP Redirect (5)ICMP : TTL Exceeded (11)

    5 TCPSegment TCPPorts TCPConnexion TCP

    6 UDP

    7 References

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 2 / 47

  • Encapsulation

    1 Encapsulation

    2 Ethernet

    3 IP

    4 ICMP

    5 TCP

    6 UDP

    7 References

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 3 / 47

  • Encapsulation

    Encapsulation

    Ethernet II

    Destination: Enterasy 32:9e:0e (00:01:f4:32:9e:0e)

    Source: Intel 04:f2:4a (00:16:76:04:f2:4a)

    Type: IP (0x0800)

    Internet Protocol

    Version: 4

    Header length: 20 bytes

    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN:

    0x00)

    Total Length: 1067

    Identification: 0x50ba (20666)

    Flags: 0x04 (Dont Fragment)

    Fragment offset: 0

    Time to live: 64

    Protocol: TCP (0x06)

    Header checksum: 0x5f01

    Source: 172.22.136.18

    Destination: 209.85.129.147

    Transmission Control Protocol

    Source port: 42305 (42305)

    Destination port: http (80)

    Sequence number: 0

    Next sequence number: 1027

    Acknowledgement number: 0

    Header length: 20 bytes

    Flags: 0x0018 (PSH, ACK)

    Window size: 6633

    Checksum: 0xf394

    Hypertext Transfer Protocol

    GET /calendar/render?pli=1 HTTP/1.1

    ...

    00 01 f4 32 9e 0e 00 16 76 04 f2 4a 08 00 45 00 04 2b

    50 ba 40 00 40 06 5f 01 ac 16 88 12 d1 55

    81 93 a5 41 00 50 09 84 40 a9 a2 bd c2 84 50 18

    19 e9 f3 94 00 00 47 45 54 20 2f 63 61 6c 65 6e

    64 61 72 2f 72 65 6e 64 65 72 3f 70 6c 69 3d 31

    20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a

    20 77 77 77 2e 67 6f 6f 67 6c 65 2e 63 6f 6d 0d

    ...

    EnteteIP

    EnteteEthernet

    Datagramme EthernetDatagramme IP

    EnteteTCP

    Donnes ApplicationSegment TCP

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 4 / 47

  • Ethernet

    1 Encapsulation

    2 Ethernet

    3 IP

    4 ICMP

    5 TCP

    6 UDP

    7 References

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 5 / 47

  • Ethernet

    Datagramme Ethernet

    0 8 16 24 31

    . . .

    (46 1500 bytes)

    ADRESSE ETHERNET DESTINATION

    ADRESSE ETHERNET SOURCE

    DATATYPE

    FCS/CRC Checksum

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 6 / 47

  • IP

    1 Encapsulation

    2 Ethernet

    3 IPDatagramme IP

    4 ICMP

    5 TCP

    6 UDP

    7 References

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 7 / 47

  • IP

    Caracteristique de IP

    Pas de connexion : dialogue de machine a` machine

    Non fiable : fiabilite assuree par les protocoles superieurs

    Le protocole IP est simple : sa simplicite est la clef de sa robustesse

    Datagramme IP : limite = 65535 octets

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 8 / 47

  • IP Datagramme IP

    Datagramme IP

    40 8 16 24 31VERSION HLEN SERVICETYPE TOTAL LENGTH

    IDENTIFICATION FLAGS FRAGMENT OFFSETTIME TO LIVE PROTOCOL HEADER CHECKSUM

    SOURCE IP ADDRESS

    IP OPTIONS PADDINGDATA

    . . .

    DESTINATION IP ADDRESS

    Note : sil ny a pas doptions IP, les donnees commencent directementapre`s ladresse IP de destination.De ce fait, len-tete IP, nest pas de taille fixe, elle peut varier en fonctiondes options (ou de son absence).En-tete entre 20 et 60 octets.

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 9 / 47

  • IP Datagramme IP

    Datagramme IP

    dentete

    2416840 31Version Type de service Longueur totale

    Identification Drapeau Dcalage fragmentDure de vie Protocole Somme de controle dentete

    Adresse IP Source

    Options IP RemplissageDonnes

    . . .

    Adresse IP destination

    Longueur

    Note : sil ny a pas doptions IP, les donnees commencent directementapre`s ladresse IP de destination.De ce fait, len-tete IP, nest pas de taille fixe, elle peut varier en fonctiondes options (ou de son absence).En-tete entre 20 et 60 octets.

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 9 / 47

  • IP Datagramme IP

    Datagramme IP

    Version (4bits) : version du protocole IP utilise (IPv4 = 0100 ).

    Longueur den-tete (4bits) : Nombre de mots de 32 bits contenant len-tete (> 5)

    Type de service (8 bits) : comment le paquet doit etre traite (priorite et indicateur de debit, delai et fiabilite). Rarementutilise.

    Longueur totale (16bits) : taille totale du datagramme en octets

    Identification (16bits), Drapeau (4bits) et Decalage (12bits) : Pour la fragmentation

    Duree de vie ou TTL (8bits) : nombre maximal de routeurs traversables. En general fixe a` 64.

    Protocole (8bits) : quel protocole est encapsule dans le datagramme (TCP, UDP, ICMP, IGMP)

    Somme de controle (16bits) : controler lintegrite des donnees

    Adresse IP source (32bits) : ladresse IP de lexpediteur

    Adresse IP destination (32bits) : ladresse IP du destinataire

    Options IP : liste doption. Une option fait en general 4 octets (1 octet de type, 1 octet de longueur doption et deuxoctets pour les valeurs de loption). Il peut y avoir de 0 a` 10 options dans un datagramme IP.

    Remplissage : pour que les bits doptions soient un multiple de 32 bits

    Donnees : les donnees transportees par ce datagramme IP (au format repondant au protocole specifie avant)

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 10 / 47

  • IP Datagramme IP

    Fragmentation MTU

    Reseau sous-jacent : limite souvent inferieure

    MTU : Maximum Transfert Unit

    Passage par des reseaux de MTU inferieur

    fragmentation des datagrammes

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 11 / 47

  • IP Datagramme IP

    Fragmentation

    Entete datagramme(1er fragment) 600 bits de donnes

    Entete datagramme(2me fragment) 600 bits de donnes

    Entete datagramme(3me fragment) de donnes

    200 bits

    Fragmentation (MTU = 600)

    Drapeau (encore ?) = 1Identification = 42

    Dcalage = 0

    Drapeau (encore ?) = 1Dcalage = 600

    Identification = 42

    Drapeau (encore ?) = 0Identification = 42

    Dcalage = 1200

    Datagramme IP transmettre

    Entete datagramme1400 bits de donnes

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 12 / 47

  • IP Datagramme IP

    Time-to-Live (TTL)

    Il peut arriver des proble`mesreseau

    Exemple :

    A route C via BB route C via A (routeur Bmal configure)

    boucle de routage, les paquetscirculent sans fin (paquetsfantomes)

    Solution : Duree de vie(Time-To-Live).

    Compteur decremente a`chaque routeur.Le paquet est detruit lorsqueTTL=0

    A

    B

    C

    Je veux envoyerun paquet D

    Pour aller D,il faut passer par C

    D

    Pour aller D,il faut passer par B

    Pour aller C,il faut passer par B

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 13 / 47

  • IP Datagramme IP

    Time-to-Live (TTL)

    Il peut arriver des proble`mesreseau

    Exemple :

    A route C via BB route C via A (routeur Bmal configure)

    boucle de routage, les paquetscirculent sans fin (paquetsfantomes)

    Solution : Duree de vie(Time-To-Live).

    Compteur decremente a`chaque routeur.Le paquet est detruit lorsqueTTL=0

    A

    B

    C

    Je veux envoyerun paquet D

    Pour aller D,il faut passer par C

    D

    Pour aller D,il faut passer par B

    Pour aller C,il faut passer par B

    TTL=6

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 13 / 47

  • IP Datagramme IP

    Time-to-Live (TTL)

    Il peut arriver des proble`mesreseau

    Exemple :

    A route C via BB route C via A (routeur Bmal configure)

    boucle de routage, les paquetscirculent sans fin (paquetsfantomes)

    Solution : Duree de vie(Time-To-Live).

    Compteur decremente a`chaque routeur.Le paquet est detruit lorsqueTTL=0

    A

    B

    C

    Je veux envoyerun paquet D

    Pour aller D,il faut passer par C

    D

    Pour aller D,il faut passer par B

    Pour aller C,il faut passer par B

    TTL=5

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 13 / 47

  • IP Datagramme IP

    Time-to-Live (TTL)

    Il peut arriver des proble`mesreseau

    Exemple :

    A route C via BB route C via A (routeur Bmal configure)

    boucle de routage, les paquetscirculent sans fin (paquetsfantomes)

    Solution : Duree de vie(Time-To-Live).

    Compteur decremente a`chaque routeur.Le paquet est detruit lorsqueTTL=0

    A

    B

    C

    Je veux envoyerun paquet D

    Pour aller D,il faut passer par C

    D

    Pour aller D,il faut passer par B

    Pour aller C,il faut passer par B

    TTL=4

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 13 / 47

  • IP Datagramme IP

    Time-to-Live (TTL)

    Il peut arriver des proble`mesreseau

    Exemple :

    A route C via BB route C via A (routeur Bmal configure)

    boucle de routage, les paquetscirculent sans fin (paquetsfantomes)

    Solution : Duree de vie(Time-To-Live).

    Compteur decremente a`chaque routeur.Le paquet est detruit lorsqueTTL=0

    A

    B

    C

    Je veux envoyerun paquet D

    Pour aller D,il faut passer par C

    D

    Pour aller D,il faut passer par B

    Pour aller C,il faut passer par B

    TTL=3

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 13 / 47

  • IP Datagramme IP

    Time-to-Live (TTL)

    Il peut arriver des proble`mesreseau

    Exemple :

    A route C via BB route C via A (routeur Bmal configure)

    boucle de routage, les paquetscirculent sans fin (paquetsfantomes)

    Solution : Duree de vie(Time-To-Live).

    Compteur decremente a`chaque routeur.Le paquet est detruit lorsqueTTL=0

    A

    B

    C

    Je veux envoyerun paquet D

    Pour aller D,il faut passer par C

    D

    Pour aller D,il faut passer par B

    Pour aller C,il faut passer par B

    TTL=2

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 13 / 47

  • IP Datagramme IP

    Time-to-Live (TTL)

    Il peut arriver des proble`mesreseau

    Exemple :

    A route C via BB route C via A (routeur Bmal configure)

    boucle de routage, les paquetscirculent sans fin (paquetsfantomes)

    Solution : Duree de vie(Time-To-Live).

    Compteur decremente a`chaque routeur.Le paquet est detruit lorsqueTTL=0

    A

    B

    C

    Je veux envoyerun paquet D

    Pour aller D,il faut passer par C

    D

    Pour aller D,il faut passer par B

    Pour aller C,il faut passer par B

    TTL=1

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 13 / 47

  • IP Datagramme IP

    Time-to-Live (TTL)

    Il peut arriver des proble`mesreseau

    Exemple :

    A route C via BB route C via A (routeur Bmal configure)

    boucle de routage, les paquetscirculent sans fin (paquetsfantomes)

    Solution : Duree de vie(Time-To-Live).

    Compteur decremente a`chaque routeur.Le paquet est detruit lorsqueTTL=0

    A

    B

    C

    Je veux envoyerun paquet D

    Pour aller D,il faut passer par C

    D

    Pour aller D,il faut passer par B

    Pour aller C,il faut passer par B

    TTL=0

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 13 / 47

  • IP Datagramme IP

    Time-to-Live (TTL)

    Il peut arriver des proble`mesreseau

    Exemple :

    A route C via BB route C via A (routeur Bmal configure)

    boucle de routage, les paquetscirculent sans fin (paquetsfantomes)

    Solution : Duree de vie(Time-To-Live).

    Compteur decremente a`chaque routeur.Le paquet est detruit lorsqueTTL=0

    A

    B

    C

    Je veux envoyerun paquet D

    Pour aller D,il faut passer par C

    D

    Pour aller D,il faut passer par B

    Pour aller C,il faut passer par B

    TTL=0

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 13 / 47

  • ICMP

    1 Encapsulation

    2 Ethernet

    3 IP

    4 ICMPICMP : Echo Request (8), Echo Reply (0)ICMP : Destination Unreachable (3)ICMP : Source Quench (4)ICMP Redirect (5)ICMP : TTL Exceeded (11)

    5 TCP

    6 UDP

    7 ReferencesTuyet Tram DANG NGOC IP - ICMP - UDP - TCP 14 / 47

  • ICMP

    Caracteristique dICMP

    Protocole encapsule dans des datagrammes IP

    Genere par la destination ou un routeur intermediaire

    indiquent une condition (derreur) a` lemetteur

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 15 / 47

  • ICMP

    Message ICMP

    . . .

    0 4 8 16 24 31TYPE CODE CHECKSUM

    HEADER OF ORIGINAL MESSAGEDATA

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 16 / 47

  • ICMP

    Message ICMP

    . . .

    0 4 8 16 24 31Type Code Somme de controle

    Entete IP + 64 premiers bits du datagramme IP ayant provoqu lerreur

    Donnes

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 16 / 47

  • ICMP

    Type ICMP

    Type Signification

    0 Echo reply

    3 Destination Unreachable

    4 Source Quench

    5 Redirect

    8 Echo request

    11 TTL exceeded

    12 Parameter Problem

    13 Timestamp request

    14 Timestamp reply

    17 Address Mask Request

    18 Address Mask Reply

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 17 / 47

  • ICMP ICMP : Echo Request (8), Echo Reply (0)

    ICMP : Echo Request (8), Echo Reply (0)

    Test de laccessibilite dune machine distante :

    les tables de routage sont correctes

    toutes les passerelles intermediaires fonctionnent

    IP sur la machine distante fonctionne

    ICMP sur la machine distante fonctionne

    InternetICMP RequestICMP Reply

    A B

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 18 / 47

  • ICMP ICMP : Destination Unreachable (3)

    ICMP : Destination Unreachable (3)

    Envoye lorsquun routeur ne peut router un datagramme (ex. pas dentreedans la table de routage)Plus de detail dans le champ code.

    code signification

    0 Network unreachable error.1 Host unreachable error.2 Protocol unreachable error3 Port unreachable error5 Source route failed error.6 Destination network unknown error.7 Destination host unknown error.

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 19 / 47

  • ICMP ICMP : Source Quench (4)

    ICMP : Source Quench (4)

    Definition

    Controle de congestion : lorsquun routeur est congestionne (trop dedatagrammes arrivent), il envoie des ICMP Source Quench a` lemetteurpour reduire le debit.Lemetteur diminuera alors le debit progressivement jusqua` ne plusrecevoir dICMP Source Quench

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 20 / 47

  • ICMP ICMP Redirect (5)

    ICMP Redirect (5)

    Redirection des datagrammes

    ex. A envoie un datagrammeadresse a` D vers B

    B envoie un ICMP Redirect a` Apour lui indiquer de changer satable de routage

    B envoie un datagrammeadresse a` D vers C

    Pour aller versrseau 3rseau 1

    Passer parBB

    Pour aller

    rseau 3 C

    Passerparvers

    A

    C

    D E

    rseau 1

    rseau 2

    rseau 3

    B

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 21 / 47

  • ICMP ICMP Redirect (5)

    ICMP Redirect (5)

    Redirection des datagrammes

    ex. A envoie un datagrammeadresse a` D vers B

    B envoie un ICMP Redirect a` Apour lui indiquer de changer satable de routage

    B envoie un datagrammeadresse a` D vers C

    Pour aller versrseau 3rseau 1

    Passer parBB

    Pour aller

    rseau 3 C

    Passerparvers

    A

    C

    D E

    rseau 1

    rseau 2

    rseau 3

    Bsrc = Adst = Ddonnes

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 21 / 47

  • ICMP ICMP Redirect (5)

    ICMP Redirect (5)

    Redirection des datagrammes

    ex. A envoie un datagrammeadresse a` D vers B

    B envoie un ICMP Redirect a` Apour lui indiquer de changer satable de routage

    B envoie un datagrammeadresse a` D vers C

    Pour aller versrseau 3rseau 1

    Passer parBB

    Pour aller

    rseau 3 C

    Passerparvers

    ICMP RedirectPour aller vers D, passer par C

    A

    C

    D E

    rseau 1

    rseau 2

    rseau 3

    B

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 21 / 47

  • ICMP ICMP Redirect (5)

    ICMP Redirect (5)

    Redirection des datagrammes

    ex. A envoie un datagrammeadresse a` D vers B

    B envoie un ICMP Redirect a` Apour lui indiquer de changer satable de routage

    B envoie un datagrammeadresse a` D vers C

    Pour aller versrseau 3rseau 1

    Passer parBB

    Pour aller

    rseau 3 C

    Passerparvers

    ICMP RedirectPour aller vers D, passer par C

    A

    C

    D E

    rseau 1

    rseau 2

    rseau 3

    B

    C

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 21 / 47

  • ICMP ICMP Redirect (5)

    ICMP Redirect (5)

    Redirection des datagrammes

    ex. A envoie un datagrammeadresse a` D vers B

    B envoie un ICMP Redirect a` Apour lui indiquer de changer satable de routage

    B envoie un datagrammeadresse a` D vers C

    Pour aller versrseau 3rseau 1

    Passer parCB

    Pour aller

    rseau 3 C

    Passerparvers

    A

    C

    D E

    rseau 1

    rseau 2

    rseau 3

    Bsrc = Adst = Ddonnes

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 21 / 47

  • ICMP ICMP : TTL Exceeded (11)

    ICMP : TTL Exceeded (11)

    Quand TTL = 0 le message ICMP TTL Exceeded est envoye a` la sourceAstuce utilisee par traceroute

    A B

    R1

    R2

    R3

    R4

    R5

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 22 / 47

  • ICMP ICMP : TTL Exceeded (11)

    ICMP : TTL Exceeded (11)

    Quand TTL = 0 le message ICMP TTL Exceeded est envoye a` la sourceAstuce utilisee par traceroute

    src=A dst= B UDP port XTTL=1

    src= dst=A ICMP TTL_EXCEEDED

    A B

    R1

    R2

    R3

    R4

    R5

    R1

    R1

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 22 / 47

  • ICMP ICMP : TTL Exceeded (11)

    ICMP : TTL Exceeded (11)

    Quand TTL = 0 le message ICMP TTL Exceeded est envoye a` la sourceAstuce utilisee par traceroute

    src=A dst= B UDP port XTTL=2

    A B

    R1

    R2

    R3

    R4

    R5

    ICMP TTL_EXCEEDEDsrc= dst=AR2

    R1R2

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 22 / 47

  • ICMP ICMP : TTL Exceeded (11)

    ICMP : TTL Exceeded (11)

    Quand TTL = 0 le message ICMP TTL Exceeded est envoye a` la sourceAstuce utilisee par traceroute

    src=A dst= B UDP port XTTL=3

    A B

    R1

    R2

    R3

    R4

    R5

    ICMP TTL_EXCEEDEDsrc= dst=AR3

    R1R2R3

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 22 / 47

  • ICMP ICMP : TTL Exceeded (11)

    ICMP : TTL Exceeded (11)

    Quand TTL = 0 le message ICMP TTL Exceeded est envoye a` la sourceAstuce utilisee par traceroute

    src=A dst= B UDP port XTTL=4

    A B

    R1

    R2

    R3

    R4

    R5

    ICMP TTL_EXCEEDEDsrc= dst=AR4

    R1R2R3R4

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 22 / 47

  • ICMP ICMP : TTL Exceeded (11)

    ICMP : TTL Exceeded (11)

    Quand TTL = 0 le message ICMP TTL Exceeded est envoye a` la sourceAstuce utilisee par traceroute

    src=A dst= B UDP port XTTL=5

    A B

    R1

    R2

    R3

    R4

    R5

    ICMP TTL_EXCEEDEDsrc= dst=AR5

    R1R2R3R4R5

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 22 / 47

  • ICMP ICMP : TTL Exceeded (11)

    ICMP : TTL Exceeded (11)

    Quand TTL = 0 le message ICMP TTL Exceeded est envoye a` la sourceAstuce utilisee par traceroute

    src=A dst= B UDP port XTTL=6

    A B

    R1

    R2

    R3

    R4

    R5

    src= dst=AB ICMP PORT UNREACHABLE

    R1R2R3R4R5B

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 22 / 47

  • TCP

    1 Encapsulation

    2 Ethernet

    3 IP

    4 ICMP

    5 TCPSegment TCPPorts TCPConnexion TCP

    6 UDP

    7 References

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 23 / 47

  • TCP

    Quest ce que TCP ?

    TCP est un protocole base sur IP qui :

    assure une connexion

    utilise la notion de ports pour faire communiquer des applications surdes machines

    controle les erreurs pour assurer une transmission fiable.

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 24 / 47

  • TCP

    Caracteristiques de TCP

    Transport fiable

    Circuit virtuel

    Transfert bufferise

    Flux dinformation non-structure

    Full-Duplex

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 25 / 47

  • TCP Segment TCP

    Segment TCP

    241610840 31

    . . .

    DATA

    SEQUENCE NUMBERACKNOWLEDGEMENT NUMBER

    WINDOWURGENT POINTERCHECKSUM

    OPTIONS PADDING

    HLEN RESERVED CODE

    TCP SOURCE PORT TCP DESTINATION PORT

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 26 / 47

  • TCP Segment TCP

    Segment TCP

    1610840 3124

    . . .

    Donnes

    Numro dacquittement

    Taille de la fenetre

    Pointeur urgentSomme de controleRemplissage

    Rserv

    Port source TCP Port destination TCPNumro de squence

    Code

    Options

    Longueurentete

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 26 / 47

  • TCP Ports TCP

    Ports

    Une connexion TCP est identifiee par :

    ladresse IP et le port du programme source

    ladresse IP et le port du programme destination

    25

    80

    21

    Web

    Mail

    FTP

    IP1:9862 > IPS1:80

    IP2:8172 > IPS1:25

    IP3:7154 > IPS2:80

    IP3:7165 > IPS2:80

    IP1

    IP2

    IP3

    IPS1

    IP1:5432 > IPS1:25

    IP3:3412 > IPS1:80

    IP1:5432 > IPS1:25IP1:9862 > IPS1:80

    IP2:8172 > IPS1:25IP3:3412 > IPS1:80

    IP3:7165 > IPS2:80IP3:7154 > IPS2:80

    IP3:7154 > IPS2:80IP3:7165 > IPS2:80

    IP3:7165 > IPS2:80

    IP2:8172 > IPS1:25IP1:9862 > IPS1:80

    IP1:5432 > IPS1:25IP2:8172 > IPS1:25

    IP3:7154 > IPS2:80

    Web80

    IPS2

    5432

    9862

    8172

    34127165

    7154

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 27 / 47

  • TCP Ports TCP

    Ports

    Une connexion TCP est identifiee par :

    ladresse IP et le port du programme source

    ladresse IP et le port du programme destination

    25

    80

    21

    Web

    Mail

    FTP

    IP1

    IP2

    IP3

    IPS1

    Web80

    IPS2

    5432

    9862

    8172

    34127165

    7154

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 27 / 47

  • TCP Ports TCP

    Ports bien connus

    Port Nom Signification

    21 FTP Transfert de fichiers

    23 telnet Connexion a` distance

    25 SMTP Courrier electronique

    53 domain Serveur de noms

    79 finger Finger

    80 HTTP pages web

    513 login rlogin

    515 printer Impression deportee

    6000 X11 XWindow Version 11

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 28 / 47

  • TCP Connexion TCP

    Etablissement de connexion

    Ouverture passive : attendre etaccepter les connexions(serveur)

    Ouverture active : contacterlapplication distante et syconnecter (client)

    Port A Port B

    SYN (seq = x)

    ACK ( seq = y + 1)

    SYN ( seq = y) ; ACK (seq = x + 1)

    Client Serveur

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 29 / 47

  • TCP Connexion TCP

    Acquittement

    Source DestinationPort A Port B

    Emission du message Mi

    Rception du message MiEmission de lacquittement Ai

    Rception de lacquittement Ai

    On arme le temporisateur

    OK, on continue

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 30 / 47

  • TCP Connexion TCP

    Acquittement

    Source DestinationPort A Port B

    Emission du message MiOn arme le temporisateur

    Le temps est coul, on remet MiEmission du message Mi

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 30 / 47

  • TCP Connexion TCP

    Acquittement

    Source DestinationPort A Port B

    Emission du message Mi

    Rception du message MiEmission de lacquittement Ai

    On arme le temporisateur

    Le temps est coul, on remet MiEmission du message Mi

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 30 / 47

  • TCP Connexion TCP

    Gestion des acquittements

    Pour tout segment emis, TCP sattend a` recevoir un acquittement.Sil nest pas acquitte au bout dun certain temps, le segment estconsidere comme perdu et est retransmis.

    Champ SEQ : numero de sequence du premier octet du segment

    Champ ACK : le prochain numero de sequence attendu parlemetteur de lacquittement.

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 31 / 47

  • TCP Connexion TCP

    Ack=1001

    Seq=1

    Seq=1001

    Ack=2001

    Seq=2001

    1000 octets

    Seq=1 Seq=1001 Seq=2001

    1000 octets1000 octets

    Seq=1 Seq=1001 Seq=2001

    1000 octets 1000 octets 1000 octets

    Envoi de 1000 octets contenu dans le segment TCP

    Envoi de 1000 octets contenu dans le segment TCP

    Source Destination

    entete entete entete

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 32 / 47

  • TCP Connexion TCP

    Fenetre glissante

    Fiabilite : lorsque A envoie unpaquet a` B, il suffit que Aattende laccuse de receptionavant denvoyer le paquetsuivant.

    Proble`me : mecanisme trop lent(entre 100ms et 500 ms pourtraverser latlantique)

    Solution : Sliding Windows(Fenetre mobile)

    Client Serveur

    Champ fenetre : quantite de donnees que lemetteur du segment estcapable de recevoir.

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 33 / 47

  • TCP Connexion TCP

    Fenetre glissante

    Exemple : fenetre taille 5

    A envoie les paquets 1 a` 5

    Quand A recoit laccuse dereception du paquet 1, il peutenvoyer le paquet 6

    Client Serveur

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 34 / 47

  • TCP Connexion TCP

    Fenetre glissante

    Exemple : fenetre taille 5

    A envoie les paquets 1 a` 5

    Quand A recoit laccuse dereception du paquet 1, il peutenvoyer le paquet 6

    Client Serveur

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 34 / 47

  • TCP Connexion TCP

    Fenetre glissante

    Exemple : fenetre taille 5

    A envoie les paquets 1 a` 5

    Quand A recoit laccuse dereception du paquet 1, il peutenvoyer le paquet 6

    Client Serveur

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 34 / 47

  • TCP Connexion TCP

    Fenetre glissante

    Exemple : fenetre taille 5

    A envoie les paquets 1 a` 5

    Quand A recoit laccuse dereception du paquet 1, il peutenvoyer le paquet 6

    Client Serveur

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 34 / 47

  • TCP Connexion TCP

    Fenetre glissante et acquittement

    Seq = 1

    Seq = 101

    Seq = 201

    Seq = 301

    Seq = 201

    Seq = 301

    Ack = 101

    Seq = 101

    Ack = 401

    Seq = 1

    Seq = 101

    Seq = 201

    Seq = 301

    Seq = 201

    Seq = 401

    Seq = 401

    Ack = 101

    Mise en mmoire de 301

    Mise en mmoire de 201

    Attente de 101

    Attente (fenetre =300)

    Remission de 101

    Buffer

    SourceFenetre=300Segment=100

    On reoit le 101 manquant

    On reoit 1

    On reoit 401

    Tout a t acquitt jusqu 400

    Destination

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 35 / 47

  • TCP Connexion TCP

    Donnees urgentes

    Proble`me : necessite de donnees urgentes (signaux, interruptions,conditions derreur, etc.).Solution : out of band dataImplementation :

    flag URG : indique des donnees urgentes

    urgent pointer : ou` sont les donnees

    Lutilisateur est prevenu par un mecanisme dependant du syste`medexploitation (signaux sous Unix).

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 36 / 47

  • TCP Connexion TCP

    Fermeture de connexion

    Port A Port B

    FIN (seq = x)

    Client Serveur

    ACK (seq = x + 1)

    ACK ( seq = y + 1)

    FIN (seq = y) ; ACK (seq = x + 1)fermeture

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 37 / 47

  • TCP Connexion TCP

    Exemple TCP : SMTP

    Client ServeurPort BPort A

    Fermeture de la connexion

    Ouverture de la connexion

    250 [193.51.25.9] Hello [194.167.235.222] , pleased to meet youMAIL FROM: [email protected]

    HELO [194.167.235.222]

    250 2.1.0 [email protected]... Sender OKRCPT TO: [email protected]

    250 2.1.5 [email protected]... Recipient OKDATA

    354 Enter mail, end with "." on a line by itself

    Bonjour,\n Comment ca va ?\n.\n

    QUIT250 2.0.0 iAUMAkF16994 Message accepted for delivery

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 38 / 47

  • TCP Connexion TCP

    Exemple TCP : SMTP

    Client ServeurPort BPort A

    ACK (seq = x + 1)

    SYN (seq = y) ; ACK (seq = x + 1)

    FIN (seq = y) ; ACK (seq = x + 1)ACK (seq = y + 1)

    FIN (seq = x)

    ACK (seq = y + 1)SYN (seq = x)

    220 [193.51.25.9] ESMTP Sendmail 8.11.4

    250 [193.51.25.9] Hello [194.167.235.222] , pleased to meet youMAIL FROM: [email protected]

    HELO [194.167.235.222]

    250 2.1.0 [email protected]... Sender OKRCPT TO: [email protected]

    250 2.1.5 [email protected]... Recipient OKDATA

    354 Enter mail, end with "." on a line by itself

    Bonjour,\n Comment ca va ?\n.\n

    QUIT250 2.0.0 iAUMAkF16994 Message accepted for delivery

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 38 / 47

  • TCP Connexion TCP

    Exemple TCP : SMTP

    Client ServeurPort 25Port A

    ACK (seq = x + 1)

    SYN (seq = y) ; ACK (seq = x + 1)

    FIN (seq = y) ; ACK (seq = x + 1)ACK (seq = y + 1)

    FIN (seq = x)

    ACK (seq = y + 1)SYN (seq = x)

    DATA

    250 2.1.5 [email protected]... Recipient OK

    , pleased to meet you

    HELO [194.167.235.222]

    MAIL FROM: [email protected]

    RCPT TO: [email protected]

    QUIT

    Bonjour,\n Comment ca va ?\n.\n

    250 2.0.0 iAUMAkF16994 Message

    354 Enter mail, end with "." on a line by

    250 2.1.0 [email protected]... Sender OK

    250 [193.51.25.9] Hello [194.167.235.222]

    220 [193.51.25.9] ESMTP Sendmail 8.11.4

    accepted for delivery

    itself

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 38 / 47

  • TCP Connexion TCP

    Exemple TCP : SMTP

    Client ServeurPort 25Port A

    ACK (seq = x + 1)

    ACK

    ACKACK

    ACK

    ACKACK

    ACK

    SYN (seq = y) ; ACK (seq = x + 1)

    FIN (seq = y) ; ACK (seq = x + 1)ACK (seq = y + 1)

    FIN (seq = x)

    ACK

    ACK

    ACK

    ACK

    ACK

    ACK

    ACK (seq = y + 1)SYN (seq = x)

    DATA

    250 2.1.5 [email protected]... Recipient OK

    , pleased to meet you

    HELO [194.167.235.222]

    MAIL FROM: [email protected]

    RCPT TO: [email protected]

    QUIT

    Bonjour,\n Comment ca va ?\n.\n

    250 2.0.0 iAUMAkF16994 Message

    354 Enter mail, end with "." on a line by

    250 2.1.0 [email protected]... Sender OK

    250 [193.51.25.9] Hello [194.167.235.222]

    220 [193.51.25.9] ESMTP Sendmail 8.11.4

    accepted for delivery

    itself

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 38 / 47

  • UDP

    1 Encapsulation

    2 Ethernet

    3 IP

    4 ICMP

    5 TCP

    6 UDP

    7 References

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 39 / 47

  • UDP

    Caracteristique dUDP

    UDP est un protocole base sur IP qui :

    Fonctionne en mode non connecte

    utilise la notion de ports pour faire communiquer des applications surdes machines

    nassure pas la fiabilite de la transmission

    UDP = IP + PortUDP = TCP - la fiabilite

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 40 / 47

  • UDP

    Datagramme UDP

    0 4 8 10 16 24 31

    DATA

    . . .

    MESSAGE LENGTH CHECKSUMUDP SOURCE PORT UDP DESTINATION PORT

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 41 / 47

  • UDP

    Datagramme UDP

    0 4 8 10 16 24 31

    Donnes

    . . .

    Longueur du message Somme de controlePort destination UDPPort source UDP

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 41 / 47

  • UDP

    Ports bien connus

    Port Nom Signification

    13 daytime date courante dune machine

    53 domain Serveur de noms

    67 bootps Serveur bootstrap

    68 bootpc Client bootstrap

    69 tftp Trivial File Transfert

    123 ntp Serveur de temps reseau (tre`s precis)

    161 snmp Gestion de reseau

    162 snmp-trap Trappes SNMP

    513 who rwho

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 42 / 47

  • UDP

    Exemple UDP : DHCP

    Client ServerPort 68 Port 67

    DHCP_DISCOVER

    DHCP_OFFER

    DHCP_REQUEST

    DHCP_ACK

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 43 / 47

  • UDP

    Synthe`se TCP/UDP

    TCP :

    Protocole fiable

    Les applications utilisant TCP ne soccupent que de laspectdialogue sans se preoccuper de la fiabilite de la connexion. Programmation dapplication tre`s simple.Protocole Point a` Point

    Lent

    UDP :

    Protocole non fiable

    Les applications utilisant UDP doivent savoir gerer les erreurs durantles transmissions

    Protocole non connecte. Diffusion possible.

    Rapide

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 44 / 47

  • UDP

    Quand utiliser TCP ou UDP ?

    Dans lecriture dune application :TCP :

    Ecrire lapplication simplement sans se preoccuper de la fiabilite de laconnexion.

    UDP :

    Sur une utilisation locale sans trop de risque derreurs et avec desbesoins en rapidite (NFS, TFTP)

    Si un paquet perdu nest pas vital et quil vaudrait mieux faire uneautre requete (NTP)

    En diffusion (BOOTP, DHCP, RIP, SNMP, etc.)

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 45 / 47

  • References

    1 Encapsulation

    2 Ethernet

    3 IP

    4 ICMP

    5 TCP

    6 UDP

    7 References

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 46 / 47

  • References

    References

    TOS IP et options : http ://www.iana.org/assignments/ip-parameters

    Tuyet Tram DANG NGOC IP - ICMP - UDP - TCP 47 / 47

    EncapsulationEthernetIPDatagramme IP

    ICMPICMP : Echo Request (8), Echo Reply (0)ICMP : Destination Unreachable (3)ICMP : Source Quench (4)ICMP Redirect (5)ICMP : TTL Exceeded (11)

    TCPSegment TCPPorts TCPConnexion TCP

    UDPRfrences