It was about a year ago that Dr. Yannis Viniotis, Professor of the Electrical & Computer Engineering (ECE) department at North Carolina State University (NCSU), met with senior Cisco Engineers and agreed to collaborate on several small, hands-on projects with Cisco Engineers and NCSU students.
The NCSU ECE department partners with the industry as part of their Senior Design Project Program, where various vendors serve as sponsors and offer several projects for NCSU students to complete. That is also how the Cisco-NCSU collaboration started. Students get to work on real networking industry problems guided by engineers that already work in the industry. The students gain experience that can be later used in their professional lives. The Cisco engineers get to work with future engineers, mentoring and preparing them for their professional lives and solving some real world technical challenges. It is fun and educational for both sides.
As part of the collaboration, we initially kicked-off each project with a presentation of the actual problem, the project goals, and potential training on the tools to use. We then agreed upon the project milestones. Throughout the lifetime of project we were meeting with the students weekly or bi-weekly to go over the progress of their work, provide guidance, or answer any questions that may come up. We found that keeping a regularly scheduled meeting helped the overall progress. At the end of the two-semester period we had:
Over 20 Wireshark dissectors: These projects were derived from various new network protocols or existing protocol changes that were produced in IETF RFCs but were not yet integrated in Wireshark. Wireshark is an open-source packet analyzer that can read and display network traffic captures. Anyone can contribute to it. So, by creating new dissectors for the unimplemented protocols, Wireshark can be quicker to “understand” and display the new protocols when they are present in packet captures, which in turn helps engineers that use the software. To date, students have written over 20 new dissectors that have been accepted and integrated into Wireshark. Carlos Pignataro and Arun Arunachalam, from Cisco, led the Wireshark projects.
tcpliveplay: Network administrators have seen this problem before: “How do I replay a TCP flow destined to a live host since the host will change the TCP sequence numbers every time?” This project required the creation of a tool that replays a captured TCP flow against a live device. Existing tools could not replay a captured TCP connection against a device that changes its response every time. Three students from NCSU chose this problem as their Senior Design Project. For the solution, we chose to extend the tcpreplay tool. tcpreplay is open-source (GPLv3 licensed) software developed by Aaron Turner. It is widely used by the network community, mostly for testing and packet replaying. The name of the new tcpreplay extension that replays a TCP flow is tcpliveplay. Even though the semester was over before tcpliveplay could make it to the engineering community, Yazan Siam, one of the students that worked on this Senior Design Project, chose to work on it over the summer to fix issues and make it available.
You are probably now asking “where can I get this tool?” It was just recently integrated (Sept 2012) and can be used after installing tcpreplay 3.4. tcpliveplay currently operates on a Linux OS and replays one TCP flow capture. Yazan will try to add more functionality in the future. More details can be found on the tcpreplay wiki. The project was driven by Panos Kampanakis from Cisco.
We would like to thank the NCSU ECE students for the good work and collaboration. We hope it has been a good experience for them as it was a fun experience for us.
The collaboration will continue…