lwip iperf 方法进行性能测试

时间:2024-04-05 18:49:30

硬件配置: STM32F407 + DP83848 + FreeRTOS V10.1.1 + LWIP 2.1.2    2018年12月5日14:31:24

 

1、先读取 PHY 寄存器 , 查看 自主协商 结果

PHY自主协商结果:ETH_Mode      ETH_Mode_FullDuplex

PHY自主协商结果:ETH_Speed     ETH_Speed_100M

2、安装 测试软件 : Jperf2.0下载及使用方法介绍

 

3、添加  lwip 源文件 下的 lwip-2.1.2\src\apps\lwiperf    lwiperf.c 文件

4、407 这端 是 跑 TCP 服务器,然后 电脑客户端去收发数据进行性能测试,代码如下:

lwip iperf 方法进行性能测试

static void vTaskLwipPerf(void *pvParameters)
{
    
    ip_addr_t  perf_server_ip;
    
    IP_ADDR4( &perf_server_ip, 192, 168, 0, 10 ); //IP 为 407 自己的 静态IP

   for(;;)
    {
            
            lwiperf_start_tcp_server( &perf_server_ip, 9527, NULL, NULL );
            
            vTaskDelay( 2000 / portTICK_PERIOD_MS );
    }
}

lwip iperf 方法进行性能测试

 

实测速度如下,只有 1MB/S 不到 的 速度 ,理论应该可以到12.5MB/S 的 速度啊 

lwip iperf 方法进行性能测试

 

 

 

 TCP_MSS 280   被我改成了 1460,速度 上升了一个数量级,大概到 4.5MB/S 的 速度 !

 

lwip iperf 方法进行性能测试

/**
 * TCP_TTL: Default Time-To-Live value.
 */
#define TCP_TTL                 IP_DEFAULT_TTL /* IP 数据包中的TTL 的值 */

/* Controls if TCP should queue segments that arrive out of
   order. Define to 0 if your device is low on memory. */
#define TCP_QUEUE_OOSEQ         ( LWIP_TCP )  /* TCP是否缓冲接收到的无序报文段 */

/* TCP Maximum segment size. */
#define TCP_MSS                 (1500 - 40)      /* TCP_MSS = (Ethernet MTU - IP header size - TCP header size) TCP最大报文段大小 */

/* TCP sender buffer space (bytes). */
#define TCP_SND_BUF             (4*TCP_MSS)   /* TCP 发送缓冲区大小,增大该值可以提升TCP性能 */

/* TCP receive window. */
#define TCP_WND                 (4*TCP_MSS)   /* TCP 发送窗口大小,增大改值可以提升TCP性能 */

lwip iperf 方法进行性能测试

 

lwip iperf 方法进行性能测试