Part B - Network Protocol Development in C ( from Scratch )

Network Coding Project for Network Core Developers, Linux, System Programming, Operating systems, Projects in C/C++
4.83 (6 reviews)
Udemy
platform
English
language
Software Engineering
category
Part B - Network Protocol Development in C ( from Scratch )
830
students
8 hours
content
Jul 2024
last update
$19.99
regular price

Why take this course?

πŸŽ‰ Welcome Back, Network Coding Enthusiasts! 🌐

Course Instructor: Abhishek CSEP

πŸš€ Course Title: Part B - Network Protocol Development in C (from Scratch)

🌍 Course Headline: Network Coding Project for Network Core Developers, Linux, System Programming, Operating Systems, Projects in C/C++


Greetings & Kudos! πŸ†

First of all, a hearty congratulations on completing the Part-A of this Course! You've successfully navigated through developing the Adjacency Management feature of the protocol. I trust you've gained a solid grasp of managing timer-based state machines and are now ready to tackle the next phase of your networking coding journey.


Dive into Phase 2: Link State Database Management πŸ”§

As we embark on Phase 2 of the Project - Link State Database Mgmt., every router will leverage its Adjacency Objects to build a local Link State Database (LSDB). The objective is clear: each router must share its LSDB with every other router in the network running the ISIS protocol. This ensures that all routers maintain a coherent and consistent view of the Intermediate System to Intermediate System (IS-IS) topology, which is crucial for seamless network operations.


Course Breakdown & Objectives πŸ“š

This full course series is divided into 3 parts: Part A and B are live, with Part C under development as of December 21, 2021. In the next installment, we will delve into the following key concepts:

  1. Packet Flooding: Understanding how packets are initially sent out to populate LSDBs.
  2. Building the Link State Database (LSDB): Constructing a complete LSDB from received packets.
  3. Link State Database Synchronization: Ensuring LSDBs across different routers remain in sync.

We will continue to utilize timers and venture into the realm of asynchronous programming. This project will challenge you to think on your feet and adapt to real-world network protocol development scenarios.


Transform Your Skills with Hands-On Experience πŸ”¬

The aim of this project is to guide you through an end-to-end implementation of a typical network protocol, using a routing protocol as our case study. The logistics for a network protocol implementation typically involve:

  1. Configuration via Command Line Interface (CLI).
  2. Displaying internal states and results through CLIs.
  3. Reacting to configuration changes, such as link status modifications or IP address updates.
  4. Computing and installing results in relevant tables (Routing Information Base, MAC Tables, etc.).
  5. Adapting to topological changes, like link or device failures.
  6. Time-out stale data structures when necessary.
  7. Periodically generating or processing protocol packets.
  8. Adding new features to an existing, functioning codebaseβ€”a common task in software engineering.

Given the project's size (expecting around 10k LOCs), you'll also have the opportunity to master:

  1. Organizing code in header and source files.
  2. Modularizing your codebase, keeping different features in separate source files.
  3. Testing new features and ensuring they complement rather than disrupt existing functionality.
  4. Utilizing version control systems, like GitHub, to maintain code commits.
  5. Debugging techniques, such as gdb and Valgrind.

Your Journey with Real-World Application Development πŸš€

This project is a substantial endeavor (around 10k LOCs) that will allow you to gain hands-on experience in a real-world application context. It's through projects of this scale that you can apply the theoretical knowledge and techniques you've learned, solidifying your expertise as a network protocol developer.

Don't miss this opportunity to transform your skills and contribute meaningfully to the field of network programming. Let's embark on this exciting journey together! πŸš€πŸ’»

Loading charts...

4323276
udemy ID
28/09/2021
course created date
15/11/2021
course indexed date
Bot
course submited by