Linux
Table of Contents
- Introduction
- Basics of Linux Networking
- Packet Processing
- Packet Handling
- Traffic Control
- NAPI
- Miscellaneous
Introduction
A collection of Linux networking basics and internals.
Basics of Linux Networking
- A Beginner’s Guide to Linux Networking Fundamentals
- How exactly are NetworkManager, networkd, netplan, ifupdown2, and iproute2 interacting?
- Ubuntu Networkd vs NetworkManager: Which One Should You Use?
Packet Processing
- Queueing in the Linux Network Stack
- Kernel-bypass techniques for high-speed network packet processing
- Illustrated Guide to Monitoring and Tuning the Linux Networking Stack: Receiving Data
- How Linux processes your network packet
- SYN packet handling in the wild
- Listening to Networks
- The Network Packet’s Diary: A Kernel Journey
- Path of a Packet in the Linux Kernel Stack
- New API (NAPI)
Packet Handling
- Socket
- socket(7) describes the Linux networking socket layer user interface and socket(2) creates an endpoint for communication and returns a file descriptor that refers to that endpoint.
- What the numbers
2
and7
mean: The Linux man-pages project (check ‘intro’ pages)
- What the numbers
- Socket/Address family (
AF_INET
,AF_INET6
, etc.) - Socket type (
SOCK_STREAM
,SOCK_DGRAM
, etc.)
- socket(7) describes the Linux networking socket layer user interface and socket(2) creates an endpoint for communication and returns a file descriptor that refers to that endpoint.
- bind(2)
- recvmsg(2)
- System calls: syscalls(2)
- sysctl(8) system administration command to configure kernel parameters at runtime.
Traffic Control
- tc(8) stands for ‘Traffic Control’ and it shows and manipulates traffic control settings.
NAPI
- NAPI: New Application Programming Interface
- NAPI is a part of the packet processing framework of Linux and provides interrupt mitigation and packet throttling to improve the performance of high-speed networking.
- New API (NAPI)
- What are the advantages NAPI before the IRQ Coalesce?