Beruflich Dokumente
Kultur Dokumente
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
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
SIGCSE.2005
ARP Output
Interface State
Interface 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
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
SIGCSE.2005
ARP Output
Interface State
Interface Output
StanfordHighPerformanceNetworkingGroup
ARP Thread
OSPF