1. ethtool

        ethtool是很强大的查询网卡(嵌入式称为phy芯片)配置的工具,几乎phy芯片芯片手册寄存器能配置的选项,ethtool都能查询到;嵌入式调试phy芯片的时候经常用到该命令;最简单的指令如下

ethtool eth0(要查看速率的网卡)
#打印网卡信息
Settings for eth0:
        Supported ports: [ TP AUI BNC MII FIBRE ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 1
        Transceiver: external
        Auto-negotiation: on
        Current message level: 0x00000007 (7)
        Link detected: yes

        这段信息已经包含了phy的很多配置信息:

        phy芯片支持的端口,支持的链接模式;

        网络自适配是否打开,工作模式(全双工,半双工),速率等信息;

        这里的Speed: 1000Mb/s只能说明phy芯片最大速率能达到1000Mb/s;实际速率还需要进行测试;

        phy芯片一般分为10base,100base,1000base;Speed: 1000Mb/s能说明网卡处于1000base模式,实际速率相差不多;

2. iperf

        实测网络速率的工具,分为客户端和服务端,两端进行数据发送实时计算网络速率并打印:

# 服务器端
$ iperf -s
# 客户端
$ iperf -c <server_ip>

        打印信息:

/mnt/zhangliming/iperf # ./iperf3 -s
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.0.221, port 53640
[  5] local 192.168.0.221 port 5201 connected to 192.168.0.221 port 53642
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   868 MBytes  7.28 Gbits/sec
[  5]   1.00-2.00   sec   904 MBytes  7.58 Gbits/sec
[  5]   2.00-3.00   sec   923 MBytes  7.74 Gbits/sec
[  5]   3.00-4.00   sec   883 MBytes  7.41 Gbits/sec
[  5]   4.00-5.00   sec   915 MBytes  7.68 Gbits/sec
[  5]   5.00-6.00   sec   929 MBytes  7.79 Gbits/sec
[  5]   6.00-7.00   sec   907 MBytes  7.61 Gbits/sec
[  5]   7.00-8.00   sec   908 MBytes  7.62 Gbits/sec
[  5]   8.00-9.00   sec   938 MBytes  7.86 Gbits/sec
[  5]   9.00-10.00  sec   929 MBytes  7.80 Gbits/sec
[  5]  10.00-10.00  sec   768 KBytes  6.68 Gbits/sec

Bitrate字段就是现在的实际速率; Transfer:在某时间间隔内的传输的数据量;上面打印可知,时间间隔为1s;所以和Bitrate一样代表传输速率
各字段含义如下:
ID:连接的唯一标识符或ID号。
Interval:报告状态或统计信息的时间间隔。
Transfer:在报告的时间间隔内传输的数据量。
Bitrate:报告的时间间隔内的传输速率(以位/秒为单位)。
Retr:在报告的时间间隔内发生的重新传输次数。
Cwnd:当前拥塞窗口的大小(单位未定义,通常是报告的时间间隔内的平均值)。

        注意:iperf在文件系统中可能不存在该命令,需要下载源码进行移植!

3.程序测试

        当然也可以自己写一个网络程序来对网络速率进行计算;计算出1s内接收多少Bytes;就是当前网络的速率;和iperf的原理一样;

02-20 03:26