• Aucun résultat trouvé

Protocoles de communication dans un réseau

N/A
N/A
Protected

Academic year: 2022

Partager "Protocoles de communication dans un réseau"

Copied!
6
0
0

Texte intégral

(1)

Protocoles de communication dans un réseau

1. Plusieurs niveaux d’interaction, modèle en couche

Les échanges entre deux machines s’effectuent à plusieurs niveaux d’interaction, sur plusieurs couches.

Exemple d’une requête HTTP dans le modèle TCP/IP

• Couche application, que l’on peut aussi découper en plusieurs niveaux : o l’utilisateur clique sur un lien, le serveur renvoie une page web

o le client envoie un message contenant une URL, le serveur renvoie un message contenant un fichier HTML

• Couche transport : le message du client est découpé en paquets

• Couche internet : les différents routeurs du réseau les acheminent vers le serveur (ou le client au retour)

• Couche accès réseau : pour envoyer les paquets, chaque bit (0 ou 1) est transmis comme un signal électrique sur une ligne.

Chaque niveau utilise les fonctions du niveau inférieur.

Chaque couche dispose de ses protocoles de communication.

Couche du

modèle TCP/IP Principaux protocoles de communication Niveau Application HTTP FTP SMTP POP3 IMAP DNS Telnet SSH … Application

Transport TCP UDP …

Système d’exploitation

Internet IP ICMP ARP DHCP …

Accès réseau ETHERNET WIFI … Carte réseau

Dans le modèle OSI, les échanges sont découpés en sept couches.

https://fr.wikipedia.org/wiki/Mod%C3%A8le_OSI

2. Découpage des données en paquets et encapsulation

Les données à transmettre sont découpées en paquets qui sont encapsulées suivant les différents protocoles.

3. Principaux protocoles de communication

Un protocole de communication définit plusieurs règles pour communiquer sur une même couche d'abstraction entre deux machines.

Application Données

Transport En-tête TCP Données Segment TCP

Internet En-tête IP En-tête TCP Données Datagramme IP Accès réseau En-tête

Ethernet En-tête IP En-tête TCP Données En-queue

Ethernet Trame Ethernet

(2)

3.1. Couches transport et internet

3.1.1. IP - Internet Protocol

Le protocole IP assure l'acheminement des paquets (datagrammes) à destination rapidement sans se préoccuper de leur contenu et sans aucune garantie de résultat. C’est un protocole non fiable : les paquets peuvent être corrompus, perdus, dupliqués, désordonnées … Les paquets peuvent passer par des chemins différents, chaque routeur décidant du chemin à suivre en prenant en compte l’état du réseau en temps réel.

3.1.2. TCP – Transmission Control Protocol

Le protocole TCP complète le protocole IP en assurant la fiabilité du transport des paquets. Il est beaucoup plus complexe qu’IP. Il initialise et met fin à la connexion, et s’assure de l’intégrité des paquets, renvoie les paquets perdus ou corrompus et les remet dans l’ordre d’émission. Il gère aussi la congestion réseau, en freinant les gros serveurs si les petits saturent. TCP effectue son traitement aux extrémités du trajet.

TCP envoie une salve de paquets et les garde dans une petite mémoire. Il attend ensuite les acquittements (accusés de réception). S’il ne reçoit pas de réponse au bout de quelques secondes, il renvoie le paquet. Dès qu’il reçoit un acquittement (du type « tous les paquets jusqu’au 5 sont bien arrivés »), il libère la place correspondante dans la mémoire pour pouvoir y mettre des nouveaux paquets qu’il envoie.

3.1.3. UDP – User Datagram Protocol

UDP est un protocole cousin de TCP beaucoup plus simple. Il ne se soucie pas que le paquet arrive bien, mais est beaucoup plus réactif. On l’utilise par exemple dans le streaming ou les jeux vidéo. Une erreur de transmission pourra causer un petit défaut d’affichage mais on privilégie la réactivité.

3.1.4. Autres protocoles

ICMP, Internet Control Message Protocol, accompagne IP pour transporter des messages de contrôle et d’erreur lorsqu’un hôte est inaccessible par exemple.

DHCP, Dynamic Host Configuration Protocol, permet à un ordinateur qui se connecte sur un réseau d’obtenir automatiquement sa configuration, principalement son adresse IP.

ARP, Address Resolution Protocol, fait le lien entre l’adresse IP et l’adresse MAC d’une machine. Dans un réseau, les machines sont identifiées par leurs adresses physique MAC unique au monde. Lors d’un

changement de carte réseau, l’adresse MAC de la machine change mais pas son adresse IP.

3.2. Couches accès réseau

Ethernet est le protocole le plus utilisé dans les réseaux filaires (câbles de cuivre ou fibres optiques).

Le Wi-Fi est un protocole utilisé dans les réseaux sans fils. Les protocoles Ethernet et Wi-Fi sont définis par les normes IEEE 802 (Institute of Electrical and Electronics Engineers).

3.3. Couches application

DNS, Domain Name System, est le protocole utilisé pour traduire les noms de domaine internet en adresse IP. Ainsi, nslookup www.qwant.com renvoie l’adresse IP 194.187.168.99. L’adresse renvoyée ne fonctionne pas toujours car elle peut correspondre à une machine faisant tourner plusieurs machines virtuelles.

Le protocole DNS n’a jamais été modifié depuis sa création en 1983, ce qui pose des problèmes de sécurité.

On essaie actuellement de le mettre à jour. Il y a 13 serveurs DNS dans le monde. Les requêtes DNS sont transmises par UDP, ce qui nécessite 2 paquets par requête. TCP nécessiterait 4 paquets (ouverture et fermeture en plus de la requête et la réponse).

IMAP, Interactive Message Access Protocol et POP3, Post Office Protocol 3, sont les protocoles

(3)

FTP, File Transfert Protocol est utilisé pour le transfert de fichier.

Les protocoles Telnet et SSH gèrent l’accès à une machine distante.

HTTP, HyperText Transfert Protocol, ou HTTPS pour la version sécurisée, est le protocole de transfert des pages HTML permettant de naviguer sur le Web. Le client envoie la requête HTTP au serveur. Le serveur renvoie la réponse, par exemple une page HTML.

Les principales requêtes HTTP sont GET pour demander une ressource au serveur (une page web, une image…) et POST pour ajouter une ressource au serveur (un message dans un forum per exemple).

Exemple d’échanges

On entre un nom de domaine dans un navigateur. Le protocole DNS demande et récupère l’adresse IP via UDP (deux paquets).

TCP initialise ensuite la connexion entre le client et le serveur via trois paquets (requête SYN pour la demande de synchronisation, acquittement du serveur SYN-ACK, puis du client ACK).

HTTP envoie la requête GET via TCP (deux paquets, envoi, acquittement), puis deux paquets HTTP contenant la page HTML envoyée par le serveur (réception, acquittement).

Toute ressource qui n’est pas contenue dans la page (image, feuille de style, …) requiert une requête GET supplémentaire (et donc au moins quatre paquets).

Les trois dernières requêtes FIN, FIN-ACK, ACK ferment la connexion TCP.

4. Adresses IP, ports et sockets

IPv4/IPv6

Le protocole IPv4 utilisent des adresses 32 bits et il n’y a plus assez d’adresses possibles. Il est remplacé par IPv6, sur 128 bits. Les machines intérieures à notre réseau sont toutes visibles de l’extérieur en IPv6 alors qu’en IPv4, elles sont cachées derrière la box.

ip addr sous Linux ou ipconfig sous Windows renvoie les deux adresses IPv4 et IPv6. L’IPv6 a deux adresses, une publique et une pour communiquer avec les membres du réseau.

Ports et sockets

L’adresse de transport est constituée de l’adresse IP et du numéro de port sur 16 bits.

Les ports permettent un multiplexage de connexions (faire passer plusieurs connexions par le même support de transmission). Les ports inférieurs à 1024 sont appelés ports réservés. Parmi les plus utilisés, on trouve :

• 21 → FTP

• 25 → SMTP

• 80 → HTTP

• 110 → POP

• 143 → IMAP

• 443 → HTTPS

Une connexion client/serveur est identifiée par un quadruplé unique pour chaque connexion appelé socket : (ip_src, port_src, ip_dest, port_dest)

Le terme socket désigne aussi les bibliothèques logicielles gérant l’accès au réseau (import socket en Python).

Firefox a un port par onglet. Ainsi, si on lance plusieurs connexions au même site, le site utilise toujours le même port, mais chaque connexion est identifiée de manière unique puisqu’on a un port différent par onglet.

La commande netstat renvoie la liste des connexions actives sous Windows et sous Linux.

(4)

5. Protocole du bit alterné

Lors des transferts de trames Ethernet (couche accès réseau), l'émetteur envoie une trame et attend

l’acquittement du récepteur avant d'envoyer la suivante. Si l'émetteur ne reçoit pas un acquittement passé un certain délai (timeout), il considère la trame perdue et la renvoie. Ce système crée des doublons.

Le protocole du bit alterné consiste à numéroter les trames 0 ou 1, en alternance. Le récepteur rejette les trames qui ne correspondent pas au numéro attendu. Ainsi, si un doublon arrive, il va être rejeté.

(5)

Manipulations Commmandes

ipaddr (ipconfig sur windows)

netstat (apt-get install net-tools si besoin) netstat -tnap : liste des connexions tcp/ip

QEMUNET (à installer) cd /net/ens/qemunet

$ ./qemunet.sh -s demo/xchain.tgz

https://pixees.fr/informatiquelycee/n_site/index.html

Scapy

Application Python3 avec les fonctions réseaux. On peut créer des paquets TCP, IP, les encapsuler, … mais il faut les droits administrateurs donc cela doit être fait sur machine virtuelle.

A = ICMP() B = IP() A.show()

Wireshark

Wireshark permet de capturer et visualiser le contenu des paquets. On peut vérifier les requêtes décrites lors d’un échange via le protocole HTTP.

Click droit Suivre Flux TCP ou Flux HTTP pour voir tout le contenu transmis (voir la page web).

File → export object → HTTP permet de récupérer les fichiers transmis par HTTP (images...)

On va sur http://perdu.com/ . Le résultat de la requête est le fichier http.pcap, capturé avec wireshark, qui récupère l’intégralité du trafic réseau lors de la requête http://perdu.com .

On tape www.perdu.com , le protocole DNS fait la correspondance entre le nom de domaine et l’adresse IP.

Ici, les requêtes DNS sont dédoublées pour faire la différence entre l’IPv4 et l’IPv6.

Ensuite, ce sont les requêtes HTTP et TCP …

URL

Une URL est sous la forme protocole (HTTP) puis:// puis chemin.

Quand on ne met pas le chemin, on reçoit ce qui est à la racine du serveur (index.html en général).

Protocole peut être file pour un fichier sur le disque, mailto, ftp, …

(6)

Bibliothèque socket en Python

SOCK_STREAM signifie qu’on fait du TCP.

La ligne set.sockopt… sert à éviter que deux programmes utilisent la même socket.

Dans le cas contraire, si un programme crashe, on doit attendre trente secondes que le système libère la socket pour le relancer.

accept() est bloquant tant qu’aucun client ne se connecte. Dès qu’un client se connecte, il lui donne la main.

listen(0) signifie qu’on prend un client à la fois (listen(1) deux clients...).

L’argument permet de spécifier le nombre de clients nécessaires pour accepter la connexion.

Références

Documents relatifs

- pour le n°1, réagir vite pour ne pas se faire attraper lorsqu’une souris vient se reposer, - prendre des informations efficaces sur la position du chat/de la

• Protocole TCP (Transmission Control Protocol) : régit les échanges de paquets de données entre des machines connectées sur internet en veillant à ce que tous les

Préciser la date retournée par le serveur lors de la réponse HTTP4. Quelle partie de la réponse du serveur s’affiche sur l’écran

!  Cependant, dans le seul cas d ’ un enseignement gratuit, une par=cipa=on aux frais de reproduc=on pourra être demandée, mais elle ne pourra être supérieure au prix du papier

Elle apprend cependant les résultats positifs de l’expertise du docteur Béroud qui, utilisant les méthodes de Marsh et Cribier, a mis en évidence 19,54 mg d’arsenic dans les

Je les répartis en 100 sous-ensembles disjoints, en sorte de minimiser le nombre total de triangles que je peux former avec trois points du même sous-ensemble (ces triangles

Je les répartis en 100 sous-ensembles disjoints, en sorte de minimiser le nombre total de triangles que je peux former avec trois points du même sous-ensemble (ces triangles sont

Je les répartis en 100 sous-ensembles disjoints, en sorte de minimiser le nombre total de triangles que je peux former avec trois points du même sous-ensemble (ces