Apa perbedaan antara "kesalahan:" "dijatuhkan:" "overruns:" dan "bingkai:" di bidang ifconfig paket RX output?

11

Dapatkah seseorang tolong jelaskan perbedaan antara berbagai RX packetsbidang dalam ifconfigoutput?

Misalnya, katakan saya menjalankan ifconfigdan melihat yang berikut:

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 

Apa perbedaan antara errors: dropped: overrunsdanframe:

Dugaan saya pada saat ini (berdasarkan beberapa googling yang tidak jelas) adalah yang frame:secara spesifik berkaitan dengan kegagalan CRC ketika nic menganalisis frame yang masuk dan itu errors:adalah kategori umum yang lebih luas. Kemudian lagi ... jika itu masalahnya, saya harapkan kedua bidang itu menunjukkan angka.

Mike B
sumber

Jawaban:

17

Informasi itu tidak terdokumentasi dengan baik. Saya akan memberi tahu Anda apa yang saya pahami dari pengalaman saya.

  • frame hanya menghitung frame yang tidak selaras, itu berarti frame dengan panjang tidak dapat habis oleh 8. Karena panjang itu bukan frame yang valid dan hanya dibuang.

  • Sementara itu errorsmenghitung kesalahan CRC, frame terlalu pendek dan terlalu lama.

  • overruns menghitung saat-saat ketika overruns FIFO, disebabkan oleh tingkat di mana buffer menjadi penuh dan kernel tidak dapat mengosongkannya.

  • Akhirnya, droppedmenghitung hal-hal seperti tag VLAN yang tidak diinginkan atau menerima frame IPv6 ketika antarmuka tidak dikonfigurasi untuk IPv6.

jcbermu
sumber
Terima kasih. Saya menemukan posting blog dengan temuan serupa. blog.hyfather.com/blog/2013/03/04/ifconfig
Mike B
Bagaimana Anda mengetahui hal ini, di mana sumber Anda? Saya ingin tahu karena saya sendiri sedang mencari jawaban ini dan sepertinya tidak dapat menemukannya di mana pun selain blog, atau posting seperti ini. Adakah halaman manual atau dokumentasi resmi?
mdo123
8

Saya tahu ini adalah pertanyaan lama 1 tahun tapi ini 1 di Google jadi mungkin saya bisa menambahkan 5 sen untuk itu.

Pertama saya tidak mengetahui aturan mod 8 ini pada bidang frame ... Apakah ini aturan driver atau aturan kernel?

Dalam sedikit pengalaman yang saya miliki, angka-angka ini cukup umum dan info lebih lanjut dapat diperoleh dari ethtool(jika driver mendukungnya) mis: ini dari watchperintah.

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 

Tergantung pada driver akan ada bidang yang berbeda di dalam ethtooldan ifconfigbidang dapat menunjuk ke frame terlalu kecil / terlalu besar.

Jika NIC & driver Anda mendukungnya, Anda dapat (atau seharusnya) melakukan ex:

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

untuk mendapatkan info lebih lanjut (aktifkan membiarkan info ditampilkan di ethtool). Saya menggunakan driver macb di sini ... jadi periksa ethtooldriver Anda.

ethtool -i eth1

Inilah yang membantu saya untuk memahami biasanya apa yang terjadi.

Kadang-kadang tidak ada kesalahan tetapi paket rusak ... maka itu lebih merupakan masalah PHYsical atau driver ... dan kadang-kadang sniffer menunjukkan semuanya benar tetapi ada masalah setelah sampai ke driver / kernel (ini adalah kasus di atas sebenarnya).

Beberapa lainnya dapat diperoleh dari netstat -s, atau jika Anda memasukkan ini ke dalam skrip (untuk sistem tertanam kecil):

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

karena netstat -smungkin tidak tersedia.

Tomasz Janicki
sumber
1
Terima kasih untuk ethtool -S
kunjungan pertama