İ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.