`
izuoyan
  • 浏览: 8944949 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

自己按摩头部为何没有别人按摩舒服-还有syn-cookie

 
阅读更多

因为手的感觉分担了一部分本该属于头的感觉,找个东西代替手就会好些。
__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
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics