2A-SI - Réseaux :
Couches TCP/IP
Stéphane Vialle
[Link]@[Link]
[Link]
1
Couches TCP/IP
1 – Principes de fonctionnement du modèle TCP/IP
2 – Déroulement des communications UDP/IP
3 – Déroulement des communications TCP/IP
1
couches TCP/IP
1 - Principes de fonctionnement
du modèle TCP/IP
1.1 – couche «Interface réseaux » (couche basse)
1.2 – couche « Interconnexion » (IP)
1.3 – couche « Transport » (UDP/TCP)
1.4 – couche « Applications » (couche haute)
couches TCP/IP
Détails de la couche « Interface Réseau »
• « TCP/IP » est une abréviation de la réalité : parties les plus utilisées
- TCP : Transmission Control Protocol
- IP : Internet Protocol
• La couche Interface Réseau n’est pas réellement dans le modèle :
- TCP/IP est ouvert sur beaucoup de réseaux (ex: Ethernet)
- Pas de réelles spécifications de méthodes d’accès
4
2
couches TCP/IP
1 - Principes de fonctionnement
du modèle TCP/IP
1.1 – couche «Interface réseaux » (couche basse)
1.2 – couche « Interconnexion » (IP)
1.3 – couche « Transport » (UDP/TCP)
1.4 – couche « Applications » (couche haute)
couches TCP/IP
Acheminement des datagrammes
IP sur X, Y, Z, ... INTERNET
IP sur PPP
Point d ’accès
Ordinateur personnel Boucle locale Fournisseur
+ Modem d'accès
Routeur
IP sur Ethernet
Protocole
Message IP
Fournisseur
propre au réseau de services
« IP sur tout, IP de partout »
6
3
couches TCP/IP
Détails de la couche « Interconnexion »
• IP : protocole Internet
- routage à travers Internet
- règles d’adressage au sein d’Internet (adresses logiques IP)
• Protocoles associés de:
- contrôle de l’Internet (ICMP) : discussions entre routeurs
- conversion d’adresses logiques en adresses physiques : ARP
- conversion d’adresses physiques en adresses logiques : RARP7
couches TCP/IP
Détails de la couche « Interconnexion »
• Les routages et
relais entre réseaux
sont assurés par la
couche IP
• Protocole de
routage le plus
connu : RIP
(Routing Information
Protocol) …
Recherche de routes de
moindre coût, par les
routeurs … 8
4
couches TCP/IP
Détails de la couche « Interconnexion »
Usage
futur
• Règles d’adressage en IPv4 :
- adresses sur 32 bits en IPv4 : « x.y.z.t » (4 octets)
= {« adresse du réseau » « adresse de la machine dans le réseau »}
- 4 (+1) classes d’adresses :
- pour des réseaux de différentes tailles
- pour des opérations de multicast 9
couches TCP/IP
Détails de la couche « Interconnexion »
• Contenu
d’une trame
IPv4
• Version
courante
d’IP
- Taille entête : en mots de 32 bits - Flags : DF : Don’t Fragment flag
- Longueur totale : en octets (< 64 Ko) - Flags : MF : More Fragment flag
- Identification : pour réassemblage - TTL : Nombre de sauts : nb max routeurs
- Adresses 32 bits, notation décimale pointée10
5
couches TCP/IP
Détails de la couche « Interconnexion »
• Règles d’adressage en IPv6 :
- 3 types d’adresses :
- « Point à point » (unicast)
- « Un exactement » (anycast)
- « Multipoint » (multicast)
- Adresse point à point (unicast)
- Identifie une interface réseau unique
- Routage par le plus court chemin
- 3 niveaux de hiérarchie :
• Topologie publique (global) : routage sur l'internet
• Site individuel (site-local) : routage limité à un site
• Interface réseau individuelle (link-local) : non routable
11
couches TCP/IP
Détails de la couche « Interconnexion »
• Règles d’adressage en IPv6 :
- Adresse un exactement (anycast)
- Même format que les adresses point à point
- Identifie un groupe d'interfaces réseau
- Routage au membre (unique) du groupe accessible
par le plus court chemin
- Adresse multipoint (multicast)
- Identifie un groupe d'interfaces réseau
- Routage vers toutes les interfaces du groupe
- Utilisation réglementée (un peu …)
• Problème du passage IPv4 → IPv6 :
- Interconnexion d’îlots IPv6 via un réseau IPv4 ?
- Connexions de machines IPv6 isolées sur un réseau IPv4 ?
- Interconnexion d’applications IPv4 et IPv6 ?
12
6
couches TCP/IP
Détails de la couche « Interconnexion »
0 4 8 16 31
Versi Priori
Identificateur de flot de données
• Contenu on té
d’une trame Prochaine Nb max de
Longueur charge utile
entête sauts
IPv6 Adresse de l ’émetteur (128 bits)
…
Adresse du destinataire (128 bits)
…
[ Entête complémentaire ]
…
...
Données de la couche supérieure
…
- Simplification de l’entête de base - Identification des flux de données
- Augmentation de la capacité d’adressage - Nouvelles options
32 bit → 128 bit !! - Fonctions de sécurité
- Fonctions d'autoconfiguration (authentification et chiffrement)
13
couches TCP/IP
Détails de la couche « Interconnexion »
• Protocole ICMP de la couche IP :
- ICMP = Internet Control Message Protocol
- une série de services pour les besoins internes des réseaux IP
- ex : IRDP : ICMP Router Discovery Protocol
→ découverte des routeurs sur chaque segment
- ex : Mesure du temps de réponse du réseau
→ envoi d’un paquet ECHO_REQUEST
attente du paquet ECHO_REPLY
→ commande utilisateur « ping »
- ex : Fragmentation / Ré-assemblage des paquets
14
7
couches TCP/IP
Détails de la couche « Interconnexion »
• Protocole ICMP de la couche IP :
• Adaptation de la taille des datagrammes IP à la taille des PDU
des réseaux traversés (respecte le MTU Maximum Transfer Unit)
→ Fragmentation dans les routeurs
→ Ré-assemblage dans le système destinataire
Internet
Routeur Routeur
fragmentation ré-assemblage
15
couches TCP/IP
Détails de la couche « Interconnexion »
• Protocole ARP de la couche IP :
- but : @logique (IP) → @physique (MAC)
- l’adresse physique est nécessaire dans certaines communications
- une station veut connaître l’@ physique d’une autre station :
- elle diffuse une requête avec l’adresse IP qu’elle connaît
- la machine correspondante la reçoit (diffusion)
- elle renvoie son @MAC à destination de la station demandeuse
- l’adresse physique récupérée est mémorisée
- elle reste valable pendant un temps limité
(adresse IP correspondante susceptible de changer)
@IP
@MAC 16
8
couches TCP/IP
Détails de la couche « Interconnexion »
• Protocole RARP de la couche IP :
- but : @physique (MAC) → @logique (IP)
- ex : une station diskless qui boot en réseau ne connaît pas
son @IP
- fonctionnement :
- elle veut connaître son @IP à partir de son @MAC
- sur le réseau il doit exister des serveurs RARP :
tables : @MAC ↔ @IP
- la station diskless diffuse une requête RARP avec son @MAC
- le (les) serveurs RARP répondent : envoient son @IP
RARP @MAC - @IP
@MAC server
@IP 17
couches TCP/IP
1 - Principes de fonctionnement
du modèle TCP/IP
1.1 – couche «Interface réseaux » (couche basse)
1.2 – couche « Interconnexion » (IP)
1.3 – couche « Transport » (UDP/TCP)
1.4 – couche « Applications » (couche haute)
18
9
couches TCP/IP
Détails de la couche « Transport »
• Deux protocoles de transport de paquets sont disponibles :
- UDP : mode « non-connecté », sans mécanismes de contrôle de
le flux, ni de reprise sur erreur, …
t oco → paquet perdus, dupliqués ou dé-séquencés.
r
Pro lége
- TCP : mode « connecté », contrôle de flux, reprise sur erreur, …
ole → les paquets arrivent dans l’ordre.
o t oc d
r
P lou r 19
couches TCP/IP
Détails de la couche « Transport »
0 16 31
Détail de Port Source Port Destination
Longueur du message Checksum
l’entête UDP : (en octets) (calcul facultatif)
[ Données ]
…
+ Protocole à faible coût : peu d’overhead
– Envoi de données sans contrôle d’erreur, ni de flux, …
N’ajoute rien au service d’IP.
→ L’application doit assurer ou supporter les erreurs
• Pour applications locales (NFS, DHCP, …)
Pour applications temps-réel (voix sur IP, vidéo sur IP, …)
20
10
couches TCP/IP
Détails de la couche « Transport »
0 4 8 16 31
Détail de Port Source Port Destination
Numéro de séquence
l’entête TCP : Numéro d ’acquittement
Pt data Réservé U A P R S F Taille de la fenêtre
Checksum Pointeur données urgentes
Options
[ Données ]
…
• Mode « connecté » & Transport de données fiables
• Pour du « client – serveur » général
Client Serveur
• Connexion (généralement) initialisée par le client Connexion
TCP
• Numéro de port client choisi dynamiquement
• Numéro de port serveur : défini par des standards 21
couches TCP/IP
1 - Principes de fonctionnement
du modèle TCP/IP
1.1 – couche «Interface réseaux » (couche basse)
1.2 – couche « Interconnexion » (IP)
1.3 – couche « Transport » (UDP/TCP)
1.4 – couche « Applications » (couche haute)
22
11
couches TCP/IP
Détails de la couche « Application »
• Les composantes de cette couches ont évolués avec Internet
• Les applications :
- attaquent directement TCP/UDP selon des protocoles natifs,
- ou réutilisent d’autres applications et protocoles existant 23
couches TCP/IP
Détails de la couche « Application »
Les « classiques » : rarement utilisés directement par l’utilisateur
• FTP : protocole de la « pile TCP/IP »
File Transfer Protocol
→ transfert de fichiers
• SMTP : protocole de la « pile TCP/IP »
Simple Mail Transport Protocol
→ responsable de l’envoi des e-mail
• SNMP : protocole de la « pile UDP/IP »
Simple Network Management Protocol
→ gestion et surveillance de périphériques réseaux
……
24
12
couches TCP/IP
Détails de la couche « Application »
Exemple d’applications directement utilisées par l’utilisateur :
• OutLook : utilise
- SMTP pour envoyer du mail
- POP pour lire du mail sur le serveur de mail
- un annuaire LDAP pour les diverses identifications
• ICQ : utilise
- un protocole natif qui attaque UDP
- un protocole natif qui attaque TCP
- un annuaire LDAP pour les diverses identifications ??
POP SMTP LDAP … ICQ OutLook …
TCP UDP
IP
Interface réseau
25
couches TCP/IP
2 - Déroulement des
communications UDP/IP
26
13
couches TCP/IP
Déroulement de comm. UDP/IP
Concepts de « port » en UDP (et TCP) :
telnet
mail
Ports UDP :
- files d’attentes telnet
ftp
- démultiplexent la réseau
telnet
telnet
telnet
connexion réseau
vers différentes applis.
exécutées (en parallèle)
sur la machine N° de port
@ IP mail
réseau ftp
telnet
27
couches TCP/IP
Déroulement de comm. UDP/IP
Rôles de la couche et du protocole UDP :
Couche UDP : responsable de la distinction des différentes sources
ou destination au sein d’une machine donnée (n° port).
Couche IP : responsable de l’acheminement d’une donnée d’une
machine à une autre à travers une interconnexion de
réseaux (@IP).
Couche Interface réseau : responsable du codage et de l’émission
des trames de bits sur le support
Application
Datagramme Utilisateur (UDP)
Interconnexion (IP)
Interface avec le réseau
28
14
couches TCP/IP
Déroulement de comm. UDP/IP
Rappel : mécanisme d’encapsulation de trames en UDP/IP
Les données (PDU) des couches hautes se retrouvent encapsulées
dans celles des couches basses :
Application
Données Application
Datagramme Utilisateur (UDP)
Interconnexion (IP)
Interface avec le réseau
En-tête Zone de données UDP
UDP
En-tête
dtgm IP Datagramme IP (paquet IP)
En-tête de
la trame Trame de bits
29
couches TCP/IP
Déroulement de comm. UDP/IP
Bilan : limitations de la couche et du protocole UDP
- le protocole UDP n’utilise pas d’accusés de réception pour
garantir la bonne réception des données émises
- les paquets peuvent être perdus, dupliqués ou déséquencés
(en empruntant des chemins différents)
- le checksum disponible est optionnel et vérifie seulement
que la bonne @IP et le bon n° port ont été atteint
- la couche applicative doit détecter et traiter les erreurs
(s’il en apparaît)
- communication non fiabilisée en mode « non-connecté »
UDP s’utilise typiquement sur des LAN très fiables, avec des
délais de transmission courts.
30
15
couches TCP/IP
3 - Déroulement des
communications TCP/IP
31
couches TCP/IP
Déroulement de comm. TCP/IP
Transmissions fiables & acquittements en TCP :
• Rappel : principe d’acquittement positif : un « Ack » par
message et avant chaque nouveau message.
PDU-1 PDU-1
Ack-1 Ack-1
PDU-2 PDU-1
Ack-2 Ack-1
PDU-3 PDU-2
Ack-3 Ack-2
t t t t
Bonne transmission Erreur de transmission
et reprise sur erreur
Protocole fiable mais lent : attente d’Ack avant chaque nouvelle
transmission !
32
16
couches TCP/IP
Déroulement de comm. TCP/IP
Transmissions fiables & acquittements en TCP :
• Rappel : principe d’acquittement par fenêtre glissante :
n paquets transmissibles avant de recevoir l’Ack du plus ancien.
PDU-1 - Les paquets sont acquittés
PDU-2 Ack-1 indépendamment
Fenêtre PDU-3 Ack-2
pleine Ack-3 - Un paquet non acquitté est
PDU-4
PDU-5
PDU-6 ré-émit
Ack-4
- Début de fenêtre : premier
PDU-7 paquet non acquité
t t
- Permet des débits plus
Transmission (correcte) avec élevés que l’acquittement
fenêtre glissante de 3
positif simple
33
couches TCP/IP
Déroulement de comm. TCP/IP
Transmissions fiables & acquittements en TCP :
• Principe de l’acquittement par fenêtre glissante de taille
variable :
- n paquets transmissibles avant de recevoir l’Ack du plus ancien
- n : variable dans le temps
- le récepteur communique une nouvelle largeur de fenêtre
pour réguler le flux des données à sa convenance :
- n = 0 : débit nul
- n = 1 : débit acquittement positif simple,
- n augmente → le débit augmente
TCP pratique l’acquittement par fenêtre glissante dynamique
pour obtenir des communications fiabilisées et en contrôler le flux.
34
17
couches TCP/IP
Déroulement de comm. TCP/IP
Etablissement d’une connexion en TCP :
• Une fois la connexion établie, les données circulent dans les 2 sens
• Connexion en 3 étapes :
1- demande de connexion, émission du n° de séq. initial venant de A
2- acceptation de la connexion, accusé de réception du n° de
séq. initial venant de A, émission du n° de séq. initial venant de B
3- accusé de réception du numéro de séq. initial venant de B
→ machines d’accord, et connaissent leurs n° de séquence initiaux
SYN seq=x 1
Reception SYN - Ack : n° de séquence du
Reception 2 SYN seq=y prochain octet attendu
SYN et ACK ACK x+1
3
- TCP ignore les demandes
ACK y+1
Reception ACK de connexion alors que
t t celle-ci est déjà établie
A B 35
couches TCP/IP
Déroulement de comm. TCP/IP
Libération d’une connexion TCP :
• Rappel : connexions TCP : bidirectionnelles simultanées
• Déconnexion dans un sens à la fois :
- Demande de déconnexion (1)
- Récepteur de la demande de déconnexion : envoie Ack (2) et
informe les applications de la fermeture du flux de données,
- Récepteur de la demande de déconnexion : envoie Ack (2’)
-- fin de la déconnexion dans le 1er sens --
et demande la déconnexion dans le 2ième sens …
FIN seq=x 1
Reception FIN
Reception 2 ACK x+1 Informe les application
ACK (flux de données fermé)
Reception 2’ FIN seq=y, ACK x+1 (opération longue! )
FIN et ACK
ACK y+1 3
Reception ACK
t t
A B 36
18
couches TCP/IP
Transmission Control Protocol
Bilan : propriétés de TCP
• RFC 793 - 1981
• Transport de données fiable
• Support direct des protocoles applicatifs
• Mode connecté
– Connexion/Déconnexion en 3 temps
– Connexion orientée Client/Serveur
– Transfert de données full duplex et transparent
– Contrôle d’erreur par Checksum
– Correction d’erreur par retransmission
– Contrôle de flux avec fenêtre dynamique
– Séquencement par numérotation du flux d ’octets
– Données urgentes
37
19