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
-
Open up burpsuite
-
go to the proxy tab
-
turn on interception and open the browser
-
go to https://google.com
-
What is your HTTP version?
-
What is your User Agent?
Wireshark exercise
Install Wireshark, on linux it may be in your package repository.
- open wireshark
- select your current networking (wlan0) interface
- go to a http website (NOT HTTPS)
- filter for
http
- select a packet > right click > follow > HTTP stream
- look through the traffic
netcat
exercise
- open two terminals ([S]erver and [C]lient)
- on S, run
nc -lvnp 9999
-l
listen-v
verbose output-n
do not perform DNS-p
listen port
- on C, run
nc 127.0.0.1 9999
- type something into C, look at S
- type something into S, look at C