Tags
Language
Tags
May 2025
Su Mo Tu We Th Fr Sa
27 28 29 30 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
    Attention❗ To save your time, in order to download anything on this site, you must be registered 👉 HERE. If you do not have a registration yet, it is better to do it right away. ✌

    ( • )( • ) ( ͡⚆ ͜ʖ ͡⚆ ) (‿ˠ‿)
    SpicyMags.xyz

    Network concepts and Programming from Scratch

    Posted By: IrGens
    Network concepts and Programming from Scratch

    Network concepts and Programming from Scratch
    .MP4, AVC, 1500 kbps, 1280x720 | English, AAC, 128 kbps, 2 Ch | 17h 38m | 11.11 GB
    Instructor: Abhishek Sagar

    This course is about strengthening the Networking concepts and fundamentals with assignments and projects 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. Do various coding assignments and projects to hands-on the concepts

    11. Wheel Timers as a periodic packet dispatchers

    12. Understand the concept of TLVs

    13. Concept of packet Encapsulation

    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 backed by two Networking projects where we explain the problem statement with description in detail and guide the student from the beginning of the project towards completion of the project. The projects are completely in line with the concepts and Demos shown and taught in the course.

    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.

    Pre-requisite

    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.

    Curriculum

    0. Setting up Linux Development Environment on your machine

    For those who are not familiar with Linux Installation/environment
    Resource : Get started with Linux Development 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
    Resources : Helpful Link for IP Address Conversions - Link1
    Resources : Helpful link for IP address conversion - Link2

    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
    Resources : Layer 3 Routing - Another Comprehensive Example
    Loopback interface - purpose and configuring loopback interface
    Exercise on Layer 3 route installation, routing and forwarding of traffic

    6. 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

    7. Transport Layer

    Layer Goals
    Contrasting Layer2, Layer 3 and Layer 4 together
    TCP Vs UDP
    Resources : Read more about connection Oriented and Connection-less Service
    Concept of Headers stacking
    Concept of port numbers
    Linux System call interface

    8. Socket programming concepts

    Socket Programming Design
    Select System call
    Accept System call
    Concept of Multiplexing
    Server State machine
    Resources : TCP Vs UDP

    9. 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

    10. 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

    11. Wheel Timers - Periodic Packet based Dispatchers

    Wheel Timer Design
    Implementation
    Demonstration
    Coding Assignment

    12. 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


    Network concepts and Programming from Scratch