Frage Wie passiv überwachen für TCP Paketverlust? (Linux)


Wie kann ich den Paketverlust bei TCP-Verbindungen zu / von meinem Computer passiv überwachen?

Im Grunde möchte ich ein Tool, das im Hintergrund sitzt und TCP ack / nak / re-transfers ansieht, um einen Bericht zu erstellen, auf dem die Peer-IP-Adressen "schwer" zu leiden scheinen.

Die meisten Fragen, die ich an SF stelle, schlagen vor, Werkzeuge wie iperf zu benutzen. Aber ich muss Verbindungen zu / von einer realen Anwendung auf meinem Rechner überwachen.

Sind diese Daten nur im Linux-TCP-Stack vorhanden?


53
2017-10-05 23:55


Ursprung




Antworten:


Für ein allgemeines Verständnis des Ausmaßes Ihres Problems netstat -s Verfolgt Ihre Gesamtanzahl an Neuübertragungen.

# netstat -s | grep retransmitted
     368644 segments retransmitted

Sie können auch für grep segments um eine detailliertere Ansicht zu bekommen:

# netstat -s | grep segments
         149840 segments received
         150373 segments sent out
         161 segments retransmitted
         13 bad segments received

Für einen tieferen Tauchgang wirst du wahrscheinlich Wireshark anzünden wollen.

Setzen Sie in Wireshark Ihren Filter auf tcp.analysis.retransmission Retransmissions durch Flow sehen.

Das ist die beste Option, die ich mir vorstellen kann.

Andere Sackgassen erforscht:

  • Netfilter / Conntrack-Tools scheinen nicht erneut zu übertragen
  • aufzeichnen netstat -s zeigte, dass es nur druckt /proc/net/netstat 
  • Spalte 9 in / proc / net / tcp sah vielversprechend aus, scheint aber leider nicht genutzt zu werden.

42
2017-10-06 01:59



und Sie können die veralteten Pakete mit # watch 'netstat -s | überwachen grep retransmitted ' - none
Dies würde nur ausgehende Probleme anzeigen. "netstat -s | grep segments" erscheint mir vernünftiger. - akostadinov
Wenn Sie ein Netzwerk vernünftiger Größe verwalten, dann würde ich Pastmon über Wireshark zur kontinuierlichen Überwachung empfehlen - pasmon.sourceforge.net/Wikka-1.1.6.5/wikka.php?wakka=HomePage - symcbean
Aus irgendeinem Grund wird es geschrieben retransmited für mich (Ubuntu Server 14). - sudo
Was ist eine gute Rate für Sendewiederholungen vs gesendet oder empfangen? - abourget


Diese Statistiken sind in / proc / net / netstat und collectl überwacht sie entweder interaktiv für Sie oder schreibt sie zur späteren Wiedergabe auf die Festplatte:

[root@poker ~]# collectl -st
waiting for 1 second sample...
#<------------TCP------------->
#PureAcks HPAcks   Loss FTrans
        3      0      0      0
        1      0      0      0

Natürlich, wenn Sie dann Seite-an-Seite mit Netzwerkverkehr sehen möchten, schließen Sie einfach ein n mit -s:

[root@poker ~]# collectl -stn
waiting for 1 second sample...
#<----------Network----------><------------TCP------------->
#  KBIn  PktIn  KBOut  PktOut PureAcks HPAcks   Loss FTrans
      0      1      0       1        1      0      0      0
      0      1      0       1        1      0      0      0

10
2017-11-28 16:18





Du kannst den ... benutzen ss Werkzeug, um detaillierte TCP-Statistiken zu erhalten:

$ /sbin/ss -ti

Unter Debian verwenden apt-get install iproute um die Binärdatei zu erhalten.


5
2018-04-06 19:41



Beachten Sie, dass die Person, die die Frage gestellt hat, nach einem Tool gesucht hat, mit dem sie die Ausgabe überwachen können. Während einige der bisher erwähnten Befehle nicht so funktionieren, enthielten alle uploaded Antworten mindestens eine Methode, um dies zu tun. - Andrew B
@AndrewB: Du kannst es tun watch ss -ti. - John Zwinck


Es sieht so aus, als hätten ein paar Leute an der Universität von North Carolina (UNC) ein Dienstprogramm gebaut, um genau das zu untersuchen:

Methodik

TCP ist ein klassisches Beispiel für ein älteres Protokoll, das Gegenstand wird   zu Änderungen. Leider Bewertung von etwas als   Grundlegend wie der Verlust-Erkennungs- / Wiederherstellungsmechanismus von TCP nicht   umfassend. Unser Ziel ist eine vollständige realistische Bewertung   von TCP-Verlusten und deren Auswirkungen auf die TCP-Leistung.

Ich verlasse mich auf die passive Analyse von TCP-Verbindungen aus der realen Welt, um in meiner Analyse das erforderliche Maß an Detail und Realismus zu erreichen.

http://www.cs.unc.edu/~jasleen/Research-passivetcp.htm#Tool

Werkzeug

Der Zweck des Tools ist es, vollständiger und genauer zu liefern   Ergebnisse zur Identifizierung und Charakterisierung von Segmenten außerhalb der Sequenz   als die von früheren Tools wie tcpanaly, tcpflows, LEAST,   und Geheimnis. Unsere Methode klassifiziert jedes Segment, das erscheint   Out-of-Sequence (OOS) in einer Paketablaufverfolgung in einen der folgenden   Kategorien: Netzwerkneuordnung oder TCP-Neuübertragung, die von einem ausgelöst wird   Timeout, doppelte ACKs, partielle ACKs, selektive ACKs oder implizite   Wiederherstellung. Außerdem wird jede Weiterverbreitung auch danach beurteilt, ob sie es ist   wurde benötigt oder nicht.

Ich werde nicht sagen, dass es Produktionsqualität ist. Zuvor habe ich schnelle Perl-Skripte gebaut, um ip / port / ack-Tupel im Speicher zu speichern und dann doppelte Daten aus der scan-pcap-Ausgabe zu melden, dies sieht so aus, als ob es eine gründlichere Analyse bietet.


2
2017-10-06 07:41





Vielleicht möchten Sie sich die dropwatch Nützlichkeit.


2
2018-02-08 12:35



Es ist nur als RPM-Paket verfügbar: / - Ricky Robinson