Couche Transport (4) Routeur Messages entre A et B 4 4 3 3 3 3 2 2 2 2 système A Routeur système B Messages entre A et B 4 4 Paquets 3 3 3 3 Trames 2 2 2 2 Bits 1 1 1 1
Protocoles TCP et UDP Entités communicantes Transport UDP TCP 17 6 Internet Protocol Réseau @IP Liaison & physique IP = 0800 Ethernet ou autre L’identification d’une entité communicante se fait grâce au triplet : < Protocole Transport, numéros de port et l’adresse IP de la machine>
1) UDP (User Datagram Protocol) RFC 768 : STD 6 1.1) caractéristiques ‡ transfert de données rapides (sans ouverture de connexion) ‡ pas de contrôle de flux (on peut avoir des engorgements) ‡ sans reprise en cas d’erreur (doit être faite par les couches supérieures). ‡ Protocole ‘ simpliste ’ : il consiste à transmettre les données des couches supérieures telles quelles.
1.2) format de message UDP
1.3) Communication avec UDP Les ports source et destination sont associés à une entité communicante UDP UDP Entité active IP Entité passive Port et N°IP de l’entité passive En attente 1° message Port et N°IP de l’entité active Autres messages
Port Source A Port Destination B 1.4) Messages transmis Ethernet + IP + UDP Adresse Ethernet de B Adresse Ethernet de A 08 00 = code de IP Donnée Couche 4 4 5 Type de service Longueur totale Identification du fragment Flags Place de fragment durée de vie 17 = code de UDP Checksum de l'entête Adresse IP de A Adresse IP de B Information Couche 3 Port Source A Port Destination B Longueur du message CheckSum Données couches 5 à 7
2) TCP (Transmission Control Protocol) RFC 793 : STD 7 2.1) caractéristiques ‡ transfert de données sur connexion ‡ contrôle et correction d’erreurs ‡ contrôle de flux ‡ multiplexage
2.2) Format des messages TCP 1 6 3 1 Port Source Port Destination Séquence Acquittement O f f s e t R é s e r v é U A P R S F F e n ê t r e C h e c k s u m P t r m e s s a g e u r g e n t O p t i o n Données
a) Ports Source et Destination (2x16bits) Permet d'identifier de manière unique une connexion. b) Séquence (32 bits) Numéro du 1° octet du message transmis dans le flot. - Initialisé par un mécanisme d'horloge. - Les messages sans données font croître le n° de séquence de 1 (sauf les messages avec uniquement un acquittement) . - Les messages avec données font croître le n° de la longueur des octets transmis. c) Acquittement (32 bits) Désigne le prochain octet attendu. d) Offset : Taille de l’entête (4 bits) en mots de 32 bits.
e) Type du message (6 bits : UAPRSF) URG : les octets compris entre le début de la trame et le champ pointé par Pointeur Message Urgent doit être servi en priorité ACK : les données de Acquittement sont valides PSH : le paquet doit être transmis à la couche supérieure (pour avoir un écho en cas de travail interactif). RST : Réinitialisation SYN : Demande/Acceptation de l'ouverture d'une connexion. FIN : Fin de connexion
2.3 Protocole TCP a) Ouverture d'une connexion B Prestataire TCP A Accepte toute demande d’ouverture Ouverture Passive a) Ouverture d'une connexion Demande d’ouverture active T(SYN,55,W=200) Open (IDp) Nom local de la connexion Open (IDa) Nom local de la connexion T(ACK,56,SYN,202, W=250) Succès (IDa) T(56,ACK,203) Succés (IDap)
Message de demande d’ouverture : Ethernet + IP + TCP Adresse Ethernet de B Adresse Ethernet de A 08 00 = code de IP 4 5 Type de service Longueur totale Identification du fragment Flags Place de fragment durée de vie 6 = code de TCP Checksum de l'entête Adresse IP de A Adresse IP de B Port Source A Port Destination B 55 xxxxx Données des couches 5 à 7 200 5+t(opt) CheckSum 1 Ptr Message Urgent Options
b) n'accepte que les demandes d'ouverture de C Prestataire TCP B A Ouverture passive n’accepte que les demande de la machine C Open ( Id ) "Active open" T(SYN,55,W=200) T(ACK,56,FIN,202) Open ( Id ) Fermé : cause refus de B
Fermé : service indisponible b.bis) Pas de service disponible ! TCP B A Pas de service sur le port 222 "Active open" T(SYN,55,W=200) T(ACK,56, RST,W=0) Open ( Id ) Fermé : service indisponible
c)Transfert de données & fenêtre d’anticipation. TCP B , W = 200 Send (100 octets) T(Séq=50,Lg=100) Send (50 octets) T(Séq=150, Lg=50) Send (100 octets) Resv (150 octets) T(23,ACK=200) Attente de l’ack Acquittement et on attend le message N° 200 T(Séq=200,lg=100 Psh,ACK=24) Resv (150 octets) Passage à la couche supérieure + acquittement T(23,ACK=300)
d) Transfert de données & reprise en cas d’erreur TCP/IP B , W = 200 Send (100 octets) T(Séq=50) Send (50 octets) Erreur T(Séq=150) Horloge activée Send (100 octets) Temps écoulé => reprise sur erreur T(Séq= 50, L=150) Retransmission Resv(50+100 octets) T(23,ACK=200) T(Séq=200) Resv(150 octets) T(23,ACK=300)
e) Transfert de données & contrôle de flux TCP TCP W de B = 200 Plus de place ceci est équiva- lent à un NAK Send (200 octets) T(Data=45) T(ACK= 45,W=0) 2 secondes libération (300 octets) T(Data=45,Lon=200) T(ACK=245,W=100)
f) fermeture de connexion (2 cas) TCP B Close(Id) T(FIN) Closed(Id) Closed(ID) T(FIN,ACK) T(ACK) Close(Id) Close(Id) T(FIN) T(FIN) T(ACK) T(ACK) Closed(ID) Closed(ID)
3) Les applications et les ports ouverts La commande ‘netstat’ Exemples : Windows et Linux
Conclusion A) IP véhicule les paquets dans le réseau de proche en proche d ’une machine source à une machine destinatrice ! B) Au niveau 4 (couche transport) B.1) UDP ne fait que transférer les messages sans contrôle : mais il permet d ’identifier les programmes (entité) qui communiquent (niveau 7) B.2) TCP fait le transfère des messages avec contrôle d ’erreur et de flux et identifie aussi les programmes qui communiquent C) Une communication est la donnée des 5 valeurs < Adresses IP émetteur et récepteur (niveau 3) Protocole de niveau 4 (TCP ou UDP), Ports programmes émetteur et récepteur (niveau 7) >