` par l'adresse IP réelle. Exemple :`hôte 192.168.1.100`
* `ip.addr ==` : Comme ci-dessus mais parfois plus fiable.
* `tcp.port ==` : Filtrez par numéro de port TCP spécifique (par exemple, 80 pour HTTP, 443 pour HTTPS, 22 pour SSH). Exemple :`tcp.port ==80`
* `tcp.stream eq ` : Filtrer par un numéro de flux TCP spécifique. Vous pouvez trouver le numéro de flux dans les détails du paquet. Ceci est utile pour isoler une seule connexion TCP.
Ces filtres initiaux aident à affiner le trafic capturé aux paquets pertinents, facilitant ainsi l'analyse.
3. Analyser les problèmes d'établissement de connexion (prise de contact à trois) :
* Filtrer les paquets SYN : `tcp.flags.syn ==1 et tcp.flags.ack ==0` (Cela montre les paquets SYN sans l'indicateur ACK.)
* Recherchez les paquets SYN/ACK : `tcp.flags.syn ==1 et tcp.flags.ack ==1` (Cela montre les paquets SYN qui ont également l'indicateur ACK défini.)
* Recherchez les paquets ACK (la dernière partie de la poignée de main) : `tcp.flags.ack ==1 et tcp.flags.syn ==0` (Cela montre les paquets ACK sans l'indicateur SYN défini.)
Dépannage basé sur ceci :
* SYN manquant : Si vous ne voyez pas de paquet SYN provenant du client, le client ne pourra peut-être pas atteindre le serveur (problème de routage, blocage du pare-feu).
* SYN/ACK manquant : Si le client envoie un SYN mais ne reçoit pas de SYN/ACK, le serveur peut être en panne, inaccessible ou rejeter la connexion (pare-feu).
* ACK manquant : Si le client reçoit un SYN/ACK mais n'envoie pas l'ACK final, il peut y avoir un problème avec la configuration réseau, le routage ou le pare-feu du client.
* Paquets SYN retransmis : Le client envoie des paquets SYN plusieurs fois, ce qui peut indiquer un problème sur le chemin vers le serveur empêchant le premier SYN d'atteindre le serveur.
4. Analyser les problèmes de terminaison de connexion :
* Filtrer les paquets FIN : `tcp.flags.fin ==1`
* Filtrer les paquets RST : `tcp.flags.reset ==1`
Dépannage basé sur ceci :
* Échange FIN : Une clôture en douceur implique un paquet FIN d'un côté, un ACK pour ce FIN, un FIN de l'autre côté et un ACK pour ce FIN. Si cette séquence est incomplète, quelque chose a interrompu le processus de clôture.
* Paquets RST : Un paquet RST indique une terminaison brutale. Recherchez la cause du RST. Causes possibles :
* Port fermé : Le client ou le serveur a envoyé des données vers un port qui n'écoutait plus.
* Connexion refusée : Le serveur a refusé la connexion.
* Données inattendues : Un côté a reçu des données auxquelles il ne s'attendait pas.
* Pare-feu : Un pare-feu pourrait forcer la fermeture de la connexion.
5. Analyse des problèmes de transfert de données (après la poignée de main) :
* `tcp.analysis.retransmission` : Ce filtre est un moyen rapide d'identifier les retransmissions TCP. Un nombre élevé de retransmissions indique une perte de paquets, une congestion du réseau ou d'autres problèmes de réseau.
* `tcp.analysis.duplicate_ack` : Ce filtre identifie les paquets ACK en double, qui peuvent survenir en raison d'une perte de paquets. L'expéditeur retransmet un paquet et le récepteur accuse réception du paquet original et du paquet retransmis, créant ainsi un ACK en double.
* `tcp.flags.push ==1` : Filtrez les paquets avec l'indicateur PSH défini. Cela indique que l'expéditeur envoie des données de manière urgente. Bien que ce ne soit généralement pas un *problème* en soi, cela peut être utile pour comprendre le flux de données.
6. Filtrage avancé avec `tcp.flags`
* Combiner des drapeaux : Vous pouvez combiner des indicateurs en utilisant `&&` (AND) et `||` (OR). Par exemple :`tcp.flags.syn ==1 &&tcp.flags.reset ==1` (paquets avec les indicateurs SYN et RST définis - très inhabituel, peuvent indiquer une attaque).
* Vérification de *Tout* jeu d'indicateurs : `tcp.flags> 0` - Afficher tous les paquets avec *n'importe quel* indicateur TCP défini. Cela peut être utile pour obtenir un aperçu général.
Exemples de scénarios
* Échec de chargement du site Web :
1. Filtrer par l'adresse IP du site Web (« hôte »).
2. Vérifiez la poignée de main à trois. Si le SYN ou SYN/ACK est manquant, étudiez la connectivité réseau ou l'état du serveur.
3. Une fois la négociation terminée, recherchez les requêtes HTTP GET et les réponses du serveur. Y a-t-il des retransmissions ? Le serveur renvoie-t-il des erreurs (par exemple, des erreurs HTTP 500) ?
4. Recherchez les paquets RST susceptibles de fermer prématurément la connexion.
* Échec de la connexion SSH :
1. Filtrer par port 22 (`tcp.port ==22`).
2. Vérifiez la poignée de main à trois.
3. Recherchez les messages du protocole SSH. Si la négociation se termine mais que le client et le serveur SSH n'échangent pas de données, il peut y avoir un problème avec l'authentification ou la configuration SSH.
4. Recherchez les paquets RST. Un paquet de réinitialisation est souvent le signe d'un échec d'authentification ou d'un problème avec le serveur SSH.
* Transfert de fichiers lent
1. Filtrez les adresses IP du client et du serveur effectuant le transfert.
2. Recherchez « tcp.analysis.retransmission ». Un nombre élevé de retransmissions indique une perte de paquets, une congestion du réseau ou d'autres problèmes de réseau.
3. Recherchez « tcp.window_size ==0 ». Une taille de fenêtre nulle indique que le récepteur est débordé et ne peut plus accepter de données. L'expéditeur devra suspendre la transmission.
Conseils clés
* Graphique de séquence temporelle : Utilisez « Statistiques -> TCP Stream Graph -> Time-Sequence Graph (Stevens) » de Wireshark pour visualiser le flux de connexion TCP et identifier rapidement les retransmissions, les lacunes et autres anomalies.
* Informations d'experts : Faites attention au volet « Expert Info » en bas de Wireshark. Cela met souvent en évidence des problèmes potentiels.
* Cliquez avec le bouton droit et suivez le flux TCP : Faire un clic droit sur un paquet TCP et sélectionner « Suivre -> Flux TCP » est un excellent moyen d'isoler une seule connexion TCP et de voir tous les paquets de cette connexion dans l'ordre.
* Apprenez le protocole TCP : Une solide compréhension du protocole TCP (en particulier la prise de contact à trois voies et la terminaison de la connexion) est essentielle pour un dépannage efficace.
En maîtrisant l'utilisation de « tcp.flags » et ces techniques de dépannage, vous pouvez améliorer considérablement votre capacité à diagnostiquer et à résoudre les problèmes de réseau à l'aide de Wireshark. N'oubliez pas de combiner ces informations avec d'autres outils de surveillance du réseau et journaux du serveur pour une vue complète du problème.