KENSv3
KAIST Educational Network System
|
KENS series have been used for programming assignment in CS341: Introduction to Computer Network in KAIST. First version of KENS (v1) had been developed by Network Computing Lab, 2005. This version had been used until 2013.
KENSv2 is an improvement version from KENSv1, which contains basic unit test mechanism. Since KENSv2, we provided students an adversary solution which work along with students' solution. This solution was provided in binary form, and enabled incremental development of network functionalities. For example, we had to implement both connect and accept for basic execution. From KENSv2, the implementation could be modularized in system call level. This version was used in 2014 (https://an.kaist.ac.kr/courses/2014/cs341/) and the experience of using it has been published at SIGCSE 2015 (http://an.kaist.ac.kr/~sbmoon/paper/intl-conf/2015-sigcse-kensv2.pdf). The source code is managed by Advanced Networking Lab in KAIST.
KENSv1: https://github.com/ANLAB-KAIST/KENSv1
KENSv2: https://github.com/ANLAB-KAIST/KENSv2
From 2015, we are using KENSv3 which is developed from a clean state. However its philosophy has been adopted from KENSv2 and KENSv1. KENSv3 has more powerful features than KENSv2.
KENSv3 provides useful template for building prototypes of Ethernet/ARP/IP/TCP and many other network layers. Also, it contains automated grading system to verify the completeness of each implementation. There are solution binaries in KENSv3 which enables incremental building of network functions.
Virtual network devices of KENSv3 simulates queuing effect of switched network. So it can be used for precise network simulations like ns2. All packets are recorded as pcap log files which can be analyzed by Wireshark or other analysis tools.
KENSv3 can execute actual network application source written in C. The system call requests from applications are linked with proper network layer.
See KENSv3 wiki.
In TestTCP folder, there are one source file and one header file. You are allowed to modify TCPAssignment.cpp and TCPAssignment.hpp. Also, you can add member fields to "class TCPAssignment". Any source files in TestTCP folder are automatically included in the build path.
This is an automatically generated source repository from our internal repository. If you want to contribute to KENSv3 framework, please use Github issues.
KENSv3 is an open-source framework. However, it is also an educational framework. We couldn't get our position between them. We are asking your favor not to make a public fork, but a private clone for your project. Please do not upload your solutions online, so that other students can do this project themselves later.
You may modify it freely to customize this project with your courses. Not only the source contribution, we also receive material contribution. If you have better presentation slides or other teaching material, you can contribute with them. Please let your students not to upload their solutions online.