首先,synflood攻击是一中拒绝服务攻击,它算得上是最常见的一中dos拒绝服务攻击攻击手段。原理在上一篇中也有提到过,就是在短时间内向目标主机发送洪水般的syn请求,大家都知道tcp是面向连接的协议,若正常通过三次握手过程,则连接就建立了,但是恶意攻击者会刻意伪造ip地址,使得受攻击的主机得不到最后一次握手,只能不断的为到来的syn分配内存,发送syn+ack,就这样一直等不到第三次握手的ack确认。
/************************************************************************/
/* synflood.c */
/* @2013-03-21 */
/************************************************************************/
#include<stdio.h>
#include<errno.h>
#include<sys/time.h>
#include<sys/socket.h>//与套接字相关的函数声明和结构体定义
#include<netinet/in.h>//某些结构体的声明,宏定义如struct sockaddr_in
#include<netdb.h>//某些结构体定义,宏定义和声明如struct hostent
#include<ctype.h>
#include<sys/types.h>//包含很多类型重定义
#include<stdlib.h>
#include<arpa/inet.h>//某些函数声明如inet_ntoa()
#include<netinet/ip.h>
#include<netinet/tcp.h>