Giter Club home page Giter Club logo

cs655-tcp-comparison's Introduction

Preparation:

Create your slice using the Rspec

A list of commands below used to prepare and run test on a slice for your reference (note: parameters in scp for your slice will be different)

Execute the init_machines.sh script, which will install java, copy the files to the machines, and set the correct congestion algorithm. The script will ask the user to input all hosts and ports of their machines corresponding to the functions the machines are providing. Ensure these are correct before proceeding. It will also ask for a desired congestion control algorithm to be used. The script will also start the game and view servers after setup.

Running experiments:

The script run_game.sh will run the game automatically. It will ask the user to input all hosts and ports of their machines corresponding to the functions the machines are providing. Ensure these are correct before proceeding. The script will then run the game and view clients automatically.

If for some reason the script does not work, run the clean_up.sh command to clean up the machines before running the experiment again.

Also, you can run the commands manually for whatever reason needed.


Manual commands:

First, run ViewServer and GameServer on their respective nodes:

// On the ViewServer (10.10.1.1)
java ViewServer 58001 
// On the GameServer (10.10.1.2)
java GameServer 58000 "10.10.1.1" 58001

Next, run the GameClients on their respective nodes:

// Method 1
// On node GameClient1 and GameClient2
java GameClient "10.10.1.2" 58000
// GameClient will prompt/ask to input player name and time limit (in seconds)

// Method 2
// playerName and timeLimit as args
java GameClient "10.10.1.2" 58000 Alex 100
// player name Alex and time limit 100 (s) as args

java GameClient "10.10.1.2" 58000 Bob 100
// player name Bob and time limit 100 (s) as args

// Method 3
// playerName, timeLimit, Auto <interval> as args
java GameClient "10.10.1.2" 58000 Alex 100 Auto 2000
// player name Alex, time limit 100(s), Auto and 2000(ms) per move as args
// GameClient will play a move/2000ms for Alex automatically 

java GameClient "10.10.1.2" 58000 Bob 100 Auto 2000
// player name Bob, time limit 100(s), Auto and 2000(ms) per move as args
// GameClient will play a move/2000ms for Bob automatically 

Next, we need to run the ViewClients:

// Method 1
// On the ViewClient1 and ViewClient2 nodes:
java ViewClient "10.10.1.1" 58001
// ViewClient will prompt/ask to input viewer name and player name

// Method 2
// ViewerName and playerName as args
java ViewClient "10.10.1.1" 58001 Paul Alex 
// viewer name Paul and player name Alex as args

java ViewClient "10.10.1.1" 58001 Peter Alex 
// viewer name Peter and player name Alex as args

// Method 3
// ViewerName, playerName, Auto <length> <interval> as args
java ViewClient "10.10.1.1" 58001 Paul Alex Auto 30 500
// viewer name Paul, player name Alex, Auto 30 500 as args
// automatically generate a comment of 30 bytes every 500ms

java ViewClient "10.10.1.1" 58001 Peter Alex Auto 30 500
// viewer name Peter, player name Alex, Auto 30 500 as args
// automatically generate a comment of 30 bytes every 500ms

Finally, the following command, to be run on a ViewClient node, will run an experiment for max users with acceptable delay over a range of bandwidth values:

// Commands to get performance, to be executed on a ViewClient node
java ViewPerformance eth1 10 50 10 "viewPerf.txt" "10.10.1.1" 58001 Alex
java ViewPerformance eth1 20 50 10 "viewPerf.txt" "10.10.1.1" 58001 Alex Auto 30 5000

cs655-tcp-comparison's People

Contributors

baiqingl avatar jaxluo0405 avatar mraigoza avatar richardchen123 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.