Part A – Networking Projects – Implement TCP/IP Stack in C
Part A – Networking Projects – Implement TCP/IP Stack in C, available at $64.99, has an average rating of 4.2, with 164 lectures, based on 198 reviews, and has 3814 subscribers.
You will learn about Implement Layer 2/3 of TCP/IP Stack by yourself from Scratch Writing Custom CLI commands to configure network topology Building Network Topology from Scratch Implement Routing and Switching Algorithms – The practical way Timers, GLthreads, Library integration, Makefile, Project modularization Techniques Managing and developing a big source code from scratch using git, a Version control System This is 100% Coding Course with minimal Theory In Every other interview in Networking Domain, You shall be asked to explain Basic Routing Concepts, So Do not miss this Course ! This course is ideal for individuals who are Students who have done Networking Course in their UG or Working Professionals trying to break into Networking Development Role or Those who want to separate them from the crowd or Those who want to achieve excellence , at par from others It is particularly useful for Students who have done Networking Course in their UG or Working Professionals trying to break into Networking Development Role or Those who want to separate them from the crowd or Those who want to achieve excellence , at par from others.
Enroll now: Part A – Networking Projects – Implement TCP/IP Stack in C
Summary
Title: Part A – Networking Projects – Implement TCP/IP Stack in C
Price: $64.99
Average Rating: 4.2
Number of Lectures: 164
Number of Published Lectures: 164
Number of Curriculum Items: 192
Number of Published Curriculum Objects: 192
Original Price: $19.99
Quality Status: approved
Status: Live
What You Will Learn
- Implement Layer 2/3 of TCP/IP Stack by yourself from Scratch
- Writing Custom CLI commands to configure network topology
- Building Network Topology from Scratch
- Implement Routing and Switching Algorithms – The practical way
- Timers, GLthreads, Library integration, Makefile, Project modularization Techniques
- Managing and developing a big source code from scratch using git, a Version control System
- This is 100% Coding Course with minimal Theory
- In Every other interview in Networking Domain, You shall be asked to explain Basic Routing Concepts, So Do not miss this Course !
Who Should Attend
- Students who have done Networking Course in their UG
- Working Professionals trying to break into Networking Development Role
- Those who want to separate them from the crowd
- Those who want to achieve excellence , at par from others
Target Audiences
- Students who have done Networking Course in their UG
- Working Professionals trying to break into Networking Development Role
- Those who want to separate them from the crowd
- Those who want to achieve excellence , at par from others
Student Level:Intermediate to Advanced to Working Professionals, Beginners in Coding pls excuse this course.
Talk to your Prof:Use this Project as your Final Year Under-Grad Project
Note:If you are buying this course, pls do not buy my other course on – “Integrate CLI interface to you C/C+++ Project”. It’s all videos that are already included in this course.
This is a 100% Coding based Course in C in which we will develop a TCP/IP Stack from scratch having Data Link Layer, Network Layer and Application Layer in Operation. This is one big project split up into 6 mini-projects. The development of the sister course (Part-B) is in progress.
This Course will set you ready for a core network developer’s role in the industry. If you are thorough with basics of L2 Routing including ARP, L3 routing, then probably you already have the required knowledge for this project-based course. If not, you should enroll in to my course – “Networking Concepts and Programming from Scratch” and at-least do section number : 3 to 5.For VLANs implementation section 6,7, and 8is required.We shall be implementing this theory in C now. If you have some other favorite language, feel free to do this course in that, I don’t mind, but I shall be explaining logic and showing the demos in C only.
In this course, We shall be implementing a TCP/IP Stack demo through 6 Networking Projects. All Below Projects should be done in the same sequence as listed.
Project 1 : Build a MultiNode Topology Emulation of Routers and Switches
Project 2 : Implement DataLink Layer (L2 routing), including ARP
Project 3 : Implement L2 Switching (Mac-based Learning and Forwarding)
Project 4 : Implement Vlan Based Mac learning and Forwarding
Project 5 : Implement Network Layer (L3 routing)
Project 6 : Case Study : Implement IP-Tunnelling (Optional)
In these mini Projects, we shall be implementing the packet Journey Upwards and Downwards through layers of TCP/IP Stack (= OSI Model). We shall be implementing the TCP/IP Stack !! There is minimal Socket Programming in this course. Not every Networking project has to be socket programming based.
Along the way, we shall be discussing and implementing the solution to new challenges we encounter while solving the problem. Based on how this course is accepted by students, I would add more projects to this course based on the student’s feedback.
After Doing These Projects, you shall be able to :
1. Tell why you need Data link layer and Network Layer
2. How to design a new Application protocol on a TCP/IP stack (just like ICMP, HTTP, etc all work on TCP/IP Stack)
3. Get your hands dirty with industry-level network programming.
4. Learn cooking up, parsing and reading the packet buffers
5. Understand End-To-End Architecture and Design of Network Application and TCP/IP Stack
6. Conquer Interviews for the role of Network Developer Engineer
7. Decorate your GitHub, and add a strong project to your HAT, Expected LOCs of this course shall exceed 10k !
This project will fill up the gap between theoretical knowledge and the Implementation version of it. How does it sound that you have written code by your own hands to resolve ARP, packet forwarding, etc. Decorate your resume and GitHub with this project.
This course is divided into Two Parts :
Part A – In this part of the course, we shall be building up the Network topology Infrastructure comprising of routers, switches, and links connecting them. Nodes can also exchange packets with their neighbors. Basically, we want to simulate a fully programmable and configurable network topology in this part of the course. This is Project 1.
Part B– The Configurable Network Topology build in Part A of the course shall be used to implement the Remaining five Projects [2-6] as listed above.
We shall be setting up all the required infrastructure to mimic the network topology – and that itself is a mini project altogether. We shall be creating nodes, links connecting nodes, configuring network parameters on nodes, sending and receiving traffic streams – All in one project. This is Megaproject, expected LOC may go to tens of thousands if we keep on adding TCP/IP stack features onto it. The sky is the limit.
The best thing about this project is – You will learn many other things along the journey, including setting up Timers, Network Topology Construction, Glthreads – A Glue way of Linked lists, Building Project using Makefile and I am not even talking about learning Software Designing skills. Additional Material has been added in the AppendixSection of the course. We shall be modularizing the project in separate folders, each folder contains code implementing a particular OSI Layer functionality, and Yes, We shall be doing it all from scratch.
Warning :
1. Absolute beginners, struggling with basic data structures and pointers, pls excuse this course. You are not prepared for this project. Pls, invest your time into learning basics first.
2. Machine Used:Ubuntu 19.04, GCC compiler. So my codes may not compile on your machine if you are using some other compiler or machine.
Table Of Contents :
********
PART A
********
[ PROJECT 1]
Section 1. KYC (Know your Course)
Section 2. Developing a Generic Graph Topology
-
Graph Data structures
-
Graph related APIs
-
Creating our first static graph
Section 3. Construction of a Network Graph Topology
-
Adding Network topology details to the graph
-
APIs to configure Network Topology
-
Get ready without first Hello World Network Topology
Section 4. Command-Line Integration
-
Integrate CLI Interface to the project
-
Write Custom Commands to Display Network Topology detail
Section 5. Communication Setup
-
Sending a packet to Nbr node on the outgoing interface
-
Listening and Monitoring Multiple Sockets
-
Receiving a packet on an interface
********
PART B
********
Section 6. Agenda of Part B
[ PROJECT 2]
Section 7. Getting Started with TCP/IP Stack Development
-
Interface Modes
-
Ethernet Header Format
-
Assignment on Ethernet Header Manipulation
-
Packet Processing Criteria
-
Packet Buffer Management
Section 8. Implement Layer 2 (DataLink Layer) – ARP
-
Get started with ARP Implementation
-
ARP Message Format and Example
-
Creating ARP Tables
-
CRUD APIs on ARP Tables
-
CLIs to work with ARP
-
ARP Cycle and ARP APIs
-
Preparing and Sending ARP Broadcast request msg
-
Processing ARP Broadcast Request msg
-
Sending ARP reply Msg
-
API to Start Ingress Journey of the Frame
-
Processing ARP reply msg and create an ARP entry in ARP table
-
ARP in Action
[ PROJECT 3]
Section 9. Implement Layer 2 (DataLink Layer) – L2 Switching
-
APIs to configure node as L2 switches
-
Setting up the new Topology with L2 switches and host machines
-
Implementing MAC learning and Forwarding algorithms
-
MAC Table Management of L2 switches
-
Testing L2 switching behavior using ARP
[ PROJECT 4]
Section 10. Layer 2 – Implementing Vlan Based Forwarding
-
Goals and Pre-requisites
-
802.1Q Vlan hdr format
-
Vlan Tagged Ethernet Header Data Structures
-
API to determine Tagged Vs Untagged frames
-
Tagged <–> Untagged Frame Conversion
-
Vlan Based MAC Forwarding – Further Roadmap
-
Frame Ingress Condition Table
-
Frame Ingress Completion
-
Frame Egress Condition Table
-
Egress Frame Completion
-
Test Vlan Based Forwarding
[ PROJECT 5]
Section 11. Setting Up Layer 3 Routing Infrastructure (Network Layer)
-
Goals and Pre-requisites
-
L3 Routing Table Setup
-
CRUD APIs for Routing Table Mgmt
-
L3 Route Installation
-
Defining IP HDr format
-
Adding Ping CLI
-
Network and Application Layer Interaction
-
L3 Routing Concepts Revisited
-
Forwarding Case
-
Direct Host Delivery Case
-
Local Delivery Case
-
Self-Ping Case
-
-
L3 Routing Flowcharts
Section 12. Layer 3 Routing Flowcharts Implementation
-
Payload Data Transfer from L2 to L3
-
Layer 3 Flowchart Implementation – Step by Step
-
Layer 3 Operations Flowchart Implementation
-
Layer 2 Operations Flowchart Implementation
-
Testing Beta Version of our Project
Section 13. On-Demand ARP Resolution
-
Problem Statement
-
Solution Strategy
-
Data Structure Enhancements
-
ARP Sane Entry Creation
-
ARP Pending List Processing
-
Final Demo of our Complete Project
[Project 6]
Section 14. Implement IP-IN-IP Encapsulation (Tunneling)
-
Implement IP-IN-IP Encapsulation (Tunneling)
Future Extension of the Project. Students are supposed to take this forward on their own.
Section 15. Routing between two Vlans (Inter Vlan Routing)
Course Curriculum
Chapter 1: What is this Course About ?
Lecture 1: Agenda
Lecture 2: Sequel Course
Lecture 3: Thanks Giving
Lecture 4: Pre-requisites
Lecture 5: Future Project Extensions
Lecture 6: Project Goals
Lecture 7: Join Telegram Group
Chapter 2: Generic Graph Construction
Lecture 1: Starting With Generic Graphs
Lecture 2: Feel the End Product of this Course
Lecture 3: Graph Modelling
Lecture 4: Graph Data Structures and Repository Access
Lecture 5: Graph Construction
Lecture 6: Graph APIs
Lecture 7: Makefile – Project Compilation
Chapter 3: Construction of Networking Topology
Lecture 1: Adding Networking Properties to Graph
Lecture 2: APIs to Add Networking Properties
Lecture 3: Code Walk to construct Network Graph
Chapter 4: Command Line Integration
Lecture 1: Introducing LibCli Library
Lecture 2: Steps To Integrate LibCLI library with our Project
Lecture 3: Implementing our first CLI
Chapter 5: Communication Setup
Lecture 1: Goals of this Section
Lecture 2: Design Discussion – Logical and Physical View
Lecture 3: Design Discussion – Physical View in Detail
Lecture 4: 8 steps of Implementation
Lecture 5: Implementing Step 1 and 2 – Sockets Creation
Lecture 6: Implementing Step 3 – Starting a Socket Monitoring Thread
Lecture 7: Implementing Step 4 – Packet Transmission
Lecture 8: Implementation Steps 5 – 8
Lecture 9: Test Demo
Lecture 10: Summary
Chapter 6: Part B – Agenda
Lecture 1: Part B – Agenda
Chapter 7: Getting Started with TCP/IP Stack Development
Lecture 1: Getting Started with ARP Implementation
Lecture 2: Interface Modes
Lecture 3: Ethernet Header Format
Lecture 4: Packet Processing Criteria
Lecture 5: Packet Buffer Management
Lecture 6: Right Shift of Packet Buffers
Lecture 7: A word of Warning !
Chapter 8: Layer 2 – Implementing ARP
Lecture 1: ARP Message Format
Lecture 2: ARP Message Format Example
Lecture 3: Creating ARP Tables
Lecture 4: ARP Table – CRUD APIs Prototypes
Lecture 5: ARP Table – CRUD APIs Implementation
Lecture 6: API to trigger ARP Resolution
Lecture 7: ARP CLIs to Add
Lecture 8: ARP Cycle
Lecture 9: ARP APIs – Sending ARP Request
Lecture 10: ARP APIs – Processing ARP Request
Lecture 11: ARP APIs – Sending ARP Reply
Lecture 12: ARP APIs – Processing ARP Reply
Lecture 13: Theory – Starting a Frame's Ingress Journey in TCP/IP Stack
Lecture 14: Implementation – Starting a Frame's Ingress Journey in TCP/IP Stack
Lecture 15: Demo – ARP In Action
Lecture 16: Summary
Chapter 9: Layer 2 – Implementation of L2 Switching
Lecture 1: Goals of this Section
Lecture 2: Pre-Requisites
Lecture 3: L2 Switch Vs L3 router
Lecture 4: Code Access For this Section
Lecture 5: Interface Modes
Lecture 6: L2 Switch Based Topology
Lecture 7: Mac Tables Setup
Lecture 8: Mac Learning and Forwarding – Quick Revision
Lecture 9: Entry Point for L2 Switching
Lecture 10: Implementing L2 Switching Algorithm
Chapter 10: Layer 2 – Implementing Vlan Based Forwarding
Lecture 1: Goals and Pre-requisites
Lecture 2: 802.1Q Vlan hdr format
Lecture 3: Vlan Tagged Ethernet Header Data Structure
Lecture 4: API to determine Tagged Vs Untagged Ethernet frame
Lecture 5: Tagged <–> Untagged Frame Conversion
Lecture 6: Tagged <–> Untagged Frame Conversion Steps
Lecture 7: APIs to Configure Vlan Memberships
Lecture 8: L2 Switching Topology
Lecture 9: Vlan Based MAC Forwarding – Further Roadmap
Lecture 10: Frame Ingress Condition Table
Instructors
-
Abhishek CSEPracticals
I build Networks ! -
Shiwani Nigam
Digital Marketing Executive -
Ekta Ekta
Facilities Manager
Rating Distribution
- 1 stars: 3 votes
- 2 stars: 3 votes
- 3 stars: 17 votes
- 4 stars: 67 votes
- 5 stars: 108 votes
Frequently Asked Questions
How long do I have access to the course materials?
You can view and review the lecture materials indefinitely, like an on-demand channel.
Can I take my courses with me wherever I go?
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!
You may also like
- Top 10 Language Learning Courses to Learn in November 2024
- Top 10 Video Editing Courses to Learn in November 2024
- Top 10 Music Production Courses to Learn in November 2024
- Top 10 Animation Courses to Learn in November 2024
- Top 10 Digital Illustration Courses to Learn in November 2024
- Top 10 Renewable Energy Courses to Learn in November 2024
- Top 10 Sustainable Living Courses to Learn in November 2024
- Top 10 Ethical AI Courses to Learn in November 2024
- Top 10 Cybersecurity Fundamentals Courses to Learn in November 2024
- Top 10 Smart Home Technology Courses to Learn in November 2024
- Top 10 Holistic Health Courses to Learn in November 2024
- Top 10 Nutrition And Diet Planning Courses to Learn in November 2024
- Top 10 Yoga Instruction Courses to Learn in November 2024
- Top 10 Stress Management Courses to Learn in November 2024
- Top 10 Mindfulness Meditation Courses to Learn in November 2024
- Top 10 Life Coaching Courses to Learn in November 2024
- Top 10 Career Development Courses to Learn in November 2024
- Top 10 Relationship Building Courses to Learn in November 2024
- Top 10 Parenting Skills Courses to Learn in November 2024
- Top 10 Home Improvement Courses to Learn in November 2024