This page has a series of helpful links for various topics. Emphasized links (bold, bigger font) are extremely useful for the content of this course and we recommend you look them over.
Programming Help
Network Programming
- Beej's Guide to Network Programming is one of the most in depth explanations of socket programming. We would highly recommended reading it if you're confused about the various system calls (connect, accept, bind, etc.) required for socket programming.
- Sockets Slide Deck contains a quick-start for getting a C sockets program up and running.
Concurrent Programming
- Introduction to Asynchronous Programming is a great high level intro to the concepts of asynchronous programming. This helps explain when one may want to use asynchronous programming instead of traditional multithreading.
- PThreads I and PThreads II are the slides from CS0330 for threading in C.
Course VM Info
- Using the Vagrant VM contains setup and usage information for using Vagrant for this course.
- Vagrant has the downloads for Vagrant.
- VirtualBox has the downloads for VirtualBox.
Wireshark
- Intro to Wireshark contains a lab for getting familiar with the fundamentals of Wireshark.
- Wireshark for 168 IP/TCP contains a lab for using Wireshark in the context of the IP and TCP assignments for this course.
- Wireshark Docs links to the official Wireshark Documentation.
TCP
- TCP Vegas contains a very useful description of how to read TCP Graphs. See section 2.2 on page 3 for a good explanation of how to interpret both Trace graphs and window graphs.
Git
- Git Cheat Sheet documents the basic git commands you will be using most of the time. The rest of the documentation on github is comprehensive and should be very helpful if you are stuck.
- Pro Git is a comprehensive guide to Git. If you have never used Git before and want to get a solid understanding of how it works, we recommend reading chapter 2 (minus the section on tagging), and chapter 3 (minus the section on rebasing).
Textbooks
- Computer Networks: A Systems Approach (5th edition), by Larry Peterson and Bruce Davie.
- Computer Networking: A Top-Down Approach (7th edition), by James F. Kurose and Keith W. Ross