PClient reference design TTCP client/server

The pclient reference design implements a simple TTCP application through the oWL Pico API. The TTCP application is an example on how to use the owl pico API to create network applications.

This section will briefly describe how to evaluate the throughput performance of the SPB800 and the oWL Pico API by using the TTCP implementation.

Using the TCP protocol to test throughput performance certainly introduces quite some protocol related overhead such as extra headers, retransmissions and acknowledgements. Therefore the actual throughput results will be highly dependent on the platform dynamic responsiveness (e.g. to handle incoming TCP acknowledgements) since TCP packets will be sent in both directions to successfully complete a single direction data transfer. The actual raw data throughput can be considered significantly better; e.g. using the UDP protocol would give a higher throughput of actual payload data.

The throughput measurement setup and execution will be performed in the following steps:

Obtain and configure the software tools

The TTCP application running on the platform through the oWL Pico API must communicate with another endpoint that also understands the TTCP "protocol". To transmit and receive TCP data, the standard tool TTCP can be run to the PC.

If linux PC is used, the ttcp source code can be obtained from e.g. http://www.netcore.fi/pekkas/linux/ipv6/ttcp.c. To compile ttcp for a linux PC:

$ gcc ttcp.c –o ttcp

If a windows PC is used, pcattcp should be used and can be downloaded from http://www.pcausa.com/Utilities/pcattcp.htm.

During test execution, the TTCP tool will be invoked on both the DUT and PC, one acting as the transmitter and the other one as the receiver. The transmitter will send a fixed (but configurable) amount of data to the receiver using the TCP protocol. The throughput will then be calculated based on the amount of payload data transferred in during the elapsed time.

Establish a link between the DUT and the PC

Make sure that the PC gets an IP address from the access point (or use a static IP) when the network cable is connected. In Windows, this should happen automatically as long as DHCP is enabled in the network configuration for the ethernet port. In Linux the DHCP client might have to be started manually, depending on the distribution and configuration. Now connect the DUT to the same access point using the commands available in the pclient application, see Commands.

It should now be possible to ping the DUT from the PC through the access point by using the ping command (make sure that the actual IP address of the DUT is replaced in the example below):

$ ping <ip>
...

Test TX throughput

First start ttcp on the PC in receive mode. In windows use the pcattcp tool:

$ pcattcp -r -s -p5000

In Linux, use the ttcp tool:

$ ttcp -r -s -p5000

Then the transmitter should be started on the DUT by using the ttcp command on the DUT:

$ ttcp -t –n 128 -p 5000 <ip address of PC>

This will start the transfer of 128 Kb payload data. When the transfer is completed, throughput information will be printed on both the DUT console and the PC console. Se below for example output shown on DUT followed by output on PC.

$ ttcp -t -n 128 -p 5000 192.168.2.100
ttcp connect 192.168.2.100:5000 nbuf:128 buflen:1024 sockid:2
ttcp ok: 131072 bytes processed in 25900 ms, 5.1572 KB/s

$ ttcp -r -s
ttcp-r: nbuf=1024, buflen=1024, port=5000
ttcp-r: socket
ttcp-r: accept
ttcp-r: 0.0user 0.0sys 0:26real 0% 0i+0d 2448maxrss 0+0pf 291+0csw
ttcp-r: 131072 bytes processed
ttcp-r:     1e-05 CPU sec  =  1.28e+07 KB/cpu sec,  1.024e+08 Kbits/cpu sec
ttcp-r:   26.3592 real sec =   4.85599 KB/real sec,   38.8479 Kbits/sec

Test RX throughput

First start ttcp on the DUT in receive mode:

$ ttcp –r

Then the transmitter should be started on the PC. In windows, use the pcattcp tool:

PC> pcattcp -t -s -p5000 –n128 <ip address of DUT>

In linux, use the ttcp tool:

PC> ttcp -t -s -p5000 –n128 <ip address of DUT> 

This will start the transfer of 128 Kb payload data. When the transfer is completed, throughput information will be printed on both the DUT console and the PC console. Se below for example output shown on DUT followed by output on PC.

$ ttcp –r
ttcp listen port:5000 buflen:1024 lsockid:2
ttcp ok: 131072 bytes processed in 30900 ms, 4.7472 KB/s
$ ttcp -t -s -p5000 –n128 192.168.2.112
ttcp-t: nbuf=128, buflen=1024, port=5000
ttcp-t: socket
ttcp-t: connect
ttcp-t: 0.0user 0.0sys 0:29real 0% 0i+0d 2448maxrss 0+1pf 31+0csw
ttcp-t: 131072 bytes processed
ttcp-t:     1e-05 CPU sec  =  1.28e+07 KB/cpu sec,  1.024e+08 Kbits/cpu sec
ttcp-t:   29.3639 real sec =   4.35909 KB/real sec,   34.8727 Kbits/sec
Topic revision: r3 - 2011-02-04 - 12:44:01 - AndersGrahn
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback