Assignment 4

What to Do

  1. Open this Google Doc.
  2. Make a copy of the Google Doc in your own Google account by choosing File → Make a Copy.
  3. Answer each of the questions below in the Google Doc by filling in the blanks marked TODO. Your answers, if not code, should be no more than a few sentences in length each.

Questions

  1. Suppose that a user visits https://hls.harvard.edu/. Using each of the following terms at least once in such a way that makes clear the meaning of each, explain in a paragraph the process by which HLS’s home page appears on the user’s screen: DHCP, DNS, HTTP, HTTPS, IP, TCP.

  2. Suppose that two users (X and Y) in the same home, on the same campus, or in the same company both happen to be visiting some website from their own computers. Why might the two users appear to the website as having the same IP address, even though they’re each actually configured with a different IP address? Suppose that one of the two users misbehaves on the website. How might someone determine whether it was X or Y?

  3. In your own words, in what sense does Tor let you “hide” your IP address? You might find theguardian.com/technology/2013/nov/05/tor-beginners-guide-nsa-browser or en.wikipedia.org/wiki/Tor_(anonymity_network) of help.

  4. How did the FBI determine the identity of a student who sent a bomb threat during exam period in 2013, even though the student used Tor? You might find scribd.com/doc/192322531/Criminal-Complaint-Against-Student-Charged-With-Making-Harvard-Bomb-Threat of help.

  5. A firewall is a device (or software running on a device) that blocks traffic from getting into and/or out of a network. If a firewall is configured by a company to prevent its employees from spending time on, say, facebook.com, how, technologically, might the firewall be blocking that traffic?

  6. How, technologically, could a hotel redirect users to their own login (or payment) screen before those users are allowed to access other websites on the internet?

  7. What does it mean to scale “horizontally”? Why is it eventually necessary to scale horizontally rather than vertically?

  8. What are some challenges that arise when you scale horizontally, as by transitioning from just one server to two or more?

Debrief

  1. About how many MINUTES would you say you spent on this assignment? Just to set expectations for future students.

How to Submit

  1. Download your completed assignment as a PDF by choosing File → Download → PDF Document, and save it to your computer.
  2. Go to CS50 for JDs’s Gradescope page.
  3. Click Assignment 4.
  4. Click Submit PDF.
  5. Click Select PDF and choose your assignment file.
  6. Click Upload PDF.
  7. Click the first question in the Question Outline at left, then click the page (or pages) on which your response to that question is located. Repeat this process for the remaining questions.
  8. Click Submit.

You should see a message that says “Assignment 4 submitted successfully!”

If you run into any trouble with the above steps, email hls@cs50.harvard.edu!