İfconfig RX paket çıkışındaki “hatalar:” “düştü:” “taşması:” ve “çerçeve:” alanları arasındaki fark nedir?


11

Birisi çıktıdaki çeşitli RX packetsalanlar arasındaki farkları ifconfigaçıklayabilir mi?

Örneğin, koştuğumu ifconfigve aşağıdakileri gördüğümü varsayalım:

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 

Arasındaki fark nedir errors: dropped: overrunsveframe:

Bu noktada benim tahminim (bazı belirsiz googling dayalı) frame:nic gelen çerçeveleri analiz ve özellikle errors:daha geniş bir genel kategori CRC hataları ile ilgilidir . Sonra tekrar ... durum buysa, her iki alanın da sayı göstermesini beklerdim.

Yanıtlar:


17

Bu bilgiler belgelenmemiş. Deneyimlerimden ne anladığımı anlatacağım.

  • frame yalnızca yanlış hizalanmış kareleri sayar, uzunluğu 8 ile bölünemeyen kareler anlamına gelir. Çünkü bu uzunluk geçerli bir kare değildir ve basitçe atılır.

  • Bu arada errorsCRC hataları, çok kısa çerçeveler ve çok uzun çerçeveler sayılır.

  • overruns tamponun dolma hızının ve çekirdeğin onu boşaltamadığından kaynaklanan FIFO aşımlarının olduğu zamanları sayar.

  • Sonunda dropped, arabirim IPv6 için yapılandırılmadığında istenmeyen VLAN etiketleri veya IPv6 çerçeveleri alma gibi şeyleri sayar.


Teşekkürler. Benzer bulgulara sahip blog yazısı buldum. blog.hyfather.com/blog/2013/03/04/ifconfig
— Mike B

Bunu nasıl anladınız, kaynaklarınız nerede? Merak ediyorum çünkü bu cevapları kendim arıyorum ve bloglar veya bunun gibi yayınlar dışında hiçbir yerde bulamıyorum. Herhangi bir sayfa veya resmi belge var mı?
— mdo123

8

Bunun 1 yaşında bir soru olduğunu biliyorum, ancak Google'da 1. oldu, bu yüzden belki 5 sent ekleyebilirim.

İlk olarak çerçeve alanındaki bu mod 8 kuralının farkında değildim ... Bu bir sürücü kuralı veya çekirdek kuralı mı?

Sahip olduğum küçük deneyimde, bu sayılar oldukça geneldir ve ethtool(sürücü destekliyorsa) daha fazla bilgi elde edilebilir : bu watchkomuttan.

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 

Sürücüye bağlı olarak içinde farklı alanlar olacaktır ethtoolve ifconfigalanlar da büyük / küçük boyutlu karelere işaret edebilir.

NIC ve sürücünüz destekliyorsa şunları yapabilirsiniz (veya yapmanız gerekir):

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

daha fazla bilgi almak için (bilgilerin ettoolde gösterilmesini sağlayın). Burada macb sürücüsü kullanıyorum ... yani ethtoolsürücünüzü kontrol edin .

ethtool -i eth1

Genellikle neler olup bittiğini anlamama yardımcı olan şey budur.

Bazen hata yoktur, ancak paketler bozulur ... o zaman daha çok bir Fiziksel veya sürücü problemidir ... ve bazen koklayıcılar her şeyin doğru olduğunu gösterir, ancak sürücüye / çekirdeğe ulaştıktan sonra bir sorun vardır (bu durumun üstünde) aslında).

Biraz daha fazlası elde edilebilir netstat -sveya bunu bir betiğe koyarsanız (küçük gömülü sistemler için):

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

çünkü netstat -smevcut olmayabilir.


1
ethtool -S
— Head
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.