TCP/IP(六)TCP的连接管理(三)半连接

news2024/11/20 11:45:07

一  连接和连接

内容参考小林coding

说明: 普通'中小'厂不会问的这么'深',这么'细',但是当'性能调优'阶段必须掌握'原理'

①  内容提纲

②  概念

说明: '半连接'只是一个'中间'状态

②  图谱

二  半连接

①  查看 TCP 半连接队列长度

root '用户' 执行  --> netstat -antp | grep SYN_RECV | wc -l

说明: 系统'不繁忙'的话一般结果是'0'

②   增大 TCP 半连接队列

nginx TCP backlog 分析优化和性能相关经验汇总

③   模拟 TCP 半连接队列溢出场景

DDOS概念

④  ddos攻击时现象

⑤  使用 hping3 工具模拟 SYN 攻击

背景: 本次'模拟实验'假定是'没有'开启 tcp_syncookies

步骤'1': Centos7.7通过'epel'源安装hping3 '仿真'工具

步骤'2': 客户端使用'hping3'工具'模拟'SYN攻击

⑥  服务端观察

观察1: 此时'半连接'队列的大小

观察'2': 通过 netstat -s 观察'半连接队列溢出'的情况,也即'溢出 drop'了多少

netstat -s | grep "SYNs to LISTEN"

推荐: watch '持续' 观察

隔'几秒'执行几次,如果有'上升'的趋势,说明当前存在'半连接队列溢出'的现象

⑦  哪些因素影响半连接队列的大小  探究1

纠正'误区'1: tcp_max_syn_backlog '不是' 半连接队列大小

内核 tcp_ipv4.c 代码中 TCP 半连接队列溢出的处理逻辑

强调: 以下'3'种场景触发'都'会'SYN'报文丢弃

 Linux '2.6.32' 内核版本, 'max_syn_backlog'、'somaxconn'、'backlog' 三者的关系

⑧  处于 SYN_RECV 状态的最大个数不是理论值 max_qlen_log

⑨  原因探究

说明: 该探究接上'⑧'

根据'前面的源码'分析,我们可以计算出'半连接队列' max_qlen_log 的最大值为 '256'

操作1: 客户端执行 hping3 发起 'SYN' 攻击

hping3 -S -p 8080 --flood 192.168.3.200

操作2: 服务端执行'如下命令'查看处于 'SYN_RECV' 状态的'最大'个数

netstat -antp | grep SYN_RECV | wc -l

分析'条件3'产生'193'的原因

'小结'

⑩  如果 SYN 半连接队列已满,只能丢弃连接吗?

内核参数: /proc/sys/net/ipv4/tcp_syncookies  '0'、'1'、'2' 含义

'开启' syncookies 功能就可以在'不使用 SYN 半连接队列'的情况下'成功'建立连接

三   如何防御 SYN 攻击?

①  什么是半连接SYN攻击

DDOS攻击概念

②  半连接和全连接队列正常工作流程

Linux 内核的 SYN 队列 '半连接队列'与 Accpet 队列'全连接队列' 是'如何'工作的

③  避免 SYN 攻击四种方式

方式'1': 调大 netdev_max_backlog

备注: 这个'基本'没有'听说过',也'未'经验证,先做'记录'吧

方式'2': 增大 TCP '半连接'队列

条件: '不开启' net.ipv4.tcp_syncookies前提下

具体细节见上

方式'3': '开启' net.ipv4.tcp_syncookies

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

内核参数: tcp_synack_retries

④   答疑解惑

思考: 'syncookies 1 启用'后就不需要半链接了?那'请求的数据'会存在哪里?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1088580.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql面试题45:读写分离常见方案、哪些中间件可以实现读写分离

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说你知道的读写分离常见方案 读写分离是一种常见的数据库架构方案,旨在分担数据库的读写压力,提高系统的性能和可扩展性。以下是两种常见的…

图解==>渗透测试KAILI系统的基本操作(第九课)

渗透测试KAILI系统的基本操作(第九课) 渗透测试KAILI系统的安装环境(第八课)-CSDN博客 第一部分 认识KAILI操作系统的使用 以2022年版本为例 第二部分 kaili 最新版本的操作系统 的图形话页面 英文版本 第三部分 13条基础命令操作回顾 1 第一条命令 ls ls/ less cat …

与领航者共话湖仓, StarRocks Summit 2023 技术专场分论坛剧透来了!

过去一年里,越来越多的企业开始为自有大数据平台引入湖仓一体数据架构方案,来解决实际的业务问题: 微信实现多个平台数据需求统一,将平均数据查询速度提升 3 倍。 芒果TV 构建全新统一湖仓分析架构,将线上性能提升至原…

C++数位动态规划算法:统计整数数目

题目 给你两个数字字符串 num1 和 num2 &#xff0c;以及两个整数 max_sum 和 min_sum 。如果一个整数 x 满足以下条件&#xff0c;我们称它是一个好整数&#xff1a; num1 < x < num2 min_sum < digit_sum(x) < max_sum. 请你返回好整数的数目。答案可能很大&…

LeetCode【48】旋转图像

题目&#xff1a; 思路&#xff1a; 第一种思路&#xff1a;使用额外二维矩阵&#xff0c;变化后的直接存入额外的矩阵&#xff0c;不符合题意 以示例2中&#xff0c;第3行&#xff0c;第1列的13为例&#xff0c;旋转后&#xff0c;变为了第1行&#xff0c;第2列 旋转90 后行的…

Chrome Extensions v3 迁移清单

一、前置问题 1.1为什么需要迁移 v3&#xff1f; Chrome 计划完全停止 v2 版本维护&#xff0c;后续 v2 版本将无法上架谷歌插件商店&#xff0c;除此之外&#xff0c;未来新版本 Chrome 对于 v2 版本插件的限制会越来越大&#xff0c;比如安全性限制 iframe 嵌套只能通过沙盒…

使用gdb调试core文件和breakpad的简单使用

1 core文件的配置 默认情况下&#xff0c;如果程序崩溃了是不会生成core文件的&#xff0c;因为生成core文件受到系统ulimit配置的影响。 ulimit -c是core文件的大小&#xff0c;默认为0&#xff0c;因此&#xff0c;就不会生成core文件&#xff0c;因此&#xff0c;为了能够…

【DRAM存储器十六】DDR2介绍-DDR到DDR2的变化、DDR2框图详解、模式寄存器

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考资料&#xff1a;《镁光DDR数据手册》 目录 DDR2 SDRAM介绍 DDR2相对DDR的变化…

C++day07(auto、lambda、类型转换、STL、文件操作)

今日任务 试编程&#xff1a; 封装一个学生的类&#xff0c;定义一个学生这样类的vector容器, 里面存放学生对象&#xff08;至少3个&#xff09; 再把该容器中的对象&#xff0c;保存到文件中。 再把这些学生从文件中读取出来&#xff0c;放入另一个容器中并且遍历输出该容…

go-gin-api 本地部署调试问题总结

1.告警邮箱设置 保存后会自动将配置信息保存在fat_configs.toml 文件中&#xff1b; 可能出现问题&#xff1a;报错 550和 anth 问题&#xff0c;说明你的邮箱配置有问题&#xff08;密码或者授权码&#xff09;&#xff1b; 2.生成数据表curd 执行结果报错 exec: “gormge…

三防PDA手持终端开发板-联发科MTK6765平台安卓主板方案

三防手持终端安卓主板方案采用了联发科12nm八核MT6765处理器&#xff0c;配备4G64GB内存(可选配6GB256GB)&#xff0c;并搭载最新的Android 10.0操作系统。该方案支持许多功能&#xff0c;包括高亮显示屏、高清摄像头、NFC、3A快速充电、1D/2D扫描(可选配)、高精度定位(可选配)…

Torch生成类激活图CAM

import torch from torch.nn import functional as F from torchvision import models, transforms from PIL import Image import os os.environ[KMP_DUPLICATE_LIB_OK]TRUE# 加载经过训练的 ResNet 模型 model models.resnet50(pretrainedTrue) model.eval()# 载入图像并进行…

NFT Insider111:The Sandbox 推出乐天世界主题公园元宇宙,Aavegotchi 与 CARV达成合作

引言&#xff1a;NFT Insider由NFT收藏组织WHALE Members、BeepCrypto联合出品&#xff0c;浓缩每周NFT新闻&#xff0c;为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周报将从NFT市场数据&#xff0c;艺术新闻类&#xff0c;游戏新闻类&#xff0c;虚拟世界类&#…

CSwin Transformer 学习笔记

Cswin提出了上图中使用交叉形状局部attention&#xff0c;为了解决VIT模型中局部自注意力感受野进一步增长受限的问题&#xff0c;同时提出了局部增强位置编码模块&#xff0c;超越了Swin等模型&#xff0c;在多个任务上效果SOTA&#xff08;当时的SOTA&#xff0c;已经被SG Fo…

滑动窗口算法题

更新结果 1、判断条件成立后更新结果 2、入窗口后即可更新结果 判断&#xff1a; 出窗口后状态更新&#xff0c;循环回去再判断。 1、长度最小的子数组 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台

【C++STL基础入门】排序和遍历容器

文章目录 前言使用前须知头文件 一、for_each算法1.1 for_each是什么1.2 函数原型1.3 示例代码1:将容器中的每个元素打印出来1.4 示例代码2&#xff1a;将容器中的每个字符串转换为大写形式 二、sort算法2.1 sort算法是什么&#xff1f;2.2 函数原型2.3 示例代码1&#xff1a;按…

Win10找不到hosts文件的解决方案

正常情况下&#xff0c;Windows10系统的C:\Windows\System32\drivers\etc目录下应该有hosts文件&#xff0c;但偏偏有些电脑没有&#xff0c;哪怕你打开了查看“隐藏的项目”也没见到hosts文件&#xff0c;如下&#xff1a; 解决方案 1、先点击查看&#xff0c;再点击选项&…

红队专题-工具Fscan

红队专题 招募六边形战士队员简介主要功能 ubuntu 安装windows 安装常用命令&#xff1a;项目框架源文件common目录Plugins目录Webscan目录爆破插件Webtitle函数webpoc扫描类型common.Scantype 免杀源码特征 参考链接 招募六边形战士队员 一起学习 代码审计、安全开发、web攻防…

有哪些免费的PPT模板网站,推荐这6个PPT模板免费下载网站!

混迹职场的打工人&#xff0c;或是还在校园的学生党&#xff0c;在日常的工作汇报或课程作业中&#xff0c;必然少不了PPT的影子&#xff0c;而每当提到做PPT&#xff0c;许多人首先会想到&#xff1a;有哪些免费的PPT模板下载网站&#xff1f; 本着辛苦自己&#xff0c;造福所…

(vue)el-select根据下拉框显示隐藏的visible-change的事件使用

(vue)el-select根据下拉框显示隐藏的visible-change的事件使用 <el-select v-model"value1"multiple:multiple-limit"2"placeholder"请选择" visible-change"visibleChange" ><el-option...></el-option> </el-s…