Vraag Hoe passief te controleren op TCP-pakketverlies? (Linux)


Hoe kan ik passief het pakketverlies op TCP-verbindingen van / naar mijn machine controleren?

Kortom, ik wil graag een tool die op de achtergrond zit en naar TCP ack / nak / re-transmits kijkt om een ​​rapport te genereren waarop peer IP-adressen "schijnen" te ervaren als zwaar verlies.

De meeste vragen zoals deze die ik van SF vind, suggereren het gebruik van hulpmiddelen zoals iperf. Maar ik moet verbindingen controleren van / naar een echte toepassing op mijn machine.

Zitten deze gegevens gewoon in de Linux TCP-stack?


53
2017-10-05 23:55


oorsprong




antwoorden:


Voor een algemeen gevoel voor de omvang van uw probleem netstat -s zal uw totale aantal hertransmissies bijhouden.

# netstat -s | grep retransmitted
     368644 segments retransmitted

Je kunt ook om greperen segments om een ​​gedetailleerdere weergave te krijgen:

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

Voor een diepere duik zul je waarschijnlijk Wireshark willen starten.

In Wireshark zet je je filter op tcp.analysis.retransmission om hertransmissies per flow te zien.

Dat is de beste optie die ik kan bedenken.

Andere doodlopende doelen verkend:

  • netfilter / conntrack tools lijken geen hertransmissies te behouden
  • stracing netstat -s heeft aangetoond dat het alleen maar afdrukken is /proc/net/netstat 
  • kolom 9 in / proc / net / tcp zag er veelbelovend uit, maar het lijkt helaas ongebruikt te zijn.

42
2017-10-06 01:59



en u kunt de verloren pakketten controleren met # watch 'netstat -s | grep herransmited ' - none
Dit zou alleen uitgaande problemen laten zien. "netstat -s | grep-segmenten" lijkt me redelijker. - akostadinov
Als u een redelijk groot netwerk beheert, zou ik pastmon over wireshark aanbevelen voor continue bewaking - pastmon.sourceforge.net/Wikka-1.1.6.5/wikka.php?wakka=HomePage - symcbean
Om een ​​of andere reden is het gespeld retransmited voor mij (Ubuntu Server 14). - sudo
wat is een goed tarief voor hertransmissies versus verzonden of ontvangen? - abourget


Deze statistieken bevinden zich in / proc / net / netstat en collectl zal ze voor u controleren, interactief of op schijf, zodat ze later kunnen worden afgespeeld:

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

Als u naast netwerkverkeer wilt zien, neemt u dat uiteraard ook op n met -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





U kunt de ss tool om gedetailleerde TCP-statistieken te krijgen:

$ /sbin/ss -ti

Gebruik onder Debian apt-get install iproute om het binaire bestand te krijgen.


5
2018-04-06 19:41



Merk op dat de persoon die de vraag stelde op zoek was naar een hulpmiddel waarmee ze de uitvoer van konden bekijken. Hoewel enkele van de tot nu toe genoemde opdrachten niet op deze manier werken, bevatten alle upvoted antwoorden minstens één methode om dit te doen. - Andrew B
@AndrewB: Dat kan watch ss -ti. - John Zwinck


Het lijkt erop dat sommige jongens van de University of North Carolina (UNC) een hulpprogramma hebben gebouwd om precies dit te onderzoeken:

Methodologie

TCP is een klassiek voorbeeld van een legacy-protocol dat onderwerp wordt   aan wijzigingen. Helaas, evaluatie van iets als   fundamenteel als het mechanisme voor verliesdetectie / -verwijdering van TCP niet   uitgebreid. Ons doel is om een ​​volledige realistische evaluatie uit te voeren   van TCP-verliezen en de impact ervan op de TCP-prestaties.

Ik vertrouw op passieve analyse van real-world TCP-verbindingen om het vereiste detailniveau en realisme in mijn analyse te bereiken.

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

gereedschap

Het doel van de tool is om completer en nauwkeuriger te bieden   resultaten voor het identificeren en karakteriseren van segmenten zonder uitloopvolgorde   dan die van eerdere tools zoals tcpanaly, tcpflows, LEAST,   en mysterie. Onze methodologie classificeert elk segment dat verschijnt   out-of-sequence (OOS) in een pakkettracé op een van de volgende manieren   Categorieën: netwerkherordening of TCP-hertransmissie geactiveerd door één   van time-out, dubbele ACK's, gedeeltelijke ACK's, selectieve ACK's of impliciet   herstel. Verder wordt elke hertransmissie ook beoordeeld of dit het geval is   was nodig of niet.

Ik zal niet zeggen dat het de productiekwaliteit is. Eerder heb ik snelle perl-scripts gebouwd om ip / port / ack-tuples in het geheugen op te slaan en vervolgens te rapporteren over gedupliceerde gegevens van het scannen van pcap-uitvoer, dit lijkt een grondigere analyse te zijn.


2
2017-10-06 07:41





Misschien wilt u naar de dropwatch nut.


2
2018-02-08 12:35



Het is alleen beschikbaar als rpm-pakket: / - Ricky Robinson