我有一个STB 7445设备,我们的无线局域网芯片通过usb连接到该设备。
在为wlan0接口加载驱动程序和固件后,将IP地址分配给wlan0界面。
IP地址:
# ifconfig wlan0 192.168.1.2
此后,我在arp条目中添加的一个伪地址上运行环回吞吐量测试。
ARP条目:
# /system/xbin/busybox/arp -s 192.168.1.4 11:22:33:44:55:66
运行iperf以测量UDP TPUT:
# iperf -c 192.168.1.4 -i1 -w2M -b1000M -t 60
.
.
[ 3] 4.0- 5.0 sec 32.5 MBytes 273 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 59.0-60.0 sec 32.5 MBytes 273 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-60.0 sec 1.90 GBytes 273 Mbits/sec
[ 3] Sent 1390851 datagrams
[ 3] WARNING: did not receive ack of last datagram after 10 tries.
root@bcm_platform:/system/bin/amar/43569a2 #
我的吞吐量只有273 Mbps,而总线速度是480 Mbps。
usb总线速度:
#cat /sys/bus/usb/devices/usb1/speed
480
ip堆栈会注意到目标是同一台机器,因此不会向硬件发送数据包。您只是在测量linux IP堆栈的软件性能,您的CPU有点慢。
USB 2.0高速为480MBit/s,但无法同时发送和接收。这意味着,如果你将数据包发送到硬件并再次接收,你就不能超过240 MBit/s——实际上甚至更低,因为会有一些开销。