/
CPS-356- Computer Networks CPS-356- Computer Networks

CPS-356- Computer Networks - PowerPoint Presentation

stefany-barnette
stefany-barnette . @stefany-barnette
Follow
373 views
Uploaded On 2018-03-18

CPS-356- Computer Networks - PPT Presentation

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

host networks internet network networks host network internet source assignments www http lab learn programming computer princeton jrex conext talks ppt tier

Share:

Link:

Embed:

Download Presentation from below link

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.


Presentation Transcript

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.