ifconfig RX 패킷 출력의 "오류 :" "삭제 :" "오버런 :"및 "프레임 :"필드의 차이점은 무엇입니까?


11

출력 의 다양한 RX packets필드 의 차이점에 대해 누군가가 자세히 설명해 주 ifconfig시겠습니까?

예를 들어 내가 ifconfig다음을 실행한다고 가정 해 봅시다 .

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 

의 차이 무엇입니까 errors: dropped: overrunsframe:

이 시점에서 필자의 추측 (일부 모호한 인터넷 검색을 기반으로 함)은 frame:nic가 들어오는 프레임을 분석 할 때 CRC 실패와 관련 errors:이 있으며 더 넓은 일반 범주입니다. 그런 다음 다시 ... 그 경우라면 두 필드 모두 숫자를 표시 할 것으로 기대합니다.

답변:


17

그 정보는 제대로 문서화되어 있지 않습니다. 나는 내 경험에서 내가 이해 한 것을 말할 것이다.

  • frame 잘못 정렬 된 프레임 만 계산합니다. 길이는 8로 나눌 수없는 프레임을 의미합니다.이 길이는 유효한 프레임이 아니기 때문에 단순히 버려집니다.

  • 한편 errorsCRC 오류, 너무 짧은 프레임 및 너무 긴 프레임을 계산합니다.

  • overruns 버퍼가 가득 차서 커널이 비울 수없는 속도로 인해 FIFO 오버런이 발생한 횟수를 계산합니다.

  • 마지막으로, dropped카운트 일들이 인터페이스의 IPv6에 대해 구성되지 않은 경우 IPv6를 프레임을 수신 의도하지 않은 VLAN 태그 또는를 좋아한다.


감사. 비슷한 결과를 가진 블로그 게시물을 찾았습니다. blog.hyfather.com/blog/2013/03/04/ifconfig
Mike B

출처를 어디에서 알았습니까? 나는이 답변을 직접 찾고 있기 때문에 궁금한 점이 있으며 블로그 나 이와 같은 게시물 이외의 곳에서는 찾을 수없는 것 같습니다. 매뉴얼 페이지 나 공식 문서가 있습니까?
mdo123

8

나는 이것이 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힘을 사용할 수 없습니다.


1
고마워ethtool -S
kostix
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.