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

网站建设挣钱的需要什么真实的网站制作

网站建设挣钱的需要什么,真实的网站制作,娄底建设网站公司,分销pc网站SYN 攻击方式最直接的表现就会把 TCP 半连接队列打满,这样当 TCP 半连接队列满了,后续再在收到 SYN 报文就会丢弃,导致客户端无法和服务端建立连接。 避免 SYN 攻击方式,可以有以下四种方法: 调大 netdev_max_backlo…

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

避免 SYN 攻击方式,可以有以下四种方法:

  • 调大 netdev_max_backlog;
  • 增大 TCP 半连接队列;
  • 开启 tcp_syncookies;
  • 减少 SYN+ACK 重传次数

 方式一:调大 netdev_max_backlog

当网卡接收数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。控制该队列的最大值如下参数,默认值是 1000,我们要适当调大该参数的值,比如设置为 10000 

方式二:增大 TCP 半连接队列

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

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

具体为什么是三个参数决定 TCP 半连接队列的大小,可以看这篇:可以看这篇:TCP 半连接队列和全连接队列满了会发生什么?又该如何应对?

方式三:开启 net.ipv4.tcp_syncookies

开启 syncookies 功能就可以在不使用 SYN 半连接队列的情况下成功建立连接,相当于绕过了 SYN 半连接来建立连接。

具体过程:

  • 当 「 SYN 队列」满之后,后续服务端收到 SYN 包,不会丢弃,而是根据算法,计算出一个 cookie 值;
  • 将 cookie 值放到第二次握手报文的「序列号」里,然后服务端回第二次握手给客户端;
  • 服务端接收到客户端的应答报文时,服务端会检查这个 ACK 包的合法性。如果合法,将该连接对象放入到「 Accept 队列」。
  • 最后应用程序通过调用 accpet() 接口,从「 Accept 队列」取出的连接。

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

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

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

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

 

 

方式四:减少 SYN+ACK 重传次数

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

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

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

 

为什么挥手需要四次?

再来回顾下四次挥手双方发 FIN 包的过程,就能理解为什么需要四次了。

  • 关闭连接时,客户端向服务端发送 FIN 时,仅仅表示客户端不再发送数据了但是还能接收数据。
  • 服务端收到客户端的 FIN 报文时,先回一个 ACK 应答报文,而服务端可能还有数据需要处理和发送,等服务端不再发送数据时,才发送 FIN 报文给客户端来表示同意现在关闭连接。
  • 从上面过程可知,服务端通常需要等待完成数据的发送和处理,所以服务端的 ACK 和 FIN 一般都会分开发送,因此是需要四次挥手
  • 4.1 TCP 三次握手与四次挥手面试题 | 小林coding

#第二次挥手丢失了,会发生什么?

当服务端收到客户端的第一次挥手后,就会先回一个 ACK 确认报文,此时服务端的连接进入到 CLOSE_WAIT 状态。

在前面我们也提了,ACK 报文是不会重传的,所以如果服务端的第二次挥手丢失了,客户端就会触发超时重传机制,重传 FIN 报文,直到收到服务端的第二次挥手,或者达到最大的重传次数

举个例子,假设 tcp_orphan_retries 参数值为 2,当第二次挥手一直丢失时,发生的过程如下图:

 

对于 close 函数关闭的连接由于无法再发送和接收数据,所以FIN_WAIT2 状态不可以持续太久,而 tcp_fin_timeout 控制了这个状态下连接的持续时长,默认值是 60 秒。 

但是注意,如果主动关闭方使用 shutdown 函数关闭连接,指定了只关闭发送方向,而接收方向并没有关闭,那么意味着主动关闭方还是可以接收数据的。

如果主动关闭方一直没收到第三次挥手,那么主动关闭方的连接将会一直处于 FIN_WAIT2 状态tcp_fin_timeout 无法控制 shutdown 关闭的连接)。如下图:

 

http://www.dinnco.com/news/45086.html

相关文章:

  • 大连网站seo竞价推广sem
  • 教育平台网站seo公司多少钱
  • 新网站怎么做seo优化网站制作的基本流程是什么
  • 网站销售源码西安核心关键词排名
  • 郑州网站优化培训机构百度关键词搜索排名代发
  • 国家电网网站制作信息流广告推广
  • 哪个浏览器能打开那种网站百度推广助手怎么用
  • 网站建设方案应该怎么做如何网站推广
  • 遥控器外壳设计网站推荐南宁最新消息今天
  • 如何 网站优化百度账号注册入口
  • 做个营销型网站多少钱今天刚刚发生的新闻台湾新闻
  • 佛山专业网站制作公司网页模板怎么用
  • 东海县建设局网站站长之家是什么网站
  • 企业wordpress模板免费seo建站工具
  • 域名有关的网站google推广有效果吗
  • 百度权重4北京网站优化培训
  • 网站添加ip访问限制吗深圳网络提速优化服务包
  • 网络推广网站排名海外独立站
  • 鄂尔多斯网站建设十大搜索引擎排名
  • 网站备案信息登记表公司关键词排名优化
  • 网站做导航的地图导航免费的域名和网站
  • 嘉兴做网站的公司谷歌浏览器 官网下载
  • 哈尔滨网站建设科技公司拉新推广
  • 做网站用是内网穿透好网站模板下载免费
  • 成都建设局网站东莞优化网站关键词优化
  • 广西安策企业管理咨询有限公司游戏优化大师下载安装
  • 广告册设计公司seo网站推广价格
  • 动画形式的h5在哪个网站做做百度关键词排名的公司
  • 润才网站建设广告语
  • 视频做动图的网站疫情防控最新信息