Tree [r3] /
History



File Date Author Commit
AUTHORS 2008-02-15 kristrev [r3] Initial release of code
COPYING 2008-02-15 kristrev [r3] Initial release of code
ChangeLog 2008-02-15 kristrev [r3] Initial release of code
INSTALL 2008-02-15 kristrev [r3] Initial release of code
Makefile.am 2008-02-15 kristrev [r3] Initial release of code
Makefile.in 2008-02-15 kristrev [r3] Initial release of code
NEWS 2008-02-15 kristrev [r3] Initial release of code
README 2008-02-15 kristrev [r3] Initial release of code
aclocal.m4 2008-02-15 kristrev [r3] Initial release of code
configure.in 2008-02-15 kristrev [r3] Initial release of code
depcomp 2008-02-15 kristrev [r3] Initial release of code
install-sh 2008-02-15 kristrev [r3] Initial release of code
missing 2008-02-15 kristrev [r3] Initial release of code
udp_control.c 2008-02-15 kristrev [r3] Initial release of code
udp_measure.h 2008-02-15 kristrev [r3] Initial release of code
udp_node.c 2008-02-15 kristrev [r3] Initial release of code

Read Me

UDP-relay:
-----------

UDP_node and UDP_control together measure and output the delay between
specific nodes. Control acts as a server and tells the first node in
the provided path to measure the time it takes to transfer a UDP
packet through the entire path. The program can do hard-state (between
every pair of nodes), soft-state(between start- and end-node) or both
types of measurements. UDP_control takes the following input
arguments:

p - The TCP-port it will use when connecting to the node(s). Optional,
defaults to 9013.

h - Should do hard-state measure.

s - Soft-state measure. If neither of these are provided, the program
will do nothing.  <list of IPs> - The IP-adresses for the nodes in the
path (assusmes that first is the first and last is the last).

Example on how to start the program (hard- and soft-state, TCP-port
1250): 
./udp_control -hs -p 1250 192.168.101.4 129.240.228.184 129.240.65.197
129.240.65.193 129.240.69.32

UDP_node is the client and must be started on every node before
control is run. If it receives a TCP-connection, it will parse the
list of nodes that is sent and send a predetermined number of
UDP-packets through the path. If it receives a UDP-packet, the packet
is either forwarded to the next node or treated accordingly if the
node is at the end or beginning of the path. UDP_node supports
multiplexing (it can have many active TCP-connections at once and
treat UDP-packets at the same time). The program takes the following
arguments:

t - TCP-port used to listen to connections from the
controller(s). Optional, defaults to 9013.

u - UDP-port used to receive packets on/send packets to. Have to be
the same on every machine in a path. Optional, defaults to 9014.

n - Number of measurments packets to be sent when this node is the
src. Optional, defaults to 10 000.

Example on how to start the program (TCP-port 1250, UDP-port 1251 and
10 000 measure packets):
./udp_node -t 1250 -u 1251 -n 10000

Other thins worth nothing about UDP-node:

- Since the node and controller are two different programs, they can
  be run on the same machine. Remember to use the machines public IP.

- There are some constants in udp_measure.h that might be interesting
to modify, namely ANT_CONN and TIMEOUT_SEC. The first controls how
many connections you can have at one time, while the other how long
select will wait before it times out.

Install:
- Run automake.
- Run autoconf.
- Run./configure
- Run make

TODO:

- Allow nodes to use different ports.
- Increase maximum length of path.