wiki:GEC21Agenda/ChoiceNet/run_tests_part2

Version 5 (modified by xinming@umass.edu, 5 years ago) (diff)

--

Navigation: Up

After Step 2: Configure and Install ChoiceNet Software, we already have the Choicenet Framework setup. If you want to try the SDN implementation of ChoiceNet, you can follow this part of instructions.

Start ChoiceNet server and app

The SDN-based implementation has an SDN controller that knows the network topology and detect the path services. It also has a marketplace server which accepts the service advertisement from controller and handles the user request.

Although the controller and marketplace are logically separate from the users, in this tutorial, they are located on H1.

So open up a ssh session terminal to the H1 Node and start the controller and marketplace.

On TERMINAL 1 (H1 node)

sudo /root/choicenet/geni/start_server.sh

this will start both the marketplace and controller.

Open up two ssh session terminals to the H2 Node. First run the Choicenet App. The Choicenet App will communicate with marketplace to request for path service and deal with payment.

On TERMINAL 2 (H2 node)

sudo /root/choicenet/geni/start_app.sh

When asked for username and password, please use the following account:

Username: customer@choicenet.info

Password: customer

After login, the app will intercept any TCP SYN packets with destination IP 10.0.0.0/8 and destination port 8080 or 443. Once it intercepts a packet, it communicated with the marketplace and request for a path service with 3-minute duration. This means it is compatible with almost any existing network applications, here we will use wget and mplayer as two examples.

Test 1: wget

First start a simple http server on H1:

On TERMINAL 1 (H1 node)

sudo su
cd /root/
ping 10.10.1.1 -c 1
python -m SimpleHTTPServer 8080

The ping is used to let the controller know the existence of H1. This only needs to be done once after the ChoiceNet server start..

We then use wget on the other terminal of H2

On TERMINAL 3 (H2 node)

ping 10.10.4.1 -c 1
wget http://10.10.1.1:8080/sample.mp4

After executing this command, switch to TERMINAL 2, you will see the ChoiceNet App gives you several options about the forward and revert path. Each path is valid for 3 minutes.

Select one for each, then you will be asked to pay for the path service on a webpage.

Copy the link to your browser, and pay for the service using paypal. You can use the test paypal account:

Username: customer@choicenet.info

Password: customer

After you have paid, click the "Return to marketplace@choicenet.info". After the webpage redirection, the marketplace will be notified about this payment, and the download should start. You will see the output on TERMINAL 3:

root@h2:~# wget http://10.10.1.1:8080/sample.mp4
--2014-10-16 23:02:16--  http://10.10.1.1:8080/sample.mp4
Connecting to 10.10.1.1:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 73516259 (70M) [video/mp4]
Saving to: `sample.mp4'

10% [========>                                                                                  ] 7,927,627    116K/s  eta 9m 11s

The download speed should match the speed you select in the ChoiceNet App. If you want to start over and try another choice, make sure to wait 3 minutes so that the previous service can expire.

Test 2: mplayer

One possible use case of ChoiceNet is the on-demand online video streaming. In this test, we are using mplayer to stream a video from H1 to H2, and print the statistics on H2. You will see the playback quality varies for different choices.

The steps of testing with mplayer is similar to testing with wget, just repeat the commands in Test 1, but replace the wget command with the following command:

On TERMINAL 3 (H2 node)

ping 10.10.4.1 -c 1
mplayer http://10.10.1.1:8080/sample.mp4 -vo null -nosound

After you have paid for the path service, you can see the streaming starts and the statistics print on H2. If you choose the 1 Mbps link, you will notice the cache utilization is below 50% and the performance issue warning.

Attachments (4)

Download all attachments as: .zip