Verwendung von Recv-Q und Send-Q
Was ist der nutzen der Recv-Q und Send-Q Spalten in der netstat-Ausgabe? Wie verwende ich diese in einem realistischen Szenario?
Auf meinem system, die beiden Spalten werden immer angezeigt als null. Was ist die Bedeutung für das?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Von meinem Mann-Seite:
Wenn Sie diese stecken, um 0, dies nur bedeuten, dass Ihre Anwendungen, auf beiden Seiten der Verbindung und das Netzwerk zwischen Ihnen, Sie tun OK. Aktuelle instant-Werte können von 0 abweicht, aber in solch flüchtigen, diffusen Art und Weise, dass Sie nicht bekommen, eine chance, tatsächlich beobachten.
Beispiel von real-life-Szenario, wo diese vielleicht unterschiedlich von 0 (auf etablierte verbindungen, aber ich denke, Sie bekommen die Idee):
Ich habe vor kurzem arbeitete auf einem Linux embedded-device-Gespräch mit einem (schlecht konzipierte) Gerät der Drittpartei. Auf dieser Dritten Gerät, dem Antrag eindeutig zu stecken, manchmal, nicht das Lesen der Daten, die es empfängt TCP-Verbindung, wodurch die TCP-Fenster gehen runter auf 0 und bleiben stecken, dort für zehn Sekunden (beobachtete Phänomen über wireshark auf einem gespiegelten port zwischen den 2 hosts). In einem solchen Fall:
Recv-Q: läuft
netstat
auf dem Dritten Gerät (die hatte ich nichtbedeuten zu tun) haben kann, zeigen eine zunehmende Recv-Q, bis zu einem gewissen Wert Dach
wo die andere Seite (mich) zu stoppen senden von Daten, da die Fenster bekommen
bis zu 0, da die Anwendung nicht die Daten Lesen verfügbar
seine Buchse, und diese Daten bleiben gepuffert in der TCP-Implementierung in
das Betriebssystem, nicht die Anwendung stecken -> vom Empfänger
Seite, Anwendung Problem.
Send-Q: läuft
netstat
auf meine Seite (die habe ich nicht ausprobiert, weil1/das problem war klar die von wireshark und war der erste Fall oben
und 2/das war nicht 100% reproduzierbar) kann haben, zeigen einen nicht-null -
Send-Q, wenn der anderen Seite die TCP-Implementierung auf der OS-Ebene
war stucked und gestoppt ACKnowleding meine Daten -> vom sender
Seite, die empfangende TCP-Implementierung (in der Regel auf OS-Ebene) Problem.
Beachten Sie, dass die Send-Q Szenario oben dargestellt kann auch ein Versand Seite-Problem (meiner Seite) wenn mein Linux-TCP-Implementierung wurde Fehlverhalten und die Fortsetzung zum senden von Daten nach dem TCP-Fenster ging, um 0: die empfangende Seite hat dann keinen Platz mehr für diese Daten -> nicht Anerkennen.
Beachten Sie auch, dass die Send-Q Problem kann verursacht werden, nicht wegen des Receivers, aber durch einige routing Problem irgendwo zwischen dem sender und dem Empfänger. Einige Pakete "on the fly" zwischen den 2 hosts, aber nicht Bestätigen noch. Auf der anderen Seite, die Recv-Q Problem ist definitiv auf einem host: Pakete empfangen, Quittiert, aber nicht gelesen von der Anwendung noch.
EDIT:
Im echten Leben, mit nicht-crappy-hosts und-Anwendungen, wie Sie vernünftigerweise erwarten kann, ich würde Wetten, die Send-Q-Problem verursacht werden, die die meiste Zeit durch einige routing-Problem/Netzwerk schlechte Leistungen zwischen der sendenden und der empfangenden Seite. Die "on-the-fly" - Zustand der Pakete sollte nie vergessen werden:
Das Paket kann über das Netzwerk zwischen dem sender und dem Empfänger,
(oder ACK empfangen, aber nicht senden, aber dennoch, siehe oben)
oder die ACK können über das Netzwerk zwischen dem Empfänger und den Absender.
Dauert es eine RTT (round-time trip) für ein Paket zu schicken und dann ACKed.
ss
Befehl als für die älterennetstat
? Ich vermute, Sie sind, aber die man-page habe ich für die ss nicht sagen, was Sie bedeuten. Die vielleicht, wenn Sie sind die gleichen, wir können aktualisieren Sie das Q oben. Dank