如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
DoS即DenialOfService,拒绝服务的缩写。在介绍DoS之前,首先,先说明为什么需要有Dos这一网络“拒绝服务”制式。准备知识1.TCP协议总述TCP(transmissioncontrolprotocol,传输控制协议)。TCP报文段是在运输层抽象的端到端逻辑中传送。这种信道采用全双工信道,即在TCP连接的任何一方都能够发送与接收数据。发送端的应用进和按照自己产生的数据的规律,不断地将数据块陆续写入到TCP的发送缓存中。TCP再从发送缓存中取出一定数量的数据,将其组成TCP报文段依次传送给下层(IP层以下),然后发送出去。2.TCP的报文首部由于TCP/IP的协议体系结构采用的是分层次结构,即上层的服务数据信息对于本层是相对独立的,一般情况下,本层的协议只提取出上层信息的相关服务信息部分后,就不在关心信息本身的内容,只作为本层的数据信息部分,所以,对于每一个网络协议,我们更关心的是这个协议所对应的协议的首部是怎么组成的。TCP的报文段首部SourcePortDestinationPortSequenceNumberAcknowledgmentNumberDataoffsetReservedURGACKPSHRSTSYNFINWINDOWChecksumUrgentPointerOptionPadding这里只说明几个与Dos相关的协议字段:①SourcePort和DestinationPort:是本地端口和目标端口②SequenceNumber和AcknowledgmentNumber:是顺序号和确认号,确认号是希望接收的字节号。这都是32位的,在TCP流中,每个数据字节都被编号。③Dataoffset:表明TCP头包含多少个32位字,用来确定首部的长度,因为首部中可选字段(Option)长度是不定的。④URG:(UrgentPointerfieldsignificant)紧急指针。用到的时候值为1,用来处理避免TCP数据流中断。⑤ACK:(Acknowledgmentfieldsignificant)置1时表示确认号(AcknowledgmentNumber)为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。⑥PSH:(PushFunction),PUSH标志的数据,置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。⑦RST:(Resettheconnection)用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误。⑧SYN:(Synchronizesequencenumbers)用来建立连接,在连接请求中,SYN=1,ACK=0,连接响应时,SYN=1,ACK=1。即,SYN和ACK来区分ConnectionRequest和ConnectionAccepted。⑨FIN:(Nomoredatafromsender)用来释放连接,表明发送方已经没有数据发送了。⑩16位的WINDOW字段:表示确认了字节后还可以发送多少字节。可以为0,表示已经收到包括确认号减1(即已发送所有数据)在内的所有数据段。3.“三次握手”(three-wayhandshake)运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。连接建立过程中要解决以下三个问题:①要使每一方能够确知对方的存在。②要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。③能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。TCP的连接和建立都是采用客户服务器(C/S)方式。主动发起连接建立的应用进和叫做客户(client),而被动等待连接建立的应用进程叫做服务器(server)。第一次握手:主机B(客户)发送一个带SYN位的请求,向服务器表示需要连接,比如发送包假设请求序号为10,那么则为:SYN=10,ACK=0,然后待服务器的响应。第二次握手:主机A(服务器)接收到这样的请求后,查看是否在LISTEN的是指定的端口,不然,就发送RST=1应答,拒绝建立连接。如果接收连接,那么主机A发送确认,SYN为主机A的一个内部序号,假设为100,ACK位则是主机B的请求序号加1,本例中发送的数据是:SYN=100,ACK=11,用这样的数据发送给主机B。向客户端表示,主机A连接已经准备好了,等待主机B的确认这时主机B接收到消息后,分析得到的信息,准备发送确认连接信号到主机A第三次握手:主机B发送确认建立连接的消息给主机A。确认信息的SYN位是主机A发送的ACK位,ACK位是主机A发送的SYN位加1。即:SYN=11,ACK=10