您的位置:首页 > 理论基础 > 计算机网络

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

2015-09-25 20:10 411 查看
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,的优点之一,就是内核可以启动传输,而不只是仅限于响应用户空间的请求而返回信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: