Médaille
N°1 pour apprendre & réviser du collège au lycée.
Marianne

Conforme au programme
officiel 2018 - 2019

Routage (TCP)

Déjà plus de

1 million

d'inscrits !

Ce cours est en cours de création par nos équipes et il sera prêt pour la rentrée 2019 💪

Introduction

Utilisé avec le protocole IP (dont nous avons vu qu’il était non fiable), le protocole TCP (Transmission Control Protocol) est chargé de s’assurer de la fiabilité des communications sur le réseau.

Nous allons voir dans ce cours les bases du fonctionnement de ce protocole et ses différentes fonctionnalités.
Puis, dans la troisième partie, nous parlerons rapidement de cybersécurité en présentant les attaques en déni de service (DoS et DDoS).

bannière rappel

Rappel

Le protocole TCP est un protocole de la couche transport. Il se charge de prendre les données qu’une application veut transmettre à une autre, les segmente en paquets, leur ajoute un en-tête, puis confie au protocole IP le soin de les faire parvenir à leur destinataire.

Garantie de fiabilité

bannière à retenir

À retenir

Nous l’avons vu, le protocole IP n’est pas fiable : il ne garantit pas que les paquets envoyés arriveront réellement à leur destinataire.

  • Le protocole TCP se charge de garantir cette fiabilité.

Acquittements de bout en bout

Le protocole TCP a été créé en s’inspirant du protocole de communication du réseau français Cyclades.

  • L’innovation de Cyclades, qui a été reprise par TCP, était de proposer un modèle de réseau qui fonctionnait sur le principe de bout en bout pour assurer la fiabilité de la communication.
bannière definition

Définition

Principe de bout en bout :

Le principe de bout en bout (end-to-end principle) est un principe de communication qui repose sur l’émetteur et le récepteur, et non sur les intermédiaires, pour assurer les spécificités de la communication.

En pratique, cela signifie que c’est à l’émission et à la réception que sont gérées les questions de fiabilité, sans supposer que les intermédiaires seront fiables.

Le protocole TCP dispose d’un système d’accusés de réception – on parle d’acquittements (ou ACK, « acknowledgement »).

  • À chaque paquet envoyé, l’émetteur attend l’accusé de réception, sans lequel il renvoie le paquet au bout d’un certain temps.

Le principe de bout en bout est indispensable sur Internet qui, comme on l’a vu, est un agrégat de réseaux physiques différents, auxquels il serait dangereux de faire confiance pour la fiabilité des communications.

Un protocole connecté (SYN)

Pour ne pas envoyer sans fin des paquets sur le réseau, et pour un certain nombre d’autres raisons, le protocole TCP fonctionne en mode connecté.

bannière à retenir

À retenir

Le protocole TCP établit une connexion entre deux ordinateurs.

bannière definition

Définition

Client et serveur :

On appelle client celui qui initie la connexion, l’autre est le serveur.

  • Le premier message envoyé par le protocole est toujours une demande de synchronisation (SYN).
  • Celui qui la reçoit renvoie en retour une demande de confirmation (SYN-ACK).
  • Cette demande sera elle-même confirmée en retour (ACK).
  • Ce procédé, appelé « poignée de main à trois temps » (« three-way handshake »), permet aux ordinateurs connectés de s’échanger des informations pour le bon déroulé de la connexion.

Img-01 « Poignée de main à trois temps »

Ports et multiplexage

bannière definition

Définition

Le multiplexage est la possibilité pour un appareil d’être connecté à plusieurs canaux de communication en même temps.

  • Dans le modèle TCP/IP, le multiplexage est géré par un système de ports, qui sont les « portes d’entrée réseau » d’un ordinateur.

En pratique, les paquets adressés à un ordinateur disposent d’un numéro de port, présent dans l’en-tête TCP du paquet.

bannière à retenir

À retenir

Un port ouvert est en attente de recevoir des paquets.

Pour ouvrir une connexion TCP :

  • le client ouvre un de ses ports pour être celui de la connexion et l’indique dans le SYN ;
  • le serveur doit avoir un port déjà ouvert, en attente de connexion.
  • Le port du client est libéré quand la connexion se termine par une autre poignée de main entre le client et le serveur.
bannière à retenir

À retenir

Une connexion TCP est donc identifiée par quatre éléments : l’adresse IP et le port du serveur, l’adresse IP et le port du client.

bannière definition

Définition

Socket :

On appelle socket un des côtés d’une connection TCP.

Certains ports ont été définis par l’ICANN comme des ports bien connus dédiés à certains protocoles de la couche application. Les serveurs ouvrant ces ports s’attendent à des données utilisant ces protocoles (encapsulées dans le protocole TCP puis IP), ainsi les clients savent à quel port demander l’ouverture d’une connexion.

bannière exemple

Exemple

Le port 8080 est dédié au protocole HTTP, le port 2121 est dédié à FTP, etc.

  • Les ports qui ne sont pas définis par l’ICANN sont appelés ports dynamiques.
bannière exemple

Exemple

Illustrons les étapes d’une connexion TCP par un exemple.

  • Une utilisatrice d’Internet veut consulter ses mails.

Son appareil (le client) a l’adresse 10.92.2.XXX10.92.2.\text{XXX}, et son serveur mail a comme adresse 121.134.18.Y121.134.18.\text{Y}. L’application de messagerie utilise le protocole IMAP, auquel est dédié le port 143143. L’appareil choisit un de ses ports dynamiques, disons le port 43904390.

  • Le client va donc envoyer un message SYN avec le protocole TCP, indiquant son adresse et son port au serveur : 10.92.2.XXX10.92.2.\text{XXX}:43904390 pour 121.134.18.Y121.134.18.\text{Y}:143143.

Img-02

  • Si le serveur est prêt à établir la connexion, il renvoie un SYN-ACK.

Img-03

  • Le client signale avoir bien reçu le SYN-ACK. La communication est établie.

Img-04

Fonctionnalités et limite de TCP

TCP a d’autres fonctionnalités qui fonctionnent aussi sur le principe de bout en bout.

Ordonnancement

Le protocole IP fonctionnant sur un principe de sauts successifs, les paquets d’un même message peuvent emprunter des chemins différents pour arriver au destinataire.

  • Il n’y a donc aucune garantie que les paquets arriveront dans l’ordre dans lequel ils sont partis.
bannière à retenir

À retenir

Le protocole TCP stocke les paquets reçus dans un tampon de réception pour les remettre dans l’ordre avant de les confier à la couche application.

Gestion du flux

bannière definition

Définition

Congestion :

Une congestion du réseau arrive quand les ordinateurs envoient plus de paquets que le réseau n’est capable d’en transmettre. Cela pose de nombreux problèmes de perte de paquets et de ralentissement.

bannière à retenir

À retenir

TCP dispose d’un système de gestion du flux de données.
Des algorithmes sophistiqués évaluent l’état de la connexion et décident de la vitesse à laquelle envoyer ou renvoyer les paquets pour éviter :

  • les congestions du réseau ;
  • de surcharger le tampon de réception de l’autre ordinateur.

Une limite : absence de garantie temporelle

bannière à retenir

À retenir

Le protocole TCP garantit qu’un paquet finira toujours par arriver, sauf en cas de panne matérielle rendant la communication impossible. En revanche, il ne garantit pas la vitesse à laquelle le paquet finira par arriver.

Avant la démocratisation du streaming, les fichiers audio et vidéo devaient être téléchargés entièrement avant d’être lus.

bannière definition

Définition

Streaming :

Le streaming ou lecture en continu est une pratique de communication qui consiste à lire un contenu audiovisuel en même temps que celui-ci est diffusé.

Avec l’arrivée des plateformes de streaming comme YouTube et Dailymotion, puis Netflix (vidéo), Deezer et Spotify (musique) dans les années 2000, le streaming s’est imposé comme le mode principal de consommation de contenus audiovisuels sur Internet.

  • Or, le protocole TCP est très pratique pour la plupart des usages d’Internet, mais pas pour le streaming ni pour des discussion en téléconférence.

En effet, dans ces deux cas, la vitesse de la transmission d’information est plus importante que l’assurance d’avoir bien reçu tous les paquets.

Attaques en déni de service

Pour conclure ce cours, nous allons parler de cybersécurité et donner un exemple d’attaque informatique qui utilise les propriétés du protocole TCP : l’attaque SYN-flood, qui fait partie de la catégorie des attaques en déni de service.

Attaques de type SYN-flood

bannière definition

Définition

Attaque en déni de service :

Une attaque en déni de service (ou attaque DoS, pour Denial of Service) est une attaque informatique qui vise à saturer un service de requêtes pour le rendre inopérant.

bannière attention

Attention

Toutes les attaques DoS n’utilisent pas les propriétés de TCP. Certaines visent les serveurs DNS, par exemple.

bannière definition

Définition

Attaque SYN-flood :

Le SYN-flood est un type d’attaque informatique qui consiste à envoyer de manière répéter des SYN (des demandes d’ouverture de connexion TCP) à un serveur.

Le but est que le serveur ouvre tellement de semi-connections en attente du troisième message de la poignée de mains qu’il consomme toutes ses ressources et ne puisse plus en allouer aux utilisateurs qui voudraient légitimement se connecter.

Ce type d’attaque était très populaire dans les années 1990, mais de nombreuses contre-mesures existent aujourd’hui et de nombreux serveurs sont sécurisés contre ce type d’attaques.
Une des précautions que l’on peut prendre, par exemple, est le limiter le nombre de SYN que le serveur peut accepter venant de la même adresse IP.

Machine zombie

bannière definition

Définition

Attaque distribuée en déni de service :

Une attaque distribuée en déni de service (DDoS) est une attaque DoS provenant de plusieurs sources qui se coordonnent pour attaquer la cible en même temps.

La plupart des attaques DDoS sont le fruit d’un seul attaquant qui utilise plusieurs ordinateurs sous son contrôle, ou en partie sous son contrôle.

bannière definition

Définition

Machine zombie :

Une machine zombie est un appareil informatique contrôlé par un cybercriminel à l’insu du propriétaire de la machine grâce à un virus informatique.

Certaines attaques DDOS ont ainsi vu un serveur être saturé de requêtes par plusieurs dizaines de milliers de machines zombies.

bannière attention

Attention

Souvent, le possesseur d’une machine zombie ne se rend compte de rien, sinon d’une baisse des performances de sa machine, car le virus ne détourne qu’une partie des capacités de la machine au bénéfice du cybercriminel.

Une exception à cette règle du cybercriminel isolé utilisant des machines zombies est la campagne d’attaques DDoS menées par les activistes d’Anonymous entre 2008 et 2012 : ces campagnes ont vu des milliers de sympathisants se coordonner pour participer volontairement à des attaques DDoS avec leurs ordinateurs.

Conclusion

Nous avons vu dans le cours précédent comment le protocole IP permettait d’envoyer un message à une adresse donnée.

Dans ce cours, nous avons vu que le protocole TCP permettait d’établir des connections fiables en s’appuyant sur IP.

Il nous reste à voir comment des applications peuvent se reposer sur TCP/IP pour proposer aux utilisateurs d’Internet les différents services que nous connaissons (mail, web, transfert de fichiers, streaming…).