BBS水木清华站∶精华区
发信人: mephisto (魔鬼*修心养性*重新做人), 信区: Linux
标 题: Re: =====高速网络截获的Linux驱动程序====
发信站: BBS 水木清华站 (Sat May 8 00:40:35 1999)
【 在 sniffer (sniffer) 的大作中提到: 】
∶ 类似的捕获器已经有了,我觉的BSD Packet Filter就不错.
∶ 它在核心设置buffer,采用先过虑后缓存的方法,.减少内存拷贝
∶ 有独立的协议层,捕获的包不会进入系统的协议栈.
好象不是吧,如果捕的包不进入系统协议栈的话,那Free BSD用tcpdump时
就无法使用正常的网络了.但显然不是这样.
进或不进,AF_CAPTURE都可以做到.
∶ 它与网卡无关,尤其是它的社在核旋虑规则采用图的
我看过源代码,毕竟BPF用中间代码来解释,但是还是比不上直接C代码来提取
信息快,而且用AF_CAPTURE写一个capture type 的moudule就可以把BPF实现
了.我专门留了ioctl的接口就是想干这个用的.
再者读网络要用到/dev/bpf0是个不太愉快的想法.还要建个inode.一个bpf0
设备只能被打开一次,不灵要试bpf1,bpf2,不爽.
不过我承认AF_CAPTURE的很多灵感是来自BPF,我痛恨linux居然没有一个象
FreeBSD 那样好用的sniffer driver.我曾经把BPF port到linux,没有发布
是因为我觉得BPF还不够好.现在的AF_CAPTURE比BPF更好,更灵活和更简单更
快.如果喜欢BPF的话,在AF_CAPTURE加载一moudle就可以实现了,BPF不过是
AF_CAPTURE的一个子集.还有其他的一些特性也是BPF做不到的.而BPF能作到
的,AF_CAPTURE都可以.
∶ 方式,效率狠高
∶ 但它必须编译内核,这点不爽:-(
--
约塞连怀疑地摇了摇头,拒绝接受丹比的劝告."当我抬起来时,我看到人们全在设法赚钱.我
看不见天堂,看不见圣人,也看不见天使.我只看见人们利用每一次正当的冲动和每一场人类
的悲剧大把大把地捞钱."
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: ab1-71.bjnet.ed]
BBS水木清华站∶精华区