TECHNICK.FR

 

Comprendre le protocole TCP/IP

 

 

Introduction

 

NOTE AUX SPECIALISTES DU TCP/IP

Par pitié, cessez de m'inonder de mails pour me dire "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.

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.

Alors épargnez moi vos leçons et créez votre propre site.

Si vous vous baladez sur Internet, vous avez du, à un moment ou un à un autre, entendre parler de TCP/IP.

Mais qu'est-ce que c'est que cette bête là ?

Ce cours est un peu long, mais une fois terminé, vous aurez compris ce que sont IP, UDP, TCP et à quoi ils servent.

TCP/IP est un protocole , c'est à dire un ensembles de 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 :

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

 

 

 

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)

 

 

 

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 que l'adresse postale (nom, prénom, rue, numéro, code postal et ville) qui 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. (Envoyez la carte de vos bons voeux à votre Tante Odile dans une enveloppe vierge, elle a en effet peu de chances d'arriver, vous en conviendrez).

L'adresse IP se présente le plus souvent sous forme de 4 groupes de maximum 3 chiffres, allant de 0 à 255, séparés par des points. Par exemple: 204.35.129.17

 

 

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.

 

 

 

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.

 

 

 

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 ?

 

 

 

 

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)

Avec La Poste, à une même adresse, on peut s'adresser à différentes personnes en indiquant un numéro de porte :

 

 

 

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 alors ? ". 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. :

 

 

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

- 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.
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):

 

 

 

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égocation ("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 Ethereal ( http://www.ethereal.com ).

Ce logiciel gratuit capture et décortique tout ce qui transite par le réseau.

C'est très instructif.

 

 

Test QCM

 

Passez ce test et vérifiez si vous avez bien compris le principe du protocole TCP/IP :)

 

 

Qu'avez-vous pensé de cet article ?

 

Note de l'article
/ 5
Commentaire facultatif
Recopiez le code anti-spam ci-dessous

Sources : Wikipédia - Sebsauvage.net - CCM - Génération NT