• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Teaching Networking Hardware
 

Teaching Networking Hardware

on

  • 945 views

 

Statistics

Views

Total Views
945
Views on SlideShare
944
Embed Views
1

Actions

Likes
0
Downloads
5
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Teaching Networking Hardware Teaching Networking Hardware Presentation Transcript

    • Teaching Networking Hardware Stanford High Performance Network  Group Presented By:  Martin Casado        Gregory Watson Martin Casado Nick McKeown                                                                                                              June, 2005 ITICSE  2005 Stanford High Performance Networking Group
    • Motivation (networking hardware experience needed in classroom) ● Many students go to work in the networking  industry – complex hardware­software systems – high speed, asynchronous network environments ● Undergraduate (and graduate) hardware classes  typically focus on processor design (... how many graduating students design processors?) ● Want to create practical, useful environment for  developing working network systems ITICSE  2005 Stanford High Performance Networking Group
    • Motivation (cool stuff in networks is hard to get to) App TCP/IP Phy } OS + hardware = hard to teach ITICSE  2005 Stanford High Performance Networking Group
    • (The Punchline) CS344: Advanced Projects in Networks ● Students design routers in hardware and  software ● Teams of 1 hardware student, 1 software student ● Routers must route live Internet traffic ● All routers must interoperate on a complex  topology ● Students then get to “show off” CLI “User Apps” TCP SW VNS IP/ ICMP/ OSPF ARP HW NetFPGA IP Forwarding ITICSE  2005 Stanford High Performance Networking Group Layer 2 forwarding
    • Presentation Overview (a bit late) ● Technologies developed to support class – NetFPGA  – VNS           ● Class Overview ● Experiences in Classroom (2004, 2005) ● Looking Ahead ITICSE  2005 Stanford High Performance Networking Group
    • Course Tools •NetFPGA : a programmable 8­port Ethernet device that can                          be programmed and tested remotely •VNS: Allows user space processes to participate as routers               on the Internet  •VNS + NetFPGA : Used to develop, test and deploy                                        hardware+software routers on arbitrary                                        topologies connected to the Internet Internet ftp server SW SW HW http server ITICSE  2005 Stanford High Performance Networking Group Spring 2005
    • NetFPGA NetFPGA is: • Programmable Network device • Each board contains three FPGAs and an     8­port Ethernet controller. • A suite of scripts that invoke the various     design tools (industry standard) • Libraries to make it easy to create     verification scripts that run in simulation     environment as well as on the actual     hardware. • A web interface for remotely downloading     and running the designs. ITICSE  2005 Stanford High Performance Networking Group
    • NetFPGA Board ITICSE  2005 Stanford High Performance Networking Group
    • NetFPGA Boardof 10Mbit/ s To/ from server ports 8 full- duplex Ethernet Ethernet controller SRAM SRAM CFPGA (fixed) SRAM SRAM UFPGA 1 UFPGA 2 1MB 1MB ITICSE  2005 Stanford High Performance Networking Group
    • Virtual Network System (emulate network topologies) Internet ITICSE  2005 Stanford High Performance Networking Group
    • Virtual Network System •Maps NetFPGA boards into complex networks connected to  the Internet •Allows students to write software “cpu” for boards as user  space programs (in C) •Connect standard servers (e.g. Linux + apache) •Currently used in undergraduate networking courses to  build software only routers (stanford, WSU, Johns Hopkins) Internet ftp server SW SW HW http server ITICSE  2005 Stanford High Performance Networking Group
    • VNS + NetFPGA =  •Build hardware­software routers on the Internet •Each team can have an isolated topology or multiple  teams can connect to the same topology (interopera­ tion) •Entire design and development process can be done  remotely (e.g. Remote University) (students never have to see an actual NetFPGA board!) Internet ftp server SW SW HW http server ITICSE  2005 Stanford High Performance Networking Group
    • CS344: Building an Internet  Router CLI “User Apps” TCP Software IP/ICMP/OSPF ARP IP Forwarding Hardware Layer 2 forwarding ITICSE  2005 Stanford High Performance Networking Group
    • CS344: Building an Internet  NetFPGA is: Router • Build full router in hardware and software    (6 weeks) • Route live Internet traffic • Managed via CLI • Generate forwarding tables using OSPF­like protocol • Converge in complex topology after link failure • Inter­operate with all other routers in class on     complex network topology • Open­ended design component (build something neat)    (2 weeks) •Comprehensive design, implementation and testing    documentation ITICSE  2005 Stanford High Performance Networking Group
    • CS344 Hardware Requirements • Layer­2 switching • Protocol decoding • ARP cache lookup • Forwarding •Longest prefix match •Decrement ttl •Calculate IP checksum • Handle read/write register packets from       software ITICSE  2005 Stanford High Performance Networking Group
    • CS344 Software Requirements • ARP    (request/response/cache) • ICMP (echo, port unreach, ttl timeout) • TCP Stack (provided) • CLI •ping/traceroute •Similar to IOS •Manage interfaces, forwarding table etc. • OSPF­like protocol • Control hardware by reading writing registers    using special packets ITICSE  2005 Stanford High Performance Networking Group
    • CS344 Topologies for Testing (per team) Internet Plus any other requested topology Internet (popular during advanced functionality) ITICSE  2005 Stanford High Performance Networking Group
    • CS344 Interoperability • Organized by the students (entirely) • Must be able to converge before tcp timeout during link failure • For final test, we randomly sprinkle topology with students routers and see what happens! ITICSE  2005 Stanford High Performance Networking Group
    • CS344 Advanced Functionality ● Open­ended (almost anything goes) ● 2 requirements – Something neat – Hardware + software component ● Must consider hardware/software tradeoffs during  design ● Present designs in front of panel of industry experts  ITICSE  2005 Stanford High Performance Networking Group
    • Classroom Experience ● 2004: 7 students     (3 teams) ● 2005: 18 students   (6 teams) ● Only 1 team has failed to produce working  router ● Software typically 12,000 – 20,000 lines of C ● Hardware 7,000 – 11,000 lines of verilog ● Easy week = 10 – 15 hours of work ● Hard week = 40 – 60 hours of work ● Student evaluations very positive ● Industry feedback very positive ITICSE  2005 Stanford High Performance Networking Group
    • Classroom Experience ● Hardware/software students must learn how  to communicate ● Interoperation is hard for students  (many, many edge conditions) ● Design is really important ... bad start = chaos later on ● Software bug fix = a few minutes ● Hardware bug fix = a few hours ITICSE  2005 Stanford High Performance Networking Group
    • Classroom Experience Advanced Functionality ● MAC level encryption (DES) ● SSH man in the middle attack ● Intrusion Detection System ● Random Early Detection ● Token­based rate limiting ● Firewall ● NAT/VPN ● Distributed DNS cache ● Have really impressed industry panel ITICSE  2005 Stanford High Performance Networking Group
    • And Now ...  ● Developing NetFPGA2 – PCI cards – 1 Gb/s – On board CPU ● Working on curriculum for introductory  architecture course ● Would like to see NetFPGA used outside of Stanford  ● If you are interested, please contact us directly! – casado@cs.stanford.edu – http://yuba.stanford.edu/vns – http://yuba.stanford.edu/netfpga ITICSE  2005 Stanford High Performance Networking Group
    • Thank You! Application Application CLI Application Socket API Router API Transport Subsystem ICMP Input ICMP Output IP Routing State OSPF IP Output IP Forwarding IP Input Dropped IP Routing ARP State ARP Input ARP Output Interface Input Interface State Interface Output ARP Thread low- level input low- level output ITICSE  2005 Stanford High Performance Networking Group