Index of /~amit/research/lowlatencyTCP/tests

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]Makefile 2003-03-17 10:42 821  
[TXT]charC.cpp 2003-03-14 00:54 2.1K 
[TXT]charS.cpp 2003-03-14 00:54 2.9K 
[TXT]congestC.cpp 2003-03-14 00:54 2.2K 
[TXT]congestS.cpp 2003-03-14 00:54 3.1K 
[TXT]fileC.cpp 2003-03-14 00:54 2.4K 
[TXT]fileS.cpp 2003-03-14 00:54 4.4K 
[TXT]lincoln.txt 2003-03-14 00:54 29K 
[TXT]recvqC.cpp 2003-03-14 00:54 2.1K 
[TXT]recvqS.cpp 2003-03-14 00:54 2.7K 
[TXT]shakespear.txt 2003-03-14 01:01 5.3M 
[TXT]speedC.cpp 2003-03-14 00:54 1.9K 
[TXT]speedS.cpp 2003-03-14 00:54 2.8K 
[TXT]termC.cpp 2003-03-14 00:54 1.5K 
[TXT]termS.cpp 2003-03-14 00:54 1.8K 
[TXT]timerC.cpp 2003-03-14 00:54 2.0K 
[TXT]timerS.cpp 2003-03-14 00:54 3.5K 
[TXT]zeroC.cpp 2003-03-14 00:54 2.0K 
[TXT]zeroS.cpp 2003-03-14 00:54 2.7K 

Instructions for building and running tests.

  1. Install the user headers via ../user/install.
  2. Type "make", this builds all of the client and server tests.

The test code can be run under a non-cluster kernel, but an error will occur if the tests are ran using the cluster protocol.

Running timerS/timerC:

The server program times message throughput between multiple clients. You can run this with wither TCP/IP or cluster.

  1. Start the server running, "./server" will display usage. ex: ./server 1 10 10 3 10.0.0.3 5005 Notes: This will test the TCP/IP protocol with 10 tests, where each test is 10 bytes each. It is expecting 3 clients, and is running on 10.0.0.3, where client 1 will connect to 5005, client 2 on 5006 and client 3 on 5007. 

  2. Start the client on a separate machine, "./client" will display usage. ex: ./client 1 10 10 10.0.0.3 5005 Notes: There should be as many clients started as the server expects. These clients must match the protocol of the server. 
Running speedS/speedC:

This is similar to the server test except only one client is used and only the latency from the send() request is timed. The parameters are similar to the server test, where speeds is the server and speedc is the client.

Running fileS/fileC:

Again, similar to server except a files is transmitted across the connection. This takes an additional parameter, the name of the file to send. The client side produces fileC.txt, which should diff exactly to the original file. This tests the ability of the protocol to support continuous sends and recvs. Also, zero length messages can be sent.

Running charS/charC:

Similar to the file tests, put sends a particular number of characters to the client read from the file. This tests the protocols ability to manage messages that span multiple packets, and read requests that do not read the entire packet.

Running zeroS/zeroC:

This is a simply test that sends three messages, one of which has length zero. This tests the protocols ability to send a message with no payload.

Running termS/termC:

This tests the protocols ability to handle the case where the server terminates before the client.

Running recvqS/recvqC:

This tests the case where the connection is closed before the client side has read all of the packets sent.

Running congestS/congestC:

Similar to the other test except it tests network congestion. If the network gets congested, packets are dropped and this test will not complete.