Part A - Network Protocol Development in C ( from scratch )

Why take this course?
🌟 Network Coding Project for Network Core Developers 🚀
What is this Course all about?
This course offers a deep dive into the realm of Network Protocol Development by implementing a Case Study on the Pseudo Interior Gateway Protocol, similar to OSPF (Open Shortest Path First) & ISIS (Intermediate System to Intermediate System). You'll explore the intricacies of link-state protocols and prepare to conquer the complexities of network programming. 📚✨
- Course Overview: The full course is structured into three parts - Part A, Part B, and Part C. While Part A and B are live, Part C is currently under development as of 26 Nov 2023.
- Implementing ISIS Protocol: You'll be implementing a simplified version of the actual ISIS protocol using our tcp-ip stack library. This hands-on experience will equip you with a profound understanding of what it takes to implement a typical Network protocol from scratch. 🛠️
- Real-world Impact: Mastering this project can significantly enhance your resume, making it stand out in the job market for network developer roles. It's a tangible proof of your capabilities and a conversation starter in interviews. 🌟🤓
Project Goals
The AIM of this case study is to guide you through an end-to-end implementation of a typical network protocol. We've chosen a routing protocol as an example, but the logistics are universal for any network protocol. Here's what you'll learn:
- Configurable via CLIs
- Show internal states and results through show CLIs
- Respond to generic configuration changes
- Compute results and install the results in Tables (Routing Information Base, MAC Tables, hardware Tables, etc.)
- Respond to Topological Changes
- Time-out stale Data structures if any
- Periodically Generate Or Process Protocol packet
- Add a new feature to the existing working Protocol Codebase 🔄✨
Expected Outcomes & Learning Objectives
This project is expected to be substantial, around 20k LOCs. It will serve as an excellent learning opportunity in:
- Organizing Code: Structuring your code in header and src files.
- Modularizing the Codebase: Keeping different features in separate src files.
- Testing New Features: Ensuring that new features don't disrupt existing functionality.
- Code Commits & Version Control: Utilizing GitHub for version control and commit history.
- Bug Fixing: Employing various debugging techniques like gdb and Valgrind to identify and fix issues. 🐛✨
Pre-requisites to do this Course
To embark on this journey, you should have a solid grasp of Data Structures and Algorithms in C/C++. This project is challenging and requires a good understanding of Networking basics like L3 routing. It assumes no prior knowledge of specific routing protocols but will cover all necessary theories from the ground up. 📚👩🏫👨🎓
- Fundamentals: You must be comfortable with basic Computer Science fundamentals like LinkedList/Trees and have a grasp of concepts such as Heap Memory and Multithreading. 🚀
- Networking Basics: A working knowledge of L3 routing is essential, as the course will build upon these foundations.
- Learning Path: As we delve into implementation, you'll pick up new concepts in Networking, Project Planning, Feature Design, and Industry-level Coding Standards. 🛣️🔧
Join us on this exciting journey to master Network Protocol Development through a real-world coding project! 🚀🎉
Loading charts...