当前位置: 首页 > news >正文

惠州做网站的公司关键词优化需要从哪些方面开展?

惠州做网站的公司,关键词优化需要从哪些方面开展?,菏泽兼职网站建设,html5从入门到精通文章目录 1.什么是 SYN Flood 攻击?2.半连接与全连接队列3.如何防范 SYN Flood 攻击?增大半连接队列开启 SYN Cookie减少 SYNACK 重传次数 参考文献 1.什么是 SYN Flood 攻击? SYN Flood 是互联网上最原始、最经典的 DDoS(Distri…

文章目录

  • 1.什么是 SYN Flood 攻击?
  • 2.半连接与全连接队列
  • 3.如何防范 SYN Flood 攻击?
    • 增大半连接队列
    • 开启 SYN Cookie
    • 减少 SYN+ACK 重传次数
  • 参考文献

1.什么是 SYN Flood 攻击?

SYN Flood 是互联网上最原始、最经典的 DDoS(Distributed Denial of Service)攻击之一。

SYN 报文指的是 TCP 协议中的 Synchronize 报文,是 TCP 三次握手过程中的首个报文。让我们先来了解一个正常的TCP三次握手过程。

在这里插入图片描述

TCP 连接建立需要三次握手,假设攻击者短时间伪造不同 IP 地址的 SYN 报文,服务端每接收到一个 SYN 报文,就进 SYN_RECV 状态,但服务端发送出去的 ACK + SYN 报文,无法得到未知 IP 主机的 ACK 应答,久而久之就会占满服务端的半连接队列,使得服务端不能为正常用户服务。

这就是 SYN Flood 攻击。

在这里插入图片描述

2.半连接与全连接队列

什么是 TCP 半连接和全连接队列?

TCP 三次握手时,Linux 内核会维护两个队列:

  • 半连接队列,也称 SYN 队列。
  • 全连接队列,也称 Accept 队列。

我们先来看下 Linux 内核的半连接队列与全连接队列是如何工作的?

在这里插入图片描述

  • 当服务端接收到客户端的 SYN 报文时,会创建一个半连接的对象,然后将其加入到内核的「 SYN 队列」。
  • 接着发送 SYN + ACK 给客户端,等待客户端回应 ACK 报文。
  • 服务端接收到 ACK 报文后,从「 SYN 队列」取出一个半连接对象,然后创建一个新的连接对象放入到「 Accept 队列」。
  • 应用通过调用 accpet() socket 接口,从「 Accept 队列」取出连接对象。

不管是半连接队列还是全连接队列,都有最大长度限制,超过限制时,默认情况都会丢弃报文。

SYN Flood 攻击方式最直接的表现就会把 TCP 半连接队列打满,这样当 TCP 半连接队列满了,后续再收到 SYN 报文就会丢弃,导致客户端无法和服务端建立连接。

3.如何防范 SYN Flood 攻击?

SYN Flood 的目的是占满服务器的连接数,消耗服务器的系统资源。对于服务器自身来说,最直接的做法就是提高服务能力,比如组建集群,升级硬件。但是这种方式成本巨大,且对于海量的攻击报文来说,并没有太大的作用,仅多撑几分钟甚至几秒而已。

防范 SYN Flood 攻击,可以有以下几种方法:

增大半连接队列

增大 TCP 半连接队列,要同时增大下面这三个参数:

增大 net.ipv4.tcp_max_syn_backlog
增大 listen() 函数中的 backlog
增大 net.core.somaxconn

开启 SYN Cookie

开启 SYN Cookie 功能就可以在不使用 SYN 半连接队列的情况下成功建立连接,相当于绕过了 SYN 半连接来建立连接。
在这里插入图片描述

  • 当 「 SYN 队列」满之后,后续服务端收到 SYN 包,不会丢弃,而是根据算法,计算出一个 Cookie 值。Cookie 包含了一些与连接相关的信息,如初始序列号等,但不会在服务器端保存连接状态。
  • 服务端将 Cookie 值放到第二次握手报文的「序列号」里回给客户端。
  • 服务端接收到客户端的 ACK 报文时,通过将 ACK 报文减去 1 获取 Cookie,然后根据 Cookie 判断报文的合法性并重建连接状态,然后将该连接对象放入「 Accept 队列」。
  • 最后应用程序通过调用 accpet() 函数,从「 Accept 队列」取出连接。

可以看到,当开启了 SYN Cookie 了,即使受到 SYN 攻击而导致 SYN 队列满时,也能保证正常的连接成功建立。

net.ipv4.tcp_syncookies 参数主要有以下三个值:

0 值,表示关闭该功能
1 值,表示仅当 SYN 半连接队列放不下时,再启用它
2 值,表示无条件开启功能

那么在应对 SYN 攻击时,只需要设置为 1 即可。

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

减少 SYN+ACK 重传次数

当服务端受到 SYN 攻击时,就会有大量处于 SYN_RECV 状态的 TCP 连接,处于这个状态的 TCP 会重传 SYN+ACK ,当重传超过次数达到上限后,就会断开连接。

那么针对 SYN 攻击的场景,我们可以减少 SYN-ACK 的重传次数,以加快处于 SYN_REVC 状态的 TCP 连接断开。

SYN-ACK 报文的最大重传次数由 tcp_synack_retries内核参数决定(默认值是 5 次),比如将 tcp_synack_retries 减少到 2 次:

echo 2 > /proc/sys/net/ipv4/tcp_synack_retries

参考文献

SYN 洪水DDoS 攻击 - Cloudflare
什么是SYN Flood?如何防御SYN Flood? - 华为
4.1 TCP 三次握手与四次挥手面试题 - 小林coding
TCP 半连接队列和全连接队列满了会发生什么?又该如何应对?
SYN cookies - wikipedia

http://www.ds6.com.cn/news/12411.html

相关文章:

  • 网络规划设计师教程最新版宁波seo推广咨询
  • 第一次做网站不知道建站官网
  • 西安网站建设陕icp网络营销期末总结
  • 做房产网站赚钱吗营销软文范例
  • 在线销售型网站产品seo优化seo外包
  • 温州网站设计只找亿企邦电商详情页模板免费下载
  • 平面设计软件网站百度热度榜搜索趋势
  • 织梦建站教程全集互联网运营推广
  • 做网站在后台如何添加链接站长资源平台
  • 成都外贸网站建设费用现在最火的发帖平台
  • 苏州知名高端网站建设网络公司自媒体平台注册入口官网
  • 虚拟机建设网站网络推广公司简介模板
  • 网站如何建设流程图做个公司网站多少钱
  • 网站模板用什么做百度搜索关键词设置
  • 网站开发一定要学java吗百度问一问人工客服怎么联系
  • 电子公司logo设计单词优化和整站优化
  • 建盏名家罗建明简介seo关键词排名优化推荐
  • wordpress 分类列表插件seo高级
  • b2b外贸网站如何做推广百度爱企查电话人工服务总部
  • dede 网站地图 模块武汉seo服务多少钱
  • 网站文件app互联网运营培训课程
  • 网站文字循环滚动代码枫树seo
  • 网站建设需要会什么百度知道小程序
  • 成都快速建网站外国黄冈网站推广平台
  • 成都网站设计公司友情链接检测方法
  • 职业能力建设网网站广东宣布即时优化调整
  • 广安 网站建设开鲁网站seo免费版
  • 用美国服务器做钓鱼网站关键词林俊杰
  • 国外 素材 网站广州网站优化排名
  • 外贸网站用什么空间企业培训方案