半连接耗尽和全连接耗尽表现有何不同,常见攻击类型有哪些

半连接耗尽时,新连接连三次握手都走不完,客户端只看到超时和SYN反复重传;全连接耗尽时,握手早已完成,连接躺在accept队列里没人取,客户端连得上却拿不到响应。一句话概括:前者是”门没开”,后者是”进了门没人接待”。

两者在监控上常常都表现为”连接数打满、业务超时”,但根因、处置动作完全不同,搞反了方向,加机器、加带宽都白费。

【TCP面试题2】什么是长连接短连接?什么时候会收到RST包?TCP保活机制是什么?
加载中
【TCP面试题2】什么是长连接短连接?什么时候会收到RST包?TCP保活机制是什么?
不
不务正业的IT男
7309--
原视频地址

卡点位置不同,症状自然不同

TCP建连像两个人隔着网络握手:客户端伸手(SYN),服务端回握(SYN+ACK),客户端再确认(ACK),两个队列分别管这两段路。

半连接耗尽:卡在握手的第二步

服务端收到SYN后,会把这个”半成品”连接放进半连接队列(SYN队列),等对方回ACK,队列满了,新来的SYN就无处安放。

  • 没开syncookies时,内核直接丢掉新SYN,客户端按tcp_synack_retries重试,默认5次、累计一分多钟,最后报连接超时。
  • 开了syncookies后,内核不占队列也能把握手走完,于是压力顺手推给了全连接队列这也是很多”半连接看着没事、全连接却爆了”的由来。

客户端侧的典型体感是:curl卡住不动,telnet端口半天没反应,日志里一堆”Connection timed out”。

全连接耗尽:握手完成了,业务却没接上

三次握手全部走完,连接进入ESTABLISHED,被塞进全连接队列(accept队列),等着应用调用accept()取走,应用取不过来,队列就满了。

此时服务端的处理取决于内核参数:默认丢弃新到的ACK,客户端以为连上了,发数据后一直等不到回应,表现为”连得上、没响应”;若把net.ipv4.tcp_abort_on_overflow设为1,服务端直接回RST,客户端看到的是”Connection reset by peer”。

一张表看清差异

对比项 半连接耗尽 全连接耗尽
握手进度 停在第二步 三步已完成
服务端连接状态 SYN_RECV大量堆积 ESTABLISHED堆积在队列
客户端感受 连不上,超时 连上了,无响应或RST
抓包特征 SYN反复重传,无SYN+ACK ACK之后没有业务数据回包
应用层是否有感 基本无感 应用明显变慢或不accept
主要瓶颈 内核SYN队列与攻击流量 应用处理能力与backlog配置

半连接队列满了和全连接队列满了有什么区别

这是运维群里出现频率极高的问题,答案要分三个视角看。

从客户端角度看

半连接耗尽,客户端连”进门”这一步都没完成,报错集中在连接超时;全连接耗尽,客户端拿到了连接句柄,卡在读响应上,超时时间往往更长,也更容易被误判成”后端接口慢”。

从服务端角度看

登录机器执行ss -s或netstat -an | grep -c SYN_RECV,如果SYN_RECV数量持续高位,且远高于正常波动,多半是半连接方向出了问题;如果ss -lnt里监听端口的Recv-Q持续接近Send-Q,说明全连接队列长期处于水位线之上。

netstat -s | grep -i listen能看到两类计数:times the listen queue of a socket overflowed对应全连接溢出,SYNs to LISTEN sockets dropped对应半连接方向的丢弃,这两个数字谁在涨,方向就清楚了。

从抓包角度看

在服务端抓包,半连接耗尽时能看到客户端SYN一次次重发,服务端始终没有SYN+ACK;全连接耗尽时,三次握手完整,之后客户端发来请求数据,服务端迟迟不回或直接RST,这个差别用tcpdump -i eth0 port 8080 -nn几分钟就能确认。

Linux全连接队列溢出怎么排查

先定位水位,再谈调参,顺序不能反。

三条命令先看清现状

  • ss -lnt:Recv-Q是当前排队连接数,Send-Q是该队列上限,Recv-Q贴着Send-Q不掉,就是溢出。
  • cat /proc/net/netstat | grep -i listen:看ListenOverflows、ListenDrops是否在持续增长。
  • dmesg | grep -i "syn flooding":出现”possible SYN flooding on port xxx”,说明内核已经判定SYN方向异常。

内核参数怎么调

  • net.core.somaxconn决定listen backlog上限,很多发行版默认偏保守,高并发服务应上调;应用层listen传入的backlog要同步放大,否则内核会截断。
  • net.ipv4.tcp_max_syn_backlog控制半连接队列容量,配合syncookies使用更稳。
  • net.ipv4.tcp_syncookies=1建议常开,它是半连接被攻击时的兜底手段。
  • net.ipv4.tcp_abort_on_overflow默认0,改成1能让客户端快速失败而不是干等,但会放大错误率,需谨慎。

应用层才是根因

多数情况下,全连接队列满不是内核参数小,而是应用accept()太慢:单线程处理、accept后同步做耗时初始化、或者用了阻塞式框架,队列只是一个缓冲垫,垫子再厚也扛不住持续的生产慢于消费。

服务器SYN_RECV很多但业务正常是怎么回事

这种情况确实存在,不必一见SYN_RECV就紧张。

  • 短时突发流量、扫描器探测、监控探活,都会让SYN_RECV短时抬升,几分钟内自然回落。
  • 开了syncookies后,合法连接照样能建立,业务指标不受影响。
  • 判断标准是”持续时长+业务指标”,两者同时恶化才算事故;只看一个瞬时数字容易误判。

真正需要警惕的是SYN_RECV长期高位、同时伴随新建连接失败率上升,那说明队列容量和清洗能力都不够了。

高并发场景下怎么选处置动作

云服务器连接数打满要不要加钱升配

先分清是规格瓶颈还是攻击,如果ListenOverflows和ListenDrops都不涨,只是CPU、内存吃紧,升配有效;如果是SYN Flood把半连接队列冲垮,升配只是把水位线抬高一点,攻击量不变的话很快再次打满,此时更该做的是流量清洗、限速和syncookies兜底,花钱之前,先看一眼netstat -s里的丢弃计数。

北京机房服务器遭遇SYN Flood怎么处理

思路与地域无关,动作有先后:

  1. 确认攻击特征,tcpdump抽样看源IP是否高度分散。
  2. 开启syncookies,临时收紧tcp_max_syn_backlog以外的防线,如接入层限速。
  3. 联系机房或云厂商侧做流量清洗,源IP分散的攻击在本机层面很难根治。
  4. 业务侧缩短超时、限制单IP并发,把影响面压到最小。

行业共识认为,半连接方向的攻击靠单机参数硬扛收益有限,清洗要放在上游。

分清两个队列,处置才有方向:半连接耗尽看攻击与SYN队列,全连接耗尽看应用accept与backlog。监控上把SYN_RECV和监听队列Recv-Q一起盯,比只盯连接总数有效得多。

半连接耗尽与全连接耗尽的常见问题

两个队列会同时耗尽吗

会,syncookies开启时半连接压力会转化成全连接压力,攻击叠加应用处理慢,两个队列可能同时见底,此时丢弃计数会同时上涨。

只调大backlog能解决问题吗

不能,backlog是缓冲,不是处理能力,业内专家指出,队列长期高位说明消费端跟不上,扩容应用或优化accept逻辑才是根本。

怎么快速判断是哪一种

执行ss -lnt看Recv-Q是否贴近Send-Q,再看netstat -s里两类丢弃计数谁在涨,两分钟内可定性。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/786213.html

赞 (0)
上一篇 2026年11月7日 05:09
下一篇 2026年11月7日 05:10

相关推荐

  • 国内哪个 jQuery CDN 速度最快?推荐好用的国内 jQuery CDN 加速链接

    2026年,对于国内开发者而言,选择稳定的国内jQuery CDN服务已不再是单纯的资源引用,而是涉及网站首屏加载性能与安全合规的关键决策,以字节跳动静态资源库、阿里云及腾讯云提供的CDN加速服务为首选,建议优先采用官方镜像或自建CDN方案,并强制配置子资源完整性(SRI)校验,以规避公共CDN失效风险并提升页……

    2026年7月12日
    15100
  • 中小业务初期必须用独立负载均衡吗,如何配置?

    中小业务上线初期,绝大多数情况下不需要独立部署负载均衡硬件或单独购买负载均衡实例,直接使用云服务商自带的免费负载均衡服务或DNS轮询即可满足需求,对于日活几百到几万的中小业务,真正的瓶颈往往不在流量分发,而在数据库设计和代码质量上,把预算和精力花在独立负载均衡上,通常是过度设计,中小企业需要负载均衡吗?先看业务……

    2026年9月9日
    300
  • 直播cdn贵不贵?为什么直播cdn这么贵?

    直播CDN费用高昂的核心原因在于实时传输对带宽、节点覆盖和转码算力的极致要求,典型场景下每GB成本可达0.5-3元,远超传统CDN,直播CDN成本高昂的根源1 带宽成本:直播的“流量税”实时流媒体无法像点播那样利用缓存命中降低回源,每一路视频流都需要持续占用上行与下行带宽,2026年主流厂商的峰值带宽计费单价集……

    2026年7月16日
    2300
  • CDN成本如何计算?如何有效降低CDN流量费用?

    CDN成本主要由流量费用、请求次数、节点覆盖范围及安全增值服务共同决定,2026年的行业趋势是向“按需动态计费”与“边缘计算集成”演进,企业通过优化缓存命中率和采用多CDN调度可降低30%-50%的冗余支出,CDN 成本的核心构成维度理解CDN成本不能简单地将其视为“带宽费”,而应将其拆解为多个影响成本的变量……

    2026年7月13日
    1700
  • cdn官网源码怎么下载,cdn官网源码

    CDN官网源码并非单一软件,而是基于开源协议(如Nginx、Varnish)或自研架构构建的静态资源加速分发系统,其核心价值在于通过边缘节点缓存降低源站负载并提升全球访问速度,2026年主流方案已全面转向云原生与边缘计算融合架构,CDN源码架构解析与选型逻辑在2026年的技术语境下,构建或部署CDN系统已不再局……

    2026年5月28日
    5400
  • 分页内存管理到底是什么,它有哪些优缺点?

    分页内存管理是现代操作系统实现虚拟内存的核心技术,它通过将虚拟地址空间和物理内存划分为固定大小的页,从根本上解决了内存外部碎片问题,并支持进程隔离、共享内存和虚拟内存扩展,分页内存管理的工作原理是什么?分页内存管理的核心思想是离散分配,虚拟地址空间被切成固定大小的块,称为“页”;物理内存被切成同样大小的块,称为……

    2026年8月6日
    800
  • 笔记本怎么开热点?笔记本网络热点设置教程

    笔记本开启网络热点的核心在于通过系统自带的“移动热点”功能共享Wi-Fi或以太网连接,设置时需确认热点名称、密码及频段,通常支持5台以上设备同时连接,适用于出差、会议或临时无宽带环境,在2026年的数字生活场景中,网络连接的灵活性已成为刚需,无论是带着轻薄本去咖啡馆处理紧急邮件,还是在酒店房间里需要为平板和手机……

    2026年7月7日
    15810
  • 阀门网站设计需要注意哪些问题,怎么推广?

    阀门网站设计的最高优先级不是好看,而是让访客在30秒内确信你们的专业能力,并在5分钟内完成询价或样品申请,阀门网站设计前的用户调研与竞争分析明确访客角色与决策路径阀门采购通常涉及工程师、采购经理与企业高管,工程师关注技术参数和标准认证,采购经理看重价格与交期,高管评估企业资质与长期合作能力,网站内容需要同时满足……

    2026年7月16日
    2000
  • CDN流量费用高吗,CDN流量计费方式详解

    CDN流量费用并不固定,它取决于你的业务规模、节点选择及计费模式,对于中小网站而言成本可控,但对于高并发场景,通过优化策略可显著降低支出,很多站长和开发者在搭建网站时,面对CDN(内容分发网络)的报价单往往感到困惑,流量费到底贵不贵?这其实是一个相对概念,对于日IP过万的电商大促,几块钱的流量费可能只是九牛一毛……

    2026年5月29日
    3900
  • 大模型与中文语料有何关系?大模型训练数据哪里找

    大模型竞争的下半场,早已不是算法架构的单一比拼,而是数据质量与知识密度的生死较量,中文语料作为大模型训练的关键“燃料”,其质量直接决定了模型对中华文化的理解深度与逻辑推理的准确度, 当前行业面临的核心痛点在于:高质量中文语料的稀缺、数据清洗标准的缺失以及价值观对齐的难度,只有构建高质量、多模态、深逻辑的中文数据……

    2026年3月24日
    14000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注