自己按摩头部为何没有别人按摩舒服-还有syn-cookie
2010-09-10 20:45
435 查看
因为手的感觉分担了一部分本该属于头的感觉,找个东西代替手就会好些。
__u32 secure_tcp_syn_cookie(__u32 saddr, __u32 daddr, __u16 sport,
__u16 dport, __u32 sseq, __u32 count, __u32 data)
{
__u32 tmp[16 + HASH_BUFFER_SIZE + HASH_EXTRA_SIZE];
__u32 seq;
...//懒惰初始化
memcpy(tmp+3, syncookie_secret[0], sizeof(syncookie_secret[0]));
tmp[0]=saddr;
tmp[1]=daddr;
tmp[2]=(sport << 16) + dport;
HASH_TRANSFORM(tmp+16, tmp);
seq = tmp[17] + sseq + (count << COOKIEBITS); //根据4元素计算出的摘要值加上syn序列号再在高8位加上当前jiffies,seq设为S,sseq设为SS
memcpy(tmp+3, syncookie_secret[1], sizeof(syncookie_secret[1]));
tmp[0]=saddr;
tmp[1]=daddr;
tmp[2]=(sport << 16) + dport;
tmp[3] = count;
HASH_TRANSFORM(tmp+16, tmp); //又算出一个tmp[17]
return seq + ((tmp[17] + data) & COOKIEMASK); //不影响高八位的情况下计算出最终的syn-cookie,设为K
}
__u32 check_tcp_syn_cookie(__u32 cookie, __u32 saddr, __u32 daddr, __u16 sport,
__u16 dport, __u32 sseq, __u32 count, __u32 maxdiff)
{
__u32 tmp[16 + HASH_BUFFER_SIZE + HASH_EXTRA_SIZE];
__u32 diff;
...//和懒惰初始化相左
memcpy(tmp+3, syncookie_secret[0], sizeof(syncookie_secret[0]));
tmp[0]=saddr;
tmp[1]=daddr;
tmp[2]=(sport << 16) + dport;
HASH_TRANSFORM(tmp+16, tmp);
cookie -= tmp[17] + sseq; //cookie即是K,减掉了SS和4元素计算出的摘要
diff = (count - (cookie >> COOKIEBITS)) & ((__u32)-1 >> COOKIEBITS);
if (diff >= maxdiff) //从高8位得到syn包到达的时间,如果时间太久了ack才到,那么就视为非正常现象,丢弃
return (__u32)-1;
memcpy(tmp+3, syncookie_secret[1], sizeof(syncookie_secret[1]));
tmp[0] = saddr;
tmp[1] = daddr;
tmp[2] = (sport << 16) + dport;
tmp[3] = count - diff; 得到原始syn包的jiffies
HASH_TRANSFORM(tmp+16, tmp);
return (cookie - tmp[17]) & COOKIEMASK; //最终得到data
}
__u32 secure_tcp_syn_cookie(__u32 saddr, __u32 daddr, __u16 sport,
__u16 dport, __u32 sseq, __u32 count, __u32 data)
{
__u32 tmp[16 + HASH_BUFFER_SIZE + HASH_EXTRA_SIZE];
__u32 seq;
...//懒惰初始化
memcpy(tmp+3, syncookie_secret[0], sizeof(syncookie_secret[0]));
tmp[0]=saddr;
tmp[1]=daddr;
tmp[2]=(sport << 16) + dport;
HASH_TRANSFORM(tmp+16, tmp);
seq = tmp[17] + sseq + (count << COOKIEBITS); //根据4元素计算出的摘要值加上syn序列号再在高8位加上当前jiffies,seq设为S,sseq设为SS
memcpy(tmp+3, syncookie_secret[1], sizeof(syncookie_secret[1]));
tmp[0]=saddr;
tmp[1]=daddr;
tmp[2]=(sport << 16) + dport;
tmp[3] = count;
HASH_TRANSFORM(tmp+16, tmp); //又算出一个tmp[17]
return seq + ((tmp[17] + data) & COOKIEMASK); //不影响高八位的情况下计算出最终的syn-cookie,设为K
}
__u32 check_tcp_syn_cookie(__u32 cookie, __u32 saddr, __u32 daddr, __u16 sport,
__u16 dport, __u32 sseq, __u32 count, __u32 maxdiff)
{
__u32 tmp[16 + HASH_BUFFER_SIZE + HASH_EXTRA_SIZE];
__u32 diff;
...//和懒惰初始化相左
memcpy(tmp+3, syncookie_secret[0], sizeof(syncookie_secret[0]));
tmp[0]=saddr;
tmp[1]=daddr;
tmp[2]=(sport << 16) + dport;
HASH_TRANSFORM(tmp+16, tmp);
cookie -= tmp[17] + sseq; //cookie即是K,减掉了SS和4元素计算出的摘要
diff = (count - (cookie >> COOKIEBITS)) & ((__u32)-1 >> COOKIEBITS);
if (diff >= maxdiff) //从高8位得到syn包到达的时间,如果时间太久了ack才到,那么就视为非正常现象,丢弃
return (__u32)-1;
memcpy(tmp+3, syncookie_secret[1], sizeof(syncookie_secret[1]));
tmp[0] = saddr;
tmp[1] = daddr;
tmp[2] = (sport << 16) + dport;
tmp[3] = count - diff; 得到原始syn包的jiffies
HASH_TRANSFORM(tmp+16, tmp);
return (cookie - tmp[17]) & COOKIEMASK; //最终得到data
}
相关文章推荐
- 自己按摩头部为何没有别人按摩舒服-还有syn-cookie
- 追求无我,让自己舒服也不给别人制…
- 没有别人聪明不可怕,可怕的是别人比你聪明也比你勤奋(活着总要为自己负责,而且首先是对自己的时间负责)
- 自己实现的strcmp 不知还有没有错
- 爱自己的人脸上散发的光芒是骗不了别人的,你会活在平静淡定喜悦中,绝少埋怨,鲜有不满,没有太多话需要澄清,说清楚,内心是一片宁静而有力量的海。
- (转)李明博:我的12年等于24年 快速提升的秘诀是什么 别人以为我早起是先天的,事实靠的是努力 训练,除了反复的努力之外没有什么别的秘诀 像企业主一样去思考,一样查找问题,一同去解决它,并且还要制定出比企业主要求更高的目标。李明博像我一样,不,他比我更把公司当成自己的
- 怎么自己就没有一直研究别人博客的习惯?
- 给自己的文件或软件创建快捷方式,为何不能在别人的电脑上使用的解决办法
- C# TCP 自己看,别人看了没有用
- j2me 图片处理大全(有自己写的 有山寨别人的 还有照搬的别人的 )
- 批处理(有得可能是不能用,还有得是破坏自己电脑,请大家自己了解)看了别人得和大家分享
- 为何别人会仿造自己的作品
- poi 和jxl的性能比较,借鉴别人的,本人没有测试过,不过感觉自己可以接收这种解释
- myeclipse导入别人的项目的时候,自己好不容易改成文件都没报错了,可是项目名那一个红色叉叉,下面文件明明没有错
- 我没有嘲笑别人的权利,只能无力的嘲笑自己。
- 现在怎么每个网站都搞博客, 一点创意也没有。别人卖啥,自己也跟着卖啥,不新鲜
- 再难做的项目也是由小的知识点够成的【人总是在不断的学习来充实自己,还有凡是要靠自己别老只着别人】
- Think in Java 构造函数_继承_super()_android_Dialog()_为何有些类没有构造函数自己体悟
- 导致 签名实效,除了 别人上传的签名 与自己的不同,还有可能有人 改了 boundle identifier,
- 螺旋矩阵----在博客园上看见别人的算法没有看明白自己搞了一个。