Network Concepts and Programming from Scratch

    Add a header to begin generating the table of contents

    Network Concepts and Programming from Scratch

    Network Concepts and Programming from Scratch

    Networking course with fundamental concepts in depth with TCP/UDP/HTTP Socket Programming for beginners to expert

    What you’ll learn

    Confident at Answering Networking Related Question
    Open up opportunities to Networking/System programming Companies
    Get familiar with Linux and Learn Linux System programming side by side
    Build Github portfolio, strengthen your employability
    Decorate your Resume with projects done in this Course
    Learn Networking concepts at all Layers of OSI Model
    Course content has been designed keeping the MNCs interviews in Mind
    Coding Assignments and Projects
    Become a Networking professional Developer
    Master designing and Writing TCP/UDP Servers in Linux environment
    Build & Decode the complete packet from scratch
    Concept of Packet Encapsulation
    L2 and L3 Routing, Vlan based Routing

    Network Concepts and Programming from Scratch


    Basic UG course on Networking
    Basic programming skills in C is required


    This course is about strengthening the Networking concepts and fundamentals with assignments side by side with theory. Through this course you will be able to :

    1. Understand the Functioning of TCP/IP Stack (OSI Model). Understand the function of each layer in TCP/IP stack in good detail.

    2. Explain the L2 routing concepts – Mac Addresses and ARP

    3. Explain the L3 routing concepts – IP Addresses and IP protocol

    4. Understand various ways to design a Linux TCP/UDP server program in C

    5. Understand Socket programming in C

    6. Understand the Networking devices functioning – L2 switch and L3 router

    7. Understand packet Journey through the layers of TCP/IP stack

    8. Design and implement HTTP Webservers from scratch

    9. Read and manufacture the network packets from scratch

    10. Understand the concept of TLVs

    11. Concept of packet Encapsulation

    12. Understand Domain Name System (DNS)

    13. Virtual LANs (VLANs) and Routing in VLANs

    14. Broadcast Domain and Collision Domain

    We Understand – Networking by its nature is inclined towards being a theoretical subject of study. To arouse the interest of the students ,we elaborate each and every topic of this course through an assignment or project.

    This course is thorough. We explain the design, discuss the code flow and then guide the audience how to implement the particular concept design in detail in a step by step manner. All you need is a Linux OS running on your system to do this course.

    Who should do this course ?

    This course is meant for UG Computer science students, job seekers and professional developers. This is MUST do course for those who want to join MNCs as a developer.

    The topics covered in this course are of utmost importance from interviews aspects and students graduating in computer science and looking to seek an opportunity in MNCs as a developer should have Networking concepts at his/her finger tips.

    Better to have done Networking under graduate course, not mandatory.

    Job seekers trying for the position of Networking developers in product based MNCs System software development including Networking is an evergreen area. Internet will not going to be doomed ever.


    There is no pre-requisite for this course, however, it shall be advantage if you know a little of C.

    We designed this course assuming student is a complete beginner in Networking and we raise the level of course gradually as we move from Basic to advance Networking concepts.

    Also, Please just do not sit and watch my codes. Write your own codes, even if it is same as mine !

    We have a strong reasons to choose C as a language for this course:

    1. The entire core networking development work is being done in C in industry. So, this reason alone is good enough that you should learn network development in C if you are aiming to join industry as a network protocol developer.

    2. Network equipment need to interact with underlying hardware – the ASIC chips. What could be a better language other than C when it comes to interact and program the hardware.

    3. C is middle level language – not as low as assembly, neither as high as Java/Python.

    In C, its the programmer’s responsibility to write every line of code to get the task done, unlike Java/Python which provides rich rest of libraries to do the most tasks for you.

    Using High Level Languages for learning network programming would obscure the low level details of networking

    – that is what is going behind the scenes. If you are are beginner in network programming, you must learn things from scratch and only C provides you the opportunity to do that. So, you must do all your assignments in C.

    4. Networking is all about cooking up the packets and sending it out of wire.

    C will allow you to cook packets exactly the same way as you would like them to appear on wire. Lot of Bit level programming.

    5. If you are a beginner in Networking, pls refrain from learning network programming in High Level Languages such as Java Or Python. It is not job oriented thing to do in networking domain.

    No Third Party libraries

    Whatever logic you implement, you need to implement it from scratch.

    This course do not suggest taking help of any third party library to get the jobs done.

    Use of external libraries completely defeats the purpose of the course.

    However, it is recommended to use third party libraries for commonly used data structures such as linked lists/Trees/Queues etc which saves a lot of time implementing these data structures.

    What else along with the course ?

    If you are aiming to become a developer, then, besides strong in Data structure and Algorithms, you should have clarity of concepts related to other Linux utilities.

    Networking is all about system programming, and you would be interested in learning other linux concepts of prime importance such as Inter Process Communication, Remote Procedure Calls etc.

    Please take a look at my other courses in this regard.

    These courses will summed you up as a more competitive developer in Networking & System Programming domain.

    See what students are saying about this course

    Just Take a Look at These Top Rated Reviews (Browse review section to verify these reviews)

    ***** What a Fantastic Course!!! I really appreciate the efforts Abhishek has put in this course.

    He has put his sweat and heart into it.

    The way he explains things keeps you hooked on to this course.

    He directly gets TO THE POINT without beating around the bush.

    No author of any networking book can explain things like Abhishek is doing.

    What Abhishek is doing is that he is explaining the Meat of the subject.

    One would have to read 10 books to understand this. or perhaps more.

    There was a hunch in my heart that dont know networking clearly.

    This course meets my expectations with respect to content, clarity and teaching style with proper presentations.

    This course improves your understanding and removes the fear of not knowing…

    not only that, it injects a good amount of confidence about your knowledge of Networking…Thanks for coming up with such a course. Thanks Again.

    ***** Come across right course at right time.

    This course seems cover all important areas of networking. Author explains the topics in good detail and with good pace.

    This course looks like designed to beat technical interviews.

    ***** Great Course, instructor is very thorough and provide quick guidance and clear any doubts promptly with high availability.

    I really enjoyed this course. Networking has been a tough subject for me to learn, but this course has made it quite easy. I now have my concepts thoroughly clear

    ! Thanks Abhishek, and Udemy.

    ***** I am working as Firmware/Embedded engineer, and the courses from this guys are goddamn blessing.

    In the real industry, as he mentioned earlier, all network programming or Linux system programming must be implemented with C cuz C is a perfect language for accessing memory spaces and customizing serial communication with other chips.

    In the real industrial fields, no one is gonna teach you.

    You are the only one who needs to figure it out by yourself cuz everyone wishes you not to excel in workplace.

    Only one person can be a manager or supervisor. Take this guy’s courses.

    Needless to say, quality guaranteed. If I could do hacking on this site, i am gonna crash his lectures. I do not want other people to get benefits from his lectures.

    It would be best if he makes a lecture for “making Operating System from scratch” 🙂

    Warning : This course has auto system-generated subtitles which may not be perfect. Please disable subtitles as per your convenience.


    0. Setting up Linux Development Environment on your machine

    For those who are not familiar with Linux Installation/environment

    1. OSI Model Vs TCP/IP Stack

    Data Encapsulation and Data Decapsulation

    Headers Cascading

    Ingress and egress Journey of packet through a TCP/IP Stack

    Big Picture

    2. Multi-node setup environment on your machine

    Setup Multinode Cluster of Virtual machines on your machine

    Local and Remote Subnets

    Layer 3 Route Semantics

    Configure Layer 3 routes in nodes

    Understand L3 Routing table semantics

    3. Subnetting and IP address

    Understand Subnets

    Differentiate between local and remote subnets

    IP Address assignment scheme/policy

    Data Delivery

    Understand MAC addresses and their use

    Calculation of Networking ID, Broadcast address and Cardinality of a subnet

    Understand the relationship between L3 routers and Subnets

    Understand Point-to-Point links

    MAC layer and IP rules of packet rejection/acceptance

    Broadcast Addresses

    4. Layer 2 Networking concepts

    L3 Router as a gateway to subnet

    Protocol Identifier fields at each layer

    Ethernet header format

    How Ethernet hdr makes L2 routing possible

    ARP (Address resolution protocol)

    ARP table population and use

    Step by Step ARP protocol functioning

    Assignment on ARP

    Layer2 Switch – How it works

    MAC address table

    Step by Step description of L2 Switch functioning

    Problem of Layer Thrashing

    5. Layer 3 Networking concepts

    Relationship between Layer2 and Layer3 routing

    Explained the dependency of two layers over each other

    Configuring Layer 3 routing table

    Semantics of a Layer 3 route

    Layer 3 route look up

    Concept of Longest prefix match

    IP Header – fields you should know

    Network Layer Operations

    Step by Step description of L3 routing routing

    Loopback interface – purpose and configuring loopback interface

    Exercise on Layer 3 route installation, routing and forwarding of traffic

    BroadCast and Collision Domain

    6. Virtual LANs (VLANs)

    LANs and why they are outdated today

    VLANs – The purpose

    802.1Q VLAN hdr

    Rules of Vlan Tagging

    Vlan Aware L2 Switches

    Vlan based L2 routing

    Other Vlan Benefits

    7. Router to Vlan Forwarding

    Convept of SVI interfaces

    SVI – VLAN Binding

    Router to Vlan Forwarding – Step by Step

    8. Inter Vlan Routing

    Two Step Process

    From Src host Machine to Gateway L3 router

    From Gateway L3 router to Dst host machine

    Exercise and more examples

    9. Network troubleshooting tools

    How ping works – ICMP protocol description

    Networking applications troubleshooting utilities – ping, wireshark, tcpdump

    Capturing the packets and examine its contents using tcpdump

    10. Transport Layer

    Layer Goals

    Contrasting Layer2, Layer 3 and Layer 4 together

    TCP and UDP – Properties of two protocols

    TCP Vs UDP

    Understanding TCP in Detail

    Concept of Headers stacking

    Concept of port numbers

    Linux System call interface

    11. Socket programming concepts

    Socket Programming Design

    Select System call

    Accept System call

    Concept of Multiplexing

    Server State machine

    12. Application Layer

    Different ways to implement Sockets

    on Top of Transport layer

    on Top of Network Layer

    on Top of Data link layer

    Designing HTTP Webserver from scratch

    HTTP Webserver Implementation

    Custom application sockets

    13. Domain Name System

    What is DNS ?

    DNS Architecture and Design


    Hosting a website

    DNS Resolver

    DNS Query types

    Iterative Query

    Recursive DNS Query

    Reverse DNS Query


    14. IP-in-IP Encapsulation/Tunneling

    What is IP-in-IP Encapsulation ?

    Why we need IP-in-IP Encapsulation ?

    How Encapsulated packet is routed in the network ?

    Two scenarios using IP-in-IP Encapsulation

    15. Concept of TLVs

    What are TLVs

    Why we need TLVs

    Writing a TLV decoder

    Benefits of TLVs in Network communication

    STREAMS – Data Structure

    TLV (De)Serialization using STREAMS


    14 June 2019 – Added Section on TCP

    06 Oct 2018 – Added Section 6 On VLANs

    07 Sept 2018 – Added Section 11, Domain Name System

    13 July 2018 – Added Section 12, IP-in-IP Encapsulation/Tunneling

    17 June 2018 – Added Section 10, The Application Layer and HTTP Webserver Design & Implementation

    10 June 2018 – Added Section 15, The concept of TLVs

    Who this course is for:

    UG students, PG Students
    Those looking to build a career in Networking Domain
    Coding lovers who love to build projects and see things in Action
    Those, who want to distinguish themselves from Crowd

    Course information :

    BestSeller | h264, yuv420p, 1280×720 |ENGLISH, aac, 44100 Hz, stereo | 22h 33 mn | 15.01 GB
    Instructor: Abhishek Sagar, Shiwani Nigam

    Course Link :

    Key words :

    Course Network Concepts and Programming from Scratch.

    Udemy Network Concepts and Programming from Scratch.

    Download Network Concepts and Programming from Scratch.

    Network Concepts and Programming from Scratch.

    Likk Download :

    SamaUp : – 13.7 GB

    UpToBox : – 14.7 GB
    Downlod Parted 4 GB For link :

    SamaUp : – 4.2 GB – 4.2 GB – 4.2 GB – 1.0 GB

    File-Up : – 4.2 GB – 4.2 GB – 4.2 GB – 1.0 GB

    UpToBox : – 4.5 GB – 4.5 GB – 4.5 GB – 1.1 GB

    See More

    With regards CourseDown.Com

    Sorry, we couldn't find any posts. Please try a different search.

    Links Download

    Scroll to Top