资料介绍
Netlink Socket
简介
Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE
但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink
进行应用与内核通信的应用很多,包括:路由 daemon(NETLINK_ROUTE),1-wire
子系统(NETLINK_W1),用户态 socket
协议(NETLINK_USERSOCK),防火墙(NETLINK_FIREWALL),socket
监视(NETLINK_INET_DIAG),netfilter 日志(NETLINK_NFLOG),ipsec
安全策略(NETLINK_XFRM),SELinux 事件通知(NETLINK_SELINUX),iSCSI
子系统(NETLINK_ISCSI),进程审计(NETLINK_AUDIT),转发信息表查询(NETLINK_
FIB_LOOKUP),netlink connector(NETLINK_CONNECTOR),netfilter
子系统(NETLINK_NETFILTER),IPv6 防火墙(NETLINK_IP6_FW),DECnet
路由信息(NETLINK_DNRTMSG),内核事件向用户态通知(NETLINK_KOBJECT_UEVENT),
通用 netlink(NETLINK_GENERIC)。
Netlink
是一种在内核与用户应用间进行双向数据传输的非常好的方式,用户态应用使用标准的
socket API 就可以使用 netlink 提供的强大功能,内核态需要使用专门的内核 API
来使用 netlink。
Netlink 相对于系统调用,ioctl 以及 /proc 文件系统而言具有以下优点:
1. 为了使用 netlink,用户仅需要在 include/linux/n