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

Slides:



Advertisements
Similar presentations
CSCI-1680 :: Computer Networks Rodrigo Fonseca (rfonseca) Based partly on lecture notes by.
Advertisements

CPS-356- Computer Networks Theo Benson (tbenson) sci356/ Based partly on lecture notes by Rodrigo Fonseca,
CSCD 433/533 Advanced Computer Networks Lecture 1 Course Overview Fall 2011.
CSIT435 Spring 2001 Final Examination Study Guide.
Data Communications I & II Project Sequence Tom Costello.
91.413: Data Communications I Fall 2007
CS 4119: Computer Networks Henning Schulzrinne Dept. of Computer Science Columbia University
CSCD 330 Network Programming Winter 2012 Lecture 1 - Course Details.
CSCI Computer Networks Rodrigo Fonseca (rfonseca) Based partly on lecture notes by David Mazières, Phil Levis,
Course Introduction CET1600C – Cisco Networking Fundamentals Professor Yousif.
CPS 356: Introduction to Computer Networks Lecture 1: Introduction and course overview Xiaowei Yang
Communications Recap Duncan Smeed. Introduction 1-2 Chapter 1: Introduction Our goal: get “feel” and terminology more depth, detail later in course.
ECE 461 Internetworking Instructor: Prof. Jörg Liebeherr University of Toronto.
CS 458 Internet Engineering Instructor: Prof. Jörg Liebeherr University of Virginia.
COMP Introduction to Programming Yi Hong May 13, 2015.
CS 381 Final Exam Study Guide Final Exam Date: Tuesday, May 12 th Time: 10:30am -12:30pm Room: SB 105 Exam aid: 8 ½ x 11 page of notes front and back.
The Networking Philosopher’s Problem
Final Review EECS 489 Computer Networks Z. Morley Mao Monday April 16, 2007.
1 ECE 156 Computer Network Architecture Professor Krish Chakrabarty Department of Electrical and Computer Engineering Fall 2006.
Fall 2004FSU CIS 5930 Internet Protocols1 Welcome to CIS 5930 Internet Protocols Time: 5:15PM-6:30PM, TTh Location: Love 301 Fall 2004, 3 credits.
CSCD 330 Network Programming Fall/Winter/Spring 2014 Lecture 1 - Course Details.
ECE453 – Introduction to Computer Networks Lecture 17 – Top – Down Approach (A Review)
1 CNT 4704 Analysis of Computer Communication Networks Cliff Zou Department of Electrical Engineering and Computer Science University of Central Florida.
Computer Science, FSU1 CNT5505 DATA/COMUTER COMMUNICATIONS FALL 2008 Time: 3:35AM-4:50AM, MW Location: Love 103 Fall 2008, 3 credits.
CSCD 330 Network Programming Winter 2015 Lecture 1 - Course Details.
1 CDA 4527 Computer Communication Networking (not “analysis”) Prof. Cliff Zou School of Electrical Engineering and Computer Science University of Central.
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.
Computer Science, FSU1 CNT5505 DATA/COMUTER COMMUNICATIONS Fall 2010.
1 CNT 4704 Analysis of Computer Communication Networks Cliff Zou Department of Electrical Engineering and Computer Science University of Central Florida.
ECE 374: Computer Networks & Internet Introduction Spring 2012 Prof. Michael Zink.
Introduction1-1 CS 494/594 Internetworking Protocols.
CSc 120 Introduction to Computer Programing II
Networking CS 3470, Section 1 Sarah Diesburg
The OSI Model & TCP/IP model
Computer Network Fundamentals CNT4007C
Welcome to CS 340 Introduction to Computer Networking
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Networking CS 3470, Section 1 Sarah Diesburg
Computer Networks CNT5106C
CNT 4704 Computer Communication Networking (not “analysis”)
CNT 4704 Computer Communication Networking (not “analysis”)
Course Review 2015 Computer networks 赵振刚
CSCI Computer Networks
Dr. Clincy Professor of CS
OSI Protocol Stack Given the post man exemple.
MIS323 Business Telecommunications
ECE 6610: Wireless Networks
CNT 4704 Computer Communication Networking (not “analysis”)
CS 6027 Advanced Computer Networking
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
An introduction to the organization of the Internet Lab
An introduction to the organization of the Internet Lab
CSCD 433/533 Advanced Computer Networks
Computer Networks CNT5106C
CS 39006: Computer Networks Lab – Day 1
CSCD 330 Network Programming Spring
COS 561: Advanced Computer Networks
CSCD 433/533 Advanced Computer Networks
CSCD 330 Network Programming Spring
Transport Protocols An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
CNT 4704 Analysis of Computer Communication Networks
CNT 4704 Analysis of Computer Communication Networks
An introduction to the organization of the Internet Lab
CSCD 433/533 Advanced Computer Networks
CSCD 330 Network Programming Spring
Networking Essentials For Firewall-1 Administrators
Computer Networks CNT5106C
MAT 379 Computer Networking
CS 381: Introduction to Computer Networks
Intro. to Computer Network
Presentation transcript:

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

Welcome back! Hope you had a great holiday break!

CPS 365…. Are you in the right class?

Outline Course Policy Introduction to Networks

Cast Instructor: Professor Theo Benson – – Office Hours: Tue/Thurs: 4:30-5:30 (or by appointment) – LSRC D342 HTAs: Bryan Prosser – – Office Hours: Wed 4:-5pm – North306 How to reach us: Piazza

About Me

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”

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…

Online Resources Course website: – We have a Piazza!! – – Sign up!!! – Please use #hashtags (e.g., #hw1, #lab1)

Administrivia All assignments will be on the course page 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)

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

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

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

Groups and Projects Group Formation – Groups must be formed within two days of project posted 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

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.

Questions?

Outline Course Policy Introduction to Networks

The networking field is broad and confusing…

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:

A Heap of Header Formats? Source:

TCP/IP Header Formats in Lego Source:

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:

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:

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:

Teaching/Learning about networking can be hard

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?

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

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…

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

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.

Growth of the Internet Source: Miguel Angel Todaro

Source: Cisco

Source: Facebook

What the Internet looks like 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

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!

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…

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.

Questions?