ifconfig 输出内容含义
Linux下一般利用ifconfig获取网络接口设备信息,其输入如下所示:
~ # ifconfig -a
can0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:16 Metric:1
RX packets:5028 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:40224 (39.2 KiB) TX bytes:0 (0.0 B)
can1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
dummy0 Link encap:Ethernet HWaddr 72:C7:2C:C5:03:52
BROADCAST NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth0 Link encap:Ethernet HWaddr 00:01:02:A4:71:28
inet addr:192.168.11.251 Bcast:192.168.11.255 Mask:255.255.255.0
inet6 addr: fe80::201:2ff:fea4:7128/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:799 errors:0 dropped:0 overruns:0 frame:0
TX packets:175 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:56695 (55.3 KiB) TX bytes:17999 (17.5 KiB)
Memory:ffe4e0000-ffe4e0fff
eth1 Link encap:Ethernet HWaddr 00:01:02:A4:73:28
inet addr:192.168.1.251 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::201:2ff:fea4:7328/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:76 (76.0 B) TX bytes:1530 (1.4 KiB)
Memory:ffe4e2000-ffe4e2fff
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:42 errors:0 dropped:0 overruns:0 frame:0
TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5148 (5.0 KiB) TX bytes:5148 (5.0 KiB)
~ #
以eth0为例进行说明:
eth0:网卡的代号。
第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)
HWaddr :表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址)
第二行:网卡的IP地址、广播地址、子网掩码
inet addr:ipv4地址。表示网卡的IP地址。
Bcast:广播地址。
Mask:子网掩码
第三行:ipv6相关
inet6 addr:ipv6地址。
第四行
UP:代表网卡开启状态;如果是关闭状态则不显示UP
RUNNING:有说法是代表网卡的网线被接上,自己测试验证发现使用ifconfig eth0 down后,UP和RUNNING均不显示;使用ifconfig eth0 up后,UP和RUNNING均显示;
MULTICAST:支持组播
BROADCAST:支持广播
MTU:1500 网络接口的最大传输单元(Maximum Transmission Unit ):1500字节。是包或帧的最大长度,一般以字节记。(参考文献1)
Metric:1 与路由相关的参数
第五、六行:网络从启动到目前为止数据包接收、发送数据包情况统计。
packets:数据包数量
RX errors: 表示总的收包的错误数量,这包括 too-long-frames 错误,Ring Buffer 溢出错误,crc 校验错误,帧同步错误,fifo overruns 以及 missed pkg 等等。
RX dropped: 表示数据包已经进入了 Ring Buffer,但是由于内存不够等系统原因,导致在拷贝到内存的过程中被丢弃。
RX overruns: 表示了fifo 的 overruns,这是由于 Ring Buffer(aka Driver Queue) 传输的 IO 大于 kernel 能够处理的 IO 导致的,而 Ring Buffer 则是指在发起 IRQ请求之前的那块 buffer。很明显,overruns 的增大意味着数据包没到 Ring Buffer 就被网卡物理层给丢弃了,而 CPU 无法即使的处理中断是造成 Ring Buffer 满的原因之一,上面那台有问题的机器就是因为 interruprs分布的不均匀(都压在 core0),没有做 affinity 而造成的丢包。
RX frame: 表示 misaligned 的 frames。
对于 TX 的来说,出现上述 counter 增大的原因主要包括 aborted transmission, errors due to carrirer, fifo error, heartbeat erros 以及 windown error。
除了packets,其他都表示有问题,暂时还没有研究太深,查了网上的说法,基本来着同一个出处。
参考文献3-5。
第七行:
collisions:表示数据包冲突的情况,如果次数太多,表示网络不太好。
txqueuelen:传输数据的缓冲区的存储长度。
第八行:接收、发送数据字节数统计信息。
RX bytes:接收总字节数。
TX bytes:发送总字节数。
第九行:网卡硬件的内存地址
参考资料:
参考文献1:MTU
参考文献2:Metric
参考文献3:如何理解ifconfig中的errors/dropped/fifo/frame统计指标
参考文献4:ifconfig 下面的一些字段(errors, dropped, overruns)
参考文献5:网络丢包相关(二)
参考文献6:linux命令ifconfig
参考文献7:ifconfig命令查看网卡配置与网络状态信息
参考文献8:ifconfig命令详解