Part A - Network Protocol Development in C ( from scratch )
What you'll learn
- Understand how Network Protocols are implemented on Network Devices
- Implement new features incrementally
- Packet processing, Update protocol data structures through packets processing
- Implement complex protocol state machines and Network Algorithms
- Debugging and troubleshoot code to resolve issues
- The AIM of this project is to cycle you through the experience of end-to-end implementation of a typical network protocol
- Basic L2 and L3 Networking knowledge
- Should be excellent with pointers, pointer arithmetic
- Must understand memory manipulations in C programming
- Patience, fighters, challengers, winners
What is this Course all about?
This Course presents the Case study in which we implement the Pseudo Interior Gateway Protocol similar to OSPF (Open Shortest Path First) & ISIS (Intermediate System to Intermediate System). Both ISIS and OSPF are IGP protocols that fall under the category of link-state protocols and achieves the same objectives. Don't worry, We shall cover all necessary theories regarding what we shall be going to implement in the project before we hit the first line of code of the project.
This full course is divided into 3 parts - Part A, Part B, and Part C out of which Part A and B are Live, and Part C is under Development as of 19 Oct 2022.
We shall implement the Simplified version of the actual ISIS protocol using our tcp-ip stack library. The goal is to learn the nuances involved in implementing a typical Network protocol on a device from absolute scratch. You will be doing it all your life once you join the industry, but here, this case study aims at giving you firsthand experience regarding what it takes to implement a typical Network protocol on a (simulated) device.
I bet if you are giving an interview in the company for a network developer role, entry-level up to 2-3 yrs of experience, or making a cross-domain switch into Networking Development, seeing the above mention of the project in your resume would give goosebumps to the interviewer. If you could answer cross-questions (I shall be covering in this Course) – you shall be selected without any doubt. Maintain GitHub to present your codes to him if asked.
The AIM of this project is to cycle you through the experience of end-to-end implementation of a typical network protocol. In this case study, we have chosen a routing protocol as an example, but the high-level logistics involved to implement a typical network protocol are more or less the same. For example, a typical network protocol has to:
Configurable via CLIs
Show internal states and results through show CLIs
Respond to generic configuration changes ( such as link shut-down, IP Address on interface change, etc)
Compute results and install the results in Tables (Routing Information Base, MAC Tables, hardware Tables, etc )
Respond to Topological Changes (link failures, device failures, etc )
Time-out stale Data structures if any.
Periodically Generate Or Process Protocol packet
How to add a new feature to the existing working Protocol Codebase. (This is what you shall be doing all your life as a software engineer !!)
Since the project is quite big (I am expecting around 20k LOCs), you would also get the opportunity to learn how to :
Organize the code in header and src files
Modularize the codebase: How to keep the code of different features in different src files
Testing the new feature, and cross-check it doesn’t break existing features
Maintain Code Commits through Version control system ( Github in this case )
Bug Fixing, and exercise various debugging techniques (gdb, Valgrind, etc )
Needless to say, you Can’t exercise the above points unless you do a project of considerable size.
Pre-requisites to do this Course
Needless to say, this project is very challenging, and you need to be reasonably good at Data Structures and Algorithms in C/C++ programming. If you are still struggling with LinkedList/Trees or other common Computer Science basic fundamentals, I would not recommend you spend time on this project – rather work on building your basics first. There is no point in showcasing this project on your resume while at the same time you cannot answer other fundamentals such as questions on Heap Memory, Multithreading, etc, or fail miserably in reversing a linked list.
Also, I shall assume that you have no background in Networking routing protocol (but do possess Networking Basics such as L3 routing, etc ) therefore I shall begin from absolute scratch, covering all necessary theories before we start coding. Along the journey in the implementation, we shall pick up various new concepts related to Networking, Project Planning, feature designing, or Coding Standards at the Industry level.
Who this course is for:
- Core Developers aiming to work in Networking / Distributed Systems / System Programming side
- Not for those seeking non-development roles ( This is pure Dev oriented Course )
- Not for those still struggling with basic data structures, basic C programming concepts
- Working professionals, Job Seekers, domain changers to Networking Dev, Learners, starving for knowledge
I have been engaged with coding and software for a decade now. I am a Networking developer at MNC. My rich working experience is backed by graduation from IIT Bombay as an MTech specialist. I am restless for more in-depth knowledge, and always working out the ways to integrate what I know in practical ways. I am always happy to train and encourage people on Udemy – the next-gen education platform.
I will help you to strengthen the networking concepts and fundamentals in a very practical way. I also hones in System Software Development, Linux System Programming and Network Software Development. I love to create courses on unique non-standard topics, and projects. Check my catalogue, you will find couple of project based courses which you can add to your resume.
You’ll complete assignments and work on a project where you’ll use all the theory. I make sure you build a proper understanding and that you’ll get all the questions and doubts answered. Let me take the privilege to guide you and bring useful additions to your resume !
Hi, I am Ekta, a facility Manager for Csepracticals. I am responsible for the maintenance and upkeep of an organization’s infrastructure, ensuring that they meet legal requirements and health and safety standards.
I ensure that the facility is operating as it should on a daily basis by completing daily inspections and conducting proactive and reactive maintenance.
Hi, Myself Shivani Nigam, PhD in Marketing. I expertise in researching the consumer behavior in the context of purchasing the products online. I take the responsibility of marketing the online content (Udemy courses) on this platform.
I also ensure the courses are delivered with perfect Audio/Video Quality by technical Instructors, and ensures that students queries and doubts are addressed by technical instructors with priority.