COS 461: Computer NetworksGoals for Today’s ClassWhat You Learn in This CourseStructure of the Course (1st Half)Structure of the Course (2nd Half)Learning the Material: PeopleContacting UsLearning the Material: BooksProgramming AssignmentsFacilities for ProgrammingGraduate Students: Two ChoicesGrading and SchedulePolicies: Write Your Own CodeOkay, so let’s get started… with a crash course in data networkingKey Concepts in NetworkingProtocols: Calendar ServiceOkay, So This is Getting TediousWell, Not Quite EnoughSpecifying the DetailsExample: HyperText Transfer ProtocolExample: IP PacketIP: Best-Effort Packet DeliveryExample: Transmission Control ProtocolProtocol StandardizationLayering: A Modular ApproachIP Suite: End Hosts vs. RoutersThe Internet Protocol SuiteLayer EncapsulationWhat if the Data Doesn’t Fit?Protocol DemultiplexingDemultiplexing: Port NumbersIs Layering Harmful?Resource Allocation: QueuesWhat if the Data gets Dropped?What if the Data is Out of Order?Resource Allocation: Congestion ControlTransmission Control ProtocolNaming: Domain Name System (DNS)Domain Name SystemDNS Resolver and Local DNS ServerConclusions1COS 461: Computer NetworksSpring 2007 (MW 1:30-2:50 in Friend 004)Jennifer RexfordTeaching Assistant: Ioannis Avramopoulos http://www.cs.princeton.edu/courses/archive/spring07/cos461/2Goals for Today’s Class•COS 461 overview–Goals of the course–Structure of the course–Learning the material–Programming assignments–Course grading–Academic policies•Key concepts in data networking–Protocols–Layering–Resource allocation –Naming3What You Learn in This Course•Skill: network programming–Socket programming–Designing and implementing protocols•Knowledge: how the Internet works–IP protocol suite–Internet architecture–Applications (Web, e-mail, P2P, VoIP, …)•Insight: key concepts in networking–Protocols–Layering–Resource allocation–Naming4Structure of the Course (1st Half)•Start at the top–Sockets: how applications view the Internet–Protocols: essential elements of a protocol•Then study the “narrow waist” of IP–IP best-effort packet-delivery service–IP addressing and packet forwarding•And how to build on top of the narrow waist–Transport protocols (TCP, UDP)–Domain Name System (DNS)–Glue (ARP, DHCP, ICMP)–End-system security and privacy (NAT, firewalls)•Looking underneath IP–Link technologies (Ethernet, wireless, …)5Structure of the Course (2nd Half)•And how to get the traffic from here to there–Internet routing architecture (the “inter” in Internet)–Intradomain and interdomain routing protocols•Building applications–Web and content-distribution networks–E-mail–Peer-to-peer file sharing–Multimedia streaming and voice-over-IP•Other approaching to building networks–Circuit switching (e.g., ATM, MPLS, …)–More on wireless networks, multicast, …6Learning the Material: People•Lecture (Jennifer Rexford)–When: MW 1:30-2:50 in Friend 004–Slides available online at course Web site–Office hours to be announced, and by appointment•Teaching Assistant (Ioannis Avramopoulos)–Office hours to be announced, and by appointment•Lab TAs in the Friend Center 016/017•Mailing list (if you’re enrolled, you’re on the list)–E-mail [email protected]–Sign up: https://lists.cs.princeton.edu/mailman/listinfo/cos461–Read often. Good place to ask (and answer!) questions7Contacting Us•Jennifer Rexford–Room 306 in Computer Science Building–E-mail at [email protected]–Phone: e-mail is better•Ioannis Avramopoulos–Room 212 In Computer Science Building–E-mail: [email protected]–Phone: 609-258-17548Learning the Material: Books•Required textbook–Computer Networks: A Systems Approach (3rd edition), by Peterson and Davie–Mostly covers the material in the first half of the class•Books on reserve–Networking text booksComputer Networking: A Top-Down Approach Featuring the Internet (3rd edition), by Kurose and Ross Computer Networks (4th edition), by Tanenbaum–Network programming referencesTCP/IP Illustrated, Volume 1: The Protocols, by StevensUnix Network Programming, Volume 1: The Sockets Networking API (3rd Edition), by Stevens, Fenner, & Rudolf•Online resources–E.g. on socket programming9Programming Assignments•Stanford Virtual Network System–Constructs virtual network topologies that integrate directly into physical networks–Traffic forwarded to your program, running in user space–http://yuba.stanford.edu/vns/•Four assignments (with target due dates)–Introduction to sockets (Mon Feb 19)–HTTP proxy (Fri Mar 9)–IP router (Mon Apr 23)–Reliable transport protocol (Tue May 15)10Facilities for Programming•Computer cluster in Friend Center 010–Friend Center 010 computers–SSH to portal.cs.princeton.edu, and then to FC 010–Machines: labpc-XX.cs.princeton.edu for XX of 01 to 30–Why: common environment, and access to lab TAs•Other option: on your own PC (not recommended)–Running GNU tools on Linux, or–Running GNU tools on Windows, or–Running a standard C development environment•Suggestion: test this week–Logging in to the FC 010 cluster–Writing and running “Hello World” in C11Graduate Students: Two Choices•Pick one of two options–Do the four programming assignments–Or, do the first two assignments, plus a research project•Research projects–Networking-related research problem–Must have a programming component–Write-up of project due on Dean’s Date–Talk to me about project ideas before spring break12Grading and Schedule•Assignments (15% each)–Assignment 1 in week 3–Assignment 2 in week 5 –Assignment 3 late in 2nd half of the semester–Assignment 4 on Dean’s Date•Two exams (30% total)–Midterm exam in week six (10%)–Final exam during exam period (20%)•Class participation (10%)–In lecture–On the listserv13Policies: Write Your Own CodeProgramming in an individual creative process much like composition. You must reach your own understanding of the problem and discover a path to its solution. During this time, discussions with friends are encouraged. However, when the time comes to write code that solves the problem, such discussions are no longer appropriate - the program must be your own work. If you have a question about how to use some feature of C, UNIX, etc., you can certainly ask your friends or the TA, but do not, under
View Full Document