Chinaunix

标题: 如何从内核里获取TCP数据包发送到用户空间,然后在用户空间处理 [打印本页]

作者: zimang    时间: 2009-07-16 12:01
标题: 如何从内核里获取TCP数据包发送到用户空间,然后在用户空间处理
如何从内核里获取TCP数据包发送到用户空间,然后在用户空间处理,

netlink+netfilter(NF_IP_LOCAL_IN)会是一种方法吗?

谢谢先
作者: beepbug    时间: 2009-07-16 19:05
为什么要这样做呢?
作者: zimang    时间: 2009-07-17 10:08
标题: 回复 #2 beepbug 的帖子
在用户空间做TCP协议 以及其他的一些工作

[ 本帖最后由 zimang 于 2009-7-17 10:11 编辑 ]
作者: Cyberman.Wu    时间: 2009-07-17 10:21
不知道你要做啥?是类似于抓包上来,还是什么?如果是复位包出来可以用PF_PACKET,如果要进行一些拦截处理不知道netfilter能否做到,FreeBSD的ipfw是可以的。

还有就是TUN/TAP,也可以把包导到用户空间。要说清楚你的具体需求,才能搞清楚用哪种方式更好。
作者: zimang    时间: 2009-07-17 10:39
标题: 回复 #4 Cyberman.Wu 的帖子
在用户层实现tcp功能,因为要分析数据包里面的内容,还要处理一下数据段(插入或过滤一些内容) 就是进来的TCP数据包要直接到用户空间。
作者: Cyberman.Wu    时间: 2009-07-25 15:14
你这个需求是要拦截吧?这样通常只能用防火墙一类的提供的机制可以办到,netfilter我不熟悉,不知道能不能设置一下就传到用户空间,不过它好像支持自己再开始一些东西吧?或者拿源代码自己改一下了。
作者: cipher_ly    时间: 2013-04-15 15:08
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2