Skip to content

renandemelo/navigation-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

How to simulate a LAN using a wireshark file (pcapng)
------------------------------------------------------


Instalation:
--------------
- Install Mininet (We highly recommend the Ubuntu VirtualBox VM install!) - Instructions: http://mininet.org/walkthrough/
- Update Ubuntu packages in your vm: sudo apt-get update
- Install java package: sudo apt-get install openjdk-7-jdk
- Install maven2 package: sudo apt-get install maven2
- Install git - sudo apt-get install git
- Download this complete source code if you have not done it yet: git clone https://github.com/renandemelo/navigation-analysis.git



Prepare simulation:
---------------------------
- Copy your Wireshark files to your VM (if you are using a VM). SCP might be the easiest way of doing it.
- Download dependencies and compile Java code by using in the navigation-analysis directory the following command : mvn clean install (it might take a few minutes)
- In the main folder (navigation-analysis), define an ID for each navigation and the numbers of simultaneous clients that you want to simulate in the file 'config.py'. 
In this file you need to configure a python dictionary named 'sites' having a navigation ID as a key and a wireshark file as a value.
The number of clients for each experiment need to be configured in an array named 'num_clients'. 
An example of a configured file is described as following:

	sites = {
		'Kernel':'entrega-aps/eduardo/Kernel/kernel3.pcapng',
		'Facebook':'entrega-aps/eduardo/Facebook/facebook1.pcapng',
		'Terra':'entrega-aps/daniel/WireShark/Terra250913-0004/Terra250913-0004.pcapng',
		'YouTube':'entrega-aps/willian/wireshark/dia25.09/Youtube25.09/Youtube25.09.pcapng'
	}

	num_clients = [1,5,10,15]



Running the simulation:
----------------------
- To run the simulation execute the following command:
	sudo python run-simulation.py

- This command will run a simulation of each navigation with each specified number of clients, as defined in the config.py file. 
- Each simulation will replicate traffic based on data chunks sent/received to the server, using the same data chunk size and relative time to as collected in the wireshark file.

Checking and analyzing results:
-------------------------------
- Results will be available at 'experiments' directory, having one subdirectory for each experiment run with navigation ID + simultaneous clients (ie. Youtube-10).
- In each subdirectory, all data chunks send and receive timestamps will be available in a text file, one per connection. Each connection is represented by the name {IP-local}-{IP-remote}.txt
- Based on the timestamps, it is possible to compare send and receive delay of data chunks.


Collecting average delay automatically
--------------------------------------
- After a successful execution of 'run-simulation.py', it is possible to analyze average delay values automatically
- For doing that, just execute the command: python run-analysis.py
- As a result, the script will print average delay values for upload an download data chunks for each experiment, separated by a "Tab". 
Example:

Site	Number of Clients	Upload Delay	Download Delay
Terra	1	439	880
Terra	5	438	932
Kernel	1	392	635
Kernel	5	463	529
Facebook	1	448	1032
Facebook	5	445	1079
YouTube	1	626	1285
YouTube	5	606	1352


Reproducing the experiments described in the paper
--------------------------------------------------

To perform the experiment described in the paper, we used a few navigation wireshark traces provided by students.
These traces are available at: https://www.dropbox.com/sh/2hld8oy1a7w3zb2/9taOAQt8hl

To reproduce the experiment, you only have to:
- download and extract the zip file. 
- perform configuration in 'config.py' as described in the previous steps.






About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published