1. Protocoles TCP/IP, UDP/IP –
Module Réseaux
informatiques
TARIK ZAKARIA BENMERAR, PHD
DEPARTEMENT INSTRUMENTATION ET AUTOMATIQUE, USTHB
2. Architecture d’un réseau informatique
Les protocoles TCP, UDP et IP sont les principaux
protocoles au niveau réseaux et transport permettant à
internet d’exister.
3. Couche IP
Adresse IP
Permet d’identifier une machine dans le réseau local ou internet. Au niveau
internet, les adresses sont attribuées par ICANN (Internet Corporation for
Assigned Names and Numbers).
Taille de l’adresse IPV4 : 32 bits (4 octets). Représentation en décimal : X.W.Y.Z.
Chaque adresse IP est décomposée de deux champs :
Identifiant de réseau : Identifiant du réseau ip, utilisé dans le routage.
Identifiant de machine : Identifiant de la machine dans le réseau IP.
4 octets
4. Couche IP
Classification des Adresses IP
4 octets
A
B
C
D
E
1.0.0.0 – 127.255.255.255
128.0.0.0 – 191.255.255.255
192.0.0.0 – 223.255.255.255
224.0.0.0 – 239.255.255.255
240.0.0.0 – 247.255.255.255
5. Couche IP
Diffusion local et distante :
255.255.255.255.
(ID de réseau) + (111…111) : adresse de broadcast vers le réseau avec ID (ID de réseau).
Rebouclage local : 127.x.y.z.
Généralement 127.0.0.1, appelé localhost.
Elle permet de tester le TCP/IP local sans utiliser l’interface matérielle.
Adresse 0.0.0.0 :
Utilisé dans le protocole RARP.
Adresse de la route par défaut dans les routeurs.
Adresses IP spéciales
6. Couche IP
Sous-réseaux
On peut décomposer un réseau d’envergure en des
sous-réseaux :
Limiter la propagation des broadcasts.
Les routeurs sont utilisés pour faire communiquer des
hôtes sur des sous réseaux différents.
7. Couche IP
Sous-réseaux
Une partie des bits de l’identifiant dans la machine sur réseau
est utilisé pour l’identification du sous réseau.
Cette information est indiquée par le masque sous réseau.
8. Couche IP
Sous-réseaux
La classe d’adressage permet de savoir si les deux machines sont sur le même réseau.
Le masque réseau permet de savoir si les deux machines sont sur le même sous-réseau.
Adresse Source Adresse Destination
Masque Réseau Masque Réseau
Adresse Sous-réseau Destination
Adresse Sous-réseau Source
ET logique
ET logique
9. Couche IP
Sous-réseaux
192.168.1.0 ≠ 192.168.2.0.
Les deux hôtes sont dans des sous-réseaux différents.
11000000.10101000.00000001.00000010 11000000.10101000.00000010.00000010
11111111.11111111.11111111.00000000 11111111.11111111.11111111.00000000
192 168 1 2 192 168 2 2
255 255 255 0 255 255 255 0
11000000.10101000.00000001.00000000
11000000.10101000.00000001.00000000
11000000.10101000.00000010.00000000
192 168 1 0 192 168 2 0
Adresse Source Adresse Destination
Masque réseau
Masque réseau
Sous-réseau
Source
Sous-réseau
Destination
ET logique
ET logique
Exemple de calcul
10. Couche IP
Format d’un datagramme IP
Version (4bits) : La version
d’IP utilisée. 4 pour IPV4.
11. Couche IP
Format d’un datagramme IP
Longueur d’entête (4bits) :
Longueur d'En-Tête en nombre
de mots de 32 bits.
12. Couche IP
Format d’un datagramme IP
Type de service (8bits) : Qualité
de service.
Priorité (3bits) : Il indique la priorité que
possède le paquet. 000
– Routine, 001 – Prioritaire, 010 –
Immédiat, 011 – Urgent, 100 –
Très Urgent, 101 – Critique, 110
– Supervision Interconnexion,
111 – Supervision réseau.
Délai (1bit): Il indique l’importance du délai
d’acheminement du paquet.
0 – Normal, 1- Bas.
Débit (1bit): Il indique l’importance du débit
acheminé. 0
– Normal, 1- Haut.
Fiabilité (1bit): Il indique l’importance de la
qualité du paquet. 0
– Normal, 1- Haut.
Coût (1bit): Il indique le coût du paquet. 0 –
Normal, 1- Haut.
MBZ (1bit): il doit être mis à 0.
13. Couche IP
Format d’un datagramme IP
Longueur totale (16bits) :
taille (entête + données) en
octet.
14. Couche IP
Format d’un datagramme IP
Identification (16bits) : id des
fragments d'un même paquet.
15. Couche IP
Format d’un datagramme IP
Flags (3bits) : Indicateurs de
fragmentation.
Bit 0 : réservé, doit être à zéro.
Bit 1 : (AF) 0 = Fragmentation
possible, 1 = Non fractionnable.
Bit 2 : 0 = Dernier fragment, 1 =
Fragment intermédiaire.
16. Couche IP
Format d’un datagramme IP
Déplacement (13bits) :
Position du fragment par
rapport au paquet de départ, en
nombre de mots de 8 octets.
17. Couche IP
Format d’un datagramme IP
Durée de vie (TTL) (8 bits) : du
paquet dans le réseau.
18. Couche IP
Format d’un datagramme IP
Protocole (8 bits) : type du
protocole de niveau supérieur.
1 : ICMP.
17 : UDP.
6 : TCP.
19. Couche IP
Format d’un datagramme IP
Somme de contrôle entête
(16 bits) : code de contrôle
d’erreur pour l’entête.
20. Couche IP
Format d’un datagramme IP
Adresse source (32 bits) : IP
de la machine source.
21. Couche IP
Format d’un datagramme IP
Adresse destination (32 bits) :
IP de la machine destination.
22. Couche IP
Format d’un datagramme IP
Options (0- 40 octets) :
Facultatif, permet de
personnaliser encore plus le
l’entête IP.
23. Couche IP
Format d’un datagramme IP
Bourrage : De taille variable
comprise entre 0 et 7 bits. Il
permet de combler avec des
bits à 0 le champ option afin
d’obtenir une entête IP multiple
de 32 bits.
24. Couche IP
Format d’un datagramme IP
Données : Données de la
couche supérieure (TCP, UDP,
ICMP, etc.).
25. Couche IP
Le standard spécifie une taille maximale 216 – 1 = 65535.
Un réseau peut enforcer sa taille maximale à travers le MTU (Maximum Transfer
Unit).
Le datagramme IP doit être fragmenté pour être transmis sur le réseau.
Fragmentation des datagrammes IP
Introduction
32. Couche IP
ARP (Address Resolution Protocol) est un protocole réseau qui permet à un hôte
de connaitre l’adresse physique (e.g. MAC) associée à une adresse logique (e.g.
IPV4).
Il est utilisé pour connaitre vers quel hôte du réseau physique un paquet IP doit
être envoyé.
Protocole ARP
34. Couche IP
Protocole ARP
@MAC: 00-0d-88-c7-9a-24
@IP: 10.10.0.5
@MAC: 00-08-a3-b6-ce-04
@IP: 10.10.0.2
@MAC: 00-0d-56-09-fb-d1
@IP: 10.10.0.3
@MAC: 00-12-3f-d4-6d-1b
@IP: 10.10.0.4
Cache ARP
1. Le routeur consulte sa table de
correspondance IP->MAC pour
l’adresse 10.0.0.2
35. Couche IP
Protocole ARP
@MAC: 00-0d-88-c7-9a-24
@IP: 10.10.0.5
@MAC: 00-08-a3-b6-ce-04
@IP: 10.10.0.2
@MAC: 00-0d-56-09-fb-d1
@IP: 10.10.0.3
@MAC: 00-12-3f-d4-6d-1b
@IP: 10.10.0.4
Cache ARP
@MAC: 00-0b-63-d7-9d-54
@IP: 10.10.0.1
2. A émet une requête ARP (contenant l'@IP
10.10.0.2) en broadcast.
3. A, B, C et D comparent cette adresse
logique à la leur
36. Couche IP
Protocole ARP
@MAC: 00-0d-88-c7-9a-24
@IP: 10.10.0.5
@MAC: 00-08-a3-b6-ce-04
@IP: 10.10.0.2
@MAC: 00-0d-56-09-fb-d1
@IP: 10.10.0.3
@MAC: 00-12-3f-d4-6d-1b
@IP: 10.10.0.4
Cache ARP
@MAC: 00-0b-63-d7-9d-54
@IP: 10.10.0.1
4. B répond en envoyant son
adresse MAC
37. Couche IP
Protocole ARP
@MAC: 00-0d-88-c7-9a-24
@IP: 10.10.0.5
@MAC: 00-08-a3-b6-ce-04
@IP: 10.10.0.2
@MAC: 00-0d-56-09-fb-d1
@IP: 10.10.0.3
@MAC: 00-12-3f-d4-6d-1b
@IP: 10.10.0.4
Cache ARP
4. Le routeur mis à jour son cache ARP.
5. Les paquets IPs à destination de 10.10.0.2 sont à envoyés
à l’@ physique de B dans la trame Ethernet.
38. Couche IP
ICMP - Internet Control and Error Message Protocol permet le contrôle d’erreur de
transmission (e.g. Inaccessibilité de la machine ou du réseau)
Le protocole IP ne permet que l’envoi de données et c’est ICMP qui permet à un
hôte de savoir s’il y’a une erreur de transmission de son paquet.
ICMP permet aussi de vérifier l’accessibilité à un réseau ou une machine à travers
la requête ECHO (utilisé par l’utilitaire ping).
Protocole ICMP
39. Couche IP
Le routage est un mécanismes par lequel les données d’un hôte émetteur sont
acheminées à destination.
La fonction de routage est accomplie par un routeur.
Il permet de choisir le chemin que les datagrammes IP doivent emprunter.
Le routeur possède plusieurs cartes réseau qui sont reliées à des réseaux différents.
Une table de routage est utilisée pour définir le chemin à emprunter pour une adresse
destination donnée.
Routage
40. Couche IP
Routage
Exemple
Destination Masque Réseau Passerelle Interface Coût
192.168.1.0 255.255.255.0 - 192.168.1.1 0
192.168.2.0 255.255.255.0 - 192.168.2.1 0
192.168.3.0 255.255.255.0 192.168.2.2 192.168.2.1 1
Table de routage de R1
.1
41. Couche Transport
La couche transport permet de créer une liaison de
communication logique entre des applications qui
s’exécutent dans des hôtes distants.
Les protocoles de la couche transport s’exécutent aux
extrémités du réseau.
Services et protocoles de la couche
42. Couche Transport
Dans la couche transport, le numéro de port permet de multiplexer à l’envoi et de
démultiplexer à la réception les données à destination d’application différentes
derrière la même adresse IP.
Dans l’exemple, P1 et P2 utilise des ports différents qui permettent de recevoir les
données de P3 et P4 selon le port destination dans le paquet de la couche
transport.
Multiplexage/Démultiplexage et les ports
43. Couche Transport
UDP est un protocole de la couche transport :
Sans délai de connexion.
Simple et plus rapide.
Pas de gestion des pertes de données à l’inverse du TCP. L’application doit ajouter des mécanismes pour
compenser.
UDP est souvent utilisé pour les applications multimédias (streaming audio/vidéo).
Tolérant aux pertes.
Sensible au débit.
Protocole UDP
Introduction
44. Couche Transport
Protocole UDP
Paquet UDP
Port source : Numéro de port de
l’application émettrice du paquet.
Port destination : Numéro de port de
l’application destinataire.
Longueur : Longueur entête + Données.
Minimum 8 octets.
Maximum 65 535.
Somme de contrôle : code contrôle des
erreurs.
45. Couche Transport
TCP est un protocole de la couche transport :
Réception garantie des données.
Réémission des données en cas d’erreurs.
Réassemblage des données transmises dans différentes segments TCP dans le bon
ordre.
Contrôle du flot de données pour ne pas saturer le réseau.
Communication en mode connecté.
Ouverture d’un canal.
Communication Full-Duplex.
Fermeture du canal.
Protocole TCP
Introduction
46. Couche Transport
Port Source (2 octets) : Numéro de
port de l'application émettrice.
Protocole TCP
Paquet TCP
48. Couche Transport
Protocole TCP
Paquet TCP
Numéro de Séquence (NS) (4 octets)
: Position du premier octet du segment
à transmettre. Si le flag SYN = 1, NS =
ISN (Initial Sequence Number) ou le
numéro de séquence initial.
52. Couche Transport
Protocole TCP
Paquet TCP
Flag URG : Si 1, le paquet doit être géré
de façon urgente (Utilisé conjointement
avec le pointeur d’urgence).
53. Couche Transport
Protocole TCP
Paquet TCP
Flag ACK : Si 1, le paquet est un accusé
de réception. Le champ NR
représentera le numéro de séquence
attendu après ceux acquittés.
54. Couche Transport
Protocole TCP
Paquet TCP
Flag PSH : Si 1, les données collectées
doivent être transmises à l’application
sans attendre les données qui suivent.
60. Couche Transport
Protocole TCP
Paquet TCP
Pointeur d’urgence (2 octets) : Il
indique combien de données du
segment, à partir du premier octet sont
urgentes (Utilisé conjointement avec le
flag URG).
62. Couche Transport
Protocole TCP
Paquet TCP
Bourrage : De taille variable comprise
entre 0 et 7 bits. Il permet de combler
avec des bits à 0 le champ option afin
d’obtenir une entête TCP multiple de 32
bits.
64. Couche Transport
A est le client et B le serveur.
Les ports TCPs ouverts.
Application sur le serveur à l’écoute.
Application sur le client fait une requête.
Protocole TCP
Etablissement de connexion
65. Couche Transport
Client : Demande de connexion.
SYN = 1, ACK = 0, ISNclient = x (Séquence initiale
aléatoire du client).
Protocole TCP
Etablissement de connexion
66. Couche Transport
Protocole TCP
Etablissement de connexion
Serveur : Acceptation de la connexion.
SYN = 1, ACK = 1, NRclient = x+1, ISNserveur = y
(Séquence initiale aléatoire du serveur).
68. Couche Transport
Après l’établissement de la connexion, les
application client et serveur communiquent en full
duplex, ils envoyer et recevoir des données.
Protocole TCP
Transfert des données
69. Couche Transport
L’application client envoi 10 octets et acquitte la
réception jusqu’au numéro de séquence 202.
Protocole TCP
Transfert des données
Envoi de
10 Octets
70. Couche Transport
Protocole TCP
Transfert des données
Envoi de
20 Octets
L’application serveur envoi 20 octets et acquitte la réception
des 10 octets jusqu’au numéro de séquence 65.
71. Couche Transport
Protocole TCP
Transfert des données
Envoi de
10 Octets
L’application client envoi 10 octets et acquitte la réception
des 20 octets jusqu’au numéro de séquence 222.
72. Couche Transport
Protocole TCP
Transfert des données
Envoi de
2 Octets
L’application serveur envoi 2 octets et acquitte la réception
des 20 octets jusqu’au numéro de séquence 75.
73. Couche Transport
Protocole TCP
Fiabilité des transferts
Dans le protocole TCP, les pertes de segments sont
détectées par absence d’acquittement positif après un
timeout.
76. Couche Transport
Protocole TCP
Fiabilité des transferts
Après un timeout pour la réception d’un acquittement,
l’application A suppose que B n’a pas reçu le segment TCP
et le renvoi.
77. Couche Transport
Protocole TCP
Fiabilité des transferts
l’application A reçoit cette fois-ci l’acquittement. Ainsi, la fiabilité
du transfert du segment est garantie.
78. Couche Transport
Protocole TCP
Fiabilité des transferts
l’application A reçoit cette fois-ci l’acquittement. Ainsi, la fiabilité
du transfert du segment est garantie.
82. Couche Transport
Protocole TCP
Fin de connexion
Après que l’application B ait envoyé ses données en attente et
reçoit l’acquittement, il demande la fin de la connexion.
FIN=1
84. Couche Transport
Sans contrôle du flux TCP, il y’a gaspillage de la bande passante :
Envoi de données excessives.
Attente excessive pour la confirmation de la réception des données.
Protocole TCP
Fenêtre glissante
85. Couche Transport
L’application B a acquitté jusqu’au numéro de
séquence 44.
Comme la taille de la fenêtre est 4, A ne peut
envoyer que 4 octets de segments TCPs sans
acquittement.
Protocole TCP
Fenêtre glissante
Dernier numéro de
séquence acquitté
86. Couche Transport
L’application A envoi une donnée avec le
numéro de séquence 45 (inclut dans la fenêtre
actuelle).
Protocole TCP
Fenêtre glissante
90. Couche Transport
Protocole TCP
Fenêtre glissante
L’application A a épuisé la fenêtre et attend
l’acquittement de l’application B pour envoyer
des données à nouveau.
91. Couche Transport
Protocole TCP
Fenêtre glissante
L’application A envoi une donnée avec le
numéro de séquence 49 qui est inclut dans la
nouvelle fenêtre.