Wireshark - was ist passiert?

439
Shanee Vanstone

Diese Wireshark-Ausgabe hat mich ein paar Stunden lang verrückt gemacht. Was passiert hier?

192.168.2.100 ist ein Apache-Server, der eine statische Datei bereitstellt.

192.168.2.196 ist ein eingebetteter Client, der die Datei herunterlädt.

Es sieht so aus, als würde 192.168.2.196 die Datei glücklich herunterladen, und dann beginnt sie einfach, 192.168.2.100 zu ignorieren, und die Verbindung wird daher abgebrochen und schließlich beendet?

Ist das richtig und warum kann der Kunde dies tun?

Wireshark Bild - hier klicken

-1
Gibt es eine Antiviren- / Firewall-Software, die die Verbindung blockieren könnte? Allen Howard vor 6 Jahren 0
Das glaube ich nicht. Außerdem wird manchmal der gesamte Download abgeschlossen. Shanee Vanstone vor 6 Jahren 0
Es sieht aus wie ein Client-Problem: Es gibt eine Reihe von Gründen, warum ein Client das Anfordern eines Herunterladens aufhört, wobei der verfügbare Speicherplatz am offensichtlichsten ist. Andere beinhalten, dass der RAM zum Puffern ausgeht (insbesondere wenn kein Swap konfiguriert ist) und andere Programme, die dem Client nicht genügend CPU-Zeit bieten. AFH vor 6 Jahren 1
AFH, es ist wahrscheinlich Client-Seite! Irgendeine Idee, was es sein könnte? Der Client bleibt in einem lwip_read () - Aufruf stehen (wartet auf Daten), daher sollte der Puffer nicht voll sein. Shanee Vanstone vor 6 Jahren 0

1 Antwort auf die Frage

0
KPiette

Die Symptome zeigen eindeutig, dass es einen Engpass bei der Verarbeitung von Clients gibt.

Die Ablaufverfolgung zeigt, dass sich der Empfangspuffer im Client-Netzwerkstapel (LwIP anscheinend) füllt. Insbesondere die Fenstergröße in Bestätigungen des Clients nimmt ab, wenn eine Reihe von Paketen vom Server empfangen wird, bis der Empfangspuffer vollständig gefüllt ist und ein " ZeroWindow "wird vom Client an den Server gesendet, um anzufordern, dass keine Daten mehr gesendet werden.

Dies weist in der Regel darauf hin, dass das Lesen der Anwendung aus dem Socket den Empfangspuffer nicht schnell genug entleert, damit der Netzwerkstapel mit den ankommenden Paketen mithalten kann.

Die häufigen Neuübertragungen vom Server in Kombination mit verzögerten ACKs vom Client legen nahe, dass die Bedingungen auf dem Client auch die untergeordnete Empfangspaketverarbeitung im Netzwerkstapel negativ beeinflussen.

Sie haben erwähnt, dass der Client-Host ein eingebettetes Gerät war, und kommentierte außerdem, dass Ihre App anscheinend bei lwip_read () blockiert ist. Das Warten lässt darauf schließen, dass eine andere E / A- oder CPU-Ressource oder ein Engpass für die Zeitplanung möglicherweise dazu führt, dass der gelesene Thread nicht genügend CPU-Zeit erhält, um mit der Dateiübertragung Schritt zu halten. Die verzögerten ACKs deuten jedoch darauf hin, dass möglicherweise ein breiteres Problem vorliegt. Ohne mehr über das eingebettete Gerät zu wissen, ist es schwierig, weitere Probleme zu beheben.

Für LwIP gelten außerdem bestimmte Einschränkungen in Bezug auf die Bearbeitung von Netzwerkanrufen, die möglicherweise für Ihre Implementierung gelten. Weitere Informationen finden Sie auf dieser Seite .

Ich hoffe, dass diese Informationen zur Lösung Ihres Problems hilfreich sind.