L1 - Intro

advertisement
CPS-356- Computer Networks
Theo Benson (tbenson)
https://www.cs.duke.edu/courses/spring
15/compsci356/
Based partly on lecture notes by Rodrigo Fonseca, David Mazières, Phil Levis, John Jannotti, Peterson & Davie
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/hom
e
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
– 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…
Administrivia
• All assignments will be on the course page
https://www.cs.duke.edu/courses/spring15/compsci3
56/
• 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)
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
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
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
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.
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.
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?
–
–
–
–
–
–
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?
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, …
Growth of the Internet
Source: Miguel Angel Todaro
Source: Cisco
Source: Facebook
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.
What the Internet looks like
Host
Host
Host
Ethernet
Host
Host
Wireless
Framerelay
Host
Ethernet
Ethernet, CSMA/CD
Bridges, Switches,
Spanning Tree
Host
Host
Ethernet
Host
IP/SONET
Host
802.X
email WWW phone...
SMTP HTTP RTP...
Host
Host
ATM
Bandwidth x Delay
TCP Performance
Host
Host Host
Tier 3
TCP UDP…
IP Blocks, CIDR, Subnets
Longest Prefix Match,
Fragmentation, MTU
IP
ethernet PPP…
CSMA async sonet...
RIP, OSFP
Distance Vector
Link-State
copper fiber radio...
Modulation
Coding
FDMA, TDMA
Tier 2
BGP
Tier 2
Tier 1
Tier 1
Tier 2
The Internet
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!
The networking field is broad and
confusing…
A Plethora of Protocol Acronyms?
WAP
SNMP
LLDP
FTP
OSPF
RTP
PPP
ICMP
IMAP
HTTP
HIP
IGMP
ECN
RED
ARP
IP
RIP
TCP
MPLS
SMTP
BFD
RTSP
NNTP
TLS
SACK
RTCP
CIDR
NAT
STUN
SSH
DNS
POP
MAC
UDP
BGP
PIM
IPX
SIP
DHCP
VLAN
VTP
LISP
TFTP
Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt
LDP
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
Router
Switch
Scrubber
Repeater
Gateway
Deep
Packet
Inspection
NAT
Route
Reflector
DHCP
server
Firewall
WAN
accelerator
Bridge
Intrusion
Detection
System
Hub
DNS
server
Packet
shaper
Packet
sniffer
Base
station
Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt
Proxy
A Ton of Tools?
arpwatch
tcpdump
syslog
wget
nslookup
traceroute
trat
snort
nmap
whois
ipconfig
rancid
ntop
net-snmp
dig
bro
ping
iperf
wireshark
NDT
dummynet
Source: http://www.cs.princeton/~jrex/talks/conext-student10.ppt
mrtg
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
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?
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…
Welcome back!
Hope you had a great holiday break!
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.
Download