本文 转自 华盟 CCIE 大萝卜 (支持luobo哥)
HOHO~~~~
----------------------------------------------华丽的开始线---------------------------------------------------------------
应大家要求~~今天给大家简单的说说CC***的原理与实现,CC主要是用来***网页的。
简单点说如果这个论坛比较“大”,访问的人比较多,打开页面的速度会比较慢(暂时排除网络原因)。。。一般来说,访问的人越多,论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当的大
如果是一个静态页面的话,则用不了服务器多少资源,但是论坛就不一样了
当我看一个帖子的时候,系统则先需要到数据库中查看我是否有看这帖子的权限。。。如果有,就把帖子里的内容读出来并显示出来,这一个动作至少访问了2次数据库,如果数据库的体积有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU资源和时间?再想想,要是查找某一个关键字的帖子呢?按照ID查找、查看包含字、这还只是一个人的操作。。。
CC就是利用了这个特点,模拟多个用户不停的进行“访问”(就是能占用大量CPU的~~比如模拟很多IP多次做查询等)。一般CC都用代理来搞,因为现在每个论坛都有自己的措施,比如单个IP在搜索后有一个冷却期,而且基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。
使用代理***还能很好的保持连接,我们这里发送了数据,代理帮我们转发给对方服务器,我们就可以马上断开,代理还会继续保持着和对方连接
下面我就简单的做个计算。假设服务器A对“查找页面”(以下简称Search.asp)的处理时间需要0.01S(多线程只是时间分割,对计算的结果没有影响),也就是说他一秒可以保证100个用户的查询请求,服务器允许的最大连接时间为60s,那么我们使用CC模拟120个用户并发连接,那么经过1分钟,服务器的被请求了7200次(120个IP*60秒),处理了6000次(一秒处理100个*60s),于是剩下了1200个并发连接没有被处理。没被处理的会怎样?当然是丢掉这个连接了。。。。问题是服务器是按先来后到的顺序丢的,这1200个是在最后10秒的时候发起的,丢弃的话还过早。。经过计算,服务器满负开始丢连接的时候,应该是有7200个并发连接存在队列,然后服务器开始以每秒钟120个的方式丢弃连接,我们发动的连接也是120个/秒,这样服务器就永远有处理不完的连接了。。。服务器的CPU 100%并长时间保持。。。。然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了,这么一来服务器达到了超负荷状态~~
这只是简单的说明。。真正玩儿CC谁会去用120个IP来搞。。多寒酸啊。。 代理IP肯定远远大于120个。。而且当服务器收到SQL请求,肯定会进入队列,不论连接是否已经断开,而且服务器是并发的,不是顺序执行,这样使得更多的请求进入内存请求,对服务器负担更大。。。。。
这就是他简单的原理与操作。。。。大家没事去 代理中国 弄点代理。。用花刺验证一下 然后 手工CC 工具CC 都行
手工CC的话 用抓包器去抓个查找页面的get包。。 然后上代理IP用NC 提交吧。。。。。
转载于:https://blog.51cto.com/smasher/286168