Was ist der Unterschied zwischen den Feldern "Fehler:" "Abgelegt:" "Überläufe:" und "Frame:" in der Ausgabe von ifconfig RX-Paketen?


11

Kann jemand bitte den Unterschied zwischen den verschiedenen RX packetsFeldern in der ifconfigAusgabe erläutern ?

Nehmen wir zum Beispiel an, ich renne ifconfigund sehe Folgendes:

eth0      Link encap:Ethernet  HWaddr AA:BB:CC:DD:EE:FF  
          inet addr:1.1.1.1  Bcast:1.1.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:202723544 errors:0 dropped:4959 overruns:0 frame:37
          TX packets:158354057 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4261083782 (3.9 GiB)  TX bytes:1224803677 (1.1 GiB)
          Interrupt:83 Memory:f6bf0000-f6c00000 

Was ist der Unterschied zwischen errors: dropped: overrunsundframe:

Meine Vermutung an diesem Punkt (basierend auf einem vagen Googeln) ist, dass es sich frame:speziell um CRC-Fehler handelt, wenn der Nic eingehende Frames analysiert, und dass dies errors:eine breitere generische Kategorie ist. Andererseits ... wenn das der Fall wäre, würde ich erwarten, dass beide Felder Zahlen anzeigen.

Antworten:


17

Diese Informationen sind schlecht dokumentiert. Ich werde Ihnen sagen, was ich aus meiner Erfahrung verstehe.

  • frame zählt nur falsch ausgerichtete Frames, dh Frames mit einer Länge, die nicht durch 8 teilbar ist. Aufgrund dieser Länge ist dies kein gültiger Frame und wird einfach verworfen.

  • In der Zwischenzeit werden errorsCRC-Fehler, zu kurze und zu lange Frames gezählt.

  • overruns zählt die Zeiten, in denen FIFO-Überläufe auftreten, die durch die Geschwindigkeit verursacht werden, mit der der Puffer voll wird und der Kernel ihn nicht leeren kann.

  • Endlich droppedmögen zählen Dinge unbeabsichtigte VLAN - Tags oder Empfangen von IPv6 - Frames , wenn die Schnittstelle nicht für IPv6 konfiguriert ist.


Vielen Dank. Ich habe einen Blog-Beitrag mit ähnlichen Ergebnissen gefunden. blog.hyfather.com/blog/2013/03/04/ifconfig
Mike B

Wie haben Sie das herausgefunden, wo sind Ihre Quellen? Ich bin neugierig, weil ich selbst nach diesen Antworten suche und sie nur in Blogs oder Posts wie diesen zu finden scheine. Irgendwelche Manpages oder offizielle Unterlagen?
mdo123

8

Ich weiß, dass dies eine 1-jährige Frage ist, aber es ist die erste bei Google, also kann ich vielleicht 5 Cent hinzufügen.

Zuerst war mir diese Mod 8-Regel im Frame-Feld nicht bekannt ... Ist es eine Treiberregel oder eine Kernel-Regel?

Nach meiner geringen Erfahrung sind diese Zahlen recht allgemein gehalten, und weitere Informationen erhalten Sie von ethtool(sofern der Treiber dies unterstützt), z. B.: Dies ist vom watchBefehl.

Every 1s: ethtool -S eth1 | grep rx_ && echo  && ifconfig eth1                                                   1970-01-01 00:21:07

 rx_octets: 12635134290
 rx_frames: 8488675
 rx_broadcast_frames: 103
 rx_multicast_frames: 0
 rx_pause_frames: 0
 rx_64_byte_frames: 113
 rx_65_127_byte_frames: 47
 rx_128_255_byte_frames: 186340
 rx_256_511_byte_frames: 1
 rx_512_1023_byte_frames: 0
 rx_1024_1518_byte_frames: 8302174
 rx_greater_than_1518_byte_frames: 0
 rx_undersized_frames: 0
 rx_oversize_frames: 0
 rx_jabbers: 0
 rx_frame_check_sequence_errors: 0
 rx_length_field_frame_errors: 0
 rx_symbol_errors: 0
 rx_alignment_errors: 0
 rx_resource_errors: 283
 rx_overruns: 132
 rx_ip_header_checksum_errors: 0
 rx_tcp_checksum_errors: 0
 rx_udp_checksum_errors: 0

eth1      Link encap:Ethernet  HWaddr AA:BB:CC:DD:20:16  
          inet addr:192.168.0.10  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::a8bb:ccff:fedd:2016/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:8488675 errors:415 dropped:4 overruns:132 frame:283
          TX packets:647464 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3892403548 (3.6 GiB)  TX bytes:62273943 (59.3 MiB)
          Interrupt:147 Base address:0xc000 

Je nach Treiber gibt es unterschiedliche Felder ethtoolund ifconfigFelder können auch auf untergroße / übergroße Frames verweisen.

Wenn Ihre Netzwerkkarte und Ihr Treiber dies unterstützen, können (oder sollten) Sie Folgendes tun:

ifdown eth1 && modprobe -r macb && modprobe macb && ifup eth1 && ethtool -offload  eth1  rx off  tx off && ethtool -K eth1 gso off && ethtool --show-offload eth1

um weitere Informationen zu erhalten (aktivieren Sie die Anzeige der Informationen in ethtool). Ich verwende hier den MacB-Treiber. Suchen Sie also ethtoolnach Ihrem Treiber.

ethtool -i eth1

Dies hilft mir normalerweise zu verstehen, was los ist.

Manchmal gibt es keine Fehler, aber Pakete sind beschädigt ... dann ist es eher ein PHYsical- oder Treiberproblem ... und manchmal zeigen Sniffer, dass alles korrekt ist, aber es gibt ein Problem, nachdem es den Treiber / Kernel erreicht hat (dies ist der obige Fall tatsächlich).

Weitere Informationen erhalten Sie von netstat -soder wenn Sie dies in ein Skript einfügen (für kleine eingebettete Systeme):

awk '(f==0) { i=1; while ( i<=NF) {n[i] = $i; i++ }; f=1; next} (f==1){ i=2; while ( i<=NF){ printf "%s = %d\n", n[i], $i; i++}; f=0}'  /proc/net/netstat

da netstat -smöglicherweise nicht verfügbar.


1
Vielen Dank für das Heads-up amethtool -S
Kostix
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.