Vous êtes sur la page 1sur 22

• Les protocoles sont des règles utilisées par les périphériques en réseau pour

communiquer.

• le protocole TCP /IP est le principal protocole d’Internet.

• Les élements d’un réseau :

• Le message : il doit être converti en bits (càd signal numérique


codé en binaire).

• Les périphériques :

• Le support :

• Les protocoles :

• Internet est crée par l’interconnexion de réseaux qui appartiennent aux


fournisseurs de services Internet (ISP, Internet Service Providers).
• La couche application comprend deux formes de programmes ou processus
logiciels permettant d’accéder au réseau : les applications et les services.

• Applications : Sont les programmes logiciels qui permettent aux


utilisateurs de communiquer sur le réseau. Il interagissent directement
avec l’utilisateur, c’est en fait eux qui établissent une interface humaine
qui permet à l’utilisateur d’utiliser une tel fonctionnalité.

• Services : Sont des programmes et processus qui établissent l’interface


avec le réseau. Donc leur rôle est d’intégrer les protocoles nécessaires
pour préparer des données du réseau , ils peuvent aussi communiquer
avec les applications pour récupérer certaines informations .

• Les applications et les services peuvent également utiliser plusieurs


protocoles au cours d’une même conversation.

• Les protocoles de la couche application définissent :

• les processus s’exécutant en début et en fin de communication;

• les types de messages;

• la syntaxe des messages;

• la signification des champs d’information;

• la manière dont les messages sont envoyés et la réponse


attendue.

• l’interaction avec la couche inférieure suivante.

• Protocole connus de la couche application :

• DNS( Domain Name System ) : Le système DNS se charge de convertir


(on parle de résolution) le nom du site web demandé en adresse IP.

• Lorsque vous tapez au navigateur ‘www.google.com’ par exemple, c’est


le protocole DNS qui se charge de convertir ce nom de domaine à
l’adresse IP correspondante qui est égale dans ce cas à ‘172.217.12.36’
• DHCP( Dynamic Host Configuration Protocol ) : La première fonction
d’un Serveur DHCP est de fournir des adresses IP ( associées à un
masque) aux machines faisant la demande

• Si vous avez configuré votre carte réseau pour récupérer son adresse IP
automatiquement, votre machine va chercher à contacter un serveur
DHCP susceptible d'être présent sur votre réseau local.

• HTTP( Hypertext Transfer Protocol ) : Le principe du protocole HTTP est


de transporter des pages HTML, et potentiellement quelques
informations supplémentaires.

Le serveur web met donc à disposition les pages web qu'il héberge, et le
protocole HTTP les transporte sur le réseau pour les amener au client.

• Le protocole HTTP est un protocole constitué de « requête/réponse »,


càd que le client envoi une requête http au serveur , ce dernier reçoit
cette requête, essaye de la comprendre et renvoi une réponse http au
client .

• Types des requêtes http :

• GET : une requête client pour demander des pages Web à un


serveur.

• POST/PUT : des requêtes client qui servent à envoyer des


messages qui téléchargent des données vers le serveur WEB

• Types des réponses http :

• Le résultat d’une requête http est déterminé par un code appelé


CODE http.

200 : succès de la requête ;

301 / 302 : redirection, respectivement permanente et temporaire ;

401 : utilisateur non authentifié ;

403 : accès refusé ;

404 : page non trouvée ;

500 / 503 : erreur serveur ;


504 : le serveur n'a pas répondu.

• Voici un example d’une requête et une réponse http :

• FTP( File Transfer Protocol ) : C’est un protocole qui permet le transfert


de fichiers entre un client et un serveur.

• Le client FTP est le logiciel que vous utilisez pour échanger les fichiers.
FileZilla est un exemple de client FTP.

• Le serveur FTP est un programme qui permet l'échange de fichiers. On


l'installe sur le serveur. FTP Daemon est un example de serveur FTP.

• Pour transférer les fichiers correctement, le protocole FTP nécessite


l’établissement de deux connexions entre le client et le serveur :

• connexion au serveur sur le port TCP 21 : utilisée pour le trafic de


contrôle et se compose de commandes clientes et de réponses
serveur.

• connexion au serveur sur le port TCP 20 : destinée au transfert


même des fichiers et est établie à chaque transfert de fichier.
• Rôles de la couche transport :

• La couche transport est chargée de l'établissement d'une session de


communication temporaire entre deux applications et de l'acheminement
des données entre ces deux applications.

• Elle permet à de nombreuses applications de communiquer sur le


réseau au même moment, sur un même périphérique.

• Elle vérifie, si cela est nécessaire, que toutes les données sont reçues
de façon fiable et dans l’ordre par l’application voulue ( Protocole TCP ) .

• Elle utilise des mécanismes de gestion des erreurs (checksum)

• Service de la couche transport :

Segmentation et reconstitution : La plupart des réseaux limitent la


quantité de données pouvant être incluses dans une même unité de
données de protocole. Donc la couche transport se charge de segmenter
la quantité de données qui vient de la couche application.

Multiplexage de conversations : De nombreux services ou applications


peuvent s’exécuter sur chaque hôte sur le réseau. Une adresse, appelée
port, est affectée à chacun de ces services ou applications afin que la
couche transport puisse déterminer à quel service ou application les
données se rapportent.

Acheminement fiable : signifie que les segments perdus sont envoyés à


nouveau afin que les données soient reçues dans leur intégralité
(Protocole TCP).

La livraison dans un ordre défini : permet de s’assurer que les données


sont fournies dans l’ordre lors de leur envoi.
Le contrôle de flux : s’effectue au niveau de la couche transport en

régulant la quantité de données que la source transmet sous forme

de groupe.

• Protocole TCP :

• Le protocole TCP fonctionne en mode connecté, càd avant que le


transfert des données commence , TCP établit une demande de
connexion qui prend 3 étapes :

• 1) TCP source envoi une demande de connexion à TCP source (


Hey machine B, je veux communiquer avec toi )

• 2) TCP déstination répond à cette demande de connexion par un


acquittement ( Hey machine A , avec plaisir ( bien sûr s’elle veut
communiquer avec elle ) ).

• 3) TCP source envoi cette fois un acquittement à TCP source pour


l’indiquer que la connexion a été bien établie

• Les données sont fractionnées en fragments (segments) dont la taille


est jugée la meilleure par TCP pour l’émission.

• Le protocole TCP de destination réordonne les données si nécessaire


avant de les passer à l’application.

• Lorsque TCP émet un segment, il maintient un timer, attendant de


lapart de l’autre extrémité l’acquittement de réception. Si le protocole
TCP déstination reçoit le segment il envoi un acquittement, Sinon lorsque
le timer arrive à 0 et TCP source ne reçoit aucun acquittement il renvoi le
segment une autre fois ( Une communication fiable !! ).
• TCP maintient une somme de contrôle de bout en bout( checksum ) . Si
un segment parvient avec une somme de contrôle invalide, TCP le rejette
et ne l’acquitte pas.

• TCP rejette les données dupliquées.

• Le protocole TCP spécifie d’autres fonctions, à savoir la livraison dans


l’ordre, l’acheminement fiable et le contrôle de flux. Chaque segment du
protocole TCP utilise 20 octets de surcharge dans l’en-tête pour
encapsuler les données de la couche application.

• Les numéros de port source et destination : afin d’identifier

l’application émettrice et réceptrice.

• Numéro de séquence : Lorsqu'une connexion TCP est initialisée, l’ISN


(Initial sequence number ) est généré ( cela peut être un zéro ou un
nombre aléatoire suivant les systèmes , c’est un nombre codé sur 4
octets). Quand des données sont envoyées, ce numéro de séquence est
augmenté d'autant d'octets de données qui sont envoyés.

• Le numéro d’acquittement : contient le numéro de séquence suivant


que le destinataire s’attend à recevoir.

Voici un example :
• Longueur d’en-tête (Data Offset) : donne la longueur de l’en-tête en mots
de 32 bits. Ceci est nécessaire parce que la longueur du champs options
est variable.

• CODE BITS : indique la nature du segment :

• URG : le pointeur de données urgentes est valide, les données sont


émises sans délai, les données reçues sont remises sans délai.

• ACK : active les acquittements.

• PSH : C’est une notification de l’émetteur au récepteur, pour lui indiquer


que toutes les données collectées doivent être transmises à l’application
sans attendre les éventuelles données qui suivent.

• RST : réinitialise la connexion.

• SYN : utilisé à l’initialisation de la connexion pour indiquer où la


numérotation séquentielle commence. Le Numéro de séquence inscrit
dans le datagramme (correspondant à SYN) est alors un Initial Sequence
Number (ISN) produit par un générateur garantissant son unicité.

• FIN : utilisé lors de la fin de la connexion.

• CHECKSUM: Un calcul qui porte sur la totalité du segment,en-tête et


données. Il est utilisé dans la gestion des erreurs

• Pointeur de données urgentes : c’est un moyen pour l’émetteur de faire


transiter des données urgentes à l’autre extrémité.

• Protocole UDP :

• Le protocole UDP est un protocole sans connexion et ne propose pas de


mécanismes sophistiqués de retransmission, de séquençage et de
contrôle de flux :

• Il crée beaucoup moins de surcharge que le protocole TCP.

• Non fiable : la fiabilité doit être implémentée à un autre niveau.

• Les blocs de communication utilisés dans le protocole UDP sont


appelés des datagrammes.

• Le protocole UDP se contente donc de réassembler les données dans


l’ordre dans lequel elles ont été reçues, puis de les transmettre à
l’application.

• Rôles de la couche réseau :

• La fonction principale de cette couche est le routage

• Pour faire le routage il faut tout dabord ajouter toutes informations en


rapport avec ce dernier, soit l’adresse IP du destinataire.

• Protocole IP:
• Version : contient le numéro de version IP (4).

• Longueur d’en-tête (IHL) : spécifie la taille de l’en-tête de paquet.

• Type de service : contient une valeur binaire de 8 bits utilisée pour définir la
priorité de chaque paquet. Cette valeur permet d’appliquer un mécanisme de
qualité de service (QS) aux paquets de priorité élevée, tels que ceux
transportant des données vocales de téléphonie.

• Longueur du paquet : ce champ donne la taille du paquet entier, en-tête et


données compris, en octets.

• Identification : ce champ sert principalement à identifier de manière unique


les fragments d’un paquet IP d’origine. Sa valeur est incrémenté a chaque fois
un paquet IP est envoyé. Il est utile lors du rassemblage des fragements IP

• un routeur peut devoir fragmenter un paquet lors de sa transmission d’un


média à un autre de MTU inférieure.

• Flags : Ce champ contient 3 bits, le premier bit est réservé. Le deuxième bit
représente ‘Don’t Fragment’ bit, lorsque la valeur de cet bit est égale à 1 le
packet IP ne peut pas être fragmenté. Le troisème bit représente ‘More
Fragment’ bit. Si ce bit est mis à 1 ca signifie qu’il ya encore des fragements à
transférer. Dans le cas du dernière fragement ce bit est mis à 0 ce qui signifie
que c’est le dernier fragment d’un tel packet IP

• Décalage du fragment : identifie l’ordre dans lequel placer le fragment de


paquet dans la reconstruction.

• Lorsqu’une fragmentation se produit, le paquet IPv4 utilise le champ de


décalage du fragment et l’indicateur MF de l’en-tête IP pour reconstruire le
paquet à son arrivée sur l’hôte de destination.

• Durée de vie : La durée de vie (TTL, Time to live) est une valeur binaire de 8
bits indiquant la durée de vie restante du paquet.

Protocole : valeur binaire de 8 bits indique le type de données utiles que le


paquet transporte. Le champ de protocole permet à la couche réseau de
transmettre les données au protocole de couche supérieure approprié.

Exemples de valeurs : 01 (ICMP), (06 TCP), (17 UDP)


• Somme de contrôle d’en-tête : le champ de somme de contrôle est utilisé
pournvérifier l’absence d’erreurs dans l’en-tête de paquet.

• Adresse de destination IP et Adresse source IP : Adresse IP de la machine


source et la machine destination chacune est représenté sur 32 bits .

• Options : des champs supplémentaires sont prévus dans l’en-tête IPv4 afin
de fournir d’autres services, mais ils sont rarement utilisés.

• Adresse IP :

• Adressage IP :

• Adressage avec classe ( classful addressing ) :


• Sous-addressage ( Subnetting ) :

• C’est une technique qui nous permet de créer des sous-réseau au sein
d’un réseau en utilisant quelques relations et on respectant quelques
règles.

Relations fondamentales :

Règle 1 : Il faut qu’au moins deux bits restent disponibles dans la partie
hôte.

Car avec un seul bit on peut representer ( 21 = 2 ) adresses différentes,


et comme on sait chaque réseau à une adresse réseau et une adresse de
diffusion, donc les 2 adresses qu’on a formé à partir d’un seul bits sont
l’adresse réseau et l’adresse de diffusion . Donc il ne reste aucune
adresse pour les machines (hôtes) .C’est pour cela qu’on doit utiliser au
moins 2 bits pour la partie hôte.

• Addressage sans classe ( CIDR ) - Supernetting :

• L'adressage sans classes (ou adressage CIDR) est le système de


gestion et d'allocation d'adresses IP le plus utilisé aujourd'hui. Le but de
ce nouveau système est :

• Économiser les adresses IP.

• Faciliter le routage.

• Avec le supernetting, la frontière de sous-réseau peut se déplacer vers


la gauche, dans la partie réseau de l’adresse IP.

• Adressage hiérarchique :
Le découpage d’un sous-réseau, qui revient à utiliser un masque de sous-
réseau de longueur variable VLSM (Variable Length Subnet Mask),
permet d’optimiser l’efficacité de l’adressage.

Principe 1 : Compter les hôtes de chaque sous-réseau. L’information la


plus importante est le nombre d’hôtes nécessaires aujourd’hui et dans le
futur. Compter toujours large

Principe 2 : Faire des simulations avant de commander une plage


d’adresses, faites une simulation en déroulant tout le plan d’adressage
avec une adresse fictive.

Pas satisfait ? augmenter ou diminuer le préfixe et recommencer jusqu’à


entière satisfaction.

Principe 3 : Prendre en compte des fusions futurs des sous-réseaux.

- Réserver une plage d’adresse pour les besoins futurs.

Principe 4 : Assigner les adresses globales en premier.

Principe 5 : Assigner ensuite les préfixes de sous réseaux de grande


taille. Il est toujours plus facile de caser un petit réseau.

Principe 6 : Assigner les préfixes des liens inter-routeurs ou lien WAN en


dernier.

Les liens WAN sont souvent des liens point à point, qui ont besoin de
deux adresses au plus, donc nous pouvons assigner un préfixe /30.

• Adresses spéciales :

• Les adresses 127.x.y.z sont réservées pour les tests de rebouclage.

• 255.255.255.255 est une adresse de diffusion sur le réseau local.

• 0.0.0.0 est une adresse interdite mais utilisée par certains routeurs (Ex :
Cisco) comme la route par défaut.
• Adresses IPv4 réservées :

• Adresses privées :

• Bien que la majorité des adresses d’hôte IPv4 soient des adresses
publiques utilisées dans les réseaux accessibles sur Internet, d’autres
blocs d’adresses sont attribués à des réseaux qui ne nécessitent pas
d’accès à Internet, ou uniquement un accès limité. Ces adresses sont
appelées des adresses privées. Par exemple les adresses IP au sein d’un
réseau local

• Voici ces plages d’adresses privées :

• 10.0.0.0 à 10.255.255.255 (10.0.0.0 /8)

• 172.16.0.0 à 172.31.255.255 (172.16.0.0 /12)

• 192.168.0.0 à 192.168.255.255 (192.168.0.0 /16)


En
règle générale, les hôtes qui ne nécessitent pas d’accès à Internet
peuvent utiliser les adresses privées sans limitation.

• Ces adresses privées ne sont pas routées sur Internet, ça veut dire

Adresse Adresse Protocole ... @IP source, @IP CRC


MAC MAC de de 192.168.0.1 destination, www.ensat.ac.ma soit
Box 192.168.0.1 couche 3 192.232.216.175

qu’on peut pas envoyer des requêtes ( http par exemple ) depuis les
machines ayant des adresses privées, car le serveur ne vas pas connaître
cette adresse IP. D’où l’utilisation de la fonction NAT (Network Address
Translation) pour la translation des paquets IP lors de la sortie sur
Internet.

• Donc la NAT permet à nos machines possédant des adresses privées


sur notre réseau local d'aller quand même sur Internet comme si elles
possédaient des adresses IP publiques.

• Fonctionnement de la NAT :

• Pour résoudre le problème que nous citons ci-dessus Il faut que


l’adresse IP source ( l’adresse de la machine qui veut envoyer le paquet
IP), qui est privée, puisse être remplacée par une adresse publique. C'est
là tout le principe de la NAT !

• La NAT dynamique associe n adresses privées à une seule adresse


publique. Ainsi, on peut connecter n machines en n'utilisant qu'une seule
adresse publique ( Qui est l’adresse IP publique de notre routeur
connecté à l’internet ). On économise donc des adresses.

• Regardons maintenant ce qui se passe dans le cas de la NAT lors de


l'envoi d'un paquet sur Internet.

Étape 1 : envoi sur le réseau local d'une requête au Site de l’ensat :

Trame Ethernet en sortie de la machine 192.168.0.1

Étape 2 : NAT du paquet par le routeur:

Adresse Adresse Protocole ... @IP source, @IP CRC


MAC MAC de 82.238.22.47 destination, www.siteduzero.fr soit
routeur box couche 3 217.70.184.38
sur
Internet

Trame Ethernet en sortie du routeur.

On voit bien ici que l'adresse IP source a été changée pour mettre celle du
routeur

Ainsi, notre paquet va aller jusqu'au Site du Zéro, et celui-ci va répondre à


l'adresse IP 82.238.22.47 qui est celle de notre routeur.

• Lors de l'établissement d'une connexion, que ce soit en TCP ou en UDP, un


port source est choisi par la machine qui émet la requête. Nous allons nous
servir de ce port pour identifier la machine qui a émis la requête à l'origine.
Sachant que ce port est choisi aléatoirement entre 1024 et 65535.

• Domaine de collision :

Regarder cette vidéo pour bien comprendre les domaines de collision :

https://youtu.be/_c1gqcr6Lcs

• Domaine de diffusion :

Regarder cette vidéo pour bien comprendre les domaines de diffusion :

https://youtu.be/s3pq0bdZMz8

• Passerelle par défaut :


• Au sein d’un réseau ou d’un sous-réseau, les hôtes communiquent entre
eux sans nécessiter de périphérique intermédiaire de couche réseau.
Quand un hôte doit communiquer avec un autre réseau, un périphérique
intermédiaire, ou routeur, sert de passerelle avec l’autre réseau.

• Table de routage :

• Chaque routeur possède une table dans laquelle est indiqué le prochain
routeur auquel il doit envoyer le datagramme pour que celui-ci arrive à sa
destination.

• La table de routage va donc lister les routeurs auxquels je peux envoyer


mon datagramme pour joindre une destination donnée.

Cette table est très importante et s'appelle la table de routage !

• Voici un exemple de table de routage :

Table de routage

Réseau à joindre passerelle


192.168.1.0/24 10.0.0.253

192.168.122.0/24 10.0.0.45

192.168.8.0/24 10.0.0.254

• Les tables de routage posséderont donc toujours ces informations


mais, selon les systèmes d'exploitation, le format de la table pourra être
un peu plus compliqué et comporter des colonnes supplémentaires.

• Protocoles de la couche réseau :

• Protocole ICMP :

• Le protocole ICMP est un protocole de la couche réseau. Il est


considéré comme faisant partie de l'ensemble des protocoles
TCP/IP et il nous permet de comprendre rapidement d'où peut venir
un problème réseau, et de nous donner des outils pour investiguer
un problème réseau. Il y a globalement deux rôles principaux pour
le protocole ICMP :

 ICMP sert à indiquer automatiquement des erreurs quand elles


surviennent (les problèmes de congestion, de route introuvable,
etc...) .
 ICMP peut fournir des outils pour étudier un problème réseau.

• Les messages ICMP sont transportés sur le réseau sous forme de


Datagramme, comme n'importe quelle donnée. Ainsi, les messages
d'erreurs peuvent eux-mêmes être sujet aux erreurs. Toutefois, en
cas d'erreur sur un message ICMP, aucune trame d'erreur n'est
délivrée pour éviter un effet "boule de neige".

• Les messages ICMP sont transportés dans des paquets IP


(champ protocole = 1)

• Format message ICMP :


• Il existe 15 valeurs différentes pour le champ type, lesquelles
identifient les messages ICMP. Certains de ces messages utilisent
différentes valeurs du champ code pour spécifier certaines
conditions.

• Le champ checksum couvre la totalité du message ICMP, il est


obligatoire.

• Les 3 premiers champs sont commun à tous les messages.

• Les messages ICMP sont, soit des messages de requêtes


(Requête/Réponse), soit des messages d'erreurs.

• Protocole ARP :
• Si on veut envoyer une trame à une machine que nous
connaissons juste l’adresse IP, Nous pouvons envoyer un message
à l'adresse de broadcast en demandant "est-ce que l’adresse IP
xxxx.xxxx…. peut m'envoyer son adresse MAC ?"

• Grâce à l'adresse de broadcast ce message sera envoyé à tout le


monde, et donc l’adresse IP qui nous intéresse le recevra et pourra
nous renvoyer son adresse MAC.

• C'est ce que l'on appelle une requête ARP ou aussi un broadcast


ARP.

• ARP est donc un protocole qui permet d'associer une adresse


MAC de couche 2 à une adresse IP de couche 3.

• Pour éviter d'avoir à renvoyer en permanence des broadcasts ARP


à chaque fois que l'on veut envoyer une information à une machine,
nous allons utiliser une table qui va garder les associations
adresses IP <-> Adresses MAC pendant un court moment. Donc les
informations contenues dans la table ARP ont une durée de vie
limitée.

• Ainsi, si j'envoie un paquet à ma passerelle, je noterai son adresse


MAC dans ma table ARP et la prochaine fois que je voudrai lui
parler, je n'aurai plus à envoyer de broadcast sur le réseau.

• La table ARP va donc associer adresse IP et adresse MAC


correspondante.

• Voici un exemple d’une table ARP sous LINUX :


• RARP permet à partir d'une adresse matérielle de déterminer
l'adresse IP d'une machine. En résumé, RARP fait l'inverse de ARP.

A la différence de ARP, ce protocole est statique. Il faut donc que la


table de correspondance (Table RARP) soit toujours à jour pour
permettre la connexion de nouvelles cartes réseau.

• Exemple :
• Nous sommes la machine 192.168.0.1 et voulons envoyer un message
à la machine 192.168.1.2.

• Nous savons que nous voulons joindre d'abord le routeur 192.168.0.254


(passerelle par défaut), mais ne connaissons pas son adresse MAC.

- C'est là que le protocole ARP entre en jeu :

• on regarde d'abord dans la table ARP locale si on possède l'association


entre l'adresse IP 192.168.0.254 et son adresse MAC.

• si on la possède, on envoie l'information et c'est terminé.

• sinon, on envoie un broadcast ARP sur le réseau.

• la machine 192.168.0.254 va nous répondre avec son adresse MAC .

• nous allons noter cette adresse MAC dans notre table ARP.

• nous allons enfin pouvoir envoyer notre information.