Theo Benson tbenson https wwwcsdukeedu coursesspring15compsci356 Based partly on lecture notes by Rodrigo Fonseca David Mazières Phil Levis John Jannotti Peterson amp Davie ID: 656343
Download Presentation The PPT/PDF document "CPS-356- Computer Networks" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
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 & DavieSlide2
Cast
Instructor: Theo Benson (tbenson)HTAs: Boyang Xu (boyangxu) UTA: Ang Li (li.ang)How to reach us: Piazza
https://
piazza.com
/duke/spring2015/cps35601sp15/homeSlide3
About MeSlide4
Overview
Goal: learn concepts underlying networksHow do networks work? What can one do with them?Gain a basic understanding of the InternetGain experience writing protocolsTools to understand new protocols and applications“From 2 communicating machines to the entire Internet”Slide5
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…Slide6
Administrivia
All assignments will be on the course pagehttps://www.cs.duke.edu/courses/spring15/compsci356/Text: Peterson and Davie, Computer Networks - A Systems Approach, 4th or 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)Slide7
Grading
“Written” componentExams: Midterm (15%) and Final (25..%)Homework: written assignments (10%)Short answer and design questions4 Programming Projects (50%)For group assignments, both students get the same grade for the assignmentSlide8
Your work: important
Assigned readings in the SyllabusHomeworkLabs (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 themSlide9
Collaboration policy
Discussion is encouragedIndividual assignments must be completed independentlyGroup 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 courseSlide10
Late policy
All homeworks are due at the beginning of the class on the due datesAll 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.Slide11
Extra-Credit
Extra-Credit is built into the course through several avenues:Several assignments have an extra-credit componentThere is an additional 5th assignment that can be done for extra credit.Slide12
The first big question we study:
How to design a global computer networkSlide13
What’
s a network?Wikipedia: A wide variety of systems of interconnected components 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 somethingSlide14
Features of computer networks
GeneralityCarry many different types of dataSupport an unlimited range of applicationsCan you name several Internet applications?Slide15
Networks
What is a network?System of lines/channels that interconnectE.g., railroad, highway, plumbing, postal, telephone, social, computerComputer NetworkMoves informationNodes: general-purpose computers (most nodes)Links: wires, fiber optics, EM spectrum, composite… Slide16
Why are computer networks cooler?
Many nodes are general-purpose computersVery easy to innovate and develop new uses of the network: you can program the nodesContrast with the ossified Telephone network:Can’t program most phonesIntelligence in the network, control by parties vested in the status quo, …Slide17
Growth of the Internet
Source: Miguel Angel TodaroSlide18
Source: CiscoSlide19
Source:
FacebookSlide20
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
.Slide21
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
Ethernet
802.X
Wireless
Host
Host
Host
Host
Host
Host
Host
Host
Host
Host
Host
Host
Host
Host
Host
Tier 1
Tier 1
Tier 2
Tier 2
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, MTUSlide22
Traceroute map of the Internet, ~5 million edges, circa 2003.
opte.orgSlide23
Why should you take this course?
ImpactSocial, 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 evolvingIncredible complexity
Any fact you learn will be inevitably out of date
Learn general underlying
principles
Learn to program the network
Networks are cool!Slide24
Questions?Slide25
Course outline
The fundamentalsReliable/secure communications over unreliable/insecure channelsFinding paths through the networkResource sharingProviding common services to applications
Case studies on how to use the network
Content distribution, DNS, p2p, social networks, search engines
Socket programmingSlide26
The networking field is broad and confusing…Slide27
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.pptSlide28
A Heap of Header Formats?
Source: http://www.cs.princeton/~jrex/talks/conext-student10.pptSlide29
TCP/IP Header Formats in Lego
Source: http://www.cs.princeton/~jrex/talks/conext-student10.pptSlide30
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.pptSlide31
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.pptSlide32
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.pptSlide33
Teaching/Learning about networking can be hardSlide34
I hope to make it easy for you
Emphasis on fundamentals, concepts, and design skillsYou’ll pay attention to details in labsTreat 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?Slide35
Roadmap
Assignments: learn by implementingWarm up: Snowcast, a networked music serverGet a feel for how applications use the networkBuild knowledge from the ground upLink individual nodesLocal networks with multiple nodesIP: Connect hosts across several networksTransport: Connect processes on different hostsApplicationsA few cross-cutting issues
Security, multimedia, overlay networks, P2P…Slide36
Summary
Course introductionAdministriviaCourse outlineSlide37
Welcome back!
Hope you had a great holiday break!Slide38
Coming Up
Assignment 1 will be released on Monday. Next class: how do applications use the network?Introduction to programming with SocketsPeterson & Davie 1.4Beej’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.