C 语言网络编程 — PF_NETLINK sockets

Posted 范桂飓

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言网络编程 — PF_NETLINK sockets相关的知识,希望对你有一定的参考价值。

目录

文章目录

PF_NETLINK sockets

Linux 提供了 4 种 User Process 和 Kernel 之间进行通信的 IPC(Inter-Process Communicate,进程间通信)方式:

  1. /proc
  2. ioctl
  3. sysfs
  4. PF_NETLINK sockets(Netlink Socket)

其中,前 3 种都只支持 User Process => Kernel 的单向通信,只有 Netlink Socket 支持双向通信,并且是一种异步全双工的通信方式。

在 Linux 中有大量的 Application 通过 Netlink Socket 与 Kernel 进行通信,例如:

  1. NETLINK_ROUTE(Route daemon):用于获取、设置路由与链路信息。
  2. NETLINK_FIB_LOOKUP(FIB 转发信息表查询)
  3. NETLINK_ISCSI(iSCSI 子系统)
  4. NETLINK_XFRM(IPSec 安全策略)
  5. NETLINK_USERSOCK(用户态 Socket 协议)
  6. NETLINK_FIREWALL(防火墙)
  7. NETLINK_NETFILTER(Netfilter 子系统)
  8. NETLINK_KOBJECT_UEVENT(内核事件向用户态通知):用于 Kernel 向 Userspace 的 udev 进程发送通知。
  9. NETLINK_GENERIC(Netlink 复用器):用于自行扩展子协议类型。

以上是关于C 语言网络编程 — PF_NETLINK sockets的主要内容,如果未能解决你的问题,请参考以下文章

PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理

SoC FPGA加accsytem加神经网络算子实现: 车牌识别BMP版本

体系编程SOC编程那些事儿

体系编程SOC编程那些事儿

BLE蓝牙SOC CC2540之一:基本的了解

uboot启动第一阶段详解——汇编代码部分start.S