专栏首页zhisheng#每日一题#1

#每日一题#1

1、攻击者使用无效IP地址,利用TCP连接的三次握手过程,连续发送会话请求,使受害主机处于开放会话的请求之中,直至连接超时,最终因耗尽资源而停止响应。这种攻击被称为(  )

A、DNS欺骗攻击

B、DDoS攻击

C、重放攻击

D、SYN Flooding攻击

正确答案:D

答案参考分析:由于 TCP基于连接的,为了在服务端和客户端之间传送TCP数据,必须先建立一个虚拟电路,也就是TCP连接,建立TCP连接的过程也就是我们熟悉的“三次握手”过程:首先,请求端(客户端)发送一个包含SYN标志的TCP报文,表示客户端欲发起通信连接;第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受;第三步,客户端也返回一个确认报文ACK给服务器端,到此一个TCP连接完成。问题就出在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的,这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源,最终导致服务器端忙于处理攻击者伪造的 TCP 连接请求而无暇理睬客户的正常请求,此时从正常客户的角度看来,服务器失去响应,这种情况我们称作:服务器端受到了SYN Flooding攻击。

本文分享自微信公众号 - zhisheng(zhisheng_blog),作者:田志声

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-04-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 试试 IntelliJ IDEA 自带的高能神器(二)

    不知道大家看源码的时候是怎么从上到下将类的继承关系和接口实现记的清楚的,这里推荐 IDEA 的 diagram,结果一目了然,也是好用到炸裂,就此分享。

    zhisheng
  • Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览

    转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/15/springboot2_code/

    zhisheng
  • Flink 1.11 新特性详解:【非对齐】Unaligned Checkpoint 优化高反压

    问题导读 1.Barrier 对齐会造成什么问题? 2.Barrier 对齐是否会造成反压? 3.如何理解Unaligned Checkpoint ? 作为...

    zhisheng
  • 【图文讲解】TCP为啥要3次握手和4次挥手?握两次手不行吗?

    客户端向服务器发出连接请求报文,这时报文首部中的同部位SYN=1,同时随机生成初始序列号 seq=x

    ConardLi
  • 「图文详解」TCP为啥要3次握手和4次挥手?3次挥手不行吗?

    TCP有6种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急)

    Java_老男孩
  • 网络笔试面试题整理

    首部字段只有 8 个字节,包括源端口、目的端口、长度、检验和。12 字节的伪首部是为了计算检验和临时添加的。

    Zoctopus
  • 三十天学不会TCP,UDP/IP网络编程 - RST的用法

    不知不觉也写了这么多了,继续我的自己的推广大业~完整版可以去gitbook(https://www.gitbook.com/@rogerzhu/)看到。 如果对...

    一心一怿
  • String、StringBuffer、StringBuilder有什么区别?

    String 是 Java 语言非常基础和重要的类, 提供了构造和管理字符串的各种基本逻辑。它是典型的 Immutable 类,被声明成为 final cla...

    葆宁
  • 【NLP实战】如何基于Tensorflow搭建一个聊天机器人

    实战是学习一门技术最好的方式,也是深入了解一门技术唯一的方式。因此,NLP专栏计划推出一个实战专栏,让有兴趣的同学在看文章之余也可以自动动手试一试。

    用户1508658
  • 请简述一下线程的sleep()方法和yield()方法有什么区别?

    (2)线程执行sleep()方法后转入阻塞(blocked)状态,而执行yield()方法后转入就绪(ready)状态;

    剑走天涯

扫码关注云+社区

领取腾讯云代金券