나는 이것이 1 년 된 질문이라는 것을 알고 있지만 Google에서는 1 번째이므로 5 센트를 더할 수 있습니다.
먼저 프레임 필드에서이 mod 8 규칙을 알지 못했습니다 ... 드라이버 규칙입니까, 아니면 커널 규칙입니까?
내가 가진 약간의 경험에서,이 숫자는 매우 일반적이며 ethtool
(운전자가 지원하는 경우) ex 에서 더 많은 정보를 얻을 수 있습니다 watch
.
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
드라이버에 따라 다른 필드가 ethtool
있으며
ifconfig
필드는 크기가 작거나 너무 큰 프레임을 가리킬 수도 있습니다.
NIC 및 드라이버가 지원하는 경우 다음을 수행 할 수 있거나 수행해야합니다.
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
더 많은 정보를 얻으려면 (ethtool에 정보가 표시되도록하십시오). 여기서 macb 드라이버를 사용 ethtool
하고 있습니다. 드라이버를 확인 하십시오.
ethtool -i eth1
이것이 일반적으로 무슨 일이 일어나고 있는지 이해하는 데 도움이됩니다.
때로는 오류는 없지만 패킷이 손상되었습니다 ... PHYsical 또는 드라이버 문제가 더 많습니다 ... 스니퍼는 모든 것이 정확하지만 드라이버 / 커널에 도착한 후 문제가 있음을 나타냅니다 (이 경우는 위의 경우입니다) 사실은).
에서 더 많은 정보를 얻 netstat -s
거나 스크립트에 넣은 경우 (소형 임베디드 시스템의 경우) :
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 -s
힘을 사용할 수 없습니다.