UDP-relay Code
Brought to you by:
kristrev
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 |
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.