Welcome to CSci5221: Foundations of Advanced Networking Prof. Zhi-Li Zhang Time: Thursday 6:30pm to 9:00pm Location: Mech 212 Spring 2015 3 credits CSci5221 Logistics 1 What is Csci5221 about? Second “Graduate-Level” Networking Course Assume a first-course “Introduction to Networking” csci5211, csci421 or equivalent We’ll learn about – Fundamental networking principles and techniques – Advanced networking mechanisms, protocols and practices • • • • foundational material: long half life deeper understanding of R& D issues in today’s Internet mix of theory and practice case studies Who is it for? primarily for graduate students who want to learn more about networking and systems undergraduate students encouraged, must have taken csci4211 others: special permission CSci5221 Logistics 2 Course Mechanisms Lectures, Readings & Homework Assignments – A series of (advanced) topics combining both theory and Practices – Fast-paced • • Me: lecture and provide some highlights to guide you understand the reading materials You: read papers and learn by yourself “Hands-on” Course Projects Project 1: Android mobile phone programming (or other mobile phones) + “back-end” support Project 2: a “research-oriented” networking project (e.g., virtual id routing/VIRO in Mininet) CSci5221 Logistics 3 Course Materials No Required Textbooks Some Recommended Textbooks (csci4211/csci5211) that will be referenced Computer Networks: A Systems Approach by Peterson and Davies, 3nd Ed, Morgan Kaufmann Edition, Addison Wesley Other Useful Textbooks: Computer Networks by A. Tanenbaum, Prentice Hall, 4th ed An Engineering Approach to Computer Networks by S. Keshav Assigned readings: 3-4 required papers Computer Networking: A Top-Down Approach by Kurose & Ross, 3rd Posted on class website (tentatively, updated as we go along) Optional papers for background, supplementary and further readings Lecture notes CSci5221 Logistics 4 Course Requirements Will be Fast-Paced ! Do assigned readings Be prepared, read and review textbook/lecture notes on Self-reading materials in textbook: read by your own and your own in advance! will not be lectured So we can spend more class time on discussion and problem solving! Attend and participate in class activities Please ask and answer questions in (and out of) class! Let’s try to make the class interactive and fun! CSci5221 Logistics 5 Course Prerequisite First-Course on Computer Networks Algorithms, Computer Architecture, OS Not necessary, but helpful Basic knowledge of probability Programming Experiences and Proficiency e.g., in C/C++ (or Java), Python, C#, etc. Required! More importantly Willing to learn and work hard Love to ask questions and solve problems CSci5221 Logistics 6 Class Information Class Website : Announcement Page http://www.cselabs.umn.edu/classes/Spring2015/csci5221/ Check the class web page periodically Google Class Mailing List for announcements, Q&As, discussions, etc. umn-csci5221-s15@googlegroup.com Class Project googlesite “wikipage” To reach us (me & Tas): csci5221-help@cs CSci5221 Logistics 7 Course Topics Review of Networking Basics (csci5211/csci4211) Network Architectural, Design, Implementation Principles Overlay and P2P Networks; CDNs; YouTube & Netflix Case Studies Router Design, IP Address Look-up & Flow Classification Packet Scheduling, Congestion Control and Active Queue Management Data Centers and Cloud Computing Overview Data Center Networking and Large Enterprise Networking Data Center Networking and TCP Internet Measurement Basics: Traffic, Performances, etc. Intra-Domain Routing and Traffic Engineering Network Failures and IP Fast Rerouting Inter-Domain Routing and BGP; BGP Policy Issues; BGP Routing Instability; Impact of BGP Failures Internet Architectures Revisited; Intro to SDN …… CSci5221 Logistics 8 Office Hours and TAs Professor Zhang’s Office Hours: By appointment TAs: Arvind Narayanan & Guobao Sun csci5221-help@cs.umn.edu Office Hours (tentatively): Guobao: Mon 4-5pm & by appointment Arvind: Tue 11:30am to 12:30pm & by appointment CSci5221 Logistics 9 Workload and Grading Workload Two homework assignments (20% -- 10% each) Two course projects (50% total, I: 30%; II: 20%) One take-home exam (25%); Class participation: 5% (for on-campus student only) Optional Bonus Points: volunteer to be scribes! Focus more on critical thinking, problem solving, “heads-on/hands-on” experiences! Read and critique research papers Understand, formulate and solve problems Two Course Projects CSci5221 Logistics 10 Policies and Guidelines No late hw/project Make-up exams: only if special occasions Incomplete: not granted, unless Please start working on your hw assignments/projects early and hand them in on time! proof of emergency, “agreement for incomplete” form Scholastic behavior: You are encouraged to study in groups, but do your written homework independently! Take-home exam: must work on it independently! Acknowledge reference/credit if receive help! University’s code of conduct enforced! CSci5221 Logistics 11 A Few Words on Course Projects Projects will be in groups! 4-5 students per group, depending on enrollment Project I: Android Mobile Phone Programming Project You’ll be learning the basics of mobile phone programming Each group: one of several suggested project ideas/topics; 10 (?) Android mobile smart phones will be provided for you; If you prefer to program for Apple iPhones or Window mobile phones, that should be fine also -- provided you have access to such phones You may create your own project ideas, subject to approval by us CSE Dept. may have several Android phones for loan Project II: “research-oriented” networking project multi-path routing/fast rerouting, etc. based on VIRO VIRO: a new routing platform we have developed for future large-scale enterprise networks Programming in Python (or Java) in Mininet CSci5221 Logistics 12 Class Registration Put the following information on a piece of paper Your Name and Student Id Your Contact Info: e.g., email, or phone Your Major and Status: e.g., CS grad, registered, … Background: Relevant courses taken: e.g., basic networking, OS, architecture, probability theory, .. General programming skills: e.g., proficiency in C, C++, C#, Java, Python, … Network and Web Programming: e.g., experiences in BSD socket, winsock, javascript, php, ajax, … Motivations and Objectives, : Why do you want to take this course? How much time do you think you’ll devote to the course (reading, homework, project …) Objective: e.g., you’ll work hard to get an A++! CSci5221 Logistics 13 Questions? CSci5221 Logistics 14