bloc3s1:tcp
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
bloc3s1:tcp [2022/09/12 23:17] – [MTU discovery (PMTUD)] techer.charles_educ-valadon-limoges.fr | bloc3s1:tcp [2022/10/03 22:20] (Version actuelle) – [Interruption de session] techer.charles_educ-valadon-limoges.fr | ||
---|---|---|---|
Ligne 48: | Ligne 48: | ||
==== Le numéro d' | ==== Le numéro d' | ||
Quatrième champ : Numéro d ’acquittement 32 bits | Quatrième champ : Numéro d ’acquittement 32 bits | ||
- | * Numéro du prochain octet attendu par le récepteur, dans le flux TCP | + | * Numéro du prochain octet attendu par le récepteur |
- | * n’indique pas le numéro | + | * L' |
{{ : | {{ : | ||
==== Le champ Flags ==== | ==== Le champ Flags ==== | ||
- | Septième champ : 6 drapeaux 6 foius 1 bit | + | Septième champ : 6 drapeaux 6 fois 1 bit |
- | * 3 premiers bits sont utilisés lors de l'**établisement | + | * 3 premiers bits sont utilisés lors de l'**établissement |
* **SYN** : **demande** d ’établissement de connexion | * **SYN** : **demande** d ’établissement de connexion | ||
* **ACK** : **validité** du numéro d ’acquittement en indiquant si le segment contient un acquittement ou pas | * **ACK** : **validité** du numéro d ’acquittement en indiquant si le segment contient un acquittement ou pas | ||
Ligne 68: | Ligne 68: | ||
===== La gestion de la communication TCP ===== | ===== La gestion de la communication TCP ===== | ||
- | ==== MTU ==== | + | |
- | + | ||
- | Le MTU, ou **unité de transmission maximale (MTU)** représente le plus gros paquet de données qu’un appareil connecté au réseau acceptera. | + | |
- | + | ||
- | Au dela de cette taile, le paquet est divisé en plusieurs morceaux | + | |
- | + | ||
- | Cela nécessite plus de temps car plus de paquets à transmettre et le destinataire devra rassembler les paquets. | + | |
- | + | ||
- | Une valeur optimale | + | |
==== MSS ==== | ==== MSS ==== | ||
Ligne 85: | Ligne 77: | ||
- | Par défaut, sur un réseau Ethernet chaque trame peut faire jusqu’à 1 500 octets (MTU de 1520 octets), dont : | + | Par défaut, sur un réseau Ethernet chaque trame peut faire jusqu’à 1 500 octets (MTU de 1500 octets), dont : |
* au moins 20 octets doivent être réservés à l’en-tête TCP | * au moins 20 octets doivent être réservés à l’en-tête TCP | ||
* et 20 autres à l’en-tête IP. | * et 20 autres à l’en-tête IP. | ||
Ligne 108: | Ligne 100: | ||
</ | </ | ||
- | ==== MTU discovery (PMTUD) ==== | ||
- | Lien : https:// | ||
- | |||
- | MTU discovery (PMTUD) est une méthode qui permet d’obtenir le MTU de tous les équipements que traversent un paquet : | ||
- | * on envoie des paquets jusqu’à ce que ce dernier ne soit plus droppé par un des routeurs le long du chemin. | ||
- | * Lorsqu’un périphérique le long du chemin abandonne le paquet, il renvoie un message ICMP avec son MTU. | ||
- | * Le périphérique source abaisse son MTU et envoie un autre paquet de test. | ||
- | * Ce processus est répété jusqu’à ce que les paquets de test soient suffisamment petits pour traverser tout le chemin du réseau sans être abandonnés. | ||
- | |||
- | Le site [[https:// | ||
<WRAP center round info> | <WRAP center round info> | ||
Ligne 124: | Ligne 106: | ||
</ | </ | ||
- | Des ajustements supplémentaires doivent alors être faits pour la partie **Données utiles**. | + | ==== Attaque sur l' |
- | === Optimiser le MTU | + | Annoncer des valeurs MMS très petites (**attaque par MMS faible**) pour limiter artificiellement les charges TCP échangées dans les deux sens de la connexion. Le principe |
- | La commande | + | |
- | Paramètres de la commande ping : | + | On force alors une taille de segments TCP très petite ce qui va multiplier de manière conséquente (jusqu' |
- | * envoyer des paquets **non fragmentés** avec l’option -f | + | |
- | * envoyer des paquets avec une taille de MTU différente avec -l | + | |
- | < | ||
- | ping www.yahoo.com -f -l 1900 | ||
- | </ | ||
- | <WRAP center round info> | ||
- | La commande netsh de Windowqs permet de modifier la valeur de la MTU du PC. | ||
- | </ | ||
===== La gestion de la connexion TCP ===== | ===== La gestion de la connexion TCP ===== | ||
Ligne 157: | Ligne 130: | ||
Etablissement en **trois étapes** : le **3-Way Handshake**. | Etablissement en **trois étapes** : le **3-Way Handshake**. | ||
{{ : | {{ : | ||
- | - le client **envoie** un paquet (segment **SYN** ou synchronize) avec un numéro séquentiel aléatoire individuel. | ||
- | - le serveur reçoit le segment et **approuve** la connexion en renvoyant un paquet **SYN-ACK** (acknowledgement = « confirmation »), ainsi que le numéro séquentiel du client augmenté de 1. Il transmet également au client son propre numéro séquentiel. | ||
- | - le client **confirme** la réception du segment SYN-ACK en envoyant son propre paquet **ACK** qui contient le numéro **séquentiel du serveur augmenté de 1**. Simultanément, | ||
+ | * Etape 1 : Le client demande l' | ||
+ | {{ : | ||
+ | * Etape 2 : le serveur reçoit le segment et accuse réception de la session de communication en **approuvant** la connexion grâce à l' | ||
+ | {{ : | ||
+ | * Etape 3 : le client **confirme** la réception du segment SYN-ACK en envoyant son propre paquet **ACK** qui contient le numéro **séquentiel du serveur augmenté de 1**. Simultanément, | ||
+ | {{ : | ||
+ | ==== Interruption de session ==== | ||
+ | Pour mettre fin à une connexion, l' | ||
+ | |||
+ | Pour mettre fin à chaque session TCP unidirectionnelle, | ||
+ | Dans l' | ||
+ | * Étape 1. FIN : quand le client n'a plus de données à envoyer dans le flux, il envoie un segment dont l' | ||
+ | {{ : | ||
+ | * Étape 2. ACK : Le serveur envoie un segment ACK pour informer de la bonne réception du segment FIN afin de fermer la session du client au serveur. | ||
+ | {{ : | ||
+ | * Étape 3. FIN : Le serveur envoie un segment FIN au client pour mettre fin à la session du serveur au client. | ||
+ | {{ : | ||
+ | * Étape 4. ACK : Le client répond à l'aide d'un segment ACK pour accuser réception du segment FIN envoyé par le serveur. | ||
+ | {{ : | ||
+ | Quand la réception de tous les segments a été confirmée, la session est fermée. | ||
+ | |||
+ | ==== Le contrôle de la connexion TCP ==== | ||
+ | Les hôtes maintiennent l' | ||
+ | |||
+ | TCP est un protocole full-duplex et chaque connexion représente deux sessions de communication à sens unique. | ||
+ | |||
+ | Les six bits de contrôle du champ des bits de contrôle dans l' | ||
+ | Les six indicateurs de bits de contrôle sont les suivants: | ||
+ | * **URG** - Champ de pointeur urgent significatif (Urgent pointer field significant) | ||
+ | * **ACK** - Indicateur d' | ||
+ | * **PSH** - Fonction push (Push function) | ||
+ | * **RST** - Réinitialisation de la connexion en cas d' | ||
+ | * **SYN** - Synchroniser les numéros de séquence utilisés dans l' | ||
+ | * **FIN** - Plus de données de l' | ||
+ | |||
+ | |||
+ | |||
+ | ==== Attaques possibles sur le séquencement ==== | ||
+ | * Prédiction du système d’exploitation pour des OS qui utilisent toujours la même valeur initiale lors de l' | ||
+ | * Vol de session TCP (session hijacking) : en connaissant de numéro de séquence initial, l' |
bloc3s1/tcp.1663017433.txt.gz · Dernière modification : 2022/09/12 23:17 de techer.charles_educ-valadon-limoges.fr