Le principe général de communication TCP/IP
Exemple : Envoi d'un courrier par la voie postale
Pour pouvoir transmettre un courrier, il faut connaître l'émetteur et le récepteur du message. Ainsi donc pour une lettre :
On met la lettre dans une enveloppe,
On inscrit l'adresse du destinataire,
On inscrit l'adresse de l'expéditeur.
Le protocole IP
Sur Internet, c'est à peu près la même chose. Chaque message (chaque petit paquet de données) est enveloppé par le protocole IP qui y ajoute différentes informations :
l'adresse IP de l'expéditeur,
l'adresse IP du destinataire,
des données supplémentaires (qui permettent de bien contrôler l'acheminement du message).
Rappel :
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, on parle d'IP publiques), de même que l'adresse postale (nom, prénom, rue, numéro, code postal et ville) permet d'identifier de manière unique un destinataire.
Routage IP (au programme de Terminale)
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 - Le protocole UDP
Le protocole IP nous permet d'envoyer et de recevoir des paquets de données d'un ordinateur à un autre. Mais si nous avons plusieurs applications qui fonctionnent sur l'ordinateur (navigateur, un logiciel d'e-mail, une radio, ...), comment faire pour savoir à quel logiciel délivrer les paquets ?
Comme pour les portes d'un immeuble, on peut attribuer un numéro unique à chaque logiciel dans l'ordinateur :
Ces ports sont des informations présentes dans les datagrammes du protocole UDP (User Datagram Protocol).
Remarque : Problème de l'UDP
On peut envoyer des paquets de données d'un ordinateur à un autre (IP) et s'adresser au bon logiciel (UDP), cependant il y a encore des problèmes :
Des paquets peuvent se perdre.
Rien ne permet de savoir s'ils sont bien arrivés.
La taille des paquets est limitée (1500 octets environ). Et si je veux envoyer une photo de 100 000 octets ?
C'est le rôle de TCP (Transmission Control Protocol) de régler tous ces éventuels problèmes. Voyons cela dans le détail...
Le protocole TCP
TCP sait faire :
Tout ce que UDP sait faire (ports).
Vérifier que le destinataire est prêt à recevoir les données.
Découper les gros paquets en paquets plus petits.
Numéroter les segments, vérifier qu'ils arrivent à destination (les redemander sinon), les réordonner.
Émettre des accusés de réception.
Par exemple, pour envoyer le message "Salut, comment ça va ?", voilà ce que fait TCP (chaque flèche représente 1 paquet IP):
À l'arrivée, sur l'ordinateur 204.66.224.82, la couche TCP reconstitue le message "Salut, comment ça va ?" à partir des trois paquets IP reçus et le donne au logiciel qui est sur le port 80.
Conclusion
Avec TCP/IP, on peut maintenant communiquer de façon fiable entre logiciels situés sur des ordinateurs différents.
TCP/IP est utilisé dans des domaines très divers :
Dans le navigateur internet, 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 e-mails. SMTP et POP3 utilisent eux aussi le protocole TCP/IP.
Votre navigateur (et d'autres logiciels) utilise le protocole DNS pour trouver l'adresse IP d'un ordinateur à partir de son nom (par exemple, trouver l'adresse IP 216.58.208.227 à partir de « www.google.fr »). Le protocole DNS utilise les protocoles UDP/IP et TCP/IP en fonction de ses besoins.
Il existe ainsi de nombreux protocoles qui utilisent TCP/IP ou UDP/IP.
Remarque : Différences entre UDP et TCP
Par rapport au protocole UDP, le protocole 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.