Ce document décrit les principes fondamentaux de TCP, l'analyse approfondie des paquets Wireshark et le dépannage pratique pour optimiser les performances de bout en bout.
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
Remarque : Toute question relative à la configuration et à l'interopérabilité de logiciels ou de matériels tiers n'est pas prise en charge par Cisco. L'utilisation d'outils tiers est une démonstration de votre configuration et de votre fonctionnement avec les équipements Cisco.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Le protocole TCP (Transmission Control Protocol) est un protocole fondamental de la couche transport qui fonctionne au niveau de la couche 4 du modèle OSI et fournit une livraison fiable, ordonnée et contrôlée des erreurs d’un flux d’octets entre des applications communiquant sur un réseau IP.
Le schéma représente la pile TCP/IP dans laquelle un segment TCP (couche 4) est encapsulé dans un paquet IP (couche 3), puis à l’intérieur d’une trame Ethernet (couche 2) définie par la norme IEEE 802.3. Cette approche en couches assure une communication modulaire, où chaque couche ajoute ses propres informations de contrôle (en-têtes) pour garantir la livraison, le routage et l’intégrité des données.

L'en-tête Ethernet est généralement de 14 octets, composé des éléments suivants :
En outre, les trames Ethernet incluent une queue de bande FCS (Frame Check Sequence) de 4 octets pour la détection des erreurs au niveau de la couche 2. IEEE 802.3 définit le tramage, les tailles de trame minimales/maximales et les contraintes de livraison physique qui ont un impact direct sur les protocoles de couche supérieure tels que TCP.
L'en-tête IPv4 a une taille minimale de 20 octets, extensible jusqu'à 60 octets avec options. Les champs clés sont les suivants :
La couche IP est responsable de l’adressage logique et du routage sur les réseaux, mais elle ne garantit pas la fiabilité.
L'en-tête TCP comporte entre 20 et 60 octets, selon les options disponibles. Les champs clés sont les suivants :
Le protocole TCP ajoute une livraison fiable, un séquençage approprié et un contrôle de flux à la communication IP.
Les options TCP étendent le protocole de base. Les plus courants sont les suivants :
Les indicateurs SYN et FIN utilisent chacun un numéro de séquence, même en l'absence de données utiles. Le protocole TCP utilise un modèle de séquençage orienté octet, dans lequel chaque octet transmis, ainsi que des indicateurs de contrôle spécifiques, font avancer l’espace de séquence. Ce comportement est essentiel pour une analyse TCP précise dans les captures de paquets et pour diagnostiquer les incohérences de séquençage ou d’accusé de réception.
ACK = SEQ + longueur de la charge utile + (SYN ? 1: 0) + (FIN ? 1: 0)
Where:
Calcul ACK :
Cela reflète un scénario dans lequel des données sont envoyées pendant la connexion TCP. La charge utile et l'indicateur SYN consomment tous deux de l'espace de séquence.
Calcul ACK :
Cela montre que le protocole TCP peut inclure des données lors de l'interruption de la connexion, et que la charge utile et l'indicateur FIN incrémentent le numéro de séquence.
La taille de segment maximale (MSS) définit la charge utile maximale que TCP peut envoyer dans un segment.
Si des options TCP sont présentes, MSS est réduit en conséquence. MSS est négocié pendant la connexion TCP en trois étapes et empêche la fragmentation au niveau de la couche IP.
La taille de segment maximale (MSS) est échangée lors de la connexion TCP en trois étapes à l'aide de l'option MSS dans les paquets SYN :
Chaque partie se contente de dire :
Il s'agit de la charge utile TCP la plus importante acceptée.
Les MSS ne sont pas négociées en tant que valeur unique convenue.
Au lieu de cela :
Par conséquent :
Dans une pile TCP fonctionnant correctement : No.
La taille de fenêtre définit la quantité de données que le récepteur peut accepter sans accusé de réception.
Ce que c'est :
Objectif:
Où l'obtenir :
Variabilité fournisseur/système d'exploitation :
Condition de fenêtre zéro :
Mécanismes de fenêtres variables
Dépannage Utilisation :
Cette section décrit une méthodologie pratique pour diagnostiquer si un commutateur Cisco Nexus exécutant NX-OS affecte le transfert du trafic TCP ou introduit des problèmes de performances. L'approche est présentée à travers un scénario hypothétique.
Lorsque la latence TCP ou la dégradation des performances sont observées, il est courant de soupçonner que le réseau en est la cause. Toutefois, cette hypothèse doit être validée par une analyse axée sur les données. La méthode de dépannage TCP faisant autorité est la capture de paquets, idéalement exécutée :
Cela garantit la visibilité de la connexion TCP en trois étapes, au cours de laquelle des paramètres critiques tels que MSS, Window Scale et SACK sont négociés et ne sont pas répétés plus tard dans la session. Si des captures simultanées ne sont pas possibles, l'analyse peut se poursuivre avec une capture unique, mais les conclusions sont limitées.
Définition de scénario
Un utilisateur a constaté que le processus de sauvegarde d'un jeu de données d'application d'environ 7,5 To, qui était auparavant effectué en environ 9 heures, prend désormais près de 21 heures. Bien que les sessions TCP entre le client et le serveur soient toujours établies avec succès, l’augmentation significative de la durée de sauvegarde suggère une dégradation potentielle du débit ou des performances TCP globales. Étant donné que le commutateur Nexus est le seul périphérique réseau sur le chemin et qu'il fournit également une fonctionnalité de passerelle de couche 3, l'administrateur réseau soupçonne que le commutateur Nexus est la cause du problème.

Linux: ping -c 10 -I 10.93.19.8 -s 1472 -M do 10.91.2.35
Windows: ping -n 10 -l 1472 -f 10.91.2.35
Pourquoi 1 472 octets ?
Ce qui peut être conclu
Comment l'utiliser pour le dépannage
Pertinence pratique pour le protocole TCP
Pour dépanner efficacement les performances TCP sur un commutateur Cisco Nexus 9000, il est essentiel de déterminer quelles interfaces reçoivent et transfèrent le trafic entre la source et la destination.
Dans les topologies simples, cela peut être déduit directement des connexions physiques. Par exemple, si le client est connecté à Ethernet1/1 et le serveur à Ethernet1/2, le chemin du trafic est direct. Cependant, dans les environnements réels avec plusieurs interfaces actives, canaux de port ou configurations vPC, cette identification n'est pas toujours facile.
Dans ce cas, l'approche recommandée consiste à utiliser le module ELAM (Embedded Logic Analyzer Module), qui offre une visibilité au niveau ASIC (matériel de plan de données).
ELAM vous permet de capturer un paquet pendant qu'il est traité par le pipeline de transfert et révèle des informations critiques telles que :
Cette méthode est beaucoup plus précise que l'utilisation d'outils de plan de contrôle, car elle reflète le chemin de transfert matériel réel.
Il est important de noter qu'ELAM ne capture qu'un seul paquet à la fois, de sorte que les critères de filtrage doivent être définis avec précision pour correspondre au trafic souhaité (par exemple, IP source, IP de destination, port TCP). Si les filtres sont trop larges, il y a un risque de capture du trafic non lié tel que ICMP ou UDP au lieu du flux TCP prévu.
En outre, ce processus doit être répété pour les deux sens de trafic :
Dans les environnements utilisant vPC ou ECMP, la charge du trafic peut être équilibrée sur plusieurs chemins. Par conséquent, le trafic de transfert et de retour peut traverser différents commutateurs ou interfaces. Dans ces scénarios, ELAM doit être exécuté sur chaque commutateur Nexus concerné pour garantir une visibilité complète.
En identifiant avec précision les interfaces d'entrée et de sortie, la portée du dépannage est considérablement réduite, ce qui permet une validation ciblée des compteurs d'interface, des politiques QoS, des paramètres MTU et des points de congestion potentiels le long du chemin de transfert exact.
Cet exemple filtre le trafic avec l'IP source 10.93.19.8, l'IP de destination 10.91.2.35 et le port de destination TCP 445.
Configuration d'ELAM
switch# debug platform internal tah elam
switch(TAH-elam)# trigger init
Slot 1: param values: start asic 0, start slice 0, lu-a2d 1, in-select 6, out-select 0
switch(TAH-elam-insel6)# set outer ipv4 src_ip 10.93.19.8
switch(TAH-elam-insel6)# set outer ipv4 dst_ip 10.91.2.35
switch(TAH-elam-insel6)# set outer l4 l4-type 0
switch(TAH-elam-insel6)# set outer l4 dst-port 445
switch(TAH-elam-insel6)# start
Après avoir généré le trafic, récupérez le résultat :
switch(TAH-elam-insel6)# report
Capture inverse du trafic (obligatoire pour une visibilité totale)
Pour valider le chemin de retour, répétez la configuration en échangeant les adresses IP source et de destination :
switch# debug platform internal tah elam
switch(TAH-elam)# trigger init
Slot 1: param values: start asic 0, start slice 0, lu-a2d 1, in-select 6, out-select 0
switch(TAH-elam-insel6)# set outer ipv4 dst_ip 10.93.19.8
switch(TAH-elam-insel6)# set outer ipv4 src_ip 10.91.2.35
switch(TAH-elam-insel6)# set outer l4 l4-type 0
switch(TAH-elam-insel6)# set outer l4 dst-port 445
switch(TAH-elam-insel6)# start
notes opérationnelles
Guide ELAM ASIC évolutif pour le cloud Cisco Nexus 9000
La validation au niveau de l'interface garantit que le commutateur Nexus n'introduit aucune contrainte ou anomalie affectant le trafic TCP. L'objectif est de vérifier que la configuration, l'état opérationnel et les compteurs matériels sont cohérents avec le comportement attendu pour un transfert de plan de données hautes performances.
Validation de configuration
switch# show running-config interface ethernet1/1-2 | include access-group
switch#show running-config interface ethernet1/1-2 | include service-policyswitch#show policy-map interface ethernet1/1-2
switch# show policy-map
switch# show class-map
switch# show class-map type network-qos
switch# show policy-map type network-qos
switch#show policy-map system type network-qos
switch# show queuing interface ethernet1/1-2
switch# show policy-map type queuing
switch#show running-config interface ethernet1/1-2
switch#show interface ethernet1/1-2 switchport
switch#show spanning-tree interface ethernet1/1-2
switch# show ip interface ethernet1/1-2
Validation de l'état opérationnel
switch#show interface ethernet1/1-2 | include MTU
switch#show interface ethernet1/1-2 | include speed|duplex
switch#show interface ethernet1/1-2 | include rate|flap
Validation du compteur d'erreurs
switch#clear counters interface all
switch#show interface counters errors non-zero | include Port|Eth1/1|Eth1/2
Validation post-test
switch#show interface counters errors non-zero | include Port|Eth1/1|Eth1/2
Il est essentiel de garantir la stabilité du routage et du protocole ARP pour confirmer que le commutateur Nexus dispose d'une accessibilité de couche 3 cohérente et n'introduit pas de problèmes de résolution intermittents susceptibles d'affecter les performances TCP. L'instabilité des entrées de routage ou de la résolution ARP peut entraîner une perte de paquets, une latence accrue ou un blocage du trafic.
Critères de validation
switch# show ip route 10.93.19.8
switch# show ip route 10.91.2.35
switch# show ip arp detail | include 10.93.19.8
switch# show ip arp detail | include 10.91.2.35
Dans les commutateurs Cisco Nexus 9000, le transfert est effectué dans le matériel (ASIC) et le processeur n'est pas impliqué dans les opérations normales du plan de données. Par conséquent, l'observation du trafic TCP d'hôte à hôte dans le plan de contrôle est anormale et indique que des paquets sont en cours de pontage en raison d'exceptions ou de mauvaises configurations. Une fois que le trafic doit être traité par le processeur, il est soumis à la réglementation du plan de contrôle, et on s'attend à ce que des abandons puissent être observés si le trafic dépasse le débit du plan de contrôle autorisé.
Méthode de validation
switch# ethanalyzer local interface inband display-filter "ip.addr==10.93.19.8 and ip.addr==10.91.2.35" limit-capture 0
Comportement attendu
Comportement Inattendu
La latence de transfert de paquets dans les commutateurs Nexus 9000 dépend de la taille des paquets, du mode de transfert et des fonctionnalités activées. Les spécifications Cisco font généralement référence à la latence pour les paquets de 64 octets sous transfert cut-through.
+----------------------+----------------------+-------------------------+-------------------------------+
| Switch Model | ASIC / Architecture | Ports (example config) | Typical Forwarding Latency |
| | | | (64B packet) |
+----------------------+----------------------+-------------------------+-------------------------------+
| Nexus 93180YC-EX | Cloud Scale (EX) | 48x25G + 6x100G | ~1.0 – 1.2 microseconds |
| Nexus 93180YC-FX | Cloud Scale (FX) | 48x25G + 6x100G | ~0.9 – 1.0 microseconds |
| Nexus 93180YC-FX2 | Cloud Scale (FX2) | 48x25G + 6x100G | ~0.8 – 0.9 microseconds |
| Nexus 9364C | Cloud Scale | 64x100G | ~1.0 microsecond |
| Nexus 9336C-FX2 | Cloud Scale (FX2) | 36x100G | ~0.8 microseconds |
| Nexus 93240YC-FX2 | Cloud Scale (FX2) | 48x25G + 12x100G | ~0.8 – 0.9 microseconds |
| Nexus 92300YC | Broadcom Trident II | 48x10/25G + 6x40/100G | ~2 – 3 microseconds |
| Nexus 92160YC-X | Broadcom Tomahawk | 48x25G + 6x100G | ~2 microseconds |
+----------------------+----------------------+-------------------------+-------------------------------+
Des fonctionnalités supplémentaires peuvent introduire une latence incrémentielle :
Cependant:
Le seul scénario réaliste où la latence augmente de manière significative est la congestion :
Même dans ces cas :
Cela permet la mise en miroir du trafic du plan de données dans le plan de contrôle pour la capture de paquets et l'exportation vers un fichier .pcapng, permettant une analyse détaillée dans Wireshark.
Configuration
monitor session 1
source interface ethernet1/1 both
source interface ethernet1/2 both
destination interface sup-eth0
no shut
Exécution de capture
switch# ethanalyzer local interface inband mirror capture-filter "tcp port 445" limit-capture 0 write bootflash:tcp_capture.pcapng
Considérations techniques
| Méthode | Avantage | Limite |
|---|---|---|
| PORTÉE |
Précision, pas d'encapsulation |
Requiert une connexion physique. |
| REPORTER |
Capacité de capture à distance |
Sensible à la congestion du réseau. |
Pour garantir la fiabilité des captures SPAN vers CPU, il est nécessaire de vérifier que le plan de contrôle ne supprime pas les paquets en miroir en raison de la limitation du débit.
Commande de validation
switch(config)# show hardware rate-limiter | i Allowed|span
Allowed, Dropped & Total: aggregated bytes since last clear counters
R-L Class Config Allowed Dropped Total
span 50 0 0 0 <<<
span-egress disabled 0 0 0
Méthodologie de validation
Interprétation
Si des pertes sont observées, la méthode de capture doit être remplacée par SPAN ou ERSPAN.
Les tests ICMP fournissent une validation de base de l’intégrité du plan de données avant d’effectuer une analyse TCP complexe. Comme le protocole ICMP est plus simple et sans état, il permet de détecter rapidement les pertes de paquets, les duplications ou les incohérences de chemin.
Comportement attendu dans la capture SPAN
Cela confirme le transfert correct et l'absence de perte de paquets dans le plan de données.
Comportement Anormal
Si le trafic ICMP est transmis de manière cohérente sans perte, il est très probable que le trafic TCP soit également transmis correctement au niveau de la couche 2/3.
Lorsque le trafic est capturé à l'aide de la fonctionnalité SPAN vers CPU (ou SPAN/ERSPAN), chaque paquet peut être observé deux fois : une fois en entrée et une fois en sortie. Cette duplication peut être utilisée pour estimer la latence de transfert introduite par le commutateur Nexus en calculant la différence de temps entre les deux instances du même paquet.
En pratique, cette latence peut être mesurée à l’aide du trafic ICMP précédemment capturé en comparant le délai entre les paquets de requête d’écho dupliqués et les paquets de réponse d’écho. Cela fournit une base simple et efficace pour les performances de transfert de commutateur. Si une analyse plus approfondie est nécessaire, la même méthodologie peut être appliquée au trafic TCP en capturant le flux et en mesurant la différence de temps entre les paquets TCP dupliqués.
Méthode
Configuration Wireshark
View > Time Display Format > Seconds Since Previous Displayed Packet
Right-click on "Time Delta from Previous Displayed Packet" → Apply as Column
ip.addr==10.93.19.8 and ip.addr==10.91.2.35 and tcp
Right-click packet → Follow → TCP Stream
Interprétation
Cette section fournit une méthodologie détaillée pour analyser une capture de paquets TCP dans Wireshark, y compris la configuration du profil, dans le cas hypothétique décrit précédemment. Les images présentées ont été prises directement à partir de Wireshark. Pour rappel, le scénario est le suivant :
Un utilisateur a constaté que le processus de sauvegarde d'un jeu de données d'application d'environ 6,5 To, qui était auparavant effectué en environ 9 heures, prend désormais près de 21 heures. Le seul périphérique réseau accessible est un commutateur Cisco Nexus 9300 connecté au serveur source (10.93.19.8). La MTU configurée sur l'interface du commutateur est de 9 000 octets (trames jumbo), alors que la MTU sur le serveur est inconnue. Une capture de paquets à partir du serveur source est disponible et toutes les étapes de validation Nexus précédentes ont déjà été effectuées sans qu'aucune anomalie ne soit détectée.
Principales observations et contraintes
Dans Wireshark, vous pouvez créer des profils personnalisés en fonction du type d'analyse que vous souhaitez effectuer.
Description de colonne
La capture de la connexion TCP en trois étapes est obligatoire, car elle contient des paramètres critiques tels que MSS, Window Scale et SACK qui définissent le comportement de la session.
Sans ces informations, toute analyse TCP est incomplète et peut conduire à des conclusions incorrectes sur les performances ou la cause première.

À partir de la capture de paquets :
Le RTT initial (iRTT) est calculé comme suit :
Cette valeur provient de :
La majeure partie de la latence (~94 %) se trouve dans le chemin de transfert (client → serveur → client), tandis que le temps de réponse de la source est minimal, ce qui indique l'absence de délai de l'UC ou de l'application sur le client.
Le port 445 correspond à Microsoft Server Message Block (SMB), couramment utilisé pour le partage de fichiers, les lecteurs réseau et les services d'authentification Windows. Ce protocole est sensible à la fois à la latence et au débit, ce qui le rend très dépendant de l’efficacité du protocole TCP et de la stabilité du réseau.
La fenêtre TCP représente la quantité de données pouvant être envoyées avant d'attendre l'accusé de réception. Dans ce cas, la source est légèrement plus restrictive que la destination. Ces valeurs sont relativement faibles dans les environnements modernes et peuvent limiter le débit, en particulier lorsque la RTT augmente.
Le débit théorique maximal peut être estimé à l'aide des éléments suivants :
Débit = Taille de fenêtre TCP / RTT
Remplacement des valeurs observées :
Débit ≈ 64 240 / 0,000798 ≈ 80,5 Mbit/s (~644 Mbit/s)
Cela représente le débit maximum en supposant :
Avec un débit actuel de 644 Mbits/s, le transfert d'un fichier de 6,5 To prend environ 23,5 heures, ce qui correspond à la dégradation observée. Pour obtenir une fenêtre de transfert de 9 heures, le débit doit augmenter à environ 1,68 Gbit/s, nécessitant soit une fenêtre TCP plus importante (~2,7 fois plus importante), soit une valeur RTT considérablement plus faible (~291 µ).
Dans les conditions actuelles (fenêtre de 64 Ko et RTT d'environ 798 µ), il n'est pas possible d'atteindre l'objectif de 9 heures, car le débit TCP est limité par le produit de délai de bande passante. Sans augmentation de la taille de la fenêtre ou réduction de la latence, le protocole ne peut pas utiliser une bande passante disponible plus élevée, ce qui rend la cible inaccessible.
| Scénario | Débit | Temps de transfert estimé (6,5 To) | Fenêtre TCP requise | RTT requis |
|---|---|---|---|---|
| État actuel |
644 Mbit/s (~80,5 Mbit/s) |
~23,5 heures |
64 Ko |
µs |
| Objectif (9 heures) |
~1 683 Mbit/s (~210 Mbit/s) |
9 heures |
~172 Ko |
~291 µ |
Cela a fonctionné précédemment, indiquant qu'une modification s'est produite sur le réseau, l'application, la source ou la destination. Il est important de noter que, sur la seule base de cette analyse initiale, une conclusion importante peut déjà être établie : dans les conditions actuelles de taille de fenêtre TCP et de RTT, l’objectif de 9 heures n’est pas possible.
Les tableaux comparent les variations du débit en fonction de l’augmentation ou de la diminution de la taille des fenêtres RTT et TCP.
Impact de RTT sur le débit (taille de fenêtre fixe = 64 240 octets)
| RTT | Débit (Mo/s) | Débit (Mbits/s) |
|---|---|---|
| 200 µ (0,0002 s) |
~321 Mo/s |
~2 568 Mbit/s |
| 798 µ (0,000798 s) |
~80,5 Mo/s |
~644 Mbit/s |
| 2 ms (0,002 s) |
~32,1 Mo/s |
~257 Mbit/s |
| 10 ms (0,01 s) |
~6,4 Mo/s |
~51 Mbit/s |
Impact sur la taille de fenêtre TCP (RTT fixe = 798 µs)
| Taille de fenêtre TCP | Débit (Mo/s) | Débit (Mbits/s) |
|---|---|---|
| 16 Ko (16 384 Mo) |
~20,5 Mo/s |
~164 Mbit/s |
| 64 Ko (64 240 Mo) |
~80,5 Mo/s |
~644 Mbit/s |
| 256 Ko (262 144 Mo) |
~328 Mo/s |
~2 624 Mbit/s |
| 1 Mo (1 048 576 Mo) |
~1 314 Mo/s |
~10,5 Gbit/s |
Interprétation technique
Cela démontre que la taille de fenêtre RTT et TCP sont des facteurs critiques dans les performances TCP et doivent être analysés ensemble lors du dépannage des problèmes de débit.
Un en-tête IP de 20 octets indique qu'aucune option IP n'est présente. L'en-tête TCP de 32 octets confirme que les options TCP sont utilisées, ajoutant 12 octets au-delà de l'en-tête de base. Ces options incluent généralement MSS, Échelle de fenêtre et SACK autorisé.
L'accusé de réception sélectif (SACK) est activé sur les deux terminaux. Ce n'est pas visible sur l'image. La fonction SACK permet au destinataire d'accuser réception de blocs de données non contigus, informant ainsi l'expéditeur avec exactitude des segments reçus.
Par exemple, si les segments 1000-2000 et 3000-4000 sont reçus mais que 2000-3000 est manquant, le destinataire peut l'indiquer explicitement. Sans SACK, l'expéditeur retransmettrait toutes les données après l'intervalle ; avec SACK, seule la partie manquante est retransmise. Ceci améliore considérablement les performances dans les environnements avec perte de paquets.
Analyse du paquet 1 (SYN)
Wireshark normalise le numéro de séquence à zéro pour la lisibilité, bien qu'il s'agisse en pratique d'une valeur aléatoire importante. L'absence de données utiles est attendue lors de l'établissement de la connexion. La valeur MSS de 1 460 octets indique une MTU de 1 500 octets (en-tête IP de 20 octets + en-tête TCP de 20 octets). Un TTL de 128 peut être un hôte Windows, et le fait de voir cette valeur dans la capture indique que la capture a probablement été effectuée à la source ou très près de celle-ci via la couche 2.
Analyse du paquet 2 (SYN-ACK)
La valeur ACK est 1 car l'indicateur SYN utilise un numéro de séquence, même si aucune charge utile n'est présente. Par conséquent, ACK = SEQ + 1.
La durée de vie observée de 59 suggère une durée de vie initiale de 64, ce qui signifie que le paquet a traversé environ 5 sauts de routage (64 − 59 = 5). Chaque saut routé décrémente la durée de vie de un.
Risque de fragmentation et impact sur le réseau
La présence d'environ cinq sauts de routage présente des risques potentiels en termes de performances, notamment en ce qui concerne les incohérences et la fragmentation des MTU.
Si une liaison intermédiaire a une MTU inférieure à la taille de paquet d’origine, une fragmentation peut se produire. Cela entraîne plusieurs conséquences :
Compte tenu de ces facteurs, il est essentiel d'assurer une MTU cohérente sur le chemin ou de mettre en oeuvre un verrouillage MSS si nécessaire.
Lorsque ACK RTT est supérieur à iRTT, cela indique que la latence a augmenté par rapport à la ligne de base établie lors de la connexion TCP.
Cela signifie que le réseau ou les points d'extrémité introduisent un délai supplémentaire pendant la session, généralement en raison des facteurs suivants :
Si cette condition persiste tout au long de la session TCP, elle entraîne :
Dans Wireshark, il est possible de visualiser la fréquence à laquelle la condition ACK RTT > iRTT se produit en utilisant la fonctionnalité I/O Graphs sous : Statistiques → Graphiques d'E/S, application du filtre d'affichage (tcp.analysis.ack_rtt > tcp.analysis.initial_rtt), sélection du style Impulse, définition de l'axe Y sur Packets et utilisation d'un intervalle de 50 microsecondes.
Dans le graphique, les impulsions violettes représentent le nombre de paquets qui remplissent cette condition dans chaque intervalle de 50 microsecondes. Comme observé, cette condition persiste tout au long de la capture de paquets, indiquant que la latence pendant la session est constamment supérieure à la ligne de base initiale. Ce comportement suggère fortement une dégradation soutenue des performances plutôt qu'une condition transitoire, ce qui renforce la nécessité d'étudier les sources potentielles telles que la congestion, la mise en mémoire tampon ou les retards de traitement des points d'extrémité sur le chemin de bout en bout.

Il est également important de déterminer pendant combien de temps le délai de péremption initial est dépassé, et pas seulement à quelle fréquence. Bien que Wireshark ne permette pas directement la soustraction entre les champs, une comparaison visuelle peut être effectuée à l’aide de graphiques d’E/S :
Dans cette visualisation, le graphique violet représente la condition ACK RTT > iRTT, qui est présente de façon constante tout au long de la session TCP. Les données montrent une inflation de latence soutenue, avec de multiples pics atteignant 11 millisecondes et un pic maximal de plus de 100 millisecondes, représentant 11x à 100x le iRTT de base.
Ce comportement confirme que l'augmentation de la latence n'est pas transitoire mais persistante, indiquant un problème systémique affectant la session au fil du temps. Cette déviation soutenue suggère fortement des facteurs tels que l'encombrement du réseau, la mise en mémoire tampon (bufferbloat) ou les retards de traitement des points d'extrémité.

Cette section évalue la fiabilité du protocole TCP en analysant les retransmissions dans le temps, ce qui permet de vérifier si la perte de paquets contribue à la dégradation des performances.
Le graphique montre la répartition des retransmissions TCP dans le temps. Au total, 42 retransmissions ont été observées, représentant seulement 0,00125 % du trafic total.
Ce niveau de retransmissions est négligeable et indique clairement que la perte de paquets n’est pas un facteur contributif dans ce scénario.
Configuration Wireshark (retransmissions TCP)
Statistics → I/O Graphs
tcp.analysis.retransmission and !tcp.analysis.spurious_retransmission
Le graphique montre le nombre de retransmissions TCP suspectes dans des intervalles d'une seconde générés par la source 10.93.19.8.
Dans Wireshark, une retransmission TCP erronée indique qu’un hôte a retransmis un segment qui n’a pas été réellement perdu. Le paquet d’origine a atteint le récepteur, mais l’expéditeur a supposé à tort une perte due à une estimation de synchronisation inexacte. Ce comportement n'indique pas une perte réelle de paquets, mais plutôt une logique de retransmission inefficace au niveau de l'expéditeur.
Dans cette capture :
Cela confirme que le comportement de retransmission est entièrement contrôlé par la pile TCP source, et non par le réseau.
Le nombre total de retransmissions erronées observées est de 1 112, ce qui représente 0,032 % du trafic total capturé.
Configuration Wireshark (retransmissions TCP erronées)
Statistics → I/O Graphs
tcp.analysis.spurious_retransmission and ip.src==10.93.19.8
Interprétation technique
Cette analyse confirme que le problème n'est pas lié à la fiabilité du réseau, mais plutôt au comportement TCP, à la latence ou aux performances des terminaux.

Le graphique montre le débit effectif, calculé en fonction de la charge utile TCP (données réelles transférées) en mégabits par seconde. Le débit observé oscille principalement entre 600 Mbits/s et 800 Mbits/s, ce qui indique que, pendant que le réseau transfère activement des données, il n’atteint pas un potentiel de bande passante plus élevé.
Configuration Wireshark (débit effectif)
Statistics → TCP Streams Graphs → Throughout

Interprétation technique
Le graphique met en évidence un comportement critique dans la session TCP en comparant la capacité du récepteur aux données réelles en transit (octets en vol).

Les données observées en vol atteignent des pics d'environ 1 Mo, avec des pics supplémentaires d'environ 8 Ko et 5 Ko, mais elles sont principalement concentrées entre 1 Ko et 250 Ko.
Cela indique que, bien que le récepteur soit capable de traiter des volumes de données plus importants, l'expéditeur n'utilise pas systématiquement la fenêtre disponible.
Configuration Wireshark (données en vol ou en fenêtre)
Statistics → TCP Streams Graphs → Throughout
Interprétation technique
L'analyse de la taille de la charge utile TCP par rapport à MSS permet de déterminer si l'expéditeur utilise efficacement chaque segment TCP. Cette analyse est effectuée du point de vue de l’adresse IP source (10.93.19.8).
Dans Wireshark, les graphiques sont configurés comme suit :
De l'analyse :

Cette analyse montre que l’identification de la cause première des problèmes de performances TCP nécessite une approche globale de bout en bout, plutôt que de supposer que le réseau est la principale source de dégradation.
Le commutateur Cisco Nexus 9300 a fait l'objet d'une validation approfondie, notamment en ce qui concerne les compteurs d'interface, les politiques QoS, la stabilité du routage et du protocole ARP, la vérification des points de CPU, la capture de paquets basée sur la fonctionnalité SPAN et la validation du transfert au niveau ASIC à l'aide d'ELAM. Tous les résultats ont confirmé de façon constante que le commutateur fonctionnait selon les paramètres prévus :
En outre, l'analyse TCP a révélé :
La dégradation des performances est due au fait que le serveur source fonctionne avec la MTU 1500 dans un environnement compatible jumbo, ce qui empêche une utilisation efficace de la capacité réseau disponible.
Augmentez la MTU sur le serveur source de 1500 à 9000 octets pour l'aligner sur l'infrastructure de destination et de réseau. Les avantages :
L’un des principaux enseignements de cette analyse est l’importance d’éviter des conclusions prématurées lors du dépannage des performances du réseau. Bien qu’il soit courant d’attribuer initialement des problèmes au réseau, ce cas démontre clairement que le réseau fonctionnait correctement sur l’ensemble du chemin du plan de données. Ce n’est qu’en effectuant une analyse TCP approfondie à la fois du point de vue de la source et de la destination (y compris les paramètres de connexion, le comportement RTT, l’utilisation de la fenêtre, les retransmissions et l’efficacité de la charge utile) qu’il a été possible d’identifier avec précision le véritable goulot d’étranglement.
Prendre le temps d’analyser en détail le comportement TCP permet d’éviter les erreurs de diagnostic, de réduire les modifications inutiles du réseau et de s’assurer que les efforts de correction sont dirigés vers la cause réelle.
| Révision | Date de publication | Commentaires |
|---|---|---|
2.0 |
07-May-2026
|
Titre mis à jour par demande d'auteur. |
1.0 |
06-May-2026
|
Première publication |