Skip to content

mnlrc/networking-labs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Initiation to networking

This repository was created to keep and document our work during networking labs. I (Manuel Rocca) did these labs with Matteo Morbée within the ULB college context for the INFO-F303 course, also called "Réseaux, information et Communication" in french. This means we had directives given to us that we had to follow in order to respond to questions linked to the theoretical course.

The directives were made by ULBs staff (PhD students, teachers, ...; their names are written at the top of each directive document) as well as the lab setups (files used to run the VMs to simulate a network). Our work on these labs consists of reports we made for each part that answer the asked questions (note: the questions are in english but all of our answers are written in french) by using Wireshark to catch packets going through the network.

Our reports aren't perfect. This is in part due to the fact that they were done within a time limit of two hours. If some parts feel rushed, it is normal. Even though we did not have the time to analyze everything in perfect detail, the time constraints brings some interesting things to the table:

  • knowledge applied on the fly
  • group management and communication (who does what and how to communicate the results efficiently)
  • stress management (it was graded, hence the stress to perform)

From the fourth lab, we had an optional homework to do during the week-end. Those were made with more attention as we had more time on our hands.

Concepts learned and used

Here is a small introduction to each topic covered in each lab:

Lab number Topic
1 Introduction to Netkit and Virtual Machines and DNS
2 Basic HTTP requests and TCP handshake
3 TCP flow and congestion control and error recovery
4 IP protocol, masks, collision domains, subnets
5 Routing protocols: RIP and OSPF
6 Frames and Spanning Tree Protocol

Each concept will be detailed in each labs README file. Feel free to look around !

Repository structure

Each lab contains two subdirectories:

  • doc: containing the directives and reports of the lab
  • lab: containing the programs to run the VMs (made by ULB staff)

Here is the structure of this repository's directories:

.
├── lab1
│   ├── doc
│   └── lab1
├── lab2
│   ├── doc
│   └── lab2
├── lab3
│   ├── doc
│   └── lab3
├── lab4
│   ├── doc
│   └── lab4-jh
├── lab5
│   ├── doc
│   └── lab5-jh
├── lab6
│   ├── doc
│   └── lab6-jh
├── netkit-help.pdf
├── netkit-jh_install.sh
└── README.md

Requirements

  • Netkit
  • Wireshark

Ubuntu (Debian)

Use the netkit installation script found on Netkits GitHub page.

For Wireshark, install it via sudo:

sudo apt install wireshark -y

Other Linux distros

We suggest trying the installation script first and then, if it doesn't work, search for a solution.

Look for Wireshark in your favourite package manager.

Windows

Use Virtual Machines.

Running the labs

In each lab, you can find subdirectories in which lie the config files. In a general rule of thumb, to initiate the VMs (with Netkit installed), run the following command in your bash terminal:

lstart -f # -f to start the VMs simultaneously

Alternatively, to run a specific VM, use:

vstart <name> # where name is the VM's name

To close the VMs properly, run:

lhalt

or

vhalt <name>

To stop a specific VM.

Optionally:

lclean

To clean up memory files and avoid meaningless memory comsumption.

Finally, use:

lcrash 
# or
vcrash <name>

To crash VMs if an issues is encountered.

Releases

No releases published

Packages

 
 
 

Contributors