Upload
evelyn-hill
View
213
Download
1
Embed Size (px)
Citation preview
TCP Lightweight Agent Project
Goal : Implementation of a generic agent that will be able to measure connection parameters between a client and a server.
Environment : Over the web.
Language : Java.
Authors : Alon Golan. Robert Parham. Eyal Keren. Regev Smadar.
TCP Lightweight Agent Project
The application is running on the server.The application reads the test names from the input file.Inserts the suitable tests to the Tests class and waits for Agent to connect.
server
TCP Lightweight Agent Project
A client connects to the server over the web.
The server thread runs the server tests.
serverclient
The socket is accepted, and a server thread is started by a time out thread.
TCP Lightweight Agent Project
The server thread starts the client helpers threads on the server.
The server thread sends the Tests class to the client (by serialization).
serverclient
Tests
The server thread initializes the client tests.
TCP Lightweight Agent Project
The applet runs the client’s tests. Some of them connect with the suitable helpers on the server.
The client sends the results to the server.
serverclient
results
TCP Lightweight Agent Project
The server thread gets the results and writes them to the HTML output file.The applet exits.
server
client
results
TCP Lightweight Agent Project
Till this point we explained the “frame program” implementation.
The following part will introduce the tests we have implemented.
Server client
Agent
TCP Lightweight Agent ProjectThe tests :
The interface of the tests - "TestInterface"All our tests implement this interface. This interface defines the methods every test should have- since tests can be added dynamically, they have to conform with this interface, so they will fit the frame program.
The interface of the helpers - "HelperInterface"All our helpers implement this interface. This interface defines the methods every helper should have- since tests can be added dynamically, we want their helpers to conform with this interface, so they will fit the frame program.
TCP Lightweight Agent Project
Server Test : Sending a Ping - “PingTest”
serverclient
This test counts the roundtrip time of an echo message in the IP level to a specific client. This test does not need a helper.
ping
TCP Lightweight Agent Project
Server Test : Router tracing- "TraceRtTest"
serverclient
tracert
This test returns the routers used when connecting the server to a specific client. This test does not need a helper.
TCP Lightweight Agent Project
Client Test : TCP throughput Test- "TcpThroughputTest"
server
clientSending
bytes
This test calculates the throughput of a TCP connection, it simulates reading files with different sizes. This test needs a helper.
After the server-client connection was established the server (helper) starts sending bytes to the client (test). The client reads the bytes the server sends. The results of the test are the throughput (time/size) for reading different amounts of bytes.
connect
TCP Lightweight Agent Project
Client Test : Roundtrip time test- "RttTest"
server
clientSend byte
This test calculates the roundtrip time of a TCP connection. This test needs a helper.
The client sends a byte to the server. When the server gets this byte, it answers right back with a byte. This process will repeat several times, and the result will be the average time.
Send byte
TCP Lightweight Agent Project
Client Test : HTTP 1.0 test- "HTTPThrTest10"
server
client
download
Calculates the throughput of the download time of a HTML file, using the HTTP 1.0 protocol. HTML file with images or without .This test does not need a helper.
GET HTTP/1.0
Pbrush.exe
download
TCP Lightweight Agent Project
Client Test : HTTP 1.1 test- "HTTPThrTest11"
server
client
download
Calculates the throughput of the download time of a HTML file, using the HTTP 1.1 protocol. HTML file with images.This test does not need a helper.
GET HTTP/1.1
Pbrush.exe
download
TCP Lightweight Agent Project
Client Test : Time test- "TimeTest"
server
client acknowledge
This test checks the time it takes the network to do the "three way handshake" process and the time it takes the network make the domain name translation . This test does not need a helper.
The results are the three way handshake time, and the name resolution time.
connect
acknowledge
TCP Lightweight Agent Project
Client Test : UDP test- "UDPTest"
server
client UDP packets
The client sends a TCP message to the server. The server sends back several UDP packets and a TCP message to the client with the number of UDP packets sent.
This test calculates loss rate of UDP packets sent between a server and a client. This test needs a helper.
TCP connect
TCP message
TCP Lightweight Agent Project
The End