- 11/14 Submission instructions and clarifications for project 3 can be found at the CollectIt Dropbox or in an e-mail sent to the whole class.
- 11/9 Further clarifications/changes to project 3 can be found here
- 11/1 A slight clarification to the project 3 assignment can be found on the Fishnet/Assignments page.
- 10/30 I have a solution for project 2 which I think works and I will give it to people who ask, but we encourage you to use your own implementation if you can.
- 10/27 A few points:
- In understanding that there are lots of things which can come up and interfere with coursework, each student will be allowed 1 mulligan of a few days extension on any assignment of your choice as long as the rest are turned in on time. The one exception will be the final.
- Project 3 is due at the end (not the beginning) of week 7. That's November 14, not November 10.
- 10/22 To submit project 2 follow the instructions here: https://catalysttools.washington.edu/collectit/dropbox/dixonc/3961
- 10/22 Instructions on how to test your Project 2 were e-mailed out. Long story short: there is a Trawler running on attu3 on port 12345 and I have one of my nodes attached to it.
- 10/21 I sent two important e-mails that clarify parts of Project 2 to the class mailing list. They are also posted on the Fishnet Projects page.
- 10/20 Homework 2 has been posted. It's due in two weeks on November 3rd.
- 10/17 There are two options for turning in homework 1: either (1) e-mail Colin your answers typed up as a pdf, doc or txt document or (2) hand in a hard copy in class on Monday 10/20. In either case please put your name on it somewhere near the top.
- 10/14 A sample solution for project 1 has been posted which you can use as a starting point for project 2 if you like. While I believe it is correct and have tested it some, it is possible that some bugs may have crept in, so feel free to let me (Colin) know if you find any.
- 10/13 The first homework was assigned last week. It will be due at the beginning of class (6:30p) on Monday, Oct 20.
- 9/30 The current versions of Fishnet are written with Java 1.4 in mind which means they do not use generics resulting in errors when compiling on attu. A new version
will be forthcomingcan be found here or on the project page, though the necessary changes are trivial and just require a lot of converting things like ArrayList to ArrayList<Object> where the compiler complains.
- 9/29 If you have yet to receive mail for this class, subscribe using the link above. If you have trouble, let one of us know.
The focus of this course is the design of computer networks, including hardware, software, physical layer issues, protocol design, wireless, internetworking, routing, congestion control, naming, security, and peer to peer systems. While it is relatively easy to learn how a specific network system works, it is much harder to design a good one. The Internet is a great example — one can learn most of the aspects of how the Internet protocols work in a few weeks, but that won’t help you (much) in understanding how the Internet is evolving over time. The Internet is successful for reasons that are mostly hidden, embodying specific, debatable tradeoffs in balancing robustness, interoperability, scale, evolution, flexibility, operator incentives and security. And while you might think that we don’t need any new protocols beyond the Internet, industry is developing new protocols all the time, often quite poorly. As a recent example, one need look no farther than 802.11 (WiFi) — when first introduced, it had fundamental flaws in security, resource allocation, scalability and management. Added to the fact that the Internet itself is poorly designed for many of these same issues, the need for a better understanding of how to design network systems has never been greater.
Project and Problem Sets
The best way to learn how to design protocols is by practice, and so a key piece of this course is a set of programming assignments called Fishnet, involving building seemingly simple (but in fact, quite difficult to implement) protocols on a simulated ad hoc wireless network. If you have access to a few smart phones, it will be straightforward to port the system to that environment, but we aren’t assuming that for this class. We will provide more details about the project and due dates during the first class. The project is designed to be done individually.
There will also be two problem sets handed out during the quarter.
In our experience, students often learn more from each other than they do from the instructor. Thus, we encourage you to collaborate with your classmates, in all aspects of the course, with only one exception outlined below. The grading in the class is emphatically not curved; we would like nothing better than for all of you to get a 4.0.
To draw a very clear line, you may use any idea from any other person or group in the class or out, provided you clearly state what you have borrowed and from whom. If you do not provide a citation — that is, you turn other people’s work in as your own — that’s cheating. Anything else is fair game. Of course, we’ll be grading you on the ideas you’ve added, but you should always borrow as much as you can as a starting point — there’s no point in reinventing the wheel.
The one exception is that there will be an open book, take home final; the final is to be done individually without consultation with anyone else.
The reading list is a mixture of textbook material and research papers. The textbook material is designed to help you understand the basics of how network systems work today. The research papers have two roles: some of the papers are historical, to help expose you to the underlying motivation behind the network systems we take for granted. The second is to expose you to some of the questions at the state of the art in building network systems and to help identify the limits of the research community’s knowledge — what are the open research problems in networking.
It is a requirement that you do the reading before class, as we will take the research papers as a starting point, not the end point of the class discussion. For each week other than the first, we will post a set of questions to the discussion board, linked off the course web page, based on the reading. You are required to add a unique comment to the discussion of one of the questions before Monday, 5pm, on the day that reading was assigned. (This is to give time for everyone to read the blog entries before class.) Note that the earlier you post, the easier it is to be unique. Please keep blog entries short: they can be anything that provides insight into the question being asked, e.g., if the question is about one of the research papers a blog entry could be: the broader context for the work, a question about some aspect of the paper, an answer to someone else's question, a methodological flaw, a pointer to related work not described by the paper, etc. We will automatically grant one mulligan during the quarter, if you neglect to post.
The take home final will be handed out in the last class of the quarter (Dec 1), and will be due by email one week later (Dec 8 at 9:30pm). The exam will be designed to take no more than two hours to answer.
Blogs: 15%; Homework: 10%; Project: 40%; Final: 35%.
|9/29: Tom Anderson||Introduction and Physical Layer|
(pptx) (pdf) (ink)
|10/6: Tom Anderson||Medium access and Local Area Networks|
|10/13: Ratul Mahajan||Internetworking 1|
(pptx) (pdf) (ink)
|10/20: Ratul Mahajan||Internetworking 2|
|10/27: Tom Anderson||Transport 1|
(pptx) (pdf) (ink)
|11/3: Tom Anderson||Transport 2 and QoS|
(pptx) (pdf) (ink)
|11/10: Ratul Mahajan||Finding machines and content|
|11/17: Ratul Mahajan|| Building large-scale services|
|11/24: Tom Anderson||Network Security|
|12/1: Ratul Mahajan||Evolution and Future Directions|