DDOS的全称是分布式拒绝服务***,既然是拒绝服务一定是因为某些原因而停止服务的,其中最重要的也是最常用的原因就是利用服务端方面资源的有限性,这种服务端的资源范围很广,可以简单的梳理一个请求正常完成的过程:

       1 用户在客户端浏览器输入请求的地址

        2 浏览器解析该请求,包括分析其中的dns以明确需要到达的远程服务器地址

        3 明确地址后浏览器和服务器的服务尝试建立连接,尝试建立连接的数据包通过本地网络,中间  路由最终艰苦到达目标网络再到达目标服务器

        4 网络连接建立完成之后浏览器根据请求建立不同的数据包并且将数据包发送到服务器某个端口

        5 端口映射到进程,进程接受到数据包之后进行内部的解析

        6 请求服务器内部的各种不同的资源,包括后端的API以及一些数据库或者文件等

       7 在逻辑处理完成之后数据包按照之前建立的通道返回到用户浏览器,浏览器完成解析,请求完成。

        上面各个点都可以被用来进行ddos***,包括:

        1 某些著名的客户端劫持病毒,还记得访问百度跳搜狗的事情么?:)

         2 某个大型互联网公司发生的dns劫持事件,或者直接大量的dns请求直接***dns服务器,这里可以使用一些专业的第三方dns服务来缓解这个问题,如Dnspod。

          3 利用建立网络连接需要的网络资源***服务器带宽使得正常数据包无法到达如udp的洪水***,消耗前端设备的cpu资源以使得数据包不能有效转发如icmp和一些碎片包的洪水***,消耗服务器方建立正常连接需要的资源如syn flood或者就是占用大量的连接使得正常的连接无法发起,譬如这次的TCP flood。

          4 利用webserver的一些特点进行***,相比nginx来说,apache处理一个请求的过程就比较笨重。

          5 利用应用程序内部的一些特性***程序内部的资源如mysql,后端消耗资源大的接口等等,这也就是传统意义上的CC***。