Sự khác biệt giữa các lỗi của NỮA


11

Ai đó có thể vui lòng giải thích về sự khác biệt giữa các RX packetslĩnh vực khác nhau trong ifconfigđầu ra?

Ví dụ: giả sử tôi chạy ifconfigvà xem phần sau:

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 

Sự khác biệt giữa errors: dropped: overrunsframe:

Tôi đoán tại thời điểm này (dựa trên một số googling mơ hồ) là frame:cụ thể liên quan đến thất bại CRC khi nic phân tích các khung đến và đó errors:là một thể loại chung rộng hơn. Sau đó, một lần nữa ... nếu đó là trường hợp, tôi sẽ mong đợi cả hai trường đó sẽ hiển thị số.

Câu trả lời:


17

Thông tin đó là tài liệu kém. Tôi sẽ cho bạn biết những gì tôi hiểu từ kinh nghiệm của tôi.

  • frame chỉ đếm các khung bị sai, điều đó có nghĩa là các khung có độ dài không chia hết cho 8. Vì độ dài đó không phải là khung hợp lệ và nó chỉ bị loại bỏ.

  • Trong khi đó errorsđếm lỗi CRC, khung quá ngắn và khung quá dài.

  • overruns đếm thời gian khi có tràn ngập FIFO, gây ra bởi tốc độ bộ đệm đầy và hạt nhân không thể làm trống nó.

  • Cuối cùng, droppedtính những thứ như thẻ Vlan ngoài ý muốn hoặc nhận khung IPv6 khi giao diện không được định cấu hình cho IPv6.


Cảm ơn. Tôi tìm thấy bài viết trên blog với những phát hiện tương tự. blog.hy lương.com / blog / 2013/03/04 / ifconfig
Mike B

Làm thế nào bạn tìm ra điều này, nguồn của bạn ở đâu? Tôi tò mò vì tôi đang tự mình tìm kiếm những câu trả lời này và dường như không thể tìm thấy chúng ở bất cứ đâu ngoài blog, hoặc các bài đăng như thế này. Bất kỳ trang người đàn ông hoặc tài liệu chính thức?
mdo123

8

Tôi biết đây là câu hỏi 1 năm tuổi nhưng nó là số 1 trên Google nên có lẽ tôi có thể thêm 5 xu cho nó.

Đầu tiên tôi không biết quy tắc mod 8 này trên trường khung ... Đây là quy tắc trình điều khiển hay quy tắc kernel?

Theo kinh nghiệm nhỏ mà tôi có, những con số này khá chung chung và có thể lấy thêm thông tin từ ethtool(nếu trình điều khiển hỗ trợ) ví dụ: đây là từ watchlệnh.

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 

Tùy thuộc vào trình điều khiển, sẽ có các trường khác nhau ethtoolifconfigcác trường cũng có thể trỏ đến các khung quá khổ / quá khổ.

Nếu trình điều khiển & trình điều khiển của bạn hỗ trợ, bạn có thể (hoặc nên) làm:

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

để có thêm thông tin (cho phép hiển thị thông tin trong ethtool). Tôi đang sử dụng trình điều khiển macb ở đây ... vì vậy hãy kiểm tra ethtooltrình điều khiển của bạn.

ethtool -i eth1

Đây là những gì giúp tôi hiểu thường những gì đang xảy ra.

Đôi khi không có lỗi nhưng các gói bị hỏng ... thì đó là vấn đề về trình điều khiển hoặc trình điều khiển ... và đôi khi trình thám thính hiển thị mọi thứ đều đúng nhưng có một vấn đề sau khi trình điều khiển / kernel (đây là trường hợp trên thực ra).

Một số chi tiết khác có thể được lấy từ netstat -shoặc nếu bạn đặt đoạn mã này vào tập lệnh (đối với các hệ thống nhúng nhỏ):

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

netstat -scó thể không có sẵn.


1
Cảm ơnethtool -S
sẵn sàng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.