linux进程间通信 netlink,netlink, PF_NETLINK - 内核与用户之间的通讯

Netlink是一种在Linux内核与用户空间进程间传递消息的机制,常用于路由更新、防火墙规则等。它提供基于套接字的接口,支持多种类型的netlink家族,如NETLINK_ROUTE、NETLINK_FIREWALL等。Netlink是不可靠的数据包服务,可以通过设置标志NLM_F_ACK请求确认。Netlink消息由nlmsghdr结构体定义,包含消息类型、标志、序列号和进程PID等信息。
摘要由CSDN通过智能技术生成

SYNOPSIS 总揽

#include

#include

#include

netlink_socket = socket(PF_NETLINK,socket_type,netlink_family);

DESCRIPTION 描述

Netlink 用于在内核模块与在用户地址空间中的进程之间传递消息的。它包含了用于用户进程的基于标准套接字的接口和用于内核模块的一个内部核心 API。有关这个内部核心接口的资料没有包含在此手册页中。同样还有一个过时的通过 netlink 字符设备的接口也没有包含在此,它只是提供向下兼容特性。

Netlink 是一个面向数据包的服务。 SOCK_RAW 和 SOCK_DGRAM 都是 socket_type 的有效值。然而 netlink 协议对数据包 datagram 和原套接字(raw sockets)并不作区分。

netlink_family 选择核心模块或 netlink 组进行通讯。现有可指定的 netlink 的种类有:

NETLINK_ROUTE

接收路由更新信息,可以用来修改 IPv4 的路由表。(参见

rtnetlink(7))。

NETLINK_FIREWALL

接收 IPv4 防火墙编码发送的数据包。

NETLINK_ARPD

用以维护用户地址空间里的 arp 表

NETLINK_ROUTE6

接收和发送 IPv6 路由表更新消息。

NETLINK_IP6_FW

接收未通过 IPv6 防火墙检查的数据包(尚未实现)

NETLINK_TAPBASE...

NETLINK_TAPBASE+15

ethertap 设备实例。Ethertap 是从用户程序空间对以太网驱动程序进行仿

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值