C'est quoi TCP/IP ?
À quoi ça sert ?
Comment ça marche ?


Note aux spécialistes de TCP/IP:
Par pitié ne m'inondez pas de mails pour me dire "C'est faux !" ou "C'est pas vrai dans tel cas !". JE SAIS. Je ne suis pas entré dans tous les cas particuliers pour ne pas embrouiller les explications. J'applique le KISS (Keep It Simple Stupid !).
Exemple: quand je dis que chaque ordinateur est identifié de façon unique par une adresse IP, je ne veux pas partir dans les cas particuliers du NAT, des proxy, DHCP et autres.
Merci.

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

Commençons par IP (nous verrons TCP par la suite).

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:

(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:

(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)

 

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:

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

TCP est capable:

 

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:

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.

Si vous êtes curieux et voulez voir tous les paquets IP échangés et leur contenu, vous pouvez utiliser l'excellent logiciel Wireshark ( https://www.wireshark.org/ ). Ce logiciel gratuit capture et décortique tout ce qui transite par le réseau. C'est très instructif.

 

Pour poursuivre:

Le contenu de cette page est placé sous les termes de la licence suivante : CC Attribution-Noncommercial 4.0 International
h t t p : / / s e b s a u v a g e . n e t