网络安全随笔(一) | SYN Flood攻击

SYN攻击是Dos攻击之一,注意此处的Dos 指的是Denial of Service,简写DOS。新人千万别以为是dos操作系统。下面上干货。

有关tcp的介绍,已经在 互联网协议解析(一) | TCP 与UDP  中进行了全面的介绍。如果有需要的话,还是可以看看的。我们再回顾一下 TCP的三次握手。

在建立链接前,服务器已经开启,等待来自客户端(无论浏览器还是app等,此处把用户侧都称之为客户端)的请求。

1. 请求由客户端主动发出,TCP数据报的SYN字段设置为1,咱们暂且把此报文成为SYN报文。SYN报文虽然不携带实际传输的数据,但是它依旧要消耗一个序号,假设此报文的序号seq=x。客户端发出请求连接的报文之后,进入SYN-SENT(同步已发出)状态。

2.当服务器接收到来自客户端的请求报文后,会记录下此客户端的信息。并且对客户端发送的SYN报文进行确认,确认报文的ACK字段设置为1,同时SYN设置为1,不妨称此报文为ACK+SYN报文。因为是对SYN报文的确认,且SYN未携带数据,所以ACK+SYN报文的ack=x + 1 (表示服务器期望下一次从客户端A接收到序号为x+1的报文)。假设此时ACK+SYN报文序号为seq=y。发出ACK+SYN报文后,服务器进入SYN-RCVD状态(同步已发出状态)

3.客户端收到来服务器的ACK+SYN报文之后,会对它进行确认,发送确认报文ACK设置为1,seq=x+1,ack = y+1 后,客户端进入连接建立状态。在收到此确认报文之后,服务器也进入链接建立状态。此时就完成了三次握手,双发可以进行数据通信了。

 

标题

三次握手的思想是这样的,但是有一台服务器出现了一种特殊情况。就是在发送完请求链接的报文后(第一次握手),突然掉线了。服务器依旧可以收到它的请求报文,然后服务器发送确认报文,并且保存下此客户端的信息(第二次握手)。但是由于客户端已经掉线了,所以服务器是收不到第三次握手的报文的。对于一台或少量客户端出现这种情况,少量的这种半连接的信息对服务器没有什么影响。一段时间后,服务器等不到第三次握手的报文,会在内存中把这个发送请求的客户端信息删除掉。但是如果恶意攻击者短时间内大量的模拟这种场景,造成服务器短时间内需要维护大量的半连接信息,会造成服务器严重的资源消耗,甚至会堆栈的溢出以及奔溃。这种利用SYN报文(本质是报文SYN字段是1)攻击称之为SYN Flood攻击

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值