Lanbench
This report details the utility and performance results for LANBench, a specialized network benchmarking tool designed to test the throughput and stability of local network hosts. Overview of LANBench
LANBench is a free, standalone utility used primarily to measure network performance between two computers. It functions by establishing a client-server relationship where traffic is generated on one end and received on the other to test the maximum capacity of the connection.
Key Capability: It can simulate multiple simultaneous connections to stress-test network equipment like routers, switches, and network interface cards (NICs).
Ease of Use: Unlike command-line tools like IPerf, LANBench provides a graphical interface, making it a "quick test" favorite for sysadmins. Benchmark Performance Analysis
Performance results in a typical LANBench report are measured in throughput (MB/s or Mbps) and CPU utilization (%). Network Interface Average Speed (Typical) CPU Utilization Performance Note Gigabit Ethernet (Wired) ~120 MB/s (Near 1 Gbps) <10% (stable) Reaches near-theoretical maximums. 802.11ac (Wireless) 54 - 60 MB/s ~10% (spikes possible) Suffers from packet loss and transfer overhead. Cat-3 (Legacy Wired) 900+ Mbps (Reported)
Surprisingly high results for short runs of certified Cat-3. Standard Report Structure
When putting together a technical report based on LANBench data, you should follow this standardized format: LANBench
Domain computer shown connected to work, not domain, network
LANBench is a free, lightweight, and portable utility designed specifically to benchmark the throughput performance of a Local Area Network (LAN) between two computers. It is a highly focused tool, optimized for minimal CPU overhead to ensure that results reflect pure network performance rather than local system bottlenecks. Key Performance Features
Dual-Node Operation: LANBench uses a server-client architecture. One machine acts as a server (listening for traffic), while the second acts as the client to initiate the benchmark.
Protocol Support: It primarily tests TCP performance based on the Winsock 2.2 framework. While some versions may offer UDP testing, many core releases are specialized for TCP-only diagnostics.
Simultaneous Connections: Users can simulate network load by opening up to 20 multiple simultaneous connections during a single test run.
Configurable Parameters: The tool allows for granular control over the test environment: This report details the utility and performance results
Packet Size: Adjustable data block sizes for each send request.
Test Duration: Specific time periods for benchmarks (e.g., 10 seconds).
Transfer Modes: Options to test "Send Only," "Receive Only," or bidirectional "Send and Receive" performance. Usability and Portability
Zero Installation: LANBench is a standalone executable that does not require installation or system registry changes, making it ideal for a USB toolkit.
Real-Time Monitoring: The main interface displays current send/receive data and calculates average speeds throughout the test duration.
Wide Compatibility: It is known to run on most Windows versions, including legacy systems like Windows XP and Server 2003/2008, up through Windows 7 and beyond. Limitations to Consider LANBench for Windows - Free download and software reviews Windows : Precompiled binaries are available on some
7. Building and Obtaining LANBench
The original LANBench was written for Windows using WinSock2. Modern versions for Linux often use POSIX sockets and epoll.
Example build on Linux (from source):
git clone https://github.com/mstasiak/LANBench.git # example fork
cd LANBench
make
sudo make install
Windows: Precompiled binaries are available on some tech forums, or compile with Visual Studio using the provided .sln file.
User Interface (UI) Concept
- Main Screen: Split into two clear sections: "Server Status" (Green light for listening) and "Client Control."
- Visual Feedback: Large, prominent digits showing the current transfer speed. A "Speedometer" gauge provides an intuitive look at current usage.
- Logs Tab: A scrolling text log showing packet timestamps and errors for deep troubleshooting.
Key Features
- Platform Independent: Written in Java, allowing it to run on Windows, macOS, and Linux (provided Java Runtime Environment is installed).
- Client-Server Architecture: Operates on a straightforward model where one machine acts as the Server (listener) and the other as the Client (sender).
- Customizable Parameters: Users can configure packet size, test duration, and the number of parallel connections.
- TCP Testing: Primarily uses the TCP protocol, which is standard for file transfers and most network applications, ensuring results reflect real-world usage.
- Portability: Distributed as a standalone
.jarfile or a small executable. It can be run from a USB stick without modifying the host system registry. - Real-Time Metrics: Displays current speed, average speed, and data transferred in real-time during the test.
LANBench: Write-Up
Example test scenario (TCP throughput)
- Setup: two physical hosts connected through the target switch; 10 Gbps NICs; jumbo frames enabled.
- Parameters: TCP streams = 8, test duration = 120s, window size = autotuned.
- Expected outcome: aggregate throughput approaching 10 Gbps with minimal retransmissions; verify line-rate on switch counters.
Output and reporting
- Raw logs: per-packet or per-interval counters.
- Aggregated metrics: average, min, max, and percentiles.
- Visualizations: throughput over time, latency histograms, packet loss timelines.
- Export: CSV/JSON for post-processing; PDF for stakeholder reports.
Key Operational Characteristics:
- Fixed Buffer Size: Data is transferred using large, statically allocated memory buffers (e.g., 64KB to 1MB) to reduce system call overhead.
- Synchronous or Asynchronous I/O: Depending on the compile-time options, it can use non-blocking I/O with event polling (like
epollon Linux orIOCPon Windows) for maximum parallelism. - No Intermediate Processing: Unlike HTTP benchmarks or file copy tests, LANBench does not compute checksums, compress data, or encrypt traffic. It simply reads from a pre-filled buffer in RAM and sends it raw onto the wire, then discards it at the receiver.
- Timing Mechanism: Uses high-resolution timers (e.g.,
QueryPerformanceCounteron Windows,clock_gettimeon Linux) to measure elapsed time precisely. It reports throughput in Mbps, Gbps, or MB/s.
1. Overview and Purpose
LANBench is a minimalist, open-source network benchmarking utility. Unlike popular tools like iPerf3 or Netperf—which rely heavily on the operating system's TCP/IP stack and can be limited by CPU performance at high speeds—LANBench is designed to test the raw maximum achievable throughput of a network link by minimizing software overhead.
It achieves this by using a simple, custom protocol over raw sockets (or high-performance transports) and focusing on pure data pushing/pulling without complex application-layer logic. The primary goal is to answer the question: "What is the absolute maximum bandwidth this network cable, switch, and NIC combination can provide, ignoring OS protocol stack bottlenecks?"