Part B - Networking Projects - Implement TCP/IP Stack in C

Why take this course?
π Course Headline: π Dive into Network Socket Programming - Build Your Own TCP/IP Stack in C! π
Course Title: C/C++ Linux Project: Part B - Networking Projects
Course Description:
Welcome to the Part-B of the TCP/IP Stack Development Course Series! π₯οΈ This is a sequel course to Part-A where we implemented a pseudo TCP/IP Stack working in a virtualized topology. In this Course, we shall be taking our knowledge and skills to the next level by implementing more advanced and additional features to our Pseudo TCP/IP Stack, aiming to impart a more realistic flavor to it. π€
If you have signed up for this course, I presume you have completed Part-A of the course and are ready to embark on another thrilling journey into our project. This course is Advanced as compared to Part-A. In this course, we will delve deeper into TCP/IP stack development and explore how networking software is crafted. You will not only engage in networking-based programming but also continue with a typical Linux-based System Programming development journey because networking is inherently tied to system programming.
Student Level:
This course is designed for Intermediate to Advanced level students and working professionals. If you are a beginner in Coding, we recommend starting with Part-A of the course series before diving into this advanced material. π§βπ»π οΈ
Table of Contents:
- What is this Course all about?
- Understanding the scope and objectives of the course.
- Project 1: Interface Management and Statistics
- Enable/Disable an Interface
- Gathering Interface Rx/Tx Statistics
- Project 2: Implementing the Packet Generator
- Create and feed a packet stream into the topology
- Project 3: Implementing Routing Table Construction Algorithm
- Designing Data Structures
- Shortest Path First (SPF) Algorithm in Detail
- Implementation Strategy
- Testing SPF Algorithm Implementation
- Route Calculation
- Project 4: Logging Infrastructure
- Track Ingress and Egress packets per device per interface
- Track L3 Path taken by a packet from src to dst
- Project 5: Notification Chains (NFC)
- Introduction to NFC
- Understand with the help of an Example
- Writing a Generic NOTIF Infra code
- Writing TCP/IP Stack NFC
- Implement Publisher Subscriber APIs
- See NFC in Action
- Project 6: Working with Timers
- Implementing Ageism (Time to Live)
- Implement Timer State Machine
Course Outline:
Project 1: You'll start by managing network interfaces, enabling/disabling them, and gathering essential Rx/Tx statistics. This will give you a hands-on understanding of how network interfaces work at the system level.
Project 2: Moving forward, you'll create a packet generator that can feed packets into the topology, allowing you to simulate network traffic and understand the dynamics of data transmission.
Project 3: In this project, you'll implement a routing table construction algorithm. You'll learn about data structures, the Shortest Path First (SPF) algorithm, and how to effectively manage routes in a network.
Project 4: Here, you'll set up a robust logging infrastructure to track ingress and egress packets, as well as the L3 path a packet takes from source to destination. This will help you understand the flow of data within a network.
Project 5: You'll be introduced to Notification Chains (NFC), which is crucial for real-time networking applications. You'll learn by example and implement your own generic NOTIF infrastructure, followed by a TCP/IP Stack NFC and Publisher Subscriber APIs.
Project 6: Lastly, you'll work with timers to understand the aging of packets (Ageism) and implement a timer state machine. This will give you insight into how time-related events are managed within network operations.
Join us on this journey to master Network Socket Programming and the intricacies of building your own TCP/IP Stack in C. Let's transform theoretical knowledge into practical skills! π§ π»πͺ
Loading charts...