Presentation is loading. Please wait.

Presentation is loading. Please wait.

CPS-356- Computer Networks Theo Benson Based partly on lecture notes by Rodrigo Fonseca, David Mazières, Phil Levis, John Jannotti, Peterson & Davie.

Similar presentations


Presentation on theme: "CPS-356- Computer Networks Theo Benson Based partly on lecture notes by Rodrigo Fonseca, David Mazières, Phil Levis, John Jannotti, Peterson & Davie."— Presentation transcript:

1 CPS-356- Computer Networks Theo Benson Based partly on lecture notes by Rodrigo Fonseca, David Mazières, Phil Levis, John Jannotti, Peterson & Davie

2 Welcome back! Hope you had a great holiday break!

3 CPS 365…. Are you in the right class?

4 Outline Course Policy Introduction to Networks

5 Cast Instructor: Professor Theo Benson – tbenson@cs.duke.edu tbenson@cs.duke.edu – Office Hours: Tue/Thurs: 4:30-5:30 (or by appointment) – LSRC D342 HTAs: Bryan Prosser – Bryan.prosser@duke.edu Bryan.prosser@duke.edu – Office Hours: Wed 4:-5pm – North306 How to reach us: Piazza https://piazza.com/duke/fall2016/compsci356

6 About Me

7 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 (Not hardware) Project-centric class! Lots of hands on experience – Tools to understand new protocols and applications “From 2 communicating machines to the entire Internet”

8 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…

9 Online Resources Course website: – http://www.cs.duke.edu/courses/fall16/compsci356/ http://www.cs.duke.edu/courses/fall16/compsci356/ We have a Piazza!! – https://piazza.com/class/is7saargfky266 https://piazza.com/class/is7saargfky266 – Sign up!!! – Please use #hashtags (e.g., #hw1, #lab1)

10 Administrivia All assignments will be on the course page http://www.cs.duke.edu/courses/fall16/compsci356 Text: Computer Networks - A Systems Approach, Peterson and Davie, 4 th or 5 th 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)

11 Grading “Written” component – Exams: Midterm (15%) and Final (22.5%) – Homework: written assignments (10%) Short answer and design questions 5 Programming Projects (45%) – For group assignments, both students get the same grade for the assignment Class participation; Pop-Quizes and altruism points (7.5%) – Altruism points: answer questions on Piazza (correctly) Re-grades – You have a week from the dates grades are posted to request a regrade

12 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 Labs are distributed with skeleton code and most of them have reference implementations for testing

13 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 – Labs will be completed in groups of two Consult with course-website for full cheating policy – Any student caught cheating will be given a failing grade in the course

14

15 Groups and Projects Group Formation – Groups must be formed within two days of project posted Email the TA and Myself the group – You may switch groups between projects But not during a project!! Trying to find a partner? – Post a message on Piazza

16 Late policy All homeworks are due at the beginning of the class on the due dates All labs/assignments are due at 11:55pm 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.

17 Questions?

18 Outline Course Policy Introduction to Networks

19 The networking field is broad and confusing…

20 A Plethora of Protocol Acronyms? BGP ARP HTTP DNS PPP OSPF DHCP TCP UDP SMTP FTP SSH MAC IP RIP NAT CIDR VLAN VTP NNTP POP IMAP RED ECN SACK SNMP TFTP TLS WAP SIP IPX STUN RTP RTSP RTCP PIM IGMP ICMP MPLS LDP HIP LISP LLDP BFD Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt

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

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

23 A Big Bunch of Boxes? Router Switch Firewall NAT Load balancer DHCP server DNS server Bridge Hub Repeater Base station Proxy WAN accelerator Gateway Intrusion Detection System Packet shaper Route Reflector Label Switched Router Scrubber Packet sniffer Deep Packet Inspection Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt

24 A Ton of Tools? traceroute nslookup ping ipconfig rancid whois tcpdump wireshark NDT iperf dummynet syslog trat snort bro arpwatch mrtg nmap ntop dig wget net-snmp Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt

25 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

26 Teaching/Learning about networking can be hard

27 I hope to make it easy for you Emphasis on fundamentals, concepts, and design skills – 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?

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

29 What’s a network? Wikipedia: A wide variety of systems of interconnected components are called networks. Examples of networks: what components are connected? – Telephone networks, TV networks – Power networks, Sewage networks, Water networks – Postal network, highway network – The Internet, …. Why do we build networks? – To distribute/transfer something What is a network? – Nodes: general-purpose computers (most nodes) – Links: wires, fiber optics, EM spectrum, composite…

30 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, …

31 What’s the Internet? The Internet is 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.

32 Growth of the Internet Source: Miguel Angel Todaro

33 Source: Cisco

34 Source: Facebook

35 What the Internet looks like email WWW phone... SMTP HTTP RTP... TCP UDP… IP ethernet PPP… CSMA async sonet... copper fiber radio... Ethernet ATM Framerelay IP/SONET Ethernet 802.X Wireless Host Tier 1 Tier 2 Tier 3 The Internet BGP RIP, OSFP Distance Vector Link-State Ethernet, CSMA/CD Bridges, Switches, Spanning Tree Bandwidth x Delay TCP Performance Modulation Coding FDMA, TDMA IP Blocks, CIDR, Subnets Longest Prefix Match, Fragmentation, MTU

36 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 Youtube globally? 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!

37 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…

38 Coming Up Lab 1 will be released on Thursday. 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.

39 Questions?


Download ppt "CPS-356- Computer Networks Theo Benson Based partly on lecture notes by Rodrigo Fonseca, David Mazières, Phil Levis, John Jannotti, Peterson & Davie."

Similar presentations


Ads by Google