1 / 33

CPS-356- Computer Networks

This course provides a comprehensive overview of computer networks, covering the underlying concepts and protocols. Gain a basic understanding of the Internet and hands-on experience with writing protocols.

donalda
Download Presentation

CPS-356- Computer Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CPS-356- Computer Networks Theo Benson (tbenson) https://www.cs.duke.edu/courses/spring15/compsci356/ Based partly on lecture notes by Rodrigo Fonseca, David Mazières, Phil Levis, John Jannotti, Peterson & Davie

  2. Cast • Instructor: Theo Benson (tbenson) • HTAs: BoyangXu (boyangxu) • UTA: Ang Li (li.ang) • How to reach us: Piazza https://piazza.com/duke/spring2015/cps35601sp15/home

  3. About Me

  4. Overview • Goal: learn concepts underlying networks • How do networks work? What can one do with them? • Gain a basic understanding of the Internet • Gain experience writing protocols • Tools to understand new protocols and applications “From 2 communicating machines to the entire Internet”

  5. Prerequisites • CPS-310 (Operating Systems). • We assume basic OS concepts (kernel/user, threads/processes, I/O, scheduling) • Low-level programming or be willing to learn quickly • threads, locking, explicit memory management, … • We allow C/C++ • You will be bit twiddling and byte packing…

  6. Administrivia • All assignments will be on the course page https://www.cs.duke.edu/courses/spring15/compsci356/ • Text: Peterson and Davie, Computer Networks - A Systems Approach, 4thor 5th Editions • You are responsible to check the web page! • All announcements will be there • Textbook chapters corresponding to lectures: read them before class • Handouts, due dates, programming resources, etc… • Subject to change (reload before checking assignments)

  7. Grading • “Written” component • Exams: Midterm (15%) and Final (25..%) • Homework: written assignments (10%) • Short answer and design questions • 4 Programming Projects (50%) • For group assignments, both students get the same grade for the assignment

  8. 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: SnowCast (basics on socket programming) Lab 2: IP Project Lab 3: reliable transport Lab 4: congestion control (builds on Lab 3) 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

  9. 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 Consult with course-website for full cheating policy Any student caught cheating will be given a failing grade in the course

  10. Late policy All homeworks are due at the beginning of the class on the due dates All labs/assignments are due at midnight EST 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.

  11. Extra-Credit Extra-Credit is built into the course through several avenues: Several assignments have an extra-credit component There is an additional 5th assignment that can be done for extra credit.

  12. The first big question we study: How to design a global computer network

  13. 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

  14. Features of computer networks • Generality • Carry many different types of data • Support an unlimited range of applications • Can you name several Internet applications?

  15. Why are computer networks cooler? • Many nodes are general-purpose computers • Very easy to innovate and develop new uses of the network: you can program the nodes • Contrast with the ossified Telephone network: • Can’t program most phones • Intelligence in the network, control by parties vested in the status quo, …

  16. Growth of the Internet Source: Miguel Angel Todaro

  17. Source: Cisco

  18. Source: Facebook

  19. 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.

  20. 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

  21. Why should you take this course? • Impact • Social, economic, political, educational, … • Why would SOPA never work? • What does it mean to run out of IP addresses? • How could Egypt shut down the Internet internally? • How could Pakistan shut down Youtubeglobally? • Continuously changing and evolving • Incredible complexity • Any fact you learn will be inevitably out of date • Learn general underlying principles • Learn to program the network • Networks are cool!

  22. The networking field is broad and confusing…

  23. 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

  24. A Heap of Header Formats? Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt

  25. TCP/IP Header Formats in Lego Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt

  26. 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

  27. 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

  28. 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

  29. Teaching/Learning about networking can be hard

  30. I hope to make it easy for you • Emphasis on fundamentals, concepts, and design skills • You’llpay 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?

  31. Roadmap • Assignments: learn by implementing • Warm up: Snowcast, a networked music server • Get a feel for how applications use the network • Build knowledge from the ground up • Link individual nodes • Local networks with multiple nodes • IP: Connect hosts across several networks • Transport: Connect processes on different hosts • Applications • A few cross-cutting issues • Security, multimedia, overlay networks, P2P…

  32. Welcome back! Hope you had a great holiday break!

  33. Coming Up • Assignment 1 will be released on Monday. • Next class: how do applications use the network? • Introduction to programming with Sockets • Peterson & Davie 1.4 • Beej’s Guide to Network Programming (link on the course website) • Then… • We start moving up the network stack, starting from how two computers can talk to each other.

More Related