[Haifux] Sockets in the Linux Kernel [was:Re: [HAIFUX LECTURE]Mesh networking; kernel, netlink and transport layer sockets - Rami Rosen]
Orna Agmon Ben-Yehuda
ladypine at gmail.com
Sun Jul 26 20:22:46 IDT 2009
Here is an updated, more extensive abstract. Slides are available
online at http://haifux.org/lectures/217/ .
Sockets in the Linux Kernel - Rami Rosen - Abstract
We will focus in this lecture about Linux Kernel sockets.
Specifically, we will deal with the implementation the following
sockets in the Linux kernel:
* UDP socket.
* Raw sockets.
* Unix Domain sockets.
* Netlink sockets.
We will describe the mechanism of sending and receiveing packets with
these types of kernel sockets, demonstrating it with short user space
applications. We will also deal with Control Messages (aka "ancillary
data") and demonstrate retrieving/setting data with Control Messages.
We will also demonstrate and its usage with these sockets. We will
discuss socket options and how to set and retrieve kernel socket
options from user space, with examples. We will give a short example
of UDP socket receiving data in asynchronous mode. We will discuss how
raw sockets are used in the familiar "ping" and "traceroute" utils. We
will discuss the usage of domain sockets as an IPC (Inter process
communication) mechanism. We will discuss netlink sockets as a
messaging subsystem between kernel and userspace, and demonstrate this
Note: Mesh networking, which is a leftover from the wireless lecture,
will not be included in this lecture (it will probably be dealt with a
This lecture is the fifth in the Linux Kernel networking lecture
series; it a sequel to the following lectures:
* Linux Kernel Networking: http://www.haifux.org/lectures/172/
* Advanced Linux Kernel Networking - Neighboring Subsystem; IPSec:
* IPv6 in the Linux Kernel (Advanced Linux Kernel Networking):
* Wireless in Linux: http://www.haifux.org/lectures/206/
On Sun, Jul 26, 2009 at 2:14 PM, Orna Agmon
Ben-Yehuda<ladypine at gmail.com> wrote:
> On Monday, July 27th at 18:30, Haifux will gather to hear Rami Rosen
> talk about:
> Mesh networking; kernel, netlink and transport layer sockets
> We will deal in this lecture with Mesh networking, kernel sockets,
> netlink/rtnelink sockets and transport layer sockets.
> This lecture is the fifth in the Linux Kernel networking lecture
> series; it a sequel to the following lectures:
> * Linux Kernel Networking: http://www.haifux.org/lectures/172/
> * Advanced Linux Kernel Networking - Neighboring Subsystem; IPSec:
> * IPv6 in the Linux Kernel (Advanced Linux Kernel Networking):
> * Wireless in Linux: http://www.haifux.org/lectures/206/
> However, the lecture is a stand alone lecture, so if you have not
> attended the previous lectures by Rami Rosen, you need not worry.
> We meet in Taub building, room 6. For instructions see:
> Attendance is free, and you are all invited!
> Future lectures:
> 10/8/09 GCC Profile Guided Optimization: Shachar Shemesh
> We are always interested in hearing your talks and ideas. If you wish
> to give a talk, hold a discussion, or just plan some event haifux
> might be interested in, please contact us at webmaster at haifux.org
More information about the Haifux