博客
关于我
STM32F7 LWIP协议栈TCP速度测试
阅读量:596 次
发布时间:2019-03-12

本文共 3152 字,大约阅读时间需要 10 分钟。

Comparing TCP Reception Performance Between LWIP and DJYIP Protocol Stacks on STM32F7

When evaluating the performance of the LWIP and DJYIP protocol stacks on STM32F7, it is important to understand the differences in TCP packet reception speeds under various conditions. This testing was conducted to ensure consistent hardware and software configurations while assessing the efficiency of the protocol stacks. The following analysis outlines the testing methodology, setup, and results.

Testing Objectives

The primary goal of this testing was to compare the TCP packet reception speeds of the LWIP and DJYIP protocol stacks under identical hardware and software conditions. By maintaining consistency in both hardware platforms and software configurations, we aimed to isolate any differences in performance that could be attributed to the protocol stacks themselves.

Testing Methodology

The testing was conducted using an STM32F7 development board with the following specifications:

  • Hardware Platform: STM32756G-EVAL2
  • Clock Frequency: 200MHz
  • Communication Interface: Direct connection to the sender board

The software configuration for both protocol stacks included:

  • Network Driver Mode: Interrupt-based
  • Buffer Pool Size: 16k bytes
  • TCP Window Size: 2048 bytes (2 * TCP MSS)

The testing process involved:

  • Code Modification: Adjusting the protocol stack configurations in lwipopts.h to optimize for high-throughput performance.
  • Client-Sender Configuration: Implementing a loop to continuously send TCP packets with varying sizes (64 to 1460 bytes).
  • Server-Receiver Configuration: Setting up a receiver loop to capture incoming data and calculate packet reception rates.
  • Testing Results

    The test results revealed significant differences between the two protocol stacks, particularly in terms of TCP reception performance:

    Data Package Size (Bytes) LWIP Reception Speed (Mbps) DJYIP Reception Speed (Mbps)
    1400 3.02 3.18
    1024 4.22 3.16
    512 3.07 3.16
    256 2.02 2.5
    128 0.2±0.2 1.76
    64 0.2±0.2 1.12
    Random (0-1460) 1M (within variation) 2.52

    These results indicate that the LWIP protocol stack generally outperformed the DJYIP stack, particularly for packet sizes of 1024 bytes and larger. It is worth noting that the performance difference for 1024-byte packets might be due to the way LWIP handles packets of sizes that are powers of two, which could be a coincidence or a reflection of underlying characteristics of the protocol stack.

    Implications for Network Performance

    The findings suggest that the choice of protocol stack can significantly impact TCP performance, especially under varying packet size conditions. While LWIP demonstrated slightly better performance for larger packets, it is crucial to consider the specific requirements of the application when selecting a protocol stack. DJYIP, while slightly less efficient for larger packets, might provide more predictable or consistent performance in certain scenarios.

    Future testing could explore additional factors such as packet fragmentation, lower-layer driver optimizations, and network hardware configurations to further refine the performance characteristics of these protocol stacks.

    转载地址:http://kszxz.baihongyu.com/

    你可能感兴趣的文章
    mysql replace first,MySQL中处理各种重复的一些方法
    查看>>
    MySQL replace函数替换字符串语句的用法(mysql字符串替换)
    查看>>
    mysql replace用法
    查看>>
    Mysql Row_Format 参数讲解
    查看>>
    mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
    查看>>
    MySQL Server 5.5安装记录
    查看>>
    mysql server has gone away
    查看>>
    mysql skip-grant-tables_MySQL root用户忘记密码怎么办?修改密码方法:skip-grant-tables
    查看>>
    mysql slave 停了_slave 停止。求解决方法
    查看>>
    MySQL SQL 优化指南:主键、ORDER BY、GROUP BY 和 UPDATE 优化详解
    查看>>
    MYSQL sql语句针对数据记录时间范围查询的效率对比
    查看>>
    mysql sum 没返回,如果没有找到任何值,我如何在MySQL中获得SUM函数以返回'0'?
    查看>>
    mysql sysbench测试安装及命令
    查看>>
    mysql Timestamp时间隔了8小时
    查看>>
    Mysql tinyint(1)与tinyint(4)的区别
    查看>>
    MySQL Troubleshoting:Waiting on query cache mutex
    查看>>
    mysql union orderby 无效
    查看>>
    mysql v$session_Oracle 进程查看v$session
    查看>>
    mysql where中如何判断不为空
    查看>>
    MySQL Workbench 使用手册:从入门到精通
    查看>>