Assignments

Set Up A Host

During this semester we’ll do a number of exercises on the internet. To do these in a consistent way, we’ll all set up linux-based internet host with a public IP address.

A host is simply a computer system attached to the internet. It could be a single physical device running its own operating system, or it could be a virtual instance of an operating system, hosted along with many other instances on a computer elsewhere in the world. Having a public IP address means that the system can be reached from other computer systems on the internet directly. For class purposes, it will be most convenient if you use a hosting service like  Digital Ocean, Heroku, Dreamhost, AWS, or on any service you prefer.

Here are the properties your host should have:

  • A public IP address
  • Administrative control (ability to run sudo)
  • The ability to start up and shut down yourself (i.e. don’t use a shared host)
  • Secure shell (ssh) access
  • The ability to run for days or weeks at a time

There are instructions on setting up a virtual host on Digital Ocean on the ITP networks site, and  on setting up a host on a Raspberry Pi. We have these available for checkout in the shop; even a Pi Zero W will do. Note that the Pi instructions depend on your being able to get your device on a network with public IP addresses. With consultation with me, you could set one up on the floor on a public IP address, but it is more challenging than a virtual host, and recovery after a crash means you need to physically visit the machine.

Make sure your host has a firewall in place, and note the IP address. You’ll use this throughout the semester for some of the other projects.Early on, we’ll all use our hosts to run some simple command line exercises and to pass some messages around the class.

Firewall

Run your Linux host for several days, with a firewall in place and a public IP address. Make a table of all the IP addresses that attempt to connect to your host. Compile information about them. Where are they located? What organizations are they associated with, at all (nslookup can help determine this)? What service providers are providing their IP addresses?

Traceroute

Use traceroute to explore the paths of your network transactions.  Try to get a sense of where the routers and servers on which you rely are physically located, and what networks they traverse.

Start by tracing a few of the sites that you visit regularly:  Facebook, gmail, bank, school, Zoom, etc. Trace your last few online purchases or meetings. You’re not recording the activities, you’re collecting data about the paths over which those activities occurred, after the fact.

Trace the paths from  all of the locations you regularly connect from: home, school, any public places you connect from. You can even trace from and to your mobile phone, if you know its IP address.  Save the traces in files, and make maps of the routes. Summarize the most common network providers in your activities.  Identify who the major tier one providers are in your life. Figure out whose hands the data about your life goes through on a regular basis. Look for patterns from your network-browsing habits through analysis and graphing of your network traces.

Compare notes with your classmates, to see if you can make a map of the class’ IP locations. How accurate do you think this map is, geographically?

Try a few different geoIP solutions to find where each IP address is located, and see how the results differ:

Feel free to obfuscate the endpoints if you don’t want us to know what sites you visit. Write a summary of your work and findings on your blog. We’ll compare notes on each others traces in class.

Protocol Definition

Pick at least one term that you learn in the course of your traces and research it. Provide a paragraph or two definition for the networks site glossary. Several terms there remain to be defined. Explain for a non-technical audience; in particular, explain how it might be part of their everyday life whether they know it or not. Provide sources for your information, with links where possible.

Packet Analysis

Capture and analyze traffic on your home network while going about your usual network activities. Present your results in summary form, using graphical analysis where appropriate. How much of your network traffic is inbound? How much is outbound?  What portion of it is HTTP traffic? How many devices are active on your network? What are their relative levels of activities? What sites are the most common sources and destinations for your traffic? Write a summary of your work and findings on your blog. We’ll compare notes in class.

Connected Device Interface Project

In the second half of the semester, we’ll do several in-class exercises in which we learn about making networked clients and servers.  Based on these exercises, you’ll design and build a networked device and web-based interface for it. This will include:

  • An appliance or domestic device that can connect to a network.
  • A RESTful web API that can be accessed by your connected device, and if necessary, a web server to deliver that API.
  • web pages to see the state of the system and make changes

Here are some possible applications that fit that description:

  • a web interface for networked environmental sensors that allows users to browse the latest sensor data, or see the data graphed over time
  • a browser-based UI for a home automation system that lets you control your lights, HVAC system, or sound system
  • a browser-based navigation system to fly a vehicle
  • You can propose your own as well.

You do not have to build a full vehicle, home automation system, or other complex machine. You do have to prototype the controller for it on an Arduino or Raspberry Pi.   A simple sensor input or a couple of LEDs output to show the device making requests to the server and providing output from the responses will suffice. You can use existing connected devices if you wish, but you must make a custom web interface for them. 

You’ll work in groups of three on this.

Reading Group Book Review

We’ll divide the class into groups to read and review books related to communications networks and their effects in the world. Each group will write and present a review for the class. These books and groups will be assigned by the instructor. If you have a preference, please let your instructor know in week 1.

The books to be reviewed are:

Fiber : the Coming Tech Revolution–And Why America Might Miss It. Susan. Crawford New Haven : Yale University Press 2019

The internet of elsewhere the emergent effects of a wired world. Cyrus Farivar. Project Muse. New Brunswick, N. J. : Rutgers University Press 2011

Who controls the Internet? : illusions of a borderless world. Jack L. Goldsmith Tim Wu Oxford, UK ; New York : Oxford University Press 2006

The undersea network. Nicole Starosielski 1984-. Durham ; London : Duke University Press 2015

Consent of the networked : the worldwide struggle for Internet freedom. Rebecca. MacKinnon New York : Basic Books c2012

A prehistory of the Cloud. Tung-Hui Hu 1978-. Cambridge : MIT Press Ltd 2015

In your review, include the following elements:

  • A brief introduction to the author, their background, and their affiliation. How does their experience or expertise contribute to the writing? What is their reason for writing the book? What are their stakes in the book?
  • A summary of the book. In a paragraph or two, what is it about? What is the main argument of the book?
  • What historical, cultural, or technological factors does the author consider in making their argument?  What sources do they draw upon? What factors do they not consider?
  • What do they assume that the reader already knows? Were there elements or topics that you had to look up separately in order to understand the book’s argument?
  • Describe the writing style and language of the book. Is it understandable for a general reader?
  • What are the institutions represented in the book?  What communities, stakeholders, companies, governments, and non-governmental organizations (NGOS) are  major characters in the book? What influence do they have over the story, and how?
  • Who, if any, are the individuals who represent those organizations?
  • What are the major power dynamics told in the book? Which organizations are in competition, collaboration, or both? Which need each other? Which place limits on each other?
  • What references do they provide for further reading that were useful to you?
  • Based on the references in this book, what books or other sources for further reading would you recommend next?

The purpose of these readings and reviews is to help your classmates and future classmates to know what they’ll get from reading any of these sources, whether they take this class or not. In class, you’ll give us a short synopsis of the book and its major themes, and answer questions from the class.

Your review should be a group effort, but include the perspective of all the group’s members. Your article should be 750 – 1500 words, and include links to and citations of any material from which you learn. Use primary sources when possible (including the book, obviously), and remember that Wikipedia is not a primary source. Explain in your own words; do not simply quote your source.

You will have a first draft due the week before your group presents its review, so that your classmates can read it before your presentation.