Changes between Initial Version and Version 1 of User/5aProxy


Ignore:
Timestamp:
Feb 18, 2019, 6:45:51 PM (3 years ago)
Author:
seskar
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • User/5aProxy

    v1 v1  
     1= Proxy Server =
     2
     3[[TOC(heading=OML Documentation, OML/*, depth=1)]]
     4
     5''The proxy-server is experimental and might change in the future, to be used with care''
     6
     7In several experiments, we cannot assume that there is a permanent channel between the client that makes the measurement and the server. Furthermore, in some other experiments this measurement channel could also be the experiment channel and therefore the experimenter would like to postpone the collection of measurement until the channel is available again.
     8
     9In order to solve these two problems, OML provides a proxy-server that acts as a buffer that can be paused and resumed. This architecture was introduced in
     10* Jolyon White, Guillaum Jourjon, Thierry Rakotoarivelo, and Max Ott. "Measurement architectures for network experiments with disconnected mobile nodes," in TridentCom 2010, May 2010. [http://www.nicta.com.au/research/research_publications/show?id=3298 Online].
     11 
     12It can be summarised by the following figure:
     13
     14[[Image(ProxyServerArch.png)]]
     15
     16In this document, we present through an example how to use the proxy-server.
     17
     18== Study case scenario ==
     19
     20The goal of this experiment is to measure achievable throughput using UDP between a two nodes when one is moving around. During this experiment the mobile node will also record its location using a GPS. As a result this node will be configured as follows:
     21
     22[[Image(ExperimentConfiguration.png)]]
     23
     24== Presentation of the proxy-server ==
     25
     26Before starting the proxy-server the experimenter has to install it on the node. The proxy-server is currently integrated inside the oml-server package but should have its own package soon.
     27
     28Currently to install it, a user has to do:
     29
     30{{{
     31sudo apt-get install oml-server
     32}}}
     33
     34Once installed the user can now start it using the with the following options:
     35
     36* -l, --listen=<port number>, the port to listen to receive measurements from the clients. By default, the proxy is listening on the port 3003.
     37* -d, --debug=INT, the debug level - error:1 .. debug:4
     38* --logfile=<file name>, the name for the log file. By default it is oml_proxy_server.log
     39* -v, --version, print the version information and exit
     40* -r, --resultfile=<file name>, the name of the temporary result file. By default it is oml_result_proxy.res<INT>, where INT is an increment number liked to a client.
     41* -s, --size=INT, the size for the memory buffer page for the measurements, by default 512.
     42* -p, --dstport=INT, the port of the OML server.
     43* -a, --dstaddress, the remote OML server address.
     44
     45In addition, the proxy-server has two help options:
     46
     47* -?, --help, which show an help message
     48* --usage, which display a brief usage message as follows:
     49{{{
     50Usage: oml2-proxy-server [-?v] [-?|--help] [--usage] [-l|--listen=3003] [-d|--debug-level=INT] [--logfile=oml_proxy_server.log] [-v|--version]
     51        [-r|--resultfile=oml_result_proxy.res] [-s|--size=INT] [-p|--dstport=INT] [-a|--dstaddress=address] configFile
     52}}}
     53
     54In addition to the different configurations concerning the client and the server, the proxy server provides on the standard in interface basic interaction for the user. Indeed the proxy server is based on a three states machines. These three states are:
     55
     56* Paused; in this state the proxy stores both in a file and in memory the measurements form the different clients connected to it.
     57* Resumed; in this state the proxy transfers the measurements to the server.
     58* Stopped; in this state the proxy finishes transferring the measurements to the serve and closed all its incoming and outdoing connections.
     59
     60When you start the proxy, it is in the paused state. In order to change between the states three commands are available:
     61
     62* OMLPROXY-PAUSE: change from Resumed to Paused
     63* OMLPROXY-RESUME: change from Paused to Resumed
     64* OMLPROXY-STOP: set to Stopped definitely
     65
     66== Configurations of the client and the server ==
     67
     68The use of the proxy-server is transparent to the both the server and the client application. The only change when using the proxy server concerns the address of the server for the client MP stream.
     69
     70== Running the experiment ==
     71
     72During the experiment the mobile node will follow the circuit shown on the next Figure, while the a static node acting as server for iperf will remain at the same place. We assume that in this experiment the oml2-server is also on static node and it is listening on the default port 3003. We also assume that the two are in ad-hoc mode and the IP addresses are 10.0.0.1 and 10.0.0.2 for the server and the client respectively.
     73
     74[[Image(circuit.png)]]
     75
     76At the beginning of the experiment, the experimenter starts iperf server on the static nodes using the following command and the oml configuration file server.xml:
     77
     78{{{
     79iperf_oml2 -s -u --oml-config server.xml
     80}}}
     81
     82Then on the mobile node the user has to start the proxy-server:
     83
     84{{{
     85oml2-proxy-server -l 3003 --logfile=/var/log/oml_proxy_server.log -r /home/user/oml_result_proxy.res
     86}}}
     87
     88Using this command, the proxy-server is started and listens on the port 3003. It will write the log file in /var/log/oml_proxy_server.log and the result files in /home/user/oml_result_proxy.res+<INT>. As explains before, the proxy server is in paused state but can still receive measurement.
     89
     90If you would like to the proxy-server to send the measurement to an OML server listening at the address 10.0.0.2 and port 5000 (instead of to a local file as above), then you should use the command:
     91
     92{{{
     93oml2-proxy-server -l 3003 --logfile=/var/log/oml_proxy_server.log -a 10.0.0.2 -p 5000
     94}}}
     95
     96Finally, we need to start the iperf client using the following command and the oml configuration file client.xml:
     97{{{
     98iperf_oml2 -c 10.0.0.1 -u -b 150000 -t 300 --oml-config client.xml
     99}}}
     100
     101Then, the experimenter can start walking following the circuit. Once the walk finished and in range of the oml2-server, the user give the command "OMLPROXY-RESUME" to the proxy-server, which in turn start the streaming of the measurement to the server.
     102
     103== Analysing the results ==
     104
     105Following the description of the experiment we obtain the results displayed in the next figure.
     106
     107[[Image(resultTridentcom.png)]]