免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Au_Hank
打印 上一主题 下一主题

[网络子系统] 我写的高性能,简化的SYNCOOKIE实现 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2007-09-15 12:47 |只看该作者
原帖由 csfrank 于 2007-9-15 11:08 发表
因为这些客户端特性都给定了,所以就不随机了
在这种情况下真正随机的就只有sec[0]和sec[0^sec[0]]了
先简化一下:

static __u32 cookie(__u8* sec)
{
    __u32 isn=sec[0];
    isn=isn ^ sec[0 ^ ...


呵呵, 我自己想不出来..

论坛徽章:
0
42 [报告]
发表于 2007-09-15 12:51 |只看该作者

发现gcc做优化的地方

int data;

*((char*)&data +1) 其实和 ((char*)&data)[1] 是一样的, 就是说,

*((char*)&data +1) 并没有多做一个 +1的运算

真不错

论坛徽章:
0
43 [报告]
发表于 2007-09-15 13:00 |只看该作者
原帖由 Au_Hank 于 2007-9-15 12:47 发表


呵呵, 我自己想不出来..

我想出来了,我只要穷举sec[0]和sec[0^sec[0]]的所有可能(256*256),然后就能知道了

不过实际情况下,ip=0.0.0.0是不可能的,一般是 2.3.4.5 这种,所以....没那么容易

论坛徽章:
0
44 [报告]
发表于 2007-09-15 19:11 |只看该作者
原帖由 csfrank 于 2007-9-15 13:00 发表

我想出来了,我只要穷举sec[0]和sec[0^sec[0]]的所有可能(256*256),然后就能知道了

不过实际情况下,ip=0.0.0.0是不可能的,一般是 2.3.4.5 这种,所以....没那么容易


其实这方法和ip地址是多少没有任何关系的

论坛徽章:
0
45 [报告]
发表于 2007-09-16 01:56 |只看该作者
半夜钻上来,到此游一游,
看到 你来我往拼杀忙,
刀光剑影,搞得我,眼睛脑袋一片乱
帮大家mark一下钻被窝,过几天接着看。。。

[ 本帖最后由 aleng 于 2007-9-16 02:01 编辑 ]

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
46 [报告]
发表于 2007-09-17 20:14 |只看该作者
原帖由 platinum 于 2007-9-14 10:30 发表
Au_Hank:
我觉得若 syncookie 工作在 netfilter 之后(我想必然也是在 conntrack 之后了)
那么,若 iptables 在 filter 表的 INPUT 链里使用了 state 模块,连接进入 server 的 syn 必然先经过 netfilter 而 ...



版主也挺虚心的向你学习....

论坛徽章:
0
47 [报告]
发表于 2007-09-18 09:38 |只看该作者
做了一些优化,除去一个bug

论坛徽章:
0
48 [报告]
发表于 2007-09-18 09:39 |只看该作者
原帖由 MYSQLER 于 2007-9-17 20:14 发表



版主也挺虚心的向你学习....


我也会向版主学习的...

论坛徽章:
0
49 [报告]
发表于 2007-09-20 08:56 |只看该作者

看高手讨论

观摩中 :wink:

论坛徽章:
0
50 [报告]
发表于 2007-09-20 10:19 |只看该作者
原帖由 Au_Hank 于 2007-9-18 09:39 发表


我也会向版主学习的...


等我来,这个讨论好像已经结束了……
Linux中的syn Cookie算法效率确实不咋地,偶试着优先它,不过失败了……要向楼主多学习呀!!

除了在实践中,除了cookie算法问题,更实际的问题还有两个,这里跟楼主交流一下:
1、回应的数据包太多,Linux的路由缓存是个很大的问题——无论设置大多的dst cache,在强大的攻击下面,都是很可笑的!!!而且设得越大,散列冲突越来越多,效率也会下降很快;
——我的解决方法:直接越过路由子系统,反弹数据包:从哪里来,就从哪个接口回去,[不过在网络拓扑稍复杂的地方,这招就不行了]

2、回应的Cookie越多,意味着双倍流量,本身机器接收处理这么大的的小包就是一个头痛的问题,现在还要*2,而且对上级网关也是一个沉重的负担——在实践中,就有很多上级网关被冲动的例子!
——我的方法是随机丢包,利用2/8原理,减少回应包数量[很多好人被错杀了呀!!]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP