《深入理解Linux网络技术内幕》阅读笔记(三)

来源:互联网 发布:yy免费协议软件 编辑:程序博客网 时间:2024/05/22 06:37

Netlink
Netlink套接字代表用户空间和内核的IP网络配置之间的首选接口。Netlink也可作为内核部分以及多个用户空间进程之间的消息传输系统。
通过Netlink套接字,你可以使用标准套接字API打开或关闭套接字,使用套接字传输数据或者接收套接字数据。
Netlink使用新的PF_NETLINK协议族,只支持SOCK_DGRAM类型,而且定义了几种协议,每一种都用于网络协议栈的不同组件(或一组组件)。例如,NETLINK_ROUTE协议用于大多数网络功能,如路由和邻居协议,而NETLINK_FIRWALL用于防火墙(Netfilter)。
使用Netlink套接字时,终端点通常是由打开此套接字的进程的ID(PID)标识,而特殊值0代表的就是内核。Netlink的功能之一就是传播单播和多播消息:目的地终端点地址可以是一个PID,一个多播群组ID或者两者的组合。内核定义Netlink多播群组的目的是传出特定种类事件的通知消息,而用户程序如果对这类通知信息感兴趣,可以向这些群组注册。
Netlink相对于其他用户-内核接口,若ioctl,的优点之一,就是内核可以启动传输,而不只是仅限于响应用户空间的请求而返回信息。

0 0
原创粉丝点击