免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 4600 | 回复: 21
打印 上一主题 下一主题

链接跟踪问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-24 15:01 |只看该作者 |倒序浏览
我写个网络钩子程序,获得其指针
enum ip_conntrack_info ctinfo;
struct nf_conn ct;
......
{
    u32 mark;
    mark=get_mark(..);///自己获得的mark,为了做测试而自动增加的,即不同的链接,mark不同
    .......

    if(!(ct=nf_ct_get(skb,&ctinfo)))
       return NF_ACCEPT;
    if(ct->mark)
       printk("the mark is %d\n",ct->mark);
    else
    {
        ct->mark=mark;
        printk("the mark is %d\n",ct->mark);
     }
    .......
    return NF_ACCEPT;
}

我的问题是:为什么,我打的mark值总是统一个数字,而有的时候最多也只有那么几个,我看ppstream,下迅雷资源,打开网页,总是那么几个数字,请各位指教

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
2 [报告]
发表于 2011-02-24 18:02 |只看该作者
    mark=get_mark(..);///自己获得的mark,为了做测试而自动增加的,即不同的链接,mark不同

mark 做标记是用来识别不同连接的,对吗

论坛徽章:
0
3 [报告]
发表于 2011-02-24 18:14 |只看该作者
对,就是对同一链接打相同的mark,但是好像我的程序不是很理想

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
4 [报告]
发表于 2011-02-24 18:27 |只看该作者
get_mark 是怎么实现的?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
5 [报告]
发表于 2011-02-24 18:28 |只看该作者
这个函数返回值有多少中可能性,你是怎么定义的

论坛徽章:
0
6 [报告]
发表于 2011-02-24 18:32 |只看该作者
为了先测试ct是否获得的正确,所以get_mark只是简单的进行数字的累加,所以 get_mark();应该像下面一样加到else里面,如果来一个不同的链接就mark加一进行标记,可是结果好像不是这样,总是为1;
else
    {
       get_mark();///mark初始为0,运行后为1,所以加载模块后第一个链接应该是1
        ct->mark=mark;
        printk("the mark is %d\n",ct->mark);
     }

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
7 [报告]
发表于 2011-02-24 18:50 |只看该作者
把 get_mark 的源码完整的贴出来吧

论坛徽章:
0
8 [报告]
发表于 2011-02-24 19:38 |只看该作者
定义全局变量:
u32 pro_mark=0;

get_mark(){
     pro_mark+=1;///这个只做测试用
}
所以在上面所提到的地方调用:
else
{
       mark=get_mark();
        ct->mark=mark;
        printk("the mark is %d\n",ct->mark);
}
get_mark()是为以后能做些简单的数据包匹配(等于说是协议匹配吧)来得到相应的mark的,所以代码并暂时还没有进行其他的考虑

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
9 [报告]
发表于 2011-02-24 21:28 |只看该作者
定义全局变量:
u32 pro_mark=0;

get_mark(){
     pro_mark+=1;///这个只做测试用
}
所以在上面所提 ...
zzappled 发表于 2011-02-24 19:38


大致明白了你的需求。
那你在哪里调用的 get_mark 啊

论坛徽章:
0
10 [报告]
发表于 2011-02-25 09:16 |只看该作者
在钩子处理函数中,和上面代码的位置是一样的,在else里面
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP