|
Required textbook
Readings will be assigned from this book. Used copies should be easily found on Amazon.
Computer Networking: A Top-Down Approach:
8th Edition (2020), by James F. Kurose and Keith W. Ross
Interactive exercises
and online resources.
Other good references
Computer Networking: Principles, Protocols, and Practice
2nd Edition (2015) By Olivier Bonaventure - Free download!
Internet Measurement: Infrasructure, Traffic and Applications
3rd Edition (2014), by Brandon Rhodes and John Goerzen
Computer Networks: A Systems Approach
5th Edition (2011), By Larry L. Peterson and Bruce S. Davie
Computer Networks
5th Edition (2010), By Andrew S. Tannebaum and David J. Wetherall
Your environment
You will need access to a Unix/Linux-based machine: this will enable you to easily
use the network tools we discuss. If you are using Windows, then I recommend creating a virtual machine. Note that everyone will eventually need to create a virutal machine as we will use it for a homework.
Creating a virutal machine
The preferred option is to create a Linux Virtual Machine (VM) using VirtualBox.
If you find you are having trouble doing this, please bring your laptop to my office and we will set it up together. If you are using MacOS with the new M1 chips you will not be able to use VirtualBox. Instead, I recommend UTM .
- Step 1.
Download and install the most recent version of VirtualBox.
VirtualBox is virtualization software that runs on your computer and permits you to run a virtual computer
on your computer, in your case, a computer running Linux rather than Windows.
You should read the beginning of Chapter 1 (First Steps)
before continuing.
- Step 2.
Download a linux iso.
Go to the
Ubuntu website
and download a this 64-bit version: ubuntu-16.04.3-desktop-amd64.iso
- Step 3.
Create your linux virtual machine following the instructions
here
and choosing the following options.
Type: Linux
Version: Ubuntu (64-bit)
Memory size: 1024 MB
Create a virtual hard disk now: create
VDI (VirtualBox Disk Image)
Statically allocated
File location and size: 20 GB
- Step 4.
I recommend also installing guest additions to make using your virtual machine easier.
Follow the instructions
here.
Installing Python
Very likely python is already installed on your machine: check by
typing "python --version" in a terminal.
We'll be using Python 3.x.
If Python 3.x is installed, you should be able to type python3 in a terminal.
If you need to install Python 3, you can download it from here:
here.
Alternatively, on ubuntu linux you can use the command "sudo apt-get install python3".
A better python command line shell is
ipython which e.g., permits
tab auto-completion of object functions.
You may wish to instead download the
anaconda distribution
which contains many useful packages/modules in addition to
ipython as well as python.
Python and Socket Programming
Python 3 tutorial
Another Python 3 tutorial
Python 3 sockets
Raw sockets
UTF-8 (Unicode Transformation Format – 8 bit):
wikipedia,
python
Bitwise operators:
python
Struct module which is useful for creating packet headers:
python
Regular expressions (more effective ways to search and manipulate strings):
python
Network tools
Wireshark
tcpdump
traceroute
ping
netcat
ssh
lookup ip address: dig
netstat
route
list interfaces: ifconfig
list processes: ps
kill a process: kill
Editors
Vim tutorial
Another vim tutorial
Emacs tutorial
Atom tutorial
Make your editor work nicely with python:
Vim,
Emacs ,
Eclipse
Python style guide
Unix/Linux
Unix tutorial
Commands
|
---|