Sie sind auf Seite 1von 42

AHandsOnEnvironment

forTeachingNetworks
StanfordHighPerformanceNetwork
Group
PresentedBy:MartinCasado
NickMcKeown
GregoryWatson
MartinCasado
DanWendlandt
February,2005
SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

PresentationOutline
Theproblem
Ourapproach
Applicationintheclassroom
Experiencesintheclassroom

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

ProblemOverview:

Motivation
App
TCP/IP
Phy

SIGCSE.2005

OS+hardware

StanfordHighPerformanceNetworkingGroup

ProblemOverview:

Motivation
Howcanyouteachrouter
implementationtoalarge
undergraduateclass?

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

ProblemOverview:

ProvideRouterperStudent?
(dedicatedhardware)

Obviousresourceconstraints
Difficulttosetup/manage
Complicateddevelopmentenvironment

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

ProblemOverview:

UseNetworkSimulator?

NoaccesstorealInternettraffic/Synthetic
Specializeddevelopmentenvironment

Learningcurve
Nonstandardscriptinginterfaces(wewantC!)

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

PresentationOutline
Theproblem
Ourapproach
Applicationintheclassroom
Experiencesintheclassroom

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

OurApprach:

VirtualizetheNetwork

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VirtualNetworkSystem:

WhyDon'tWe....

StartwithamachinebetweentheInternetandsome
servers
..haveitemulateanetworktopology
..makethatmultiplenetworktopologies

http
Internet

http
ftp

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

OurApprach:

VirtualNetworkSystem
Student
Computer

VNSClient

Internet

SIGCSE.2005

VNSServer

StanfordHighPerformanceNetworkingGroup

VirtualNetworkSystem:

ClientLibrary

Reserveavirtualhostonagiventopology
Readapacketfromaspecifiedinterface
Writeapackettoaspecifiedinterface
BindingsinC/C++/Java/Python

VNSClient

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VirtualNetworkSystem:

Result?

Eachstudenthastheirowntopology
Studentscandevelopfromanywhere
Accesstolivetraffic
CaninteractwithhostsonInternet
Cansupport1000'sofstudents
http
Internet

http
ftp

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VirtualNetworkSystem:

PacketForwarding
2.VNSserverforwards

VNS
Client

packettostudentsVNS
client

3.Studentsclienttells
theserver,whichinter
facetoroutepacketto

Instructional
machines

PC
Linux

Socket

C
Internet

VNSServer

1.Packetarrives
SIGCSE.2005

destinedforweb
serverC.StanfordHighPerformanceNetworkingGroup

Web/ftpservers

PresentationOutline
Theproblem
Ourapproach
Applicationintheclassroom
Experiencesintheclassroom

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VirtualNetworkSystem:

VNSintheClassroom

Projects

Buildingafunctionalrouter
Buildingthefullnetworkingstack
Buildingahardware/softwarerouter

Demonstratingnetworkingconcepts

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VNSintheClassroom

ExampleAssignment:SoftwareRouter

Eachstudentgetstheirowntopology
SinglerouterattachedtoInternetand
applicationservers

ftp server

http server
SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VNSintheClassroom

SoftwareRouter

HandleARP

SupportvariousICMPtypes

request/response
cache/queueofpacketspendingresponses
ECHO(ping)
TimeExceeded(traceroute)
PortUnreach
HostUnreach

Forwardcorrectlyfromstaticroutingtable
IPheaderchecksum
SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VNSintheClassroom

SoftwareRouter:CodeComplexity

Typicallyaround1,000linesofcode
Nothreadsrequired
Projecttakes2weeks1month
Roughly30hoursofwork

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VNSinPractice:

BuildingaFullNetworkStack

Allcomponentsofthenetworkingstack
Combinationofthreeprojects

Ftpclient
Softwarerouter
TCPcompatibletransportlayer(STCP)

ftpclient
stcp
IP

SIGCSE.2005

IP router

StanfordHighPerformanceNetworkingGroup

Internet

VNSinPractice:

FullNetworkStack

ftp.gnu.org

Virtual host
ftpclient
stcp
IP

SIGCSE.2005

IP router
Virtual router

StanfordHighPerformanceNetworkingGroup

Internet

VNSinPractice:

BuildinganIntegrated
Software/HardwareRouter

Fullrouterinhardwareandsoftware
ManagedviaCLI
Hardwareforwardingpath
Routerrouterprotocol
Mustinteroperatewithotherstudents
ftp server
SW
SW
HW
SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

http server

VNSinPractice:

Hardware,NetFPGA

NetworkprogrammableFPGA
Basicallyaprogrammable,8portnetwork
device
Providesfacilitiesforhandlingcommunication
pathsto/fromnetwork
StudentsuseVerilog
WorkswithVNS
HW
SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VNSinPractice:

Software

SoftwarerunsasCPUforhardwarethrough
VNS
IntegratedTCPstack
Userapplications
SimplifiedOSPFvariant
Controlshardwarevia'controlpackets'
CLI

User Apps
TCP

SW
HW

VNS
NetFPGA

IP/ ICMP/ OSPF


ARP
IP Forwarding
Layer 2 forwarding

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VNSinPractice:

OtherProjects

Simplifiedlinkstateroutingprotocol
Openendedrouterdesign
Security(Conceptual)

sshmaninthemiddle
tcpsessionhijack
Trafficpoisening/redirection
etc.

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VNSinPractice:

ClassroomDemonstrations

Wanttovisualizenetworkconcepts

TCPcongestionwindowovertime
Routerbufferoccupancies

Viewinsideoperatingrouter
Realtimeinspectionofprotocolstack

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VNSinPractice:

Clack

GUIRouter(Javaapplet)
Buildrouteroutofvisualcomponents
Allowsrealtimevisualization

tcpflows
tcpsawtooth
queuesizesetc

Usefulforteaching/demoing
Workinprogress...
http://yuba.stanford.edu/vns/clack

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VNSinPractice:

Clack

ftp server
SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

http server

PresentationOutline
Theproblem
Ourapproach
Applicationintheclassroom
Experienceintheclassroom

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

ExperiencesintheClassroom

Stanford

IntroductoryNetworkingCourse(3years)
(router,stcp,fullnetworkstack)

Graduatecourseinrouterdesign(2years
(Integratedhardwarerouter)

JohnsHopkins

upperlevelnetworkingprotocolscourse(2years)
(router,OSPF)

WSU

introductorynetworkingcourse(1year)
(router)

Over1500students
Createremoteteachinglab
SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

StudentFeedback

Overwhelminglypositive(anonymousformal
evaluations)
Hardbutveryrewarding
Manyrequestsforaccessafterprojectsare
finished
Manystudentsexperimentwithmorecomplex
functionality(NAT,VPN,firewalls,web
servers,QOSetc.)

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

TeacherFeedback

Verypositive
Bothpilotschoolswillcontinueusing
Havebeenexcitedtocontributeproject
ideas/extensions

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

Plug

Arelookingtohostmoreremoteprojects
Providefullcurriculumandsupport
Collaborationwithotherprojects?
Ifyouareinterested,pleasecontactusdirectly!

casado@cs.stanford.edu
http://yuba.stanford.edu/vns
http://yuba.stanford.edu/vns/clack/

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

ThankYou!
Application

Application
CLI

Application

Socket API

Router API

Transport Subsystem
ICMP Input

ICMP Output

IP Forwarding

IP Routing
State

IP Output
Dropped

IP Input

IP Routing
ARP State
ARP Input

Interface Input

low- level input

SIGCSE.2005

ARP Output
Interface State

Interface Output

low- level output

StanfordHighPerformanceNetworkingGroup

ARP Thread

OSPF

VirtualNetworkSystem:

PhysicalSetup

Internet

hub
firewall
VNSServers

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

Application
Servers

ProblemOverview:

Requirements

RouteliveInternettraffic
Isolatednetworktopologyperstudent
systemsprogrammingexperticenotrequired
Efficientuseofhardware
Support1000sofstudents
Supportremoteprojects
Safe

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VNSinPractice:

Buildingafullrouter
CLI

User Apps
TCP

Software

IP/ ICMP/ OSPF


ARP
IP Forwarding

Hardware

Layer 2 forwarding
SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

ProblemOverview:

VirtualOverlayNetwork?

Noaccesstolinklayer(generallyintendedfor
networklayeronup)
Designedfordedicatedresearchenvironment
OftenvirtualizecomponentsofOS
Normallyhavelargescaledeployment(X
bone,Planetlab)

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VirtualNetworkSystem

Manypossiblesolutions
Nonemetourparticularrequirements
Developedourownwithinthecontextofour
introductorynetworkingcourse

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VirtualNetworkSystem:

Transparency

Achallenge!morealwaysbetter
Providetcpdumpcompatiblefilesforall
packetsseenbytherouter

Encouragestudentstouseethereal/tcpdumpfor
debugging
Helpsstudentsfindmosterrors

Runminiwebservershowingwhich
topologies/routersarereserved,numberof
packetsservicesetc.
Activeareaofexploration...(Especiallyfor
complexsetupswithintegratedhardware)
SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VirtualNetworkSystem:

ProvidingStudentAccess

Studentswriteuserlevelprogram(using
providedapi)
Allowuserlevelprogramtosend/receive
packetsasifitwereonthetopology
Student'scanthensendrealtraffictotheir
server'sonthetopology
Student
computer
Internet

SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VNSinPractice:

Topology
Application servers

VNSprovidescpu

NetFPGA
Firewall

Internet
SIGCSE.2005

StanfordHighPerformanceNetworkingGroup

VNSinPractice:

Software
Application

Application
CLI

Application

Socket API

Router API

Transport Subsystem

ICMP Input

ICMP Output

IP Forwarding

IP Routing
State

IP Output
Dropped

IP Input
IP Routing

ARP State
ARP Input
Interface Input

low- level input

SIGCSE.2005

ARP Output
Interface State

Interface Output

low- level output

StanfordHighPerformanceNetworkingGroup

ARP Thread

OSPF

Das könnte Ihnen auch gefallen