netlink

netlink是linux中实现内核与用户空间通信的一种方法,数据以类似网络数据包的形式在两者间传输,
这和以前所介绍的/proc,ioctl和setsockopt方式是不同的,另外一个区别是以前这几种方法都是用户
空间程序主动向内核发出请求,相当于客户端,内核相当于一个服务器;而netlink方法则是内核和用
户空间都可以主动向对方发送数据。

netlink现在已经是Linux内核中网络部分的一个基本协议族,具体代码在net/netlink中定义。

最初netlink接口主要是提供给路由程序来和内核通信修改系统的路由表的,从2.2内核开始在防火墙模
块中也有了netlink的支持。到了2.6,nfnetlink纳入官方内核中,并成为推荐的防火墙模块的netlink支持,

ip_queue虽然还在内核代码中,但已经不推荐使用(obsolete)。

通过netlink接口,netfilter可以向用户空间发送网络数据包,防火墙日志信息等,并能进行netlink
的连接跟踪,相关代码在net/netfilter/nfnetlink.c, net/netfilter/nfnetlink_conntrack.c,
net/netfilter/nfnetlink_queue.c, net/netfilter/nfnetlink_log.c等文件中。

由此可见,nfnetlink和ip_queue两者都是通过调用 netlink_kernel_create函数来初始化netlink套接口的,

ip_queue功能比较单纯,就是传输网络数据包,而nfnetlink有所扩展,不光是传递数据包,还
可传递其他数据,如日志信息的,不同类型数据处理是通过netlink子系统来区分的,不仅包括了
ip_queue的功能,还进行了扩展,这可能就是ip_queue被废的原因。
netlink学习笔记(一) http://blog.csdn.net/macrossdzh/article/details/4491957

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值