Skip to content

Computer Networking

Computer Networks

One of the reasons computers are as useful as they are today is because of their ability to communicate with each other.

The internet, the thing that allows computers to talk to each other, is a complex collection of technologies and concepts. The seemingly simple task of loading https://google.com in your browser probably took over 10 computers to complete.

As you encounter more complex code, you’ll need a more accurate mental model to help you reason through what the programs are really doing.

— Jon Gjengset (Rust for Rustaceans, 2021)

As Jon points out, metal models are very important for understanding complex topics. By the time you complete these exercises, you should have a strong mental model of how the internet works. When thinking about how some program works, you should be able to abstract away the parts that don’t matter and focus on the details that do.

Burpsuite exercise

Install BurpSuite

  1. Open up burpsuite

  2. go to the proxy tab

  3. turn on interception and open the browser

  4. go to https://google.com

  5. What is your HTTP version?

  6. What is your User Agent?

Wireshark exercise

Install Wireshark, on linux it may be in your package repository.

  1. open wireshark
  2. select your current networking (wlan0) interface
  3. go to a http website (NOT HTTPS)
  4. filter for http
  5. select a packet > right click > follow > HTTP stream
  6. look through the traffic

netcat exercise

  1. open two terminals ([S]erver and [C]lient)
  2. on S, run nc -lvnp 9999
  • -l listen
  • -v verbose output
  • -n do not perform DNS
  • -p listen port
  1. on C, run nc 127.0.0.1 9999
  2. type something into C, look at S
  3. type something into S, look at C