PCANDIS - PCAMPR
Performance Comparisons

 

Background

The original PCAUSA Rawether for Windows product was originally introduced in 1997, and has served our customers well through the introduction of several new versions of the Windows operating system. And, along the way, the speed of widely used network media has increased from 10Mbps to 1000Mbps.

The basic Rawether NDIS protocol driver (currently called "PCANDIS") has also been improved along the way and has performed well. Today, the standard Rawether PCANDIS driver is used in many commercial products operating on 10Mbps, 100Mbps and 1000Mbps networks.

On the other hand, there are some demanding requirements that exceed the performance capability of the original PCANDIS driver.


Performance Goals

Some background on the performance goals that need to be met by a new Rawether NDIS protocol driver are outlined on the PCAUSA Knowledge Base article Network Performance Notes Part 1 - Theoretical Estimates.
 

Performance Measures

bulletPacket Loss - The primary measure of performance for a packet collection driver is "packet loss". Better performance simply means fewer lost packets.
bulletCPU Usage - It is essential that the packet collection process should be as efficient as possible. For sure, operation of the packet collection system must not consume system resources to the point that software that uses the collected packets cannot operate.

 

The New "Multi-Packet Read" NDIS Protocol Driver (PCAMPR)

Rawether V5.02.15.53 introduces a new "multi-packet read" NDIS protocol driver. The new PCAMPR driver is not intended to be a replacement for the existing PCANDIS protocol driver. Instead, it is an alternative driver to be considered for demanding situations.

Our measurements indicate that the new PCAMPR NDIS protocol driver has the capability to support operation on 1000Mbps Gigabit Ethernet in demanding situations. Out test facilities are not sufficient to provide an estimate of the upper limit of its ability, but it should easily reach 500Mbps sustained operation and hopefully further.

Here are the key differences between the original PCANDIS driver and the new PCAMPR driver:

bulletPCANDIS "Single-Packet Read" Driver - This driver supports multiple concurrent single-packet reads.

bulletW32N_PacketRead(Ex) Single-Packet Read API - Used by applications to read packets from the PCANDIS driver.

bulletHookPeek Sample Application - Opens and exercises the PCANDIS driver to illustrate
packet monitoring.

In contrast, the new PCAMPR driver fills a large buffer with data from multiple packets and passes the multi-packet buffer to the user-mode application when it is filled.

bulletPCAMPR "Multi-Packet Read" Driver - This driver supports multiple concurrent multi-packet
reads.

bulletMPR_ReadPacketBuffer(Ex) Multi-Packet Read API - Used by applications to read packets from the PCAMPR driver.

bulletMPRead Sample Application - Opens and exercises the PCAMPR driver to illustrate packet monitoring.

The important difference is that there are far fewer kernel-to-user transitions using the PCAMPR driver.


Network Performance Testbed

The test bed that was used for these measurements is built from off-the-shelf Windows workstations and readily available network components. Although the test bed is not capable of fully saturating a 1 Gbps network, it does stress the workstations and network sufficiently to gain insight into the performance that is achievable.

Network Hardware

The testbed consisted of two HP workstations connected via a 1000Mbps switch:

Test Item Description Network Hardware
TCP Transmitter
"HP9870"
HP Pavilion 9870
Single 1.3GHz P4, 128 MB
LinkSys EG1032 Instant Gigabit Network Adapter, 32-bit PCI
1000 Mbps Switch LinkSys EG0008 10/100/1000 8-Port GigaSwitch
Full Duplex
TCP Receiver
"TwoEye1000"
HP Visualize P-Class
Dual 1GHz PIII, 256 MB
NetGear GA622T 100/1000 Copper Gigabit Ethernet Card, 64-bit PCI

 

Test Software

TCP Transmitter/Receiver Test Software

The test used the well-known "Test TCP" (TTCP) socket application originally developed for the Unix platform. The test used PCAUSA's "PCATTCP" port of TTCP to the Windows platform. Source and executables for PCATTCP can be found at the PCAUSA Test TCP(TTCP) Utility web page.

For some tests PCATTCP was modified to allow the transmitter to run continuously instead of stopping after a specified number of transmitted buffers.

Rawether Test Software

The Rawether software that was used for the test consisted of the following:

bulletPCANDIS Driver Test - Was performed using the HookPeek Packet Monitoring Application.
bulletPCAMPR Driver Test - Was performed using the MPRead Packet Monitoring Application.

The tests were performed using the V5.02.15.53 versions of these applications.

 

Test Procedure

The Rawether test software is run on the TCP Receiver workstation, a dual 1GHx PIII workstation.

The Rawether packet monitoring application is run in the "quiet" mode. This means that individual packets are not displayed on the console as they are received. Instead, statistics are displayed at 10-second intervals.

For this test the PCATTCP transmitter is setup to send 16,384 buffers that are 8,192 bytes in length. A total of 134,217,728 bytes of TCP data is sent for each test.

At then end of each test the PCATTCP and Rawether packet monitoring application output is saved.

 

Summary Test Results

Here is a summary of the test results for this initial comparison test between the PCANDIS and PCAMPR drivers:

Driver TCP Throughput
KB/sec
NDIS Throughput
KB/sec
Packet
Frequency
Pkt/sec
Packet
Loss
PCANDIS 14,558 8,780 9,110 1,894
Packets
PCAMPR 23,084 11,848 12,288 zero (0)
packets

Note 1: The NDIS throughput is lower then the TCP throughput because the Rawether application was started before the TCP transmitter and was stopped after the TCP transmissions were finished.

The primary result of interest is that the PCANDIS driver did drop 1,894 packets during this test and the PCAMPR driver did not drop any packets.

A second point of interest is that the TCP throughput was actually higher during the PCAMPR test. This is because the TCP receiver and the Rawether packet monitoring application were both running on the same workstation. Because of the increased efficiency of the PCAMPR driver the receiver workstation was able to accept data at a higher rate.

 

CPU Utilization

The CPU utilization when testing the PCAMPR driver ranged between 25% and 35% throughout these tests. Understand that the test host was concurrently running both the TTCP receiver Winsock application and the MPRead packet collection application. CPU utilization ranged between 15% and 25% with the TTCP receiver alone. This indicates that the PCAMPR driver and MPRead application were using less then 15% of the CPU resource.

 

MTU Effects

These tests were performed on a local network using a MTU of 1500 bytes.

The design of a multi-buffered NDIS protocol driver is relatively insensitive to decreasing the MTU (i.e., smaller packet sizes). For the same throughput, as packet size decreases the packet frequency increases. However, since the throughput rate is constant the rate that the driver buffers are filled remains (roughly) constant.

Looking for a moment at the detailed PCAMPR test data:

Ave RxByte Rate: 14218105; Ave RxPkt Rate: 14746; Ave RxBuf Rate: 229

If the RxByte rate was (somehow) kept at 1,421,805 bytes/second while the MTU was decreased by a factor of ten(100) to about 150 bytes, the RxPkt rate would increase by a factor of ten(10) to about 147,460 packets/second.

However, since the RxByte rate (which determines how fast the packet buffers are filled) is constant the RxBuf rate would remain at a very low 229 buffers/second.

Since other tests show that the PCAMPR driver can operate at both higher throughput rates and much higher RxBuf rates, it is probable that the driver will perform well with smaller MTU. The throughput bottleneck will more likely be in components that must perform work on individual packets: the lower-level adapter and its driver or the higher-level application that is consuming the large buffers returned by the PCAMPR driver.

 

Detailed Test Results

Here are the links to the test results details:

bulletPCANDIS/HookPeek Performance Test Results
bulletPCAMPR/MPRead Performance Test Results

 

Other PCAMPR Test Results

Other tests were performed, and the results are included in the Rawether Guide help file that is provided with the product. None of these tests are sufficient to establish an upper performance limit on the PCAMPR driver.

bulletContinuous Operation Test
bulletHigher Rx Buffer Frequency Test
bulletHigher Byte Transfer Rate Test - Received packet rate over 40K packets/second.

 

 

Mailing Lists  · PCAUSA Newsletter · PCAUSA Discussion List
·
Privacy Statement · 
WinDis 32 is a trademark of Printing Communications Assoc., Inc. (PCAUSA).
Rawether for Windows and Rawether .NET are trademarks of Printing Communications Assoc., Inc. (PCAUSA).
Microsoft, MS, Windows, Windows 95, Windows 98, Windows Millennium, Windows 2000, Windows XP, and Win32 are registered trademarks and Visual C++ and Windows NT are trademarks of the Microsoft Corporation.
Send mail to rawether-webmaster@pcausa.com with questions or comments about this web site.
Copyright © 1996-2008 Printing Communications Assoc., Inc. (PCAUSA).
All rights reserved.
Last modified: December 31, 2007