1. Networking Concepts and Programming from Scratch
Function of TCP/IP Stack (OSI Model)
Explain the L2 routing concepts
Dynamic construction of L3 Routing Table
Socket Programming from scratch
L2switch and L3 router functioning
Packet journey through the layers of TCP/IP stack
Understand the concept of TLVs
Concept of packet encapsulation
Understand Domain Name System (DNS)
Virtual LANs (VLANs) and routing in VLANs
Broadcast domain and collision domain
Take Away:
--Confident at answering networking related question
--Learn linux system programming side by side
--Open up opportunities to networking/system programming companies
--Coding assignments and projects
--Socket programming concepts
2. Linux Inter Process Communication
Variuos IPC Techniques
IPC Technique 1 -Unix Domain Sockets
Data Synchronization - IPC Project part 1
IPC Technique 2 - Message Queue
Bi-Directional Communication
IPC Technique 3 - Shared Memory
Data Synchronization - IPC Project part 2
IPC Technique 4 -Signals
Data Synchronization - IPC Project part 3
IPC Technique 5 - Network sockets
Project on Socket Programming - IPC Project 4
Multiplexing on Different IPCs
Take Away:
--able to Design Application which require IPC
--Understand the Linux IPC programming interface
--Prepare for IPC based interview Questions
--How to choose the best IPC mechanism
3. Implement Remote Procedure Calls (RPC) from Scratch
Concept of Data Serialization and DeSerialization
Implementation Remote procedure calls
State Synchronization
4. Linux System Programming Techniques & Concepts
Header File Management
Creating Linux Libraries
Static & Dynamic Linking
Stages of Compilation Process
Writing Makefiles
Generic Programming
Iterative Macros
Glue based DataStructures
Opaque Pointers
TLV Based Communication
Machine Endianness
Understanding Virtual Memory
How stack Memory works - Procedure call and returns
Understanding CPU registers - ebp, esp, eax
Heap Memory Management,Heap Memory Management
Problem of Fragmentation
How Malloc works behind the scenes
Paging and page tables in details
Multi Level Paging and Demand paging
Memory Mgmt in Multi-thread Process
Take Away:
--Prepare for interview Questions
--Stack Memory, Stack overflow, Stack Corruption, Stack Registers
--Use of function pointers as Callbacks
--Understand Complete Memory Management in Linux
5. System Project - Write a Garbage Collector from Scratch
Understand why Leak happens
Implement Memory leak Detection algorithm
Print leak objects by application,Print leak objects by application
Detect Danging pointers
Interview Question: Why C doesn't have java like GC
6. Data Structures to Design and Implement Timers and Counters
TCP IP Stack layer functions
UDP Vs TCP
TCP ARQ Challanges
TCP Segments and Sequence No.
TCP Connection Management
Who is Client and Who is Server ?
3-way handshake Explained
Sequence Numbers Consumption Rules
TCP Connection Timeout and Exponential Backoff
TCP Timeout and Retransmission
TCP RTO Problems if computed Wrongly
Expectations from TCP when Segment loss occurs
TCP Exponential backoff
TCP Retransmission Ambiguity Problem
Karn's Algorithm
Karn's Algorithm Illustration
Redundant Retransmission due to dupACK
Selective Acknowledgement (SACKs)
TCP Data flow and Window Management
Data Accumulation - TCP Nagle Algorithm
TCP Probe Segments
Problem of Silly Window Syndrome (SWS)
TCP Congestion Control Procedures
Congestion Control Algorithms
Slow Start and Congestion Avoidance Algo Explained
Concept of Fast Recovery
Take Away:
-- Difference between Connection-Oriented and Connection-less state
-- TCP Internal functionality and Mechanism
-- Various other complexties of TCP protocol explained in a simplest possible way
-- Understand how TCP is designed and why
-- Understand TCP graphs and why they look like they are
-- handle any interview Question on TCP
7. Master Class - Understanding TCP/IP Protocol
8. Linux Kernel Programming Part 1 - The Netlink Sockets
9. Integrate CLI interface to your C/C++ Projects
10. Coding Project - Programming Finite State Machines
11. Part A -Networking Coding Projects - Implement TCP/IP Stack in C
Part A -Potential Final Year Project
Implement Layer 2/3 of TCP/IP Stack by yourself from scratch
Building Network Topology from scratch
Timers, GLtreads,Library integration, Makefile, Project modularization Technique
This is 100% Coding Course with minimal Theory
Writing Custom CLI commands to configure network topology
Implement Routing and Switching Algorithms - The practical way
Managing and developing a big source code from scratch using git,a Version control System
In Every other interview in Networking Domain, You shall be asked to explain Basic Routing Concepts
Use this Project as your Final Year Under-Grad Project
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)
Take Away:
-- 1. Tell why you need Data link layer and Network Layer
-- 2. How to design a new Application protocol on a 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 Enginee
-- 7. Decorate your GitHub, and add a strong project to your HAT
12. Part B - Networking Coding Projects - Implement TCP/IP Stack in C
Write a fn to request alloc/dealloc block of Memory from Heap Memory Segment
Implement a fn to (de)allocate Virtual Memory Page
Use mmap() for VM page (De)Allocation
Rocky Road
Minimize Fragmentation Problems
Generate Heap Memory usage statistics
Catch Memory Leaks
Implement Best fit
Understand how Malloc and Free works behind the scenes
Implement your own malloc and free system calls
Handle Internal and External Fragmentation
Implement Block Splitting And Mering Algorithms
Take Away:
-- How will you design your own heap Memory Manager?
-- What is the data structure employed for Heap Memory Management?
-- What is the time complexity to allocate memory to a process?
-- How free( ) knows how much memory to free?
-- How to get rid of Memory Fragmentation?
13. Operating System Project - Implement Heap Memory Manager in C
Write a fn to request alloc/dealloc block of Memory from Heap Memory Segment
Implement a fn to (de)allocate Virtual Memory Page
Use mmap() for VM page (De)Allocation
Rocky Road
Minimize Fragmentation Problems
Generate Heap Memory usage statistics
Catch Memory Leaks
Implement Best fit, Worst fit, First fit,
Understand how Malloc and Free works behind the scenes
Implement your own malloc and free system calls
Handle Internal and External Fragmentation
Implement Block Splitting And Mering Algorithms
Take Away
-- How will you design your own heap Memory Manager?
-- What is the data structure employed for Heap Memory Management?
-- What is the time complexity to allocate memory to a process?
-- How free( ) knows how much memory to free?
-- How to get rid of Memory Fragmentation?
-- How to get rid of Memory Fragmentation?
14. Master Class - Multithreading and Synchronization in C