Netfilter和Netgraph
很多的高性能网络设备都基于BSD系统,而不是Linux。不管什么操作系统,其协议栈的实现都是大同小异,这里面做的最统一的估计就是Windows NT的NDIS了,其次是BSD,Linux也许派不上号吧,主要的性能以及功能差异在协议栈上看不出来,主要要看如何扩展以及定制协议栈,Windows的NDIS不谈,对于BSD和Linux,我想有必要比较一下Netfilter和Netgraph,结果可想而知,Netgraph比Netfilter更灵活,效率更高。
使用NF_HOOK宏将数据包引入协议栈内置的5个HOOK点之一。
Netgraph
使用_p回调函数将数据包引入一张独立的graph。
由Netfilter自身来控制单独HOOK点诸多hook函数的执行,执行顺序为该HOOK点各个hook函数的优先级顺序。
Netgraph
由Netgraph自身来控制数据包在一张graph中各个Node的游历,执行顺序取决于该graph中各个Node是怎么连接的。
熟知的accept,deny...
Netgraph
取决于该graph中的接收Node的hook的rcvdata回调函数,对于ipfw,还可以skip掉某个或某些rule,当然是不是netgraph的范畴,而是ipf的机制了。
1.实现
Netfilter使用NF_HOOK宏将数据包引入协议栈内置的5个HOOK点之一。
Netgraph
使用_p回调函数将数据包引入一张独立的graph。
2.执行顺序和控制
Netfilter由Netfilter自身来控制单独HOOK点诸多hook函数的执行,执行顺序为该HOOK点各个hook函数的优先级顺序。
Netgraph
由Netgraph自身来控制数据包在一张graph中各个Node的游历,执行顺序取决于该graph中各个Node是怎么连接的。
3.动作的不同
Netfilter熟知的accept,deny...
Netgraph
取决于该graph中的接收Node的hook的rcvdata回调函数,对于ipfw,还可以skip掉某个或某些rule,当然是不是netgraph的范畴,而是ipf的机制了。
相关推荐
pointfish 2019-12-11
qiaosym 2012-04-03
linuxalienyan 2020-06-11
iamplane 2020-03-23
LychieFan 2020-03-03
zlsh00 2020-02-29
zhongzhiwei 2020-02-27
wangrui0 2020-02-24
zhongcanw 2020-01-28
yevvzi 2020-01-01
xiaoemo0 2019-12-17
zhongcanw 2019-12-09
xinggm 2019-11-28
micmouse 2015-01-11
蒋胜凡广博天下客 2019-11-17
wangkeIDC 2007-08-03
jiangtie 2019-10-27
顺其自然 2011-05-16
sunkuohao 2010-09-21