Wiznet makers

Lihan__

Published November 13, 2025 ©

10 UCC

9 WCC

1 VAR

0 Contests

0 Followers

0 Following

[ESP32-S3] Geekble Nano TOE VS LWIP Iperf Performance Test

Ethernet performance comparison between ESP32-S3 with WIZnet TOE and LWIP using iperf tests

COMPONENTS Hardware components

esspressif - ESP32-S3

x 1


Geekble - Geekble nano

x 1


WIZnet - WIZ550io

x 1

Software Apps and online services

Esspressif - ESP-IDF

x 1


PROJECT DESCRIPTION

Introduction

Although the ESP32-S3 is a powerful MCU with built-in Wi-Fi and BLE capabilities, its software-based TCP/IP stack (LWIP) can cause performance degradation in high-speed Ethernet environments.
In this experiment, LWIP was removed and WIZnet’s TCP Offload Engine (TOE) was integrated to verify the impact of hardware-based TCP/IP processing on the ESP32-S3’s communication performance.
The test was conducted by modifying the iperf example provided in ESP-IDF to compare the LWIP and TOE environments under identical conditions.

 
 

Test Environment Configuration

MCU: ESP32-S3

TOE Chip: WIZnet W5500 (SPI Interface)

Tool: iperf3

Test scenarios 

  1. Standard iperf test 
  2. iperf test under Ping flood attack
  3. iperf Performance under CPU Load

Test Result - Standard iperf test 

 

Average Bandwidth (iperf test results)


ESP32 + TOE  : 34.8 Mbps
ESP32 + LWIP: 9.22 Mbps

 


Test Result - iperf test under Ping flood attack 

A continuous Ping flood of approximately 1500 ICMP echo requests per second was applied to generate network load.

Average Bandwidth (iperf test results)

ESP32 + TOE  : 34.3 Mbps
ESP32 + LWIP: 1.52 Mbps

The ESP32-S3 with TOE maintained stable throughput under both normal and Ping flood conditions.
While the LWIP-based setup showed severe performance degradation under heavy ICMP load,
the TOE-based system demonstrated almost no drop in bandwidth — clearly proving the benefit of hardware TCP/IP offloading.

 


Test Result - iperf Performance under CPU Load

 Experiment Objective

To evaluate how much network performance degrades when a high-priority CPU load task runs on the ESP32-S3,
and to verify the effectiveness of WIZnet TOE’s hardware TCP/IP offloading in maintaining performance under CPU stress.

Test Conditions

Source code of the cpu_load_task function used to generate artificial CPU load.
It runs with a higher priority than the network task to intentionally increase CPU utilization.

"cpu_load_task()" function
cpu_load_task to FreeRTOS and assigning it to run on Core 0.

Output of the FreeRTOS tasks command.
The load0 task operates with a higher priority than the iperf_traffic task, confirming the intended CPU load condition.

"tasks" command.

Comparison of average throughput between TOE and LWIP under CPU load.
While TOE showed only about a 25% reduction, LWIP performance dropped by approximately 49%.

CategoryNormalUnder CPU LoadDropReduction Rate
TOE34.8 Mbps26.1 Mbps↓ 8.7 Mbps~25% decrease
LWIP9.22 Mbps4.66 Mbps↓ 4.56 Mbps~49% decrease

 

Although the absolute drop in throughput appears larger for TOE,
the reduction rate of LWIP (approximately 49%) is nearly twice that of TOE (25%).
This indicates that TOE not only delivers higher overall throughput but also maintains much more stable performance under CPU stress.

In the TOE configuration, even when the CPU is heavily loaded,
TCP session management, retransmission control, and checksum calculations are handled by the hardware,
minimizing the performance impact.
In contrast, with LWIP, all TCP/IP processing is performed by the CPU itself; therefore,
when a high-priority computation task (load task) consumes CPU time, network task scheduling is delayed, leading to a sharp decline in throughput.


Evaluation

Through this series of experiments, the practical benefits of combining the ESP32-S3 with WIZnet’s TOE were clearly verified.
Three types of tests were conducted — standard iperf performance, stability under Ping flood conditions, and network performance under CPU load.

Standard iperf Test
The TOE configuration achieved an average throughput of 34.8 Mbps, compared to 9.22 Mbps with LWIP — approximately 3.8 times higher performance.
This confirms that hardware TCP/IP offloading significantly improves transmission efficiency.

Ping Flood Test
The TOE-based system maintained 34.3 Mbps, showing almost no degradation,
while the LWIP setup dropped drastically to 1.52 Mbps.
This demonstrates the superior stability and resilience of TOE against heavy ICMP traffic.

CPU Load Test
Under CPU stress, TOE maintained 26.1 Mbps (about 25% drop),
whereas LWIP decreased to 4.66 Mbps (about 49% drop).
These results experimentally confirm that TOE is highly resistant to CPU scheduling interference thanks to hardware TCP/IP offloading.


Practical Application

With TOE integration, the ESP32-S3 achieves a stable wired network performance of approximately 25–35 Mbps (3–4 MB/s).
This improvement enables the development of real-time network processing applications that were previously impractical under the LWIP environment (~9 Mbps).
The table below summarizes potential application areas that can fully utilize this enhanced throughput.

FieldExampleTechnical Feasibility
Industrial Automation / IoT GatewayHigh-speed sensor data acquisition, quality inspection video transmission, motion control networking✅ Enables stable real-time data transfer and deterministic control
Video & Image StreamingMJPEG or low-bitrate H.264 streaming (CCTV, inspection camera)✅ Supports real-time streaming of 720p–1080p low-compression video
Robotics / AGV / Drone CommunicationTCP-based remote control and status feedback✅ Ensures low latency and reliable bidirectional communication
Firmware OTA / Large Log TransferFirmware update, data backup, or log upload✅ Provides fast and stable bulk data transmission
Secure Node / Encryption Gateway (WCC Architecture)Real-time encryption/decryption relay✅ Enables parallelized data processing with minimal CPU overhead via hardware offloading

 

Documents
  • TOE iperf TEST

  • LWIP iperf TEST

Comments Write