已经建立的TCP,收到SYN会发生什么?

TCP 三步握手(SYN、SYN-ACK、ACK)与SYN攻击 SYN 攻击指的是,利用TCP三步握手,攻击客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送SYN包,服务器回复确认包,并等待客户的确认。由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,导致目标系统运行缓慢,严重者会引起网络堵塞甚至系统瘫痪。 阅读详情

已经建立的TCP,收到SYN会发生什么?

该场景可以描述为:客户端与服务端建立连接后,突然客户端死机了,而服务器还处于establelisten状态,这时客户端开机后再次发送syn报文请求建立连接,那么服务端收到这个syn报文会做出什么反应呢??

一个TCP连接是由一个四元组唯一确认的,此时源ip,目标ip,目标端口是确定的,只有源端口是不确定的。

客户端SYN报文的源端口与历史端口是不一样的

这样的话,相当于客户端重新建立起了一次新的连接

那么服务端处于establelisten状态的连接,如果服务端有数据要发送的话,那么客户端内核就会会给服务端RST报文,强制断开连接;如果没有数据要发送,那么一段时间后,保活机制便开始活动,几次探测后没有回应,便会断开连接

客户端SYN报文的源端口与历史端口一致

对于前面一个连接,服务端没有数据要发送,且没有被TCP保活机制杀掉,也就是一直保持着establelisten状态,那么这时收到了原来连接的syn报文,它会做出什么反应呢???丢掉syn报文??发送RST报文??回复ACK+SYN报文???

当客户端发送syn报文时(这个syn报文序列号是随机的),这时服务端收到syn报文后,会回复包含正确序列号和应答号的ack报文,客户端在接收到这个ack报文后,发现与期待的序列号不一致,就会发送RST报文给服务端断开连接
在这里插入图片描述
这里服务端发给客户端正确ack报文,叫做Challenge ACK

连接终止后,客户端将继续尝试建立连接

自己如何关闭一个TCP连接呢??

  • 杀掉进程?
    在客户端可以通过杀掉一个进程来关闭一个端口,断掉连接;
    但是在服务端,你关闭一个端口,那不就是把全部连接都断开了嘛(服务端是只监听一个端口的),这样显然是不行的。
  • 伪造RST报文??
    如果你伪造的RST报文不在对方的接受窗口内,还是会被丢弃滴!伪造符合预期的序列号是比较难的。
  • 通过伪造SYN报文
    伪造符合预期的序列号比较难,那我们可以通过上面开头提到的知识来拿到合法的序列号嘛!!
    我们伪造一个syn报文发送过去后,服务端会返回一个正确的序列号以及应答号,这个应答号就是下一次发送的序列号,这样我们就得到了合法的序列号。

Linux上有一个叫killcx的工具,工作原理如下:
在这里插入图片描述

Linux服务器收到SYN请求包没有回应ACK导致客户端无法建立TCP连接 问题描述: 最近测试同事反馈一个很奇怪的问题,电子白板客户端加入白板会议后,经常出现下载同步文件失败的问题。下载同步文件使用的是https请求,经抓包得知,在试图建立TCP连接时,客户端发送三次握手申请的SYN包,但是服务器没有回应ACK,然后客户端触发了TCP的丢包重转,重发SYN包,但服务器始终没回ACK,导致无法完成建立TCP连接,所以无法下载同步文件。SYN包从本端网卡发出... 阅读详情

相关推荐

基于卷积神经网络的人脸识别算法

摘要:近年来,随着科学技术的不断发展,人脸识别技术日渐成熟,使得人脸识别技术的使用率不断增大。例如:门禁、ATM机、公安系统以及新兴起的人机交互等领域,都应用到了人脸识别系统。在人脸识别研究领域中,深度学习扮演着重要的角色。由于深度学习的人脸识别技术凭借其识别率高、识别快等特点,逐渐成为整个领域的主流技术。在众多深度学习算法中,以卷积神经网络为代表的人脸识别系统得到了广泛应用,主要研究内容如下:首先,通过对经典损失函数进行研究,对比每种损失函数的特点,然后根据A-Softmax函数进行改进,借助Margin

yyq2263511327的博客 1万+

TCP

1 TCP报文首部 源端口和目的端口,各占2个字节,分别写入源端口和目的端口; 序号,占4个字节,TCP连接中传送的字节流中的每个字节都按顺序编号。例如,一段报文的序号字段值是 301 ,而携带的数据共有100字段,显然下一个报文段(如果还有的话)的数据序号应该从401开始; 确认号,占4个字节,是期望收到对方下一个报文的第一个数据字节的序号。例如,B收到了A发送过来的报文,其序列号字...

海贼懒懒 1757

Ubuntu22.04安装ROS2 —— ROS2 humble 详细图文教程

本文详细介绍了如何在Ubuntu22.04(Jammy)系统下配置ROS2环境,安装RO2软件包,并验证安装成功。ROS2的版本是Humble Hawksbill。:ROS是一个开源的,提供硬件抽象、设备驱动、库、工具和通信机制,支持模块化开发与集成,广泛用于机器人控制和自动化应用。ROS2 相较于 ROS1 在架构设计、通信机制和平台支持等方面做出了改进。ROS1 采用集中式主节点(Master)进行节点间通信,存在单点故障风险,且实时性和跨平台支持较弱。

weixin_49649078的博客 8807

TCP连接的三次握手过程(SYN报文的学习)

在TCP协议中,SYN是一个标志位(Flag),用于在建立TCP连接时进行同步步骤。TCP是一种面向连接的协议,建立连接时需要进行"三次握手"过程,而SYN报文在这个过程中起着关键的作用。第三步(客户端发送ACK):最后,客户端收到服务器的SYN+ACK报文后,会发送一个带有ACK标志的TCP报文给服务器,这个报文也不包含实际数据,只有TCP头部。第一步(客户端发送SYN):客户端向服务器发送一个带有SYN标志的TCP报文,该报文中不包含实际数据,只有TCP头部,用于通知服务器客户端想要建立连接。

weixin_44943389的博客 2988

HyperMesh二次开发实战:自动化Comp与材料属性批量绑定

本文详细介绍了HyperMesh二次开发中自动化Comp与材料属性批量绑定的实战技巧。通过TCL脚本实现批量创建属性卡、智能材料分配和异常处理,大幅提升前处理效率,适用于汽车、航空航天等领域的复杂模型处理。

weixin_29214691的博客 690

Cesium生态盘点:超图、火星3D等15个二次开发框架对比

本文深入解析Cesium生态中的15个二次开发框架,包括超图、火星3D等主流选择,帮助开发者根据项目需求进行精准选型。从性能表现、功能完备性、开发友好度等维度进行对比,特别适合需要处理地理空间数据和构建三维可视化的JavaScript开发者。

weixin_28197941的博客 497

TCP的三报文建立连接与四报文释放连接

相信大家在学习或面试中都遇到过 TCP 相关的知识或面试题,TCP 是面向连接的、可靠的、基于字节流的运输层通信协议。本篇主要讲解TCP 是如何三报文建立连接和四报文释放连接的,也就是面试中常见的 TCP 的三次握手和四次挥手。在讲解三报文握手和四报文挥手前,先回顾一下 TCP 报文段的首部格式:序列号seq:在 TCP 连接中传送的字节流中的每一个字节都按顺序编号,在 TCP 建立连接时第一个字节的编号由计算机随机生成,而报文段的序列号指的是该报文段的第一个字节的编号。

weixin_74412978的博客 2514

zblog mysql数据库无法连接_ZBlog博客网站错误:MySQL数据库无法连接

前言前天搭建的博客网站,睡醒一觉起来网站挂逼了,其间无任何操作。主页都进不去,提示“MySQL数据库无法连接”,无论怎么刷新重启服务器都没用。最终从中午1点搞到凌晨2点,皇天不负有心人终于解决了。其实问题很简单,只是没这方面的经验,走了很多弯路。我本人并不是搞WEB的,搞这个博客纯碎就是玩玩罢了。处理这个问题的时候查了很久的资料,都是一些没太大意义的,无非就是让你改zb_user/c_option...

weixin_34691461的博客 2204

TCP挑战ACK报文限速

PROC文件tcp_challenge_ack_limit控制每秒钟发送挑战ACK报文的数量。避免遭受Blind In-Window Attacks,包括reset,sync或者数据注入攻击等,详解RFC5961。 初始化 在TCP协议初始化函数tcp_sk_init中赋值为1000。通过PROC文件tcp_challenge_ack_limit可查看此值,并可进行修改。 stati...

redwingz的博客 4692

YOLO11-pose关键点检测:训练实战篇 | 自己数据集从labelme标注到生成yolo格式的关键点数据以及训练教程

教会你如何用自己的数据集转换成对应格式的数据集以及如何训练YOLO11-pose关键点检测

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 5417

使用 MATLAB/Simulink 构建一个 核电站汽轮机与发电机协调控制系统 的仿真模型

在核电机组中,汽轮机-发电机系统是将核能最终转化为电能的关键环节。与火电机组不同,核反应堆的热惯性大、功率调节慢,因此汽轮机的控制策略需与反应堆特性相匹配,实现安全、稳定、高效的能量转换。维持发电机输出功率/频率稳定(响应电网调度)调节汽轮机进汽压力(匹配一回路蒸汽供应)实现“堆-机协调控制”保障机组在启停、变负荷、甩负荷等工况下的安全性本教程将带你使用构建一个核电站汽轮机与发电机协调控制系统汽轮机调速系统(调门控制)建模发电机与电网接口建模(同步机)

xiaoheshang_123的博客 188

TCP三次握手

 TCP的三次握手是怎么进行的:发送端发送一个SYN=1,ACK=0标志的数据包给接收端,请求进行连接,这是第一次握手;接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让发送端发送一个确认数据包,这是第二次握手;最后,发送端发送一个SYN=0,ACK=1的数据包给接收端,告诉它连接已被确认,这就是第三次握手。之后,一个TCP连接建立,

1544

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

已建立连接的TCP,收到SYN会发生什么?

大家好,我是小林。 昨晚有位读者问了我这么个问题: 大概意思是,一个已经建立的 TCP 连接,客户端中途宕机了,而服务端此时也没有数据要发送,一直处于 establish 状态,客户端恢复后,向服务端建立连接,此时服务端会怎么处理? 看过我的图解网络的读者都知道,TCP 连接是由「四元组」唯一确认的。 然后这个场景中,客户端的IP、服务端IP、目的端口并没有变化,所以这个问题关键要看客户端发送的 SYN 报文中的源端口是否和上一次连接的源端口相同。 1. 客户端的 SYN 报文里的端口号与历史连接不相同

小林coding 5736

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

4.9 已建立连接的TCP,收到SYN会发生什么?

客户端连接已被关闭,此时客户内核回RST报文,服释放连接;

加油加油 1267

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

tcp三次握手时客户端与服务端的状态变化

TCP三次握手(Three-Way Handshake)是建立TCP连接的过程。在这一过程中,客户端和服务端的状态会发生变化。

m0_69529796的博客 440

TCP/IP详解学习 -- TCP连接的建立与终止

1.TCP连接的建立            设主机B运行一个服务器进程,它先发出一个被动打开命令,告诉它的TCP要准备接收客户进程的连续请求,然后服务进程就处于听的状态。不断检测是否有客户进程发起连续请求,如有,作出响应。设客户进程运行在主机A中,他先向自己的TCP发出主动打开的命令,表明要向某个IP地址的某个端口建立运输连接,过程如下:      1)主机A的TCP向主机B的TCP发出连接

wei.zhou的专栏 465

在 TIME_WAIT 状态的 TCP 连接,收到 SYN 后会发生什么?

周末跟朋友讨论了一些 TCP 的问题,在查阅《Linux 服务器高性能编程》这本书的时候,发现书上写了这么一句话: 书上说,处于 TIME_WAIT 状态的连接,在收到相同四元组的 SYN 后,会回 RST 报文,对方收到后就会断开连接。 书中作者只是提了这么一句话,没有给予源码或者抓包图的证据。 起初,我看到也觉得这个逻辑也挺符合常理的,但是当我自己去啃了 TCP 源码后,发现并不是这样的。 所以,今天就来讨论下这个问题,「在 TCP 正常挥手过程中,处于 TIME_WAIT 状态的连接,收到相同四元组

小林coding 5209

为什么 TIME_WAIT 状态的 TCP 连接,收到 SYN 报文后,可以正常建立连接?

大家好,我是小林。 昨天群里有个读者问了一个很有意思的问题,他抓到一个抓包图,客户端和服务端四次挥手后,客户端在 17 秒内又复用了与上一次连接相同的端口,向服务端发起了 SYN 报文, 并成功建立了连接。 他觉得服务端应该还是处于 TIME_WAIT 状态(因为 Linux 操作系统中,2MSL 的时间是 60 秒,也就是 TIME_WAIT 状态的持续时间),为什么收到客户端的 SYN 报文后可以正常建立连接? 抓包图手机端不好看,为了方便大家看,我画了一个图: 简单来说,这个问题就是,为什么处

小林coding 4921

TCP中的SYN、ACK标识符的作用

TCP的三次握手是怎么进行的了:发送端发送一个SYN=1,ACK=0标志的数据包给接收端,请求进行连接,这是第一次握手;接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让发送端发送一个确认数据包,这是第二次握手;最后,发送端发送一个SYN=0,ACK=1的数据包给接收端,告诉它连接已被确认,这就是第三次握手。之后,一个TCP连接建立,...

小猴子的博客 2万+

当TIME_WAIT状态的TCP正常挥手,收到SYN后…

今天就来讨论下这个问题,在TCP正常挥手过程中,处于TIME_WAIT状态的连接,收到相同四元组的SYN后会发生什么?

华为云官方博客 1269

TCP的几个状态 (SYN, FIN, ACK, PSH, RST, URG)

在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段。 它们的含义是: SYN表示建立连接, FIN表示关闭连接, ACK表示响应, PSH表示有 DATA数据传输, RST表示连接重置。 其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,...

lamb7758的博客 2万+
上一篇: SYN报文什么时候会被丢弃?
下一篇: 一文解决MySQL事务并发问题和事务隔离级别及MVCC原理
small_engineer
博客等级 码龄7年 3191粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值