《深入理解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,的优点之一,就是内核可以启动传输,而不只是仅限于响应用户空间的请求而返回信息。
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,的优点之一,就是内核可以启动传输,而不只是仅限于响应用户空间的请求而返回信息。
相关文章推荐
- HTTP Live Streaming协议草案各版本加入的新特性
- WebForm总结_HttpModule原理图
- 面试知识准备:TCP、UDP总结
- tcpdump
- WebForm总结Day01_一般处理程序HttpHandler
- Python一个命令开启http下载服务器
- 多个路由器无线桥接,共享网络
- hihocoder 1236(2015北京网络赛 J题) 分块bitset乱搞题
- Winsock网络编程
- C# 热敏打印机 Socket 网络链接 打印 图片 (二)
- LAMP组合的编译安装(httpd 2.4+mysql 5.5+php 5.4)
- CentOS6.6自带网卡驱动r8169与网卡芯片不匹配导致网络不通
- Linux下Socket网络编程send和recv使用注意事项
- Linux下Socket网络编程send和recv使用注意事项
- HTTPD配置文件MPM(非7.0以上版本)
- IOS HTTP同步异步
- HTTP Cookie详解
- IOS 网络,客户端,服务端
- 【.Net码农】腾迅股票数据接口 http/javascript
- IOS 请求网络数据,解析