HOMECOURSESSTUDENTSDONATIONSVIDEOSEVENTSTUTORIALSLINKSNEWSCONTACT


Tutorials :: The Linux Channel

Watch on Youtube - [1122//0] 0x181 Networking L2 L3 | Unicast, Broadcast & Multicast - Frames & Packets | Layer2 Slow Protocols ↗

Select a video series topic:


☆ Tutorials :: Arduino UNO Projects ↗


Tutorials :: Network Software Development

UDP sample socket code for Systems and Network software developers ↗
Wednesday' 15-Jul-2020
Here is my sample UDP socket code written in C. Unlike other versions you get commonly on-line this version is focused towards systems and network software developers and as a quick reference even for experienced software programmers. In this example/template, I am sending test raw binary data bytes from UDP sample client to registered UDP sample server. The code has documentation already in the form of comments (as you can see below). You can download my source below and you can use it directly in your projects or you can use the same for learning purposes to understand about user-space socket programming via IPv4 UDP transport layer protocol.

TCP vs UDP an Expert Opinion ↗
Wednesday' 15-Jul-2020

Design & Architecture of custom Dynamic Routing Protocols ↗
Wednesday' 15-Jul-2020

Tail Drop - by Network Schedulers to Drop Packets in Network Appliances ↗
Wednesday' 15-Jul-2020

Linux Networking Stack :: RFS: Receive Flow Steering ↗
Wednesday' 15-Jul-2020
Linux Networking Stack Receive Flow Steering (RFS) aim is to increase data-cache hitrate by steering kernel processing of packets to the CPU where the application thread consuming the packet is running. RFS relies on the same RPS mechanisms to enqueue packets onto the backlog of another CPU and to wake up that CPU.

Layer-2 (L2) Multicast Frame Deep Analysis ↗
Wednesday' 15-Jul-2020

Socket Options - Socket Programming - setsockopt(), getsockopt() ↗
Wednesday' 15-Jul-2020

Bufferbloat in a Networking Device or an Appliance ↗
Wednesday' 15-Jul-2020

iPerf tool - for network channel analysis, bandwidth tests and system & network benchmarking ↗
Wednesday' 15-Jul-2020

IP-in-IP Tunneling Demystified - VPN Tunnels ↗
Wednesday' 15-Jul-2020
There can be many ways one can architect VPN Networks. The end objective is to tunnel private IP (typically LAN subnets) within public IP Networks (such as Internet). You can establish such a tunnel in various creative ways, such as Transport Mode, Tunnel Mode, IP-in-IP tunneling, etc. Also you can choose any transport layer protocol of your choice such as send VPN traffic via TCP, or via UDP and so on.

Data-Plane and Control-Plane of a Networking Device ↗
Wednesday' 15-Jul-2020

Network MTU and Path MTU Discovery PMTUD - WAN and Internet Performance Optimization ↗
Wednesday' 15-Jul-2020

C code to check valid IP Address (IPv4) - Live Demo and Example ↗
Wednesday' 15-Jul-2020

Introduction to Network Processors (NPU) ↗
Wednesday' 15-Jul-2020

C√≥digo de soquete de amostra UDP para desenvolvedores de software de sistemas e redes ↗
Wednesday' 15-Jul-2020

TCP Link Bonding vs Multipath TCP (MPTCP) ↗
Wednesday' 15-Jul-2020

Linux Kernel Module to Drop Packets captured via netfilter hooks ↗
Wednesday' 15-Jul-2020
Here is my sample Kernel Module to drop packets (i.e sk_buff instance) captured via netfilter hooks. When you want to drop packets in your custom netfilter hooks make sure you never do a manual kfree_skb(skb) API call. Since it is anyway performed once the flow of the code moves out of your kernel module netfilter hook. All you need to do is to return NF_DROP to drop gracefully the desired packet. Here is my detailed video and a sample Linux Kernel module.

Smart NIC Cards ↗
Wednesday' 15-Jul-2020
NIC Cards (Network Interface Cards) traditionally contain controller chip which takes care of the core aspects, such as packet reception, buffering (till they are read by OS device drivers), etc. But these days increasingly modern NIC cards can perform several CPU Network Offload functions such as packet/frame checksum, etc. Such hardware offload features of modern NIC cards is crucial to process packets and support packet data transfer rates of around 1Gbps, 10Gbps, even 40Gbps and so on. But beyond that such as 100Gbps and so on, at times even a high-end Xeon/ Intel/ AMD processors will struggle if need to support transfer rates of around 100Gbps or beyond (situations like Link Bonding). These are the situations we need what we call as Smart NIC Cards. A Smart NIC card implements most of the network traffic processing on the NIC itself that would necessarily be performed by the CPU (i.e Operating System) in the case of a traditional NIC card.


☆ Tutorials :: Research and Projects ↗


☆ Tutorials :: Linux (user-space), Systems Architecture ↗

Join on-line Classes


☆ Tutorials :: Linux Kernel Software Development ↗


☆ Tutorials :: Linux Kernel Internals (PDFs) - by Ramin Farajpour ↗


☆ Tutorials :: Software Development (Programming) Tools ↗


☆ Tutorials :: Embedded Projects ↗

Join The Linux Channel :: Facebook Group ↗

Visit The Linux Channel :: on Youtube ↗


Join a course:

💎 Linux, Kernel, Networking and Device Drivers: PDF Brochure
💎 PhD or equivalent (or Post Doctoral) looking for assistance: Details
💎 ... or unlimited life-time mentorship: Details


💗 Help shape the future: Sponsor/Donate


Recommended Topics:
Featured Video:
Watch on Youtube - [1257//0] 0x180 Network OSI Model | Break the rules | Advance Networking | Demystifying OSI Model ↗

Roadmap - How to become Linux Kernel Developer - Device Drivers Programmer and a Systems Software Expert ↗
Wednesday' 15-Jul-2020
Many viewers and even sometimes my students ask me how I can become a kernel programmer or just device driver developer and so on. So I shot this video (and an add-on video) where I summarized steps and a roadmap to become a full-fledged Linux Kernel Developer.

Linux Kernel Module to Drop Packets captured via netfilter hooks ↗
Wednesday' 15-Jul-2020
Here is my sample Kernel Module to drop packets (i.e sk_buff instance) captured via netfilter hooks. When you want to drop packets in your custom netfilter hooks make sure you never do a manual kfree_skb(skb) API call. Since it is anyway performed once the flow of the code moves out of your kernel module netfilter hook. All you need to do is to return NF_DROP to drop gracefully the desired packet. Here is my detailed video and a sample Linux Kernel module.

Weekly News Digest - Week 02 - July 2020 ↗
Wednesday' 15-Jul-2020
The Linux Channel :: Weekly News Digest - Week 02 - July 2020
> Google is teaming up with Ubuntu to bring Flutter apps to Linux
> Linux kernel developers: This new BLM coding style avoids words like blacklist
> Zstd'ing The Kernel Might See Mainline With Linux 5.9 For Faster Boot Times
> Linux 5.9 To Bring Arm Memory Tagging Extension Support
> Linux Kernel Raising Compiler Build Requirement To GCC 4.9
> Linux Developers May Discuss Allowing Rust Code Within The Kernel
> Premio Unveils Intel 9th Gen Industrial Motherboard For Advanced Embedded And IoT Solutions

CEO, CTO Talk ↗
Wednesday' 15-Jul-2020

Arduino UNO - RO Water Purifier Controller ↗
Wednesday' 15-Jul-2020
Here is a Youtube VLOG of my DIY RO Water Purifier Controller done via Arduino UNO. I want the Arduino UNO to control the RO pump, so that it pumps for a specific duration and stops automatically. This is done via Opto-isolated 4 Channel 5V 10A Relay Board meant for Arduino UNO, Raspberry Pi or similar SoC boards which offers GPIO pins. To this relay I have connected the RO water purifier booster pump which works at 24V DC connected via 220V AC to 24V DC power supply adaptar. I have also connected a small active 5V buzzer to notify the progress and completion as it fills the tank/canister.

AT&T Archives: The UNIX Operating System ↗
Wednesday' 15-Jul-2020

Data-Plane and Control-Plane of a Networking Device ↗
Wednesday' 15-Jul-2020

Socket Options - Socket Programming - setsockopt(), getsockopt() ↗
Wednesday' 15-Jul-2020

Tour of my new Home Networking Lab within VirtualBox VM ↗
Wednesday' 15-Jul-2020

PyDelhi + PyData + ILUG-D + Linux Chix meetup mash @ Sarai on 17-Dec-2016 ↗
Wednesday' 15-Jul-2020


Trending Video:
Watch on Youtube - [688//0] 0x187 KERNEL | The Linux Channel | a High Performance Linux Kernel ↗

Linux Kernel dst_entry data-structure ↗
Wednesday' 15-Jul-2020



Recommended Video:
Watch on Youtube - [80//0] 0x17f NAS OS | OpenZFS code-walk | vdev APIs | vdev_open() | vdev_close() | vdev_resilver_needed() ↗