TCP/IP

Si vous vous baladez sur Internet, vous avez dû, à un moment ou à un autre, entendre parler de TCP/IP. Qu’est-ce que c’est que cette bête ?

Cette page est un peu longue, mais une fois terminée, vous aurez compris ce que sont IP, UDP, TCP et à quoi ils servent.

TCP/IP est un protocole, c’est à dire des règles de communication.

IP signifie Internet Protocol : littéralement « le protocole d’Internet ». C’est le principal protocole utilisé sur Internet. Internet signifie Inter-networks, c’est à dire « entre réseaux ». Internet est l’interconnexion des réseaux de la planète. Le protocole IP permet aux ordinateurs reliés à ces réseaux de dialoguer entre eux.

Faisons un parallèle avec la poste. Quand vous voulez envoyer une lettre par la poste:
  • vous placez votre lettre dans une enveloppe,
  • sur le recto vous inscrivez l’adresse du destinataire,
  • au dos, vous écrivez l’adresse de l’expéditeur (la votre).

(GIF 11 ko)

Ce sont des règles utilisées par tout le monde. C’est un protocole.

Sur Internet, c’est à peu près la même chose: chaque message (chaque petit paquet de données) est enveloppé par IP qui y ajoute différentes informations:

  • l’adresse de l’expéditeur (votre adresse IP),
  • l’adresse IP du destinataire,
  • différentes données supplémentaires (qui permettent de bien contrôler l’acheminement du message).
(GIF 8 ko)
L’adresse IP est une adresse unique attribuée à chaque ordinateur sur Internet (c’est-à-dire qu’il n’existe pas sur Internet deux ordinateurs ayant la même adresse IP).

De même, l’adresse postale (nom, prénom, rue, numéro, code postal et ville) permet d’identifier de manière unique un destinataire.

Tout comme avec l’adresse postale, il faut connaître au préalable l’adresse IP de l’ordinateur avec lequel vous voulez communiquer.

L’adresse IP se présente le plus souvent sous forme de 4 nombres (entre 0 et 255) séparés par des points. Par exemple: 204.35.129.3

Le routage IP

Pour envoyer votre lettre, vous la postez dans la boîte aux lettres la plus proche. Ce courrier est relevé, envoyé au centre de tri de votre ville, puis transmis à d’autres centres de tri jusqu’à atteindre le destinataire.

(GIF 7 ko)

C’est la même chose sur Internet !

Vous déposez le paquet IP sur l’ordinateur le plus proche (celui de votre fournisseur d’accès en général). Le paquet IP va transiter d’ordinateur en ordinateur jusqu’à atteindre le destinataire.

(GIF 7 ko)

Les ports

Bien !

Avec IP, nous avons de quoi envoyer et recevoir des paquets de données d’un ordinateur à l’autre.

Imaginons maintenant que nous ayons plusieurs programmes qui fonctionnent en même temps sur le même ordinateur: un navigateur, un logiciel d’email et un logiciel pour écouter la radio sur Internet.

Si l’ordinateur reçoit un paquet IP, comment savoir à quel logiciel donner ce paquet IP ?

(GIF 12 ko) Comment savoir à quel logiciel est destiné ce paquet IP ? Le navigateur, le logiciel de radio ou le logiciel d’email ?

C’est un problème sérieux !

On pourrait attribuer un numéro unique à chaque logiciel dans l’ordinateur.

Il suffirait alors de mettre ce numéro dans chaque paquet IP pour pouvoir s’adresser à tel ou tel logiciel.

On appelle ces numéros des ports (pensez aux « portes » d’une maison: à une adresse donnée, on va pouvoir déposer les lettres à différentes portes à cette adresse).

(GIF 11 ko)

Avec la poste, à une même adresse, on peut s’adresser à différentes personnes en indiquant un numéro de porte.

(GIF 16 ko)

De même, à une même adresse IP, on peut s’adresser à différents logiciels en précisant le numéro de port (ici: 3).

Ainsi, l’adresse IP permet de s’adresser à un ordinateur donné, et le numéro de port permet de s’adresser à un logiciel particulier sur cet ordinateur.


« Mais TCP/IP ?« . On y vient, on y vient… patience.

UDP/IP est un protocole qui permet justement d’utiliser des numéros de ports en plus des adresses IP (On l’appelle UDP/IP car il fonctionne au dessus d’IP).

IP s’occupe des adresses IP et UDP s’occupe des ports.

Avec le protocole IP on pouvait envoyer des données d’un ordinateur A à un ordinateur B.

(GIF 2 ko)

Avec UDP/IP, on peut être plus précis: on envoie des données d’une application x sur l’ordinateur A vers une application y sur l’ordinateur B.

Par exemple, votre navigateur peut envoyer un message à un serveur HTTP (un serveur Web):

(GIF 24 ko)

  • Chaque couche (UDP et IP) va ajouter ses informations. Les informations de IP vont permettre d’acheminer le paquet à destination du bon ordinateur. Une fois arrivé à l’ordinateur en question, la couche UDP va délivrer le paquet au bon logiciel (ici: au serveur HTTP).
  • Les deux logiciels se contentent d’émettre et de recevoir des données (« Hello !« ). Les couches UDP et IP en dessous s’occupent de tout.

Ce couple (199.7.55.3:1057, 204.66.224.82:80) est appelé un socket. Un socket identifie de façon unique une communication entre deux logiciels.

TCP

Bon… on peut maintenant faire communiquer 2 logiciels situés sur des ordinateurs différents.

Mais il y a encore de petits problèmes:

  • Quand vous envoyez un paquet IP sur Internet, il passe par des dizaines d’ordinateurs. Et il arrive que des paquets IP se perdent ou arrivent en double exemplaire. Ça peut être gênant : imaginez un ordre de débit sur votre compte bancaire arrivant deux fois ou un ordre de crédit perdu !
  • Même si le paquet arrive à destination, rien ne vous permet de savoir si le paquet est bien arrivé (aucun accusé de réception).
  • La taille des paquets IP est limitée (environ 1500 octets). Comment faire pour envoyer la photo JPEG du petit dernier qui fait 62000 octets ? (la photo… pas le bébé).

C’est pour cela qu’a été conçu TCP.

TCP est capable:

  • de faire tout ce que UDP sait faire (ports).
  • de vérifier que le destinataire est prêt à recevoir les données.
  • de découper les gros paquets de données en paquets plus petits pour que IP les accepte
  • de numéroter les paquets, et à la réception de vérifier qu’ils sont tous bien arrivés, de redemander les paquets manquants et de les réassembler avant de les donner aux logiciels. Des accusés de réception sont envoyés pour prévenir l’expéditeur que les données sont bien arrivées.

Par exemple, pour envoyer le message « Salut, comment ça va ?« , voilà ce que fait TCP (Chaque flèche représente 1 paquet IP):

(GIF 18 ko)

A l’arrivée, sur l’ordinateur 204.66.224.82, la couche TCP reconstitue le message « Salut, comment ça va ? » à partir des 3 paquets IP reçus et le donne au logiciel qui est sur le port 80.

Pour conclure TCP/IP

Pas mal tout ça, hein ?

Avec TCP/IP, on peut maintenant communiquer de façon fiable entre logiciels situés sur des ordinateurs différents.

TCP/IP est utilisé pour des tas de choses:

  • Dans votre navigateur, le protocole HTTP utilise le protocole TCP/IP pour envoyer et recevoir des pages HTML, des images GIF, JPG et toutes sortes d’autres données.
  • FTP est un protocole qui permet d’envoyer et recevoir des fichiers. Il utilise également TCP/IP.
  • Votre logiciel de courrier électronique utilise les protocoles SMTP et POP3 pour envoyer et recevoir des emails. SMTP et POP3 utilisent eux aussi TCP/IP.
  • Votre navigateur (et d’autres logiciels) utilisent le protocole DNS pour trouver l’adresse IP d’un ordinateur à partir de son nom (par exemple, de trouver 216.32.74.52 à partir de ‘www.yahoo.com’). Le protocole DNS utilise UDP/IP et TCP/IP en fonction de ses besoins.

Il existe ainsi des centaines de protocoles différents qui utilisent TCP/IP ou UDP/IP.

L’avantage de TCP sur UDP est que TCP permet des communications fiables. L’inconvénient est qu’il nécessite une négociation (« Bonjour, prêt à communiquer ? » etc.), ce qui prend du temps.

Sources: https://bit.ly/33PZPfD

Recommended Posts

No comment yet, add your voice below!


Add a Comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *