26
Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Embed Size (px)

Citation preview

Page 1: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Tinkernet

Students:Dan Turner, Mark Kegel, Erik Shimshock andRyan Ausanka-Crues

Faculty:Titus Winters, Mike Erlinger

Page 2: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Project Overview

Who we areHarvey Mudd College & University California

Riverside What is Tinkernet?

System to allow students to write the networking code of an OS

Why would you want it?Provides a convenient and controlled

environment to write and test networking code

Page 3: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Who we are:

Harvey Mudd College - small Science and Engr College - 700 students; 100 Computer Science Majors

University California Riverside - large state university - 15000 students, 1000 Computer Science and Computer Engr majors

Page 4: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

What is Tinkernet?

Stand alone environment to provide a laboratory for computer networking experiments.

Cheap and Easy to build and to maintain

Page 5: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Tinkernet: Operational OverviewStudents work on a Server where they

develop networking code that is then linked into a OS kernel. This kernel is then download to a machine and executed. Students can then exercise their code and evaluate the performance of their networking code.

Page 6: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Tinkernet Hardware

Page 7: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger
Page 8: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Software:Beginning

Tinkerbell (Server )

Node NodeNode

Internet

Warzone Network

Admin Network

• TinkerController• TinkerAdmin

• Grub • Grub • Grub

Page 9: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Behind the Scenes:Compiling the Kernel

OSKit provides a fully operable kernel we strip out the networking module student code gets compiled in as the new

networking module then you have your kernel...

Page 10: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Behind the Scenes:Booting the Kernel

tinkercontroller is a daemon that manages the nodes a free node is chosen, and the kernel is sent

to it if all has gone well, you have a running kernel

Page 11: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Behind the Scenes:

Page 12: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Student Assignments

Writing modules to handle the protocol stack ethernet, IP, UDP, ARP TCP - could do but is a lot of work Scaled down version of TCP Study created protocols: discovery ?

Page 13: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

How it works...

SSH

Tinkerbell

Students Nodes

TFTP

Page 14: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

The Student Perspective

(1) Student writes code (2) Student compiles code into kernel (3) Student uses tinkerboot to load kernel

: Tinkerboot (4) Student tests kernel: netprintf (5) Kernel dies, and student repeats the

first four steps

Page 15: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Software:Student Boots Kernel

Tinkerbell (Server )

Node NodeNode

Internet

Warzone Network

Admin Network

• TinkerController• TinkerAdmin• TinkerBoot

• Grub • Grub • Grub

Student Kernel

Page 16: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

The Student Perspective

Page 17: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Software:Student Tests Kernel

Tinkerbell (Server )

Node NodeNode

Internet

Warzone Network

Admin Network

• TinkerController• TinkerAdmin• TinkerBoot

• Student Kernel • Grub • Grub

Test Traffic

Netprintf Debug Messages

Page 18: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

The Running Kernel

Kernels are expected to respond to: ARP requests IP broadcast Handle IP packets Also UDP Also need to be able to generate their

own packets

Page 19: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Controlling the Kernel

Each node has two network cards Is hooked in to two separate networks:

warzone and admin Student packets are sent over warzone Admin network handles management of

each node - booting, restarting, debug

Page 20: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Software Interaction

TinkerController

Nodes

TinkerBoot

TinkerAdmin

TinkerBoot TinkerBoot

Page 21: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Why this approach?

Mini Emulab - but we wanted control, I.e. 24 hour availability

Tinkernet development is a good learning environment for OS/Systems

Oskit - probably a bad choice…future Linux

Need to add more labs

Page 22: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Tinkernet in the classroom

Lectures discuss the back material of the various protocols (Computer Networks by Peterson & Davie

Each Lab has a write-up of: background, tasks and questions

Students work together for 2 hours in a dedicate terminal room - uncover issues in lab description, etc. Thereafter they are on their own

Page 23: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Tinkernet in the classroom, cont.

Students create a web page (restricted login) that includes:

Discussion of lab - issues uncover, things not understood, time taken, etc.Source code (in C)Exchange of network messages (Ethereal)Answers to questions

Page 24: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Tinkernet in the classroom, cont.

AssessmentPlan to ask questions before the course and before and after each lab.Still to be done

Page 25: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Things left to do...Documentation…Twiki is up. We will

make changes in the Spring http://tinkernet.cs.hmc.edu:8080/wiki/index.php/Main_page

Currently Package for Distribution. Looking for others interested in using

Develop assessment materials

Page 26: Tinkernet Students: Dan Turner, Mark Kegel, Erik Shimshock and Ryan Ausanka-Crues Faculty: Titus Winters, Mike Erlinger

Questions ?