390 likes | 591 Views
CS244 Spring 2014 Lecture 1 Introduction. Sachin Katti. With thanks to Nick Mckeown, Jennifer Rexford. The Internet: An Exciting Time. One of the most influential inventions A research experiment that escaped from the lab … to be a (the?) global communications infrastructure
E N D
CS244 Spring 2014 Lecture 1 Introduction Sachin Katti With thanks to Nick Mckeown, Jennifer Rexford
The Internet: An Exciting Time One of the most influential inventions • A research experiment that escaped from the lab • … to be a (the?) global communications infrastructure Ever wider reach • Today: 2 billion users • Tomorrow: more users, computers, sensors, content Constant innovation • Apps: Web, P2P, social networks, virtual worlds • Links: optics, WiFi, cellular, ...
Transforming Everything The ways we do business • E-commerce, advertising, cloud computing, ... The way we have relationships • E-mail, IM, Facebook friends, virtual worlds How we think about law • Interstate commerce? National boundaries? Wikileaks? The way we govern • E-voting and E-government • Censorship and wiretapping The way we fight • Cyber-attacks, including nation-state attacks
A Plethora of Protocol Acronyms? WAP SNMP IPX SIP PPP MAC FTP LLDP UDP HIP ICMP OSPF RTP IMAP IGMP BGP HTTP ECN PIM RED ARP IP TCP RIP MPLS RTCP SMTP BFD CIDR RTSP NNTP TLS NAT SACK STUN SSH DNS DHCP VTP VLAN LDP POP LISP TFTP
A Big Bunch of Boxes? Load balancer Label Switched Router Switch Router Scrubber Repeater Gateway Bridge Intrusion Detection System Route Reflector Deep Packet Inspection DHCP server Packet shaper Firewall NAT Hub Packet sniffer DNS server WAN accelerator Base station Proxy
Application Domain for Theory? • Algorithms and data structures • Control theory • Queuing theory • Optimization theory • Game theory and mechanism design • Formal methods • Information theory • Cryptography • Programming languages • Graph theory
Application Domain for Systems? Distributed systems Operating systems Computer architecture Software engineering …
What Peers in Other Fields Say Is networking a problem domain or a scholarly discipline? “What are the top ten classic problems in networking? I would like to solve one of them and submit a paper to SIGCOMM.” After hearing that we don't have such a list: "Then how do you consider networking a discipline?” “So, these networking research people today aren't doing theory, and yet they aren't the people who brought us the Internet. What exactly are they doing?” “Networking papers are strange. They have a lot of text.”
“There is a tendency in our field to believe that everything we currently use is a paragon of engineering, rather than a snapshot of our understanding at the time. We build great myths of spin about how what we have done is the only way to do it to the point that our universities now teach the flaws to students (and professors and textbook authors) who don't know better.” -- John Day (Internet pioneer)
So, Why is Networking Cool? Relevant • Can measure/build things • Can impact the real world Interdisciplinary • Well-motivated problems + rigorous solution techniques • Interplay with policy and economics Widely-read papers • Many of the most cited papers in CS are in networking • Congestion control, distributed hash tables, resource reservation, self-similar traffic, multimedia protocols,… • Three of top-ten CS authors (Shenker, Jacobson, Floyd)
So, Why is Networking Cool? Young, relatively immature field • Tremendous intellectual progress is still needed • You can help decide what networking really is Defining the problem is a big part of the challenge • Recognizing a need, formulating a well-defined problem • … is at least as important as solving the problem. Lots of platforms for building your ideas • Programmability: Click, OpenFlow/NOX, NetFPGA • Routing software: Quagga, XORP, and Bird • Testbeds: Emulab, PlanetLab, Orbit, GENI, … • Measurements: RouteViews, traceroute, Internet2, …
Class Content • Four main sub-topics • Architecture • Why was the Internet designed the way it is and what are the implications? • Design & management • The underlying plumbing and research issues • Specialized networks (wireless & datacenters) • Special network architectures to accommodate link technology constraints or workload constraints • Applications (P2P, CDN, OTT) • Things built on top of the network
Architectural questions tended to dominate CS networking research
Decomposition of Function Definition and placement of function • What to do, and where to do it The “division of labor” • Between the host, network, and management systems • Across multiple concurrent protocols and mechanisms
UDP TCP Today’s Divisions of Labor network Applications Data Link Physical End host and the network • Packet switching • Best-effort delivery • Fixed end-points withIP addresses Protocol layers • IP as the center of the universe • IP above the link layer • IP below transport and application
Today’s Divisions of Labor Network elements • Data plane: packets • Control plane: events • Management: policies Administrative domains • Autonomous Systems • Destination IP prefixes • Policy-based path-vector routing
Between Hosts and the Network data centers . . . . servers Internet clients Networked services hosted in data centers • Web sites, social networks, video streaming, online gaming, virtual worlds, ... • Replicated on servers in multiple data centers • Churn from mobile users, migrating VMs, failures, … Time to rethink • Naming and addressing • Server and networkload balancing • Energy usage • End-host network stackand socket API
Dumb management, smart network Network elements talk amongst themselves Adapting automatically Between Network and Management measure control Smart management, dumb network
Conclusion Networking is cool • Real, important problems • Opportunities for impact • Inherently interdisciplinary But the field is immature • More of a “domain” than a “discipline”
Goals • To become familiar with the field of networking research: Network architecture, protocols and systems. • To get some practice in the art of reading research papers. It’s a big field, so we will focus on just a few topics.
Basics Lecture • Each class we will discuss 1-2 papers • You must read the papers before class • Papers should be read in depth • Most of the lecture will be spent on discussion • 30% of your grade comes from critiques, and in-class participation So….read the papers, come to class, and be ready to participate
Grade Lectures and papers 30% • In-class Participation: 15% • Critiques before class: 15% Programming assignments 40% • PA #1: 10% Exploration of buffer bloat • PA #2: 10% Buffer sizing • PA #3: 20% A project that you choose. Exams 30% • Midterm: 15%(in-class, May 5) • Final: 15%(in class, June 4).
In-class participation Come prepared to discuss the main ideas We will all learn from each other Attendance is a necessary but not sufficient condition for “participation” Let’s have no laptops in class
Critiques What to submit? • Short critique for each paper before the class (by midnight the night before the lecture) • Submit online (see class webpage) Questions to answer while writing your critique: • What problem are the authors solving? • Is the problem relevant? • What is their solution? (Main idea) • How does it differ from previous work? • Are there major flaws in the work? • Will the paper matter in 10 years?
Programming Assignments Three programming assignments PA #1 • Assigned today. START NOW!!! • Due 4/14 at 5pm PA #2 • Assigned 4/14 • Due 4/28 at 5pm PA #3 • Assigned 4/28 • Proposal due 5/5 at 5pm. • Intermediate report due 5/19 at 5pm. • Final Report due 6/2 at 5pm.
Logistics Who will lead the discussions • Sachin Katti (skatti@stanford.edu) • Office Hours: Wed 5:30-6:30pm, Gates 342 TAs • Kanthi Nagaraj (kqnthicn@stanford.edu) • Office Hours: Mondays 4:30 – 5:30 in Gates B24A • Milad Sharif (milad@stanford.edu) • Office Hours: Thursdays 2:00-3:00PM in Gates B24A. Course Admin • Chris Hartung (hartung@stanford.edu)
Contact Whenever possible: Piazzza • Quickest response • Someone else probably has same question • Please don’t send to class list If private: cs244-spr1314-staff@lists.stanford.edu All extension requests must go to Sachin
Hints on reading a paperKeshav: “How to Read a paper”, CCR 2007 Three stage approach • Read quickly in 5-10minutes • Read with greater care; ignore proofs • Deconstruct paper; question all assumptions
Stage 1: 5-10 minute read Read title, abstract, introduction, section headings, conclusion, reference list. Look for “5 C’s” • Category: What type of paper is it? • Context: Where does it fit in? • Correctness: Do assumptions make sense? • Contributions: What are the main ones? • Clarity: Is it well-written?
Stage 2: Read with care • Spend an hour re-reading paper in detail • Try to understand the “story” • Summarize the main thrust • Identify main supporting evidence
Stage 3: Deconstruct the paper • This can take one or more hours • Understand every proof • Question every assumption • Identify missing references • Why was the paper written this way? • What was the author trying to say? • How else could the paper have been written?
First papers: For Wednesday Read thoroughly, submit critiques • The Design Philosophy of the DARPA Internet Protocols - Clark, 1988 Optional (fun) • A Brief History of the Internet - Leiner et al., 2003 • On Distributed Communication Networks – Paul Baran, 1963