您的位置:首页 > 其它

自己按摩头部为何没有别人按摩舒服-还有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

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐