Tenet (Fall 2011)

Table of Contents

Overview

Tenet is a network simulator which is designed and coded by TAs. This course will use Tenet to teach the students how to implement networking protocols. Currently there are 4 phases in this course: ARP & L2 Switch, IP, TCP and Dynamic Routing. As a basic experimental course, Tenet will focus on some of the basic functionalities of the above protocols in the hope that you would understand some of the fundamental principles.

Basic knowledge of datalink layer, network layer and transport layer will be required. Standard RFC documents will be given out to help you implement these protocols. It is strongly recommended that you should not only read these materials but also understand them, in this way you will be able to achieve the requirements exactly. Also, some knowledge on object-oriented programming can make the procedure of implementation easier.

This year a whole new framework of tenet is built up. And It has been tested and verified by TAs. According TAs' experiences, it will take some time for you to understand the framework. So, we will give out the framework in the first week of the semester to ensure enough time for you to understand it. Meanwhile, since the framework hasn't been used before, we do not guarantee that there are no problems in it. Should you find any problems, feel free to report to TAs immediately. Kindly note that if you choose not to report and keep silent, you will be responsible for any further misunderstandings or deviations in your work.

The Google page of this course is http://groups.google.com/group/tenet-acm-sjtu. Make sure you have subscribed to the group mail before the course starts.

History

TeNeT is used as the project for Computer Network course, from ACM07, in replacement of the plain network project which is the same as the one from regular CS classes. The name TeNeT, is provided by Yang Gao from ACM07, palindrome and meaningful. We've tried to see it as an abbreviation of some phrases, like NACHOS as Not Another Completely Heuristic Operating System, but turns out not good. So just call it TeNeT.

  • 2009 Fall
Originally, the system is based on a open-source project called JNS(Java Network Simulator), which can be found here. The project is a port of ns-2 to Java, and has been deprecated for a long time. TAs from ACM06, discovered this and designed 4 tasks based on this system, which are, static routing, dynamic routing, a simplified version of TCP, and a free play phase. ACM07ers, despite of the fact that it's the first time with this system, did very well on these tasks, and implemented a lot of interesting stuff on the free play task, including firewalls, UDP, network manager, and even a online tank game based on this system.

  • 2010 Fall
JNS is a well-designed, simple project. Its version 1.6 which we used, still uses confusing code and some ugly implementation. When it comes to ACM08, the TAs from ACM07 redesign the tasks and rewrite the framework of the system. With cleaner code and better, prettier design, the system is more sophisticated and robust. The redefined tasks are, Simple TCP, Firewall, and Dynamic Routing, coordinating with the teaching of corresponding course - Computer Network. And ACM08ers must have learned a lot from this project.

  • 2011 Fall
As to the ACM09ers, TAs decided to use a whole new system, because JNS is not satisfying our needs. The new system, designed by Meilun Sheng(ACM07), and first implemented by him with ZiMing Feng(ACM07), Kailong Chen(ACM07), XinAn Wang(ACM08), HongYang Zhang(ACM08), are now available for use. Let's see how it's working out!

News

2011.9.7 first version. upload the framework and its javadoc.

2011.11.15 update framework, tester, documents for phase2&3 and so on.

Schedule

week 15 final test start

week 17 deadline

Specification

Phase 1 - ARP & L2 Switching

Resources

Phase 1 "Fill in blank" code put the .java files into the given packages.

Phase 2 Documents

Phase 3 Documents

Framework

Framework: framework.build.111213.bin.jar framework.build.111213.src.jar

Javadoc: Javadoc.7z This document is useful to understand the framework.

Tester Framework: tester.build.111201.jar

Tester External Depedency: tester.extern.build.111213.bin.jar tester.extern.build.111213.src.jar

Test Script Sample:testcase.111123.zip

Lectures

Phase 1

TA List

  • Meilun Sheng        sjmind2@gmail.com
  • Ziming Feng           fengzm1@gmail.com
  • Kailong Chen        chenkl198812@gmail.com
  • Chenyang Wu        shivaw@gmail.com
  • Xinan Wang           wangxinanbook@gmail.com
  • Hongyang Zhang   hongyang90@gmail.com
个人工具