Linux编程之ICMP洪水攻击】的更多相关文章

我的上一篇文章<Linux编程之PING的实现>里使用ICMP协议实现了PING的程序,ICMP除了实现这么一个PING程序,还有哪些不为人知或者好玩的用途?这里我将介绍ICMP另一个很有名的黑科技:ICMP洪水攻击.   ICMP洪水攻击属于大名鼎鼎的DOS(Denial of Service)攻击的一种,一种是黑客们喜欢的攻击手段,这里本着加深自己对ICMP的理解的目的,也试着基于ICMP写一段ICMP的洪水攻击小程序.   洪水攻击(FLOOD ATTACK)指的是利用计算机网络技术向目…
PING(Packet InterNet Groper)中文名为因特网包探索器,是用来查看网络上另一个主机系统的网络连接是否正常的一个工具.ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把回复报文传回给发送者,这有点象潜水艇声纳系统中使用的发声装置.所以,我们想知道我这台主机能不能和另一台进行通信,我们首先需要确认的是我们两台主机间的网络是不是通的,也就是我说的话能不能传到你那里,这是双方进行通信的前提.在Linux下使用指令ping的方法和现象…
GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能: 1 在程序中设置断点,当程序运行到断点处暂停 2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显示出来 3 单步执行 4 运行时修改变量的值 5 跟踪路径 6 线程切换 等等 下面以以下程序为例 当我们要使用GDB进行程序的调试时,在用GCC编译时需要加上-g,如下: GDB之所以能够进行程序的调试也是在于进行编译时的-g选项,当设置了这个选项的时候,GCC会向程序中塞入一下信息,作为GDB调…
这篇文章将对linux下udp socket编程重要知识点进行总结,无论是开发人员应知应会的,还是说udp socket的一些偏僻知识点,本文都会讲到.尽可能做到,读了一篇文章之后,大家对udp socket有一个比较全面的认识.本文分为两个专题,第一个是常用的upd socket框架,第二个是一些udp socket并不常用但又相当重要的知识点. 一.基本的udp socket编程 1. UDP编程框架要使用UDP协议进行程序开发,我们必须首先得理解什么是什么是UDP?这里简单概括一下.UDP…
现在有这么一个场景:我是一个很忙的大老板,我有100个手机,手机来信息了,我的秘书就会告诉我"老板,你的手机来信息了."我很生气,我的秘书就是这样子,每次手机来信息就只告诉我来信息了,老板赶紧去看.但是她从来不把话说清楚:到底是哪个手机来信息啊!我可有100个手机啊!于是,我只能一个一个手机去查看,来确定到底是哪几个手机来信息了.这就是IO复用中select模型的缺点!老板心想,要是秘书能把来信息的手机直接拿到我桌子上就好了,那么我的效率肯定大增(这就是epoll模型). 那我们先来总…
在Linux中,fork函数的功能就是在一个进程中创建一个新的进程,当前调用fork函数的进程就是产生的新进程的父进程,新进程在以下也称为子进程.在新进程生成之后就会在系统中开始执行. 函数原型:pid_t fork(void); 其中pid_t 是一个long. pid_t fork(void); 在父进程中,返回值是子进程的进程ID,而在子进程中,返回值则是0,所以可以通过判断fork函数的返回值来判断当前执行的是父进程还是子进程. 创建之后的子进程与父进程执行相同的程序段,但是拥有不同的堆…
转自:http://www.cnblogs.com/skyfsm/p/6287787.html?utm_source=itdadao&utm_medium=referral 这篇文章将对linux下udp socket编程重要知识点进行总结,无论是开发人员应知应会的,还是说udp socket的一些偏僻知识点,本文都会讲到.尽可能做到,读了一篇文章之后,大家对udp socket有一个比较全面的认识.本文分为两个专题,第一个是常用的upd socket框架,第二个是一些udp socket并不常…
GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能: 1 在程序中设置断点,当程序运行到断点处暂停 2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显示出来 3 单步执行 4 运行时修改变量的值 5 跟踪路径 6 线程切换 等等 下面以以下程序为例 当我们要使用GDB进行程序的调试时,在用GCC编译时需要加上-g,如下: GDB之所以能够进行程序的调试也是在于进行编译时的-g选项,当设置了这个选项的时候,GCC会向程序中塞入一下信息,作为GDB调…
select系统调用的的用途是:在一段指定的时间内,监听用户感兴趣的文件描述符上可读.可写和异常等事件. select 机制的优势 为什么会出现select模型? 先看一下下面的这句代码: int iResult = recv(s, buffer,1024); 这是用来接收数据的,在默认的阻塞模式下的套接字里,recv会阻塞在那里,直到套接字连接上有数据可读,把数据读到buffer里后recv函数才会返回,不然就会一直阻塞在那里.在单线程的程序里出现这种情况会导致主线程(单线程程序里只有一个默认…
管道是一种把两个进程之间的标准输入和标准输出连接起来的机制,从而提供一种让多个进程间通信的方法,当进程创建管道时,每次 都需要提供两个文件描述符来操作管道.其中一个对管道进行写操作,另一个对管道进行读操作.对管道的读写与一般的IO系统函数一 致,使用write()函数写入数据,使用read()读出数据. #include<unistd.h> int pipe(int filedes[2]); 返回值:成功,返回0,否则返回-1.参数数组包含pipe使用的两个文件的描述符.fd[0]:读管道,f…