TCP Retransmits & Latency: Netzwerkprobleme vs. App-Probleme trennen

TCP Retransmits und erhöhte Latenz sind in Web- und Applikations-Stacks ein häufiges Symptom für Netzwerkprobleme. Allerdings führen sie oft zu Verwirrung, weil ähnliche Symptome auch von der Anwendung selbst oder vom Server-Stack verursacht werden können. In diesem Artikel lernen Sie, wie Sie TCP Retransmits messen, die Ursachen zwischen Netzwerk- und Applikationsebene unterscheiden und praktische Maßnahmen zur Optimierung der Performance ergreifen können.

Grundlagen: TCP Retransmits verstehen

TCP Retransmits entstehen, wenn ein gesendetes Paket innerhalb der festgelegten Retransmit-Timeout-Periode nicht bestätigt wird. Dies kann sowohl auf Netzwerkprobleme (z.B. Paketverlust, Überlastung) als auch auf Überlastung auf der Serverseite hindeuten.

Typische Ursachen für Retransmits

  • Paketverlust auf der Leitung (physikalisch oder virtuell)
  • Hohe Latenz durch Netzwerküberlastung
  • Serverseitige Verarbeitung verzögert ACKs
  • Firewall oder NAT-Geräte, die Pakete verzögern oder verwerfen

Symptome erhöhter TCP-Retransmits

Ein hoher Anteil an Retransmits führt zu messbarer Latenz, Timeouts und schlechter User-Experience. Typische Symptome sind:

  • Lange Ladezeiten bei HTTP/HTTPS-Anfragen
  • Timeouts bei API-Aufrufen oder Datenbankverbindungen
  • Netzwerkanalyse zeigt wiederholte Paket-Sendungen
  • Logs auf Servern enthalten Warnungen zu Timeouts oder verzögerten Responses

Monitoring: TCP Retransmits erkennen

Linux Tools

Auf Linux-Systemen können Retransmits und Netzwerkstatistiken über folgende Tools gemessen werden:

# Alle TCP-Socket-Statistiken
ss -s

TCP Retransmits pro Socket

netstat -s | grep retransmits

Fortlaufendes Monitoring

watch -n 1 'ss -s | grep retrans'

Wireshark / tcpdump

Zur tiefergehenden Analyse von Netzwerkpaketen und Retransmits:

# TCP Pakete für Port 443 mitschneiden
tcpdump -i eth0 tcp port 443 -w capture.pcap

Im Wireshark Retransmits markieren und analysieren

Ursache identifizieren: Netzwerk vs. Applikation

Es ist entscheidend, zwischen Netzwerk- und Anwendungsproblemen zu unterscheiden, um gezielt optimieren zu können.

Netzwerkbedingte Retransmits

  • Hoher Paketverlust oder verzögerte ACKs
  • Probleme treten systemweit auf, nicht nur für einzelne Requests
  • Netzwerkanalyse zeigt mehrfach gesendete Pakete ohne Serverantwort

Applikationsbedingte Verzögerungen

  • TCP Retransmits entstehen indirekt durch verspätete ACKs vom Server
  • Betroffen sind bestimmte URLs oder Endpunkte, oft bei rechenintensiven Operationen
  • Server-Logs zeigen hohe Request-Verarbeitungszeiten

Messmethoden für Latenztrennung

Round-Trip-Time vs. Server Response

  • Mit ping oder mtr RTT messen
  • Mit curl -w '%{time_total}' reine Server-Antwortzeiten messen
  • Vergleich zeigt, ob Latenz durch Netzwerk oder Applikation entsteht

Beispiel mit curl

curl -o /dev/null -s -w "Total: %{time_total}snConnect: %{time_connect}sn" https://example.com

Optimierungsstrategien

Netzwerkseitige Maßnahmen

  • Switches und Router auf Paketverlust prüfen
  • QoS implementieren, um wichtige Verbindungen zu priorisieren
  • MTU- und TCP-Parameter (z.B. TCP window scaling) anpassen
  • Redundante Pfade und Load Balancer zur Vermeidung von Engpässen

Server- und Applikationsseitige Maßnahmen

  • Keep-Alive und Connection Pooling aktiv nutzen
  • Asynchrone Verarbeitung von Requests einsetzen
  • TCP-Backlog in Nginx/Apache erhöhen:
  • worker_connections 10240;
    listen 80 backlog=2048;
    
  • FPM/Node/Gunicorn Worker-Count an reale Last anpassen

Monitoring & Alerting

Ein kontinuierliches Monitoring hilft, zwischen Netzwerk- und App-Problemen frühzeitig zu unterscheiden:

  • Prometheus Node Exporter: tcp_retransmits, tcp_established
  • Grafana Dashboards für RTT, Retransmits und Server-Response-Time
  • Alerts bei plötzlichem Anstieg der Retransmits oder Latenzspitzen

Praxisbeispiel: Nginx + PHP-FPM Stack

# Nginx Worker & Backlog optimieren
worker_processes auto;
worker_connections 8192;
listen 80 backlog=2048;

PHP-FPM Tuning

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

Keep-Alive aktiv

keepalive_timeout 65s;

Fazit

TCP Retransmits sind ein wertvoller Indikator für Performance-Probleme, doch die Ursache kann sowohl im Netzwerk als auch in der Applikation liegen. Mit gezieltem Monitoring, klaren Trennmethoden zwischen RTT und Server-Response sowie angepassten Netzwerk- und Serverparametern lassen sich Latenzen reduzieren und die Stabilität von Web-Stacks erhöhen.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles