corrections chapitre réseau : ports/TCP, URL/domaine, masques, liens cassés
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Le protocole TCP
|
||||
|
||||
> Parmi tous les [protocoles](../definition/PROTOCOLE.md) employés dans le domaine de l'informatique, on peut très souvent entendre l'un d'entre eux revenir en boucle : IP. Et il se trouve qu'IP a un grand ami, le protocole TCP, avec qui il est très proche.
|
||||
> Parmi tous les protocoles employés dans le domaine de l'informatique, on peut très souvent entendre l'un d'entre eux revenir en boucle : IP. Et il se trouve qu'IP a un grand ami, le protocole TCP, avec qui il est très proche.
|
||||
|
||||
TCP, ou *Transmission Control Protocol* est toujours associé à IP, sous la dénomination *__TCP/IP__*. Il s'agit d'un membre essentiel d'Internet : il permet de relier les machines entre elles, ainsi que d'assurer l'échange de données, en garantissant l'arrivée à destination de paquets.
|
||||
|
||||
@@ -68,23 +68,53 @@ On suppose qu'Arobase souhaite envoyer des fichiers personnels sur son cloud Bob
|
||||
|
||||
|
||||
|
||||
## Mais au fait, comment se font ces échanges tcp ?
|
||||
## Les ports : distinguer les services
|
||||
|
||||
Une adresse IP identifie une machine sur le réseau, mais une même machine fait tourner plusieurs services en même temps (navigateur web, messagerie, streaming…). Pour les distinguer, on utilise les **ports**.
|
||||
|
||||
Un **port** est un numéro compris entre 0 et 65 535 qui identifie un service particulier sur une machine.
|
||||
|
||||
| Port | Service |
|
||||
|------|---------|
|
||||
| 80 | HTTP (pages web) |
|
||||
| 443 | HTTPS (pages web sécurisées) |
|
||||
| 22 | SSH (connexion distante) |
|
||||
| 25 | SMTP (envoi d'e-mails) |
|
||||
| 53 | DNS |
|
||||
|
||||
L'association d'une adresse IP et d'un numéro de port s'appelle une **socket**.
|
||||
|
||||
> **Exemple** : quand vous accédez à `https://www.google.fr`, votre machine contacte l'adresse IP de Google sur le port **443**. La socket de destination est donc `adresse_IP_google:443`.
|
||||
|
||||
---------
|
||||
|
||||
## Mais au fait, comment se font ces échanges TCP ?
|
||||
|
||||
Avant de transmettre des données, TCP établit une connexion en **3 étapes** — on parle de ***three-way handshake*** (poignée de main en trois temps) :
|
||||
|
||||
1. **SYN** — le client envoie une demande de connexion au serveur
|
||||
2. **SYN-ACK** — le serveur accepte et le confirme
|
||||
3. **ACK** — le client confirme à son tour : la connexion est établie
|
||||
|
||||
Ce n'est qu'après ces 3 échanges que les données commencent à transiter, découpées en **paquets numérotés**.
|
||||
|
||||
---
|
||||
|
||||
Voilà comment se déroule un échange entre un client et un serveur TCP.
|
||||
|
||||
Tout d'abord, le client demande un canal TCP au serveur
|
||||
Tout d'abord, le client envoie un **SYN** pour demander l'ouverture d'un canal :
|
||||
|
||||

|
||||
|
||||
Puis le serveur se met en mode TCP et envoie les données découpées en paquets :
|
||||
Le serveur répond **SYN-ACK**, puis envoie les données découpées en paquets. Chaque paquet reçu est **acquitté** (ACK) par le destinataire pour confirmer sa bonne réception :
|
||||
|
||||

|
||||

|
||||
|
||||
Hélas on voit ici que le message était trop long, et que le canal s'est refermé après la durée choisie par défaut...
|
||||
Si le canal se ferme avant que tous les paquets soient arrivés (timeout, coupure réseau…) :
|
||||
|
||||

|
||||

|
||||
|
||||
Et que se passe-t-il dans ce cas ...?
|
||||
…les paquets manquants sont **retransmis** automatiquement. C'est la garantie de fiabilité de TCP :
|
||||
|
||||

|
||||
|
||||
|
||||
Reference in New Issue
Block a user