Vous êtes sur la page 1sur 19

2A-SI - Réseaux :

Couches TCP/IP

Stéphane Vialle

Stephane.Vialle@supelec.fr
http://www.metz.supelec.fr/~vialle
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