Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ AWS Certified Developer - Associate
Photoshop Graphic Design Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Mindfulness Personal Development Meditation Personal Transformation Life Purpose Neuroscience Emotional Intelligence
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Data Science
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee
IT & Software Network & Security Network Programming

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

C/C++ Linux Project, Network Socket Programming, Build TCP/IP Stack, Final Year Project, L2 & L3 Implementation in C
Rating: 4.2 out of 54.2 (68 ratings)
1,041 students
Created by Abhishek CSEPracticals, Shiwani Nigam, Ekta Ekta
Last updated 11/2020
English
English [Auto]
30-Day Money-Back Guarantee

What you'll 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 !

Requirements

  • Basic L2 and L3 routing knowledge is very essential
  • Good in Coding in C or any one main stream language
  • Must know how to work with git - atleast basics
  • Good with Pointers and Memory management Skills in C

Description

      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 8 is 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 Appendix Section 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)


Who this course is for:

  • 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

Course content

24 sections • 162 lectures • 14h 19m total length

  • Preview05:01
  • Sequel Course
    00:46
  • Thanks Giving
    00:11
  • Preview05:04
  • Future Project Extensions
    01:51
  • Preview02:38

  • Starting With Generic Graphs
    03:30
  • Preview07:14
  • Graph Modelling
    04:13
  • Very Imp : Create your own Git Repo for this Project
    1 question
  • Graph Data Structures and Repository Access
    10:56
  • Mandatory Assignment : Writing Generic Graph APIs
    2 questions
  • Graph Construction
    06:15
  • Graph APIs
    06:57
  • Makefile - Project Compilation
    04:24
  • Mandatory Assignment : Writing Generic Graph APIs - Part 2
    2 questions

  • Adding Networking Properties to Graph
    07:13
  • APIs to Add Networking Properties
    06:47
  • Mandatory Assignment : Using APIs to Add Networking Properties
    3 questions
  • Code Walk to construct Network Graph
    05:05
  • Mandatory Assignment : Writing Some Networking APIs
    7 questions

  • Introducing LibCli Library
    04:05
  • Steps To Integrate LibCLI library with our Project
    05:53
  • Implementing our first CLI
    10:12
  • Mandatory Assignment - Adding CLI
    1 question

  • Goals of this Section
    02:47
  • Design Discussion - Logical and Physical View
    03:34
  • Design Discussion - Physical View in Detail
    08:05
  • 8 steps of Implementation
    04:14
  • Implementing Step 1 and 2 - Sockets Creation
    05:50
  • Implementing Step 3 - Starting a Socket Monitoring Thread
    15:31
  • Implementing Step 4 - Packet Transmission
    08:01
  • Implementation Steps 5 - 8
    06:34
  • Test Demo
    04:56
  • Summary
    01:45
  • Mandatory Coding Assignment
    3 questions
  • Assignment : Design Related Questions
    2 questions

  • Part B - Agenda
    03:52

  • Getting Started with ARP Implementation
    02:32
  • Interface Modes
    05:27
  • Ethernet Header Format
    03:39
  • Assignment on Ethernet Header
    6 questions
  • Packet Processing Criteria
    06:23
  • Packet Buffer Management
    08:13
  • Preview06:12
  • A word of Warning !
    00:58
  • Assignment - Bug Fix
    2 questions

  • ARP Message Format
    05:34
  • ARP Message Format Example
    05:39
  • Assignment - IP Address Conversions
    2 questions
  • Creating ARP Tables
    03:22
  • ARP Table - CRUD APIs Prototypes
    06:01
  • ARP Table - CRUD APIs Implementation
    07:23
  • API to trigger ARP Resolution
    01:41
  • ARP CLIs to Add
    04:57
  • ARP Cycle
    03:57
  • Mandatory Assugnment - Writing an API
    1 question
  • ARP APIs - Sending ARP Request
    08:35
  • ARP APIs - Processing ARP Request
    03:50
  • ARP APIs - Sending ARP Reply
    05:42
  • ARP APIs - Processing ARP Reply
    01:47
  • Theory - Starting a Frame's Ingress Journey in TCP/IP Stack
    06:25
  • Implementation - Starting a Frame's Ingress Journey in TCP/IP Stack
    07:46
  • Demo - ARP In Action
    01:47
  • Summary
    01:15

  • Goals of this Section
    03:22
  • Pre-Requisites
    01:31
  • L2 Switch Vs L3 router
    02:52
  • Code Access For this Section
    01:04
  • Interface Modes
    04:32
  • L2 Switch Based Topology
    03:16
  • Mac Tables Setup
    06:43
  • Mac Learning and Forwarding - Quick Revision
    06:16
  • Entry Point for L2 Switching
    03:15
  • Mandatory Assignment - Frame Flooding by L2 Switch
    2 questions
  • Implementing L2 Switching Algorithm
    06:19

  • Goals and Pre-requisites
    01:52
  • Mandatory Assignment - Implement Packet Dump function
    1 question
  • 802.1Q Vlan hdr format
    04:45
  • Vlan Tagged Ethernet Header Data Structure
    03:24
  • Mandatory Assignment - API to determine whether given frame is tagged or not ?
    1 question
  • API to determine Tagged Vs Untagged Ethernet frame
    05:50
  • Mandatory Assignment - Based on Vlan Tagging and Untagging
    11 questions
  • Tagged <--> Untagged Frame Conversion
    03:53
  • Tagged <--> Untagged Frame Conversion Steps
    05:13
  • APIs to Configure Vlan Memberships
    09:12
  • L2 Switching Topology
    06:33
  • Vlan Based MAC Forwarding - Further Roadmap
    02:38
  • Frame Ingress Condition Table
    09:45
  • Mandatory Assignment - Writing Vlan Membership Test APIs
    2 questions
  • Frame Ingress - Quick Code Walk
    03:11
  • Frame Ingress Completion
    04:16
  • Starting with Frame Egress
    03:39
  • Frame Egress Condition Table
    05:04
  • Frame Egress Condition Table - A Quick Code Walk
    03:05
  • Mandatory Assignment - API to L2 flood the frame
    3 questions
  • Egress Frame Completion
    02:59
  • Mandatory Assignment - Testing our Vlan Implementation
    2 questions
  • Bug Fix - ACCESS port must operate in a Vlan
    2 questions
  • Problem of Layer 2 Loops
    2 questions
  • Mandatory Assignment on Vlan Based Forwarding
    3 questions

Instructors

Abhishek CSEPracticals
I build Networks !
Abhishek CSEPracticals
  • 4.4 Instructor Rating
  • 1,679 Reviews
  • 15,110 Students
  • 14 Courses

I have been engaged with coding and software for more than 8 years. 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. You’ll complete assignments and work on a project where you’ll use all the theory provided by me. I make sure you build a proper understanding and that you’ll get all the questions explained. Let me take the privilege to guide you and bring useful additions to your resume!

Shiwani Nigam
Digital Marketing Executive
Shiwani Nigam
  • 4.4 Instructor Rating
  • 1,679 Reviews
  • 16,381 Students
  • 14 Courses

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.

Ekta Ekta
Facilities Manager
Ekta Ekta
  • 4.4 Instructor Rating
  • 1,679 Reviews
  • 15,110 Students
  • 14 Courses

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.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.