Imaginons que nous devions transmettre des données de plusieurs Mo (Méga Octets) vers un autre ordinateur.
On rappelle que les informations sont stockées sous forme binaire.
La première technique consisterait à envoyer d'une seule traite le flot binaire correspondant. Mais, comme on peut le voir sur l'animation ci-dessous, le premier soucis avec cette solution est qu'en cas d'erreur (ici en fin de transmission) il faut transmettre à nouveau l'ensemble des données.Un deuxième problème, sans doute le plus ennuyeux, est que cette solution monopolise le support de transmission et bloque les échanges entre d'autres équipements, comme nous pouvons le voir sur l'animation ci-dessous :
Une solution pour palier à ces défauts est de découper les données en plusieurs segments, qui seront transformés en paquets, puis en trames.
Et d'envoyer ces différentes trames les unes à la suite des autres sur le support.
Cette méthode va permettre d'intercaler les trames de plusieurs équipements sur le même support.
Cet entrelacement de trames s'appelle le multiplexage.
L'exemple ci-dessous nous montre l'intérêt du découpage en segments qui permet des communication simultanées :
Dans cet autre exemple on voit bien l'entrelacement des trames qui permet à un même équipement de communiquer avec plusieurs autres :
Il est très important de bien comprendre que TCP/IP repose sur la notion de paquets de données. Si par exemple on désire envoyer un fichier (son, photo, vidéo ou texte, peu importe, dans tous les cas on envoie une succession de bits) en utilisant TCP/IP, les données qui constituent ce fichier ne seront pas envoyées d'un seul tenant, ces données vont être "découpées" en plusieurs morceaux et chaque morceau sera envoyé dans un paquet différent. Une fois tous les paquets arrivés à destination, le fichier d'origine pourra être reconstitué. Pour aller d'un ordinateur A à un ordinateur B, les différents paquets contenant les données qui constituent notre fichier, ne passeront pas forcement par la même route (cette notion de route sera abordée plus tard), ils pourront emprunter des chemins très différents : en exagérant à peine, pour faire le trajet Paris-Los Angeles, certains paquets pourront passer par l'atlantique alors que d'autres passeront par le pacifique. Si un des paquets n'arrive pas à destination, le fichier ne pourra pas être reconstitué, le paquet "perdu" devra être renvoyé par l'émetteur (voir le système d'accusé de réception décrit ci-dessus).
Essayons de comprendre le principe de base des protocoles TCP (Transmission Control Protocol) et IP (Internet Protocol)
Quand un ordinateur A "désire" envoyer des données à un ordinateur B, l'ordinateur A "utilise" le protocole TCP pour mettre en forme les données à envoyer.
Ensuite le protocole IP prend le relai et utilise les données mises en forme par le protocole TCP afin de créer des paquets des données. Après quelques autres opérations qui ne seront pas évoquées ici, les paquets de données pourront commencer leur voyage sur le réseau jusqu'à l'ordinateur B. Il est important de bien comprendre que le protocole IP "encapsule" les données issues du protocole TCP afin de constituer des paquets de données.
Une fois arrivées à destination (ordinateur B), les données sont "désencapsulées" : on récupère les données TCP contenues dans les paquets afin de pouvoir les utiliser.
Le protocole IP s'occupe uniquement de faire arriver à destination les paquets en utilisant l'adresse IP de l'ordinateur de destination. Les adresses IP de l'ordinateur de départ (ordinateur A) et de l'ordinateur destination (ordinateur B) sont ajoutées aux paquets de données.
Le protocole TCP permet de s'assurer qu'un paquet est bien arrivé à destination. En effet quand l'ordinateur B reçoit un paquet de données en provenance de l'ordinateur A, l'ordinateur B envoie un accusé de réception à l'ordinateur A (un peu dans le genre "OK, j'ai bien reçu le paquet"). Si l'ordinateur A ne reçoit pas cet accusé de réception en provenance de B, après un temps prédéfini, l'ordinateur A renverra le paquet de données vers l'ordinateur B.
Nous pouvons donc résumer le processus d'envoi d'un paquet de données comme suit :
Nous pouvons donc résumer le processus d'envoi d'un paquet de données comme suit :
À noter qu'il existe aussi le protocole UDP qui ressemble beaucoup au protocole TCP. La grande différence entre UDP et TCP est que le protocole UDP ne gère pas les accusés de réception. Les échanges de données avec UDP sont donc moins fiables qu'avec TCP (un paquet "perdu" est définitivement "perdu" et ne sera pas renvoyé) mais beaucoup plus rapides (puisqu' il n'y a pas d'accusé de réception à transmettre). UDP est donc très souvent utilisé pour les échanges de données qui doivent être rapides, mais où la perte d'un paquet de données de temps en temps n'est pas un gros problème (par exemple le streaming vidéo).