CPS 356: Introduction to Computer Networks Lecture 1: Introduction and course overview

advertisement
CPS 356: Introduction to Computer
Networks
Lecture 1: Introduction and course
overview
Xiaowei Yang
xwy@cs.duke.edu
Welcome back!
Hope you had a great holiday break!
Today
• Course introduction
• Course forecast
– What we will be covering
Who should be taking this class?
• Curious about how things work
– A lot of internals of networking
• Loves to build things
– Programming labs
Why?
• You use it (the Internet) every day.
– Youtube, DNS, Skype, Facebook, Gmail
• Multi-billion dollar companies built on it
– Google, Facebook
– Chances you’ll develop some network applications in the
future are high
• Changing the way people live
– Network development in developing countries
• Massive online learning, Internet clinics, the fisherman story
• Fun applications
– Online games, social networking, video streaming, …
– The next one may be yours!
Course goals
• Goals: principles that underlie the design of
computer networks and network protocols
– Division of labor: smart vs dumb networks
– Soft state vs hard state
– Packet switching vs circuit switching
– Layered vs integrated designs
– Structured overlay vs unstructured overlay
Why design principles are important
• System building does not have just one answer
• Help you acquire a good taste
– Myspace vs Facebook
– Google vs all search engines before it
Prerequisites
• Good knowledge of C/C++
– Labs are done in C/C++
– Some knowledge of socket programming from
CPS 310
Course staff
• Instructor: Xiaowei Yang
– http://www.cs.duke.edu/~xwy/
– Main research interests: network architectures and
protocols, network security, distributed systems
• TA: Hongze Zhao
– https://www.cs.duke.edu/~hongze/
Recommended Textbook
• Larry L. Peterson, Bruce S. Davie, Computer
Networks: A Systems Approach, 5th Edition,
Morgan Kaufmann
– Available from bookstore, amazon
– A view as a system builder, not a user
– 4th is okay
Website: important
• http://www.cs.duke.edu/courses/spring14/compsci356/
• Syllabus
–
–
–
–
–
Book chapters related to lectures
Pointers to external papers for topics
Read before class for discussion
Assignments and due dates
Lectures
• All subject to change. Reload before checking
Discussion forum
• Piazza?
• What do you suggest?
Contact Us: We are here to help you
• Office hours
– TA: Fridays 10am-noon @ North 06
– Instructor: Fridays 1:30-3:30pm or by appointment
– All course related topics: compsci356-staff@cs.duke.edu
• Grading, questions, homework, labs, exams
• Within a day
• Email for meetings outside regular office hours
• Really urgent
– State so in your email
– IM: xiaowei@gmail.com (voice mail does not work),
zhaohongze@gmail.com
• Unfortunately, no recitation section was scheduled
– Do come to office hours
– Do communicate with us via email
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: simple router
Lab 2: dynamic routing
Lab 3: reliable transport
Lab 4: congestion control
• Labs contain pre-lab questions that help you understand the basic concepts
• 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
Late policy
• All assignments are due at the beginning of the class on
the due dates
– I may grant extensions if you show up in class
• 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.
Grading policy
• Class participation and pop quizzes: 20%
• Labs: 50%
– In a group assignment, both students get the same
grade for the assignment
• Exams: 30%
Questions?
Course outline
• The fundamentals
– Reliable/secure communications over unreliable/insecure
channels
– Finding paths through the network
– Resource sharing
– Providing common services to applications
• Case studies on how to use the network
• Content distribution, DNS, p2p, social networks, search engines
• Socket programming
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
– Headers will be provided in all your quizzes
– 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?
–
–
–
–
–
–
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?
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
Summary
• Course introduction
– Administrivia
– Course outline
• Next
– Network architectures: different styles of building
networks
Download