350 likes | 662 Views
CPS 356: Introduction to Computer Networks Lecture 1: Introduction and course overview. Xiaowei Yang xwy@cs.duke.edu. Welcome back!. Hope you had a great holiday break!. Today. Course introduction Course forecast What we will be covering. Who should be taking this class?.
E N D
CPS 356: Introduction to Computer NetworksLecture 1: Introduction and course overview Xiaowei Yang xwy@cs.duke.edu
Welcome back! Hope you had a great holiday break!
Today • Course introduction • Course forecast • What we will be covering
Who should be taking this class? • Curious about how things work • A lot of internals of networking • Loves to build things • Programming labs
Why? • You use it (the Internet) every day. • Youtube, DNS, Skype, Facebook, Gmail • Multi-billion dollar companies built on it • Google, Facebook • Chances you’ll develop some network applications in the future are high • Changing the way people live • Network development in developing countries • Massive online learning, Internet clinics, the fisherman story • Fun applications • Online games, social networking, video streaming, … • The next one may be yours!
Course goals • Goals: principles that underlie the design of computer networks and network protocols • Division of labor: smart vs dumb networks • Soft state vs hard state • Packet switching vs circuit switching • Layered vs integrated designs • Structured overlay vs unstructured overlay
Why design principles are important • System building does not have just one answer • Help you acquire a good taste • Myspace vs Facebook • Google vs all search engines before it
Prerequisites • Good knowledge of C/C++ • Labs are done in C/C++ • Some knowledge of socket programming from CPS 310
Course staff • Instructor: Xiaowei Yang • http://www.cs.duke.edu/~xwy/ • Main research interests: network architectures and protocols, network security, distributed systems • TA: Hongze Zhao • https://www.cs.duke.edu/~hongze/
Recommended Textbook • Larry L. Peterson, Bruce S. Davie, Computer Networks: A Systems Approach, 5th Edition, Morgan Kaufmann • Available from bookstore, amazon • A view as a system builder, not a user • 4th is okay
Website: important • http://www.cs.duke.edu/courses/spring14/compsci356/ • Syllabus • Book chapters related to lectures • Pointers to external papers for topics • Read before class for discussion • Assignments and due dates • Lectures • All subject to change. Reload before checking
Discussion forum • Piazza? • What do you suggest?
Contact Us: We are here to help you • Office hours • TA: Fridays 10am-noon @ North 06 • Instructor: Fridays 1:30-3:30pm or by appointment • All course related topics: compsci356-staff@cs.duke.edu • Grading, questions, homework, labs, exams • Within a day • Email for meetings outside regular office hours • Really urgent • State so in your email • IM: xiaowei@gmail.com (voice mail does not work), zhaohongze@gmail.com • Unfortunately, no recitation section was scheduled • Do come to office hours • Do communicate with us via email
Your work: important Assigned readings in the Syllabus Homework Labs (substantial, but worth your time). Most of them are ~500 lines of code, 20 hours of coding/debugging Lab 1: simple router Lab 2: dynamic routing Lab 3: reliable transport Lab 4: congestion control Labs contain pre-lab questions that help you understand the basic concepts Labs are distributed with skeleton code and most of them have reference implementations for testing Turn-ins include answers to pre-lab questions, source code, lab reports if we ask for them
Collaboration policy Discussion is encouraged Individual assignments must be completed independently Group assignments only need to turn in one copy of the files with group members noted in the submission
Late policy All assignments are due at the beginning of the class on the due dates I may grant extensions if you show up in class The deadline for any assignment can be extended with a 10% penalty per day. No deadline can be extended by more than two days. Assignments will NOT be accepted 48 hours after the due date. Tight schedule Extension will delay next assignment If you are ill: contact the instructor and provide a medical note.
Grading policy • Class participation and pop quizzes: 20% • Labs: 50% • In a group assignment, both students get the same grade for the assignment • Exams: 30%
Course outline • The fundamentals • Reliable/secure communications over unreliable/insecure channels • Finding paths through the network • Resource sharing • Providing common services to applications • Case studies on how to use the network • Content distribution, DNS, p2p, social networks, search engines • Socket programming
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 Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt
A Heap of Header Formats? Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt
TCP/IP Header Formats in Lego Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt
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 Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt
A Ton of Tools? arpwatch tcpdump syslog wget nslookup traceroute trat snort nmap whois ipconfig rancid ntop bro net-snmp dig ping iperf wireshark NDT dummynet mrtg Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt
What Do Other People Say? • “You networking people are very curious. You really love your artifacts.” • “In my college networking class I fell asleep at the start of the semester when the IP header was on the screen, and woke up at the end of the semester with the TCP header on the screen.” • “Networking is all details and no principles.” Is networking “just the (arti)facts”? Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt
I hope to make it easy for you • Emphasis on fundamentals, concepts, and design skills • Headers will be provided in all your quizzes • You’ll pay attention to details in labs • Treat everything we learn as design examples • Why they are designed that way? • Is it a success or failure? • Will you do it the same way?
The first big question we study: How to design a global computer network
What’s a network? Wikipedia: A wide variety of systems of interconnectedcomponents are called networks. Examples of networks: what components are connected? The Internet Telephone networks TV networks Power networks Sewage networks Water networks …. Why do we build networks? To distribute/transfer something
Features of computer networks • Generality • Carry many different types of data • Support an unlimited range of applications • Can you name several Internet applications?
What’s the Internet? The Internetis a large-scale general-purpose computer network. Run more than one application The Internet transfers information between computers. The Internet is a network of networks.
What the Internet looks like email WWW phone... SMTP HTTP RTP... TCP UDP… IP ethernet PPP… CSMA async sonet... copper fiber radio... Host Host Wireless Host Host Host Ethernet Framerelay Ethernet Host Host Host IP/SONET ATM Host 802.X Ethernet Host Host Host Host Host Host Ethernet, CSMA/CD Bridges, Switches, Spanning Tree Bandwidth x Delay TCP Performance IP Blocks, CIDR, Subnets Longest Prefix Match, Fragmentation, MTU RIP, OSFP Distance Vector Link-State Modulation Coding FDMA, TDMA Tier 3 Tier 2 BGP Tier 2 The Internet Tier 1 Tier 1 Tier 2
Summary • Course introduction • Administrivia • Course outline • Next • Network architectures: different styles of building networks