Chinaunix

标题: netlink通讯传输内容,sk_buff问题。 [打印本页]

作者: zengrui0342    时间: 2008-09-29 17:03
标题: netlink通讯传输内容,sk_buff问题。
现在做的项目涉及到netlink+netfilter。

netfilter截获包,netlink传输到用户层。

想问下大家。传输的内容如何确定?

大包在内核态分析好再将数据包传输到用户层打印于文件中,

还是完整的将内容传输到用户层打印?

sk_buff的数据包是用链表存储的吗?

我看怎么是直接用指针指到内存?


用数组保存么?希望有人能给我点知道。。。thx!!!
作者: dzbjet    时间: 2008-10-02 21:16
标题: 回复 #1 zengrui0342 的帖子
sk_buff的数据包是用链表存储的吗?
你是说sk_buff代表的这个数据包的数据么?
给你个图:


作者: zengrui0342    时间: 2008-10-06 14:14
对,一般在内核态是用指针+偏移量来得到数据段的位置。

得到位置怎么传输到用户态?直接传指针?

还是在内核态中将数据保存一数组中,再传输到用户层?
作者: Godbach    时间: 2008-10-06 17:30
原帖由 zengrui0342 于 2008-10-6 14:14 发表
对,一般在内核态是用指针+偏移量来得到数据段的位置。

得到位置怎么传输到用户态?直接传指针?

还是在内核态中将数据保存一数组中,再传输到用户层?


你问的问题是不是相当于内核态和用户态如何传输数据的问题
作者: zengrui0342    时间: 2008-10-07 12:29
我已经在内核态将传输的数据(去掉协议头的)保存在数组中,然后用netlink传输到用户层打印出来。。


现在碰到新问题。
保存数据的数组在内核态用printk打印出来完全正常。。
传输到用户态后,用%c打印,
出现两种情况:

使用wget测试,wget英文网页,责打印正常。wget中文网页,打印没有显示。

用FTP测试,打印无正常显示。

为何?




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