In dit document worden de TCP-fundamentals, de diepgaande pakketanalyse van Wireshark en praktische probleemoplossing beschreven om end-to-end prestaties te optimaliseren.
Cisco raadt kennis van de volgende onderwerpen aan:
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
Opmerking: vragen over de configuratie en interoperabiliteit van software of hardware van derden vallen buiten de ondersteuning van Cisco. Het gebruik van tools van derden is de beste manier om uw configuratie en werking met Cisco-apparatuur aan te tonen.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Transmission Control Protocol (TCP) is een fundamenteel transportlaagprotocol dat werkt op laag 4 van het OSI-model en biedt een betrouwbare, geordende en foutgecontroleerde levering van een stroom bytes tussen toepassingen die via een IP-netwerk communiceren.
Het diagram vertegenwoordigt de TCP/IP-stack waarin een TCP-segment (Layer 4) is ingekapseld in een IP-pakket (Layer 3) en vervolgens in een Ethernet-frame (Layer 2) gedefinieerd door IEEE 802.3. Deze gelaagde aanpak zorgt voor modulaire communicatie, waarbij elke laag zijn eigen besturingsinformatie (headers) toevoegt om levering, routering en gegevensintegriteit te garanderen.

De Ethernet-header is meestal 14 bytes, bestaande uit:
Daarnaast bevatten Ethernet-frames een 4-byte Frame Check Sequence (FCS) trailer voor foutdetectie bij Layer 2. IEEE 802.3 definieert framing, minimale/maximale framematen en fysieke leveringsbeperkingen die rechtstreeks van invloed zijn op protocollen met de bovenste laag, zoals TCP.
De IPv4-header heeft een minimale grootte van 20 bytes, uitbreidbaar tot 60 bytes met opties. Belangrijke velden zijn onder meer:
De IP-laag is verantwoordelijk voor logische adressering en routering over netwerken, maar garandeert geen betrouwbaarheid.
De TCP-header varieert van 20 tot 60 bytes, afhankelijk van de opties. Belangrijke velden zijn onder meer:
TCP voegt betrouwbare levering, juiste sequencing en flow control toe aan IP-communicatie.
TCP-opties breiden het basisprotocol uit. De meest voorkomende zijn:
Zowel SYN- als FIN-vlaggen gebruiken elk één volgnummer, zelfs als er geen lading aanwezig is. TCP werkt met een byte-georiënteerd sequencingmodel, waarbij elke verzonden byte en specifieke besturingsvlaggen de sequentieruimte bevorderen. Dit gedrag is essentieel voor nauwkeurige TCP-analyse bij pakketopnames en voor het diagnosticeren van sequencing- of bevestigingsinconsistenties.
ACK = SEQ + lengte nuttige lading + (SYN? 1: 0) + (FIN? 1: 0)
Waarbij:
ACK-berekening:
Dit weerspiegelt een scenario waarbij gegevens worden verzonden tijdens de TCP-handshake. Zowel de payload als de SYN-vlag verbruiken sequentieruimte.
ACK-berekening:
Hieruit blijkt dat TCP gegevens kan opnemen tijdens het afbreken van de verbinding en dat zowel de payload als de FIN-markering het volgnummer verhogen.
De maximale segmentgrootte (MSS) definieert de maximale payload die TCP in een segment kan verzenden.
Als TCP-opties aanwezig zijn, wordt MSS dienovereenkomstig verminderd. MSS wordt onderhandeld tijdens de TCP drieweg handshake en voorkomt fragmentatie op de IP-laag.
De maximale segmentgrootte (MSS) wordt uitgewisseld tijdens de TCP-handshake in drie richtingen met behulp van de MSS-optie in SYN-pakketten:
Elke partij zegt effectief:
Dit is de grootste TCP-payload die wordt geaccepteerd.
Over MSS wordt niet onderhandeld als één overeengekomen waarde.
In plaats daarvan:
Daarom:
In een correct functionerende TCP-stack: Nee.
De venstergrootte bepaalt hoeveel gegevens de ontvanger kan accepteren zonder bevestiging.
Wat het is:
Doel:
Waar het te verkrijgen:
Variabiliteit leverancier/besturingssysteem:
Nulvenstervoorwaarde:
Variabele Windows-mechanismen
Gebruik voor probleemoplossing:
In dit gedeelte wordt een praktische methode beschreven voor het vaststellen of een Cisco Nexus-switch met NX-OS het doorsturen van TCP-verkeer beïnvloedt of prestatieproblemen veroorzaakt. De aanpak wordt gepresenteerd door middel van een hypothetisch scenario.
Wanneer TCP-latentie of prestatievermindering wordt waargenomen, is het gebruikelijk om in eerste instantie te vermoeden dat het netwerk dit veroorzaakt. Deze veronderstelling moet echter worden gevalideerd door middel van gegevensgestuurde analyse. De gezaghebbende methode voor het oplossen van TCP-problemen is packet capture, idealiter uitgevoerd:
Dit zorgt voor zichtbaarheid in de TCP drieweg handshake, waar kritische parameters zoals MSS, Window Scale en SACK worden onderhandeld en niet later in de sessie worden herhaald. Als gelijktijdige vastlegging niet mogelijk is, kan de analyse worden voortgezet met één vastlegging, maar de conclusies zijn beperkt.
scenariodefinitie
Een gebruiker heeft vastgesteld dat het back-upproces voor een toepassingsdataset van ongeveer 7,5 TB, dat eerder in ongeveer 9 uur was voltooid, nu bijna 21 uur in beslag neemt. Hoewel TCP-sessies tussen de client en de server nog steeds met succes zijn ingesteld, wijst de aanzienlijke toename van de back-upduur op een mogelijke verslechtering van de doorvoer of de algehele TCP-prestaties. Omdat de Nexus-switch het enige netwerkapparaat in het pad is en ook Layer 3-gatewayfunctionaliteit biedt, vermoedt de netwerkbeheerder dat de Nexus-switch de oorzaak van het probleem is.

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
Waarom 1472 bytes?
Wat kan worden geconcludeerd
Hoe dit te gebruiken voor probleemoplossing
Praktische relevantie voor TCP
Om de TCP-prestaties op een Cisco Nexus 9000-switch effectief op te lossen, is het van essentieel belang om te bepalen welke interfaces het verkeer tussen de bron en de bestemming ontvangen en doorsturen.
In eenvoudige topologieën kan dit direct worden afgeleid uit de fysieke verbindingen. Als de client bijvoorbeeld is verbonden met Ethernet1/1 en de server met Ethernet1/2, is het verkeerspad eenvoudig. In echte omgevingen met meerdere actieve interfaces, poortkanalen of vPC-configuraties is deze identificatie echter niet altijd triviaal.
In dergelijke gevallen is de aanbevolen aanpak om Embedded Logic Analyzer Module (ELAM) te gebruiken, die zichtbaarheid biedt op het niveau van ASIC (data-plane hardware).
Met ELAM kunt u een pakket vastleggen terwijl het wordt verwerkt door de doorstuurpijplijn en kritieke informatie onthult, zoals:
Deze methode is aanzienlijk nauwkeuriger dan vertrouwen op control-plane tools, omdat het de werkelijke hardware forwarding pad weerspiegelt.
Het is belangrijk op te merken dat ELAM slechts één pakket tegelijk vastlegt, dus de filtercriteria moeten nauwkeurig worden gedefinieerd om overeen te komen met het gewenste verkeer (bijvoorbeeld bron-IP, bestemming-IP, TCP-poort). Als filters te breed zijn, bestaat het risico dat niet-gerelateerd verkeer zoals ICMP of UDP wordt vastgelegd in plaats van de beoogde TCP-stroom.
Bovendien moet dit proces voor beide verkeersrichtingen worden herhaald:
In omgevingen waarin vPC of ECMP wordt gebruikt, kan het verkeer over meerdere paden worden verdeeld. Als gevolg hiervan kan voorwaarts- en terugkeerverkeer verschillende switches of interfaces doorlopen. In deze scenario's moet ELAM op elke desbetreffende Nexus-switch worden uitgevoerd om volledige zichtbaarheid te garanderen.
Door de interfaces voor ingangen en uitgangen nauwkeurig te identificeren, wordt de omvang van het oplossen van problemen aanzienlijk beperkt, waardoor gerichte validatie van interfacetellers, QoS-beleid, MTU-instellingen en potentiële congestiepunten langs het exacte doorstuurpad mogelijk wordt.
Dit voorbeeld filtert verkeer met bron IP 10.93.19.8, bestemming IP 10.91.2.35 en TCP-bestemmingspoort 445.
ELAM-installatie
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
Nadat u het verkeer hebt gegenereerd, haalt u het resultaat op:
switch(TAH-elam-insel6)# report
Reverse Traffic Capture (verplicht voor volledig zicht)
Als u het retourpad wilt valideren, herhaalt u de configuratie door de IP-adressen van de bron en de bestemming te verwisselen:
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
Operationele opmerkingen
Cisco Nexus 9000 Cloud Scale ASIC ELAM Guide
De validatie op interfaceniveau zorgt ervoor dat de Nexus-switch geen restricties of anomalieën invoert die het TCP-verkeer beïnvloeden. De focus ligt op het bevestigen dat configuratie-, operationele status- en hardwaretellers consistent zijn met het verwachte gedrag voor het doorsturen van high-performance data-plane.
Configuratievalidatie
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
validering van de operationele toestand
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
Validatie van foutteller
switch#clear counters interface all
switch#show interface counters errors non-zero | include Port|Eth1/1|Eth1/2
validering na de test
switch#show interface counters errors non-zero | include Port|Eth1/1|Eth1/2
Het garanderen van routering en ARP-stabiliteit is van cruciaal belang om te bevestigen dat de Nexus-switch een consistente Layer 3-bereikbaarheid heeft en geen intermitterende oplossingsproblemen invoert die van invloed kunnen zijn op de TCP-prestaties. Instabiliteit in routeringsitems of ARP-resolutie kan leiden tot pakketverlies, verhoogde latentie of blokkering van het verkeer.
Validatiecriteria
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
In Cisco Nexus 9000-switches wordt forwarding uitgevoerd in hardware (ASIC) en de CPU is niet betrokken bij normale activiteiten van het gegevensplatform. Daarom is het observeren van host-to-host TCP-verkeer in het besturingsvlak abnormaal en geeft aan dat pakketten worden gepunteerd vanwege uitzonderingen of misconfiguraties. Zodra het verkeer door de CPU moet worden verwerkt, wordt het onderworpen aan Control Plane Policing en wordt verwacht dat er dalingen kunnen worden waargenomen als het verkeer de toegestane control-plane rate overschrijdt.
validatiemethode
switch# ethanalyzer local interface inband display-filter "ip.addr==10.93.19.8 and ip.addr==10.91.2.35" limit-capture 0
verwacht gedrag
Onverwacht gedrag
Packet forwarding latency in Nexus 9000-switches is afhankelijk van pakketgrootte, doorstuurmodus en functies die zijn ingeschakeld. Cisco-specificaties verwijzen doorgaans naar latentie voor pakketten van 64 bytes onder doorsnijding.
+----------------------+----------------------+-------------------------+-------------------------------+
| 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 |
+----------------------+----------------------+-------------------------+-------------------------------+
Extra functies kunnen incrementele latentie introduceren:
Echter:
Het enige realistische scenario waarbij de latentie merkbaar toeneemt, is congestie:
Zelfs in deze gevallen:
Dit maakt het spiegelen van data-plane verkeer in de control-plane voor packet capture en exporteren naar een .pcaping bestand, waardoor gedetailleerde analyse in Wireshark.
Configuratie
monitor session 1
source interface ethernet1/1 both
source interface ethernet1/2 both
destination interface sup-eth0
no shut
Capture-uitvoering
switch# ethanalyzer local interface inband mirror capture-filter "tcp port 445" limit-capture 0 write bootflash:tcp_capture.pcapng
Technische overwegingen
| methode | voordeel | beperking |
|---|---|---|
| OVERSPANNEN |
Nauwkeurig, geen inkapseling |
Hiervoor is een fysieke verbinding nodig. |
| RESPAN |
Opnamemogelijkheid op afstand |
Gevoelig voor netwerkcongestie. |
Om ervoor te zorgen dat SPAN-naar-CPU-opnamen betrouwbaar zijn, is het noodzakelijk om te valideren dat het controlevlak geen gespiegelde pakketten laat vallen vanwege snelheidsbeperkingen.
Validatiecommando
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
Validatiemethode
interpretatie
Als er druppels worden waargenomen, moet de vangmethode worden gewijzigd in SPAN of ERSPAN.
De ICMP-test biedt een basisvalidatie van de integriteit van het gegevensvlak voordat een complexe TCP-analyse wordt uitgevoerd. Omdat ICMP stateloos en eenvoudiger is, kan hiermee snel pakketverlies, duplicatie of inconsistenties in het pad worden gedetecteerd.
Verwacht gedrag in SPAN-opname
Dit bevestigt correct doorsturen en afwezigheid van pakketverlies in het gegevensvlak.
Abnormaal gedrag
Als ICMP-verkeer consequent zonder verlies wordt doorgestuurd, is de kans groot dat TCP-verkeer ook correct wordt doorgestuurd op Layer 2/3.
Wanneer verkeer wordt vastgelegd met behulp van SPAN naar CPU (of SPAN / ERSPAN), kan elk pakket twee keer worden waargenomen: één keer bij ingress en één keer bij egress. Deze duplicatie kan worden gebruikt om de doorstuurlatentie te schatten die door de Nexus-switch wordt geïntroduceerd door het tijdverschil tussen beide instanties van hetzelfde pakket te berekenen.
In de praktijk kan deze latentie worden gemeten met behulp van het eerder vastgelegde ICMP-verkeer door de tijddelta tussen gedupliceerde Echo Request- en Echo Reply-pakketten te vergelijken. Dit biedt een eenvoudige en effectieve basislijn voor het doorsturen van switches. Als een diepere analyse nodig is, kan dezelfde methodologie worden toegepast op TCP-verkeer door de stroom vast te leggen en het tijdsverschil tussen gedupliceerde TCP-pakketten te meten.
methodologie
Wireshark-configuratie
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
interpretatie
Deze sectie biedt een gedetailleerde methodologie voor het analyseren van een TCP-pakketopname in Wireshark, inclusief de profielconfiguratie, door middel van de hypothetische casus die eerder is beschreven. De getoonde afbeeldingen zijn rechtstreeks afkomstig van Wireshark. Ter herinnering: het scenario is:
Een gebruiker heeft vastgesteld dat het back-upproces voor een toepassingsdataset van ongeveer 6,5 TB, dat eerder in ongeveer 9 uur was voltooid, nu bijna 21 uur in beslag neemt. Het enige toegankelijke netwerkapparaat is een Cisco Nexus 9300-switch die is aangesloten op de bronserver (10.93.19.8). De MTU geconfigureerd op de switch-interface is 9000 bytes (jumbo frames), terwijl de MTU op de server is onbekend. Er is een pakketopname van de bronserver beschikbaar en alle eerdere Nexus-validatiestappen zijn al voltooid zonder dat er afwijkingen zijn gedetecteerd.
Belangrijkste opmerkingen en beperkingen
In Wireshark kunt u aangepaste profielen maken die zijn afgestemd op het specifieke type analyse dat u wilt uitvoeren.
kolombeschrijving
Het vastleggen van de TCP-handshake in drie richtingen is verplicht omdat deze kritieke parameters bevat zoals MSS, Window Scale en SACK die bepalen hoe de sessie zich gedraagt.
Zonder deze informatie is elke TCP-analyse onvolledig en kan deze leiden tot onjuiste conclusies over prestaties of onderliggende oorzaken.

Uit de pakketopname:
De initiële RTT (iRTT) wordt berekend als:
Deze waarde is afgeleid van:
Het grootste deel van de latentie (~94%) bevindt zich in het voorwaartse pad (client → server → client), terwijl de responstijd van de bron minimaal is, wat aangeeft dat er geen CPU- of toepassingsvertraging is op de client.
Poort 445 komt overeen met Microsoft Server Message Block (SMB), dat vaak wordt gebruikt voor het delen van bestanden, netwerkstations en Windows-verificatieservices. Dit protocol is gevoelig voor zowel latentie als doorvoer, waardoor het sterk afhankelijk is van TCP-efficiëntie en netwerkstabiliteit.
Het TCP-venster geeft aan hoeveel gegevens kunnen worden verzonden voordat wordt gewacht op bevestiging. In dit geval is de bron iets restrictiever dan de bestemming. Deze waarden zijn relatief klein voor moderne omgevingen en kunnen de doorvoer beperken, vooral als RTT toeneemt.
De maximale theoretische doorvoer kan worden geschat met behulp van:
Doorvoer = TCP-venstergrootte / RTT
Vervanging van de waargenomen waarden:
Doorvoer ≈ 64.240 / 0,000798 ≈ 80,5 MB/s (~644 Mbps)
Dit is de bovengrens van de doorvoer, uitgaande van:
Bij de huidige doorvoer van 644 Mbps duurt het overbrengen van een 6,5 TB-bestand ongeveer 23,5 uur, wat overeenkomt met de waargenomen degradatie. Om een 9-uurs overdrachtsvenster te bereiken, moet de doorvoer toenemen tot ongeveer 1,68 Gbps, waarbij een groter TCP-venster (~2,7x toename) of een aanzienlijk lagere RTT (~291 µs) nodig is.
Met de huidige omstandigheden (64 KB venster en ~798 µs RTT), is het niet mogelijk om de 9-uur doelstelling te bereiken, omdat de TCP doorvoer wordt beperkt door de bandbreedte-delay product. Zonder de venstergrootte te vergroten of de latentie te verminderen, kan het protocol geen hogere beschikbare bandbreedte gebruiken, waardoor het doel onbereikbaar wordt.
| Scenario | doorvoer | Geschatte overdrachttijd (6,5 TB) | Vereist TCP-venster | Vereiste RTT |
|---|---|---|---|---|
| Huidige staat |
644 Mbps (~80,5 MB/s) |
~23,5 uur |
64 KB |
798 µs |
| Doel (9 uur) |
~1683 Mbps (~210 MB/s) |
9 uur |
~172 KB |
~291 µs |
Dit werkte eerder, wat aangeeft dat er een wijziging is opgetreden in het netwerk, de toepassing, de bron of de bestemming. Het is belangrijk op te merken dat, alleen al op basis van deze eerste analyse, een belangrijke conclusie al kan worden vastgesteld: onder de huidige TCP-venstergrootte en RTT-voorwaarden is het niet mogelijk om de 9-urendoelstelling te bereiken.
De tabellen laten een vergelijking zien van hoe de doorvoer varieert naarmate de RTT- en TCP-venstergrootte groter of kleiner worden.
RTT-impact op doorvoer (vaste venstergrootte = 64.240 bytes)
| RTT | Doorvoer (MB/s) | Doorvoer (Mbps) |
|---|---|---|
| 200 µs (0,0002 s) |
~321 MB/s |
~2.568 Mbps |
| 798 µs (0,000798 S) |
~80,5 MB/s |
~644 Mbps |
| 2 ms (0,002 s) |
~32,1 MB/s |
~257 Mbps |
| 10 ms (0,01 s) |
~6,4 MB/s |
~51 Mbps |
Impact van TCP-venstergrootte (vaste RTT = 798 µs)
| TCP-venstergrootte | Doorvoer (MB/s) | Doorvoer (Mbps) |
|---|---|---|
| 16 KB (16,384 B) |
~20,5 MB/s |
~164 Mbps |
| 64 KB (64,240 B) |
~80,5 MB/s |
~644 Mbps |
| 256 KB (262,144 B) |
~328 MB/s |
~2.624 Mbps |
| 1 MB (1.048.576 B) |
~1.314 MB/s |
~10,5 Gbps |
technische interpretatie
Dit toont aan dat zowel de RTT- als de TCP-venstergrootte cruciale factoren zijn voor de TCP-prestaties en samen moeten worden geanalyseerd bij het oplossen van doorvoerproblemen.
Een 20-byte IP-header geeft aan dat er geen IP-opties aanwezig zijn. De 32-byte TCP-header bevestigt dat TCP-opties worden gebruikt en voegt 12 bytes toe buiten de basisheader. Deze opties omvatten meestal MSS, Vensterschaal en TOEGESTANE SACK.
Selectieve erkenning (SACK) is ingeschakeld op beide eindpunten. Dit is niet zichtbaar op de foto. Met SACK kan de ontvanger niet-aaneengesloten gegevensblokken herkennen en de afzender precies vertellen welke segmenten met succes zijn ontvangen.
Als bijvoorbeeld de segmenten 1000-2000 en 3000-4000 worden ontvangen, maar 2000-3000 ontbreekt, kan de ontvanger dit expliciet aangeven. Zonder SACK zou de afzender alle gegevens na de gap opnieuw verzenden; met SACK wordt alleen het ontbrekende deel opnieuw verzonden. Dit verbetert de prestaties aanzienlijk in omgevingen met pakketverlies.
Analyse van pakket 1 (SYN)
Wireshark normaliseert het volgnummer tot nul voor leesbaarheid, hoewel het in de praktijk een grote willekeurige waarde is. De afwezigheid van nuttige lading wordt verwacht tijdens het instellen van de verbinding. De MSS-waarde van 1460 bytes geeft een MTU van 1500 bytes aan (20 bytes IP-header + 20 bytes TCP-header). Een TTL van 128 kan een Windows-gebaseerde host zijn en het zien van deze waarde in de opname geeft aan dat de opname waarschijnlijk op of in de buurt van de bron is gemaakt via Layer 2.
Analyse van pakket 2 (SYN-ACK)
De ACK-waarde is 1 omdat de SYN-vlag één volgnummer verbruikt, zelfs als er geen lading aanwezig is. Daarom is ACK = SEQ + 1.
De waargenomen TTL van 59 suggereert een initiële TTL van 64, wat betekent dat het pakket ongeveer 5 routerende hop doorkruiste (64 - 59 = 5). Elke gerouteerde hop verlaagt de TTL met één.
Risico van fragmentatie en impact op het netwerk
De aanwezigheid van ongeveer vijf routinghops brengt potentiële prestatierisico's met zich mee, met name in verband met MTU-mismatches en fragmentatie.
Als een tussenliggende link een lagere MTU heeft dan de oorspronkelijke pakketgrootte, kan fragmentatie optreden. Dit heeft verschillende gevolgen:
Gezien deze factoren is het van cruciaal belang om consistente MTU over het pad te garanderen of waar nodig MSS-klemmen te implementeren.
Wanneer ACK RTT groter is dan iRTT, geeft dit aan dat de latentie is toegenomen in vergelijking met de baseline die is vastgesteld tijdens de TCP-handshake.
Dit betekent dat het netwerk of de eindpunten tijdens de sessie extra vertraging veroorzaken, meestal als gevolg van:
Als deze voorwaarde tijdens de TCP-sessie blijft bestaan, leidt dit tot:
In Wireshark is het mogelijk om te visualiseren hoe vaak de conditie ACK RTT > iRTT optreedt door gebruik te maken van de I/O Graphs functie onder: Statistics → I/O Graphs, het toepassen van het display filter (tcp.analysis.ack_rtt > tcp.analysis.initial_rtt), het selecteren van Impulse stijl, het instellen van de Y-as naar Packets, en het gebruik van een interval van 50 microseconden.
In de grafiek geven de paarse impulsen het aantal pakketten weer dat aan deze voorwaarde voldoet binnen elk interval van 50 microseconden. Zoals opgemerkt, blijft deze voorwaarde gedurende de gehele pakketopname bestaan, wat aangeeft dat de latentie tijdens de sessie consistent hoger is dan de initiële basislijn. Dit gedrag wijst sterk op een aanhoudende verslechtering van de prestaties in plaats van een voorbijgaande aandoening, wat de noodzaak versterkt om potentiële bronnen zoals congestie, buffering of vertragingen in de verwerking van eindpunten over het end-to-end pad te onderzoeken.

Het is ook belangrijk om te bepalen hoe lang de iRTT wordt overschreden, niet alleen hoe vaak. Hoewel Wireshark niet direct aftrekken tussen velden toestaat, kan een visuele vergelijking worden bereikt met behulp van I / O-grafieken:
In deze visualisatie vertegenwoordigt de paarse grafiek de toestand ACK RTT > iRTT, die consistent aanwezig is tijdens de hele TCP-sessie. De gegevens tonen aanhoudende latentie-inflatie, met meerdere pieken bereiken van 11 milliseconden en een maximale piek van meer dan 100 milliseconden, wat neerkomt op 11x tot 100x de baseline iRTT.
Dit gedrag bevestigt dat de latentieverhoging niet van voorbijgaande aard is, maar aanhoudend, wat wijst op een systemisch probleem dat de sessie in de loop van de tijd beïnvloedt. Een dergelijke aanhoudende afwijking duidt sterk op factoren zoals netwerkcongestie, buffering (bufferbloat) of vertragingen in de verwerking van eindpunten.

In dit gedeelte wordt de betrouwbaarheid van TCP geëvalueerd door hertransmissies in de loop van de tijd te analyseren, zodat kan worden gevalideerd of pakketverlies bijdraagt aan de verslechtering van de prestaties.
De grafiek toont de verdeling van TCP-heruitzendingen in de tijd. In totaal werden 42 heruitzendingen waargenomen, die slechts 0,00125% van het totale verkeer vertegenwoordigen.
Dit niveau van heruitzendingen is verwaarloosbaar en geeft duidelijk aan dat pakketverlies geen bijdragende factor is in dit scenario.
Wireshark-configuratie (TCP-heruitzendingen)
Statistics → I/O Graphs
tcp.analysis.retransmission and !tcp.analysis.spurious_retransmission
De grafiek toont het aantal TCP Spurious Retransmissions in 1 sec intervallen gegenereerd door de bron 10.93.19.8.
In Wireshark geeft een TCP Spurious Retransmissie aan dat een host een segment dat niet daadwerkelijk verloren is gegaan, opnieuw heeft verzonden. Het oorspronkelijke pakket bereikte de ontvanger met succes, maar de afzender ging ten onrechte uit van verlies als gevolg van een onjuiste schatting van de timing. Dit gedrag duidt niet op echt pakketverlies, maar eerder op inefficiënte retransmissielogica bij de afzender.
In deze opname:
Dit bevestigt dat het doorgiftegedrag volledig wordt gecontroleerd door de TCP-bronstack, niet door het netwerk.
Het totale aantal waargenomen valse heruitzendingen is 1.112, wat overeenkomt met 0,0332% van het totale gevangen verkeer.
Wireshark-configuratie (TCP Spurious Retransmissions)
Statistics → I/O Graphs
tcp.analysis.spurious_retransmission and ip.src==10.93.19.8
technische interpretatie
Deze analyse versterkt verder dat het probleem niet gerelateerd is aan netwerkbetrouwbaarheid, maar eerder aan TCP-gedrag, latentie of eindpuntprestaties.

De grafiek toont de effectieve doorvoer, berekend op basis van TCP-payload (daadwerkelijk overgedragen gegevens) in megabits per seconde. De waargenomen doorvoer schommelt voornamelijk tussen 600 Mbps en 800 Mbps, wat aangeeft dat het netwerk weliswaar actief gegevens overdraagt, maar geen hoger bandbreedtepotentieel bereikt.
Configuratie van Wireshark (effectieve doorvoer)
Statistics → TCP Streams Graphs → Throughout

technische interpretatie
De grafiek benadrukt een kritisch gedrag in de TCP-sessie door de capaciteit van de ontvanger te vergelijken met de werkelijke gegevens in transit (bytes tijdens de vlucht).

De waargenomen gegevens in vlucht pieken bij ongeveer 1 MB, met extra pieken rond 8 KB en 5 KB, maar het is voornamelijk geconcentreerd tussen 1 KB en 250 KB.
Dit geeft aan dat hoewel de ontvanger in staat is om grotere hoeveelheden gegevens te verwerken, de afzender niet consequent het beschikbare venster gebruikt.
Configuratie Wireshark (gegevens in vlucht versus venster)
Statistics → TCP Streams Graphs → Throughout
technische interpretatie
Door de omvang van de TCP-payload in de loop van de tijd te analyseren ten opzichte van MSS, kan worden bepaald of de afzender elk TCP-segment efficiënt gebruikt. Deze analyse wordt uitgevoerd vanuit het perspectief van het IP-adres van de bron (10.93.19.8).
In Wireshark zijn de grafieken als volgt geconfigureerd:
Uit de analyse:

Deze analyse toont aan dat het identificeren van de hoofdoorzaak van TCP-prestatieproblemen een holistische, end-to-end benadering vereist, in plaats van aan te nemen dat het netwerk de primaire bron van degradatie is.
Uitgebreide validatie werd uitgevoerd op de Cisco Nexus 9300-switch, inclusief interfacetellers, QoS-beleid, routering en ARP-stabiliteit, CPU-puntverificatie, SPAN-gebaseerde pakketregistratie en ASIC-niveau forwarding-validatie met behulp van ELAM. Alle resultaten bevestigden consequent dat de switch binnen de verwachte parameters werkte:
Bovendien onthulde TCP-analyse:
De verslechtering van de prestaties wordt veroorzaakt door de bronserver die werkt met MTU 1500 in een omgeving die geschikt is voor jumbo, waardoor efficiënt gebruik van de beschikbare netwerkcapaciteit wordt voorkomen.
Verhoog de MTU op de bronserver van 1500 naar 9000 bytes om af te stemmen op de bestemming en de netwerkinfrastructuur. De voordelen:
Een belangrijke conclusie uit deze analyse is het belang van het vermijden van voorbarige conclusies bij het oplossen van problemen met netwerkprestaties. Hoewel het gebruikelijk is om problemen in eerste instantie toe te schrijven aan het netwerk, toont dit geval duidelijk aan dat het netwerk correct functioneerde gedurende het hele pad van het gegevensvlak. Alleen door diepgaande TCP-analyse uit te voeren vanuit zowel het bron- als het bestemmingsperspectief - inclusief handshake-parameters, RTT-gedrag, venstergebruik, hertransmissies en payload-efficiëntie - was het mogelijk om de echte bottleneck nauwkeurig te identificeren.
Door de tijd te nemen om TCP-gedrag in detail te analyseren, voorkomt u verkeerde diagnoses, vermindert u onnodige netwerkwijzigingen en zorgt u ervoor dat de herstelinspanningen gericht zijn op de werkelijke oorzaak.
| Revisie | Publicatiedatum | Opmerkingen |
|---|---|---|
2.0 |
07-May-2026
|
Bijgewerkte titel per auteur aanvraag. |
1.0 |
06-May-2026
|
Eerste vrijgave |