DOC PREVIEW
NU EECS 340 - CS 340 Syllabus

This preview shows page 1-2 out of 7 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 7 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 7 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 7 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CS 340 Introduction to Networking Dinda, Winter 2002 Page 1 of 7 Introduction to Networking Syllabus Web Page http://www.cs.northwestern.edu/~pdinda/netclass-w02 Instructor Peter A. Dinda 1890 Maple Avenue, Room 326 847-467-7859 [email protected] Office hours: 2-4pm on Tuesdays or by appointment Teaching assistants Jason Skicewicz 1890 Maple Avenue, Room 332 847-491-7150 [email protected] Office hours: 3-5pm on Wednesdays and 11-12am on Thursdays or by appointment Kevin Livingston 1890 Maple Avenue, Room 250 847-467-1006 [email protected] Office hours: 11-12am on Tuesdays and 3-5pm on Thursdays or by appointment Location and Time 1890 Maple Avenue, CS Department classroom, MWF 2-3 pm Prerequisites Required CS 311 or equivalent data structures course Required Knowledge of C and C++ Highly recommended CS 343 or equivalent operating systems course Highly recommended Unix development experience (gcc, gdb, make, etc) Recommended Unix systems programming experience Textbook and other readings James Kurose and Keith Ross, Computer Networking: A Top-Down Approach Featuring the Internet, Addison Wesley, 2000 (ISBN 0-201-47711-4) (Textbook) • Buy the hardcover first edition, not the softcover “preliminary edition.” The book includes access to the on-line version atCS 340 Introduction to Networking Dinda, Winter 2002 Page 2 of 7 http://www.awl.com/kurose-ross. Alternatively, you can buy on-line access only for $25. Richard Stevens, TCP/IP Illustrated, Volume I: The Protocols, Addison Wesley, 1994, (ISBN: 0-201-63346-9) (Required) • Very detailed look at the protocols, including tcpdump from the wire. Essential to doing the projects well. Internet Requests For Comments (RFCs) (Useful) • Official specifications for the Internet which are available from http://www.ietf.org/rfc.html Richard Stevens, Unix Network Programming (volumes 1 and 2), Prentice Hall, 1997, 1998 (ISBN 0-134-90012-X and 0-130-81081-9) (Useful) • Describes the nitty-gritty details of socket programming and IPC on Unix Richard Stevens, Advanced Programming in the Unix Environment, Addison-Wesley, 1992 (ISBN 0-201-56317-7) (Useful) • Describes how to think like a Unix systems programmer Bjarne Stroustrup, The C++ Programming Language, Special Edition, 2000, Addison-Wesley, (ISBN 0201700735) (Useful) • Definitive reference to C++ Objectives, framework, philosophy, and caveats This course introduces the underlying concepts behind networking using the Internet and its protocols as examples. There are two goals: (1) to give you an understanding of how networks, especially the Internet, work, and (2) to teach you network programming. We will cover the first five chapters of Kurose in detail, working our way down the network stack from the application layer to the data-link layer. Concurrent with the lectures, you (in groups of two) will be building a functional TCP/IP stack and a small web server that will run on it. What you build will be “real” – your code will interoperate with other TCP/IP stacks and you’ll be able to talk to your web server using any browser on any TCP/IP stack. This is a learn-by-doing kind of class. You will get your hands dirty by examining parts of our Internet infrastructure and building other parts. It will be a lot of work, but it will also be a lot of fun, provided you enjoy this sort of thing. We will assume that you do and that you will make a good faith effort. We don’t want to have to spend too much time measuring your performance. If you care about what we’re teaching, you’ll do a better job of that yourself, and if you don’t care, then you should take some course that you do care about. The goal of the course is to enable you to do the following:CS 340 Introduction to Networking Dinda, Winter 2002 Page 3 of 7 • Understand the Internet protocols • Build implementations of the Internet protocols • Generalize this knowledge to other networking protocols. • Be a competent network and systems programmer. • Think like a networking practitioner • Read and judge articles on networking in trade magazines • Begin to read and judge research and technical articles on networking • Create simplicity and reliability out of complexity and unreliability • Structure and design software systems to achieve that simplicity and reliability Project Over the course of the quarter, you will implement a user-level TCP/IP stack and a small web server that runs on top of it. Your code will not implement the full functionality of HTTP or TCP/IP, but it will implement enough of it to be able to interoperate with other, complete implementations. In keeping with the top-down approach of Kurose and Ross, you will build this from the web server down instead of from the network card up. I will initially provide you with the whole stack (as object code) and you will implement the web server. Next, I will peal away the layers of the stack, leaving you to implement your own versions. Each layer will have well-defined interfaces that you will fill out. Here are the layers, as well as each one’s percentage of the project grade. Note that the layers in italics will be supplied to you and are included only for completeness. 20 % Web server (a) Sockets 50 % TCP (b) UDP 30 % IP (c) ARP Ethernet The implementation language will be C++ and the platform will be Red Hat Linux 6.2. We hope that you will use g++ 2.95 or later as your compiler, make as your build tool, and CVS as your version control system. You may also find that the C++ standard template library will make your life easier. We have established a set of machines on a private network for use. You are welcome to use other machines, but we must be able to compile and run your code on our machines. Note that the Ethernet layer of the code requires that your kernel supports the Berkeley packet filter interface and that you can run your Ethernet card in promiscuous mode to extract and inject raw packets. To evaluate your project, we will spot-check your source code, compile it, and run randomized testcases on it. When appropriate, we will supply you with examples of such testcases. We will also interview all members of each group.CS 340 Introduction to Networking Dinda, Winter 2002 Page 4 of 7 Homework Problem sets will be periodically assigned to help you


View Full Document

NU EECS 340 - CS 340 Syllabus

Download CS 340 Syllabus
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view CS 340 Syllabus and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view CS 340 Syllabus 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?