TCP Lightweight Agent Project

Download Report

Transcript TCP Lightweight Agent Project

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
Robert
Eyal
Regev
Golan.
Parham.
Keren.
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 socket is accepted, and a server thread is started by a time out
thread.
The server thread runs the server tests.
client
server
TCP Lightweight Agent Project
The server thread starts the client helpers threads on the server.
The server thread initializes the client tests.
The server thread sends the Tests class to the client (by serialization).
client
server
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.
client
server
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.
client
Agent
Server
The tests :
TCP Lightweight Agent Project
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”
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.
client
server
ping
TCP Lightweight Agent Project
Server Test : Router tracing- "TraceRtTest"
This test returns the routers used when connecting the server to a
specific client. This test does not need a helper.
client
server
tracert
TCP Lightweight Agent Project
Client Test : TCP throughput Test- "TcpThroughputTest"
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
server
reading different amounts of bytes.
Sending bytes
client
connect
TCP Lightweight Agent Project
Client Test : Roundtrip time test- "RttTest"
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.
server
Send byte
client
Send byte
TCP Lightweight Agent Project
Client Test : HTTP 1.0 test- "HTTPThrTest10"
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.
server
client
download
GET
HTTP/1.0
download
TCP Lightweight Agent Project
Client Test : HTTP 1.1 test- "HTTPThrTest11"
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.
server
client
download
GET
HTTP/1.1
download
TCP Lightweight Agent Project
Client Test : Time test- "TimeTest"
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.
server
client acknowledge
connect
acknowledge
TCP Lightweight Agent Project
Client Test : UDP test- "UDPTest"
This test calculates loss rate of UDP packets sent between a server and a
client. This test needs a helper.
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
server
of UDP packets sent.
TCP message
client
TCP connect
UDP packets
TCP Lightweight Agent Project
The End