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

【网络协议】TCP连接的建立和释放 TCP报文段首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项。因此TCP报文段的最小长度为20个字节。 首部固定部分的各字段的意义如下: 1、源端口和目的端口:加上IP首部的源IP地址和目的IP地址,确定唯一的一个TCP连接。另外通过目的端口来决定TCP将数据报交付于那个应用程序,从而实现TCP的分用功能。 2、序号:占4个字节,序号的范围为[0,4284967296]。由于TCP是面向字节流的,在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,首部中的序号字 阅读详情

1. 客户端的 SYN 报文里的端口号与历史连接不相同

此时服务端会认为是新的连接要建立,于是就会通过三次握手来建立新的连接。

旧连接里处于 Established 状态的服务端最后会怎么样呢?

服务端给客户端发消息了:客户端连接已被关闭,此时客户内核回RST报文,服释放连接;

服务端没给客户端发消息:超过一段时间,tcp保活机制启动,释放连接

2. 客户端的 SYN 报文里的端口号与历史连接相同

 处于 Established 状态的服务端收到了这个 SYN 报文(此时的 SYN 报文其实是乱序的,因为 SYN 报文的初始化序列号其实是一个随机数),服务端回复一个携带正确序列号的确认号的ACK报文,客户端接收到这个ACK发现不是自己想要的,返回RST给服务端,释放连接。

如何关闭TCP连接?

伪造一个RST报文,必须满足四元组相同和序列号是对方期望的这两个条件。

killcx工具伪造一个四元组相同的SYN报文,来拿到合法的序列号。

tcpkill 工具是在双方进行 TCP 通信时,拿到对方下一次期望收到的序列号。然后将序列号填充到伪造的 RST 报文,并将其发送给对方,达到关闭 TCP 连接的效果。

  • tcpkill 属于被动获取,必须再双方进行TCP通信时,才能获取正确的序列号,显然这种方式无法关闭非活跃的TCP连接。
  • killcx 工具则是属于主动获取,它是主动发送一个 SYN 报文,通过对方回复的 Challenge ACK 来获取正确的序列号,所以这种方式无论 TCP 连接是否活跃,都可以关闭。
TCP的连接建立与释放 TCP --- 传输控制协议 报头格式: (1)源端口和目的端口:与UDP类似,TCP的分用是通过端口实现的。 (2)序号:TCP是面向字节流的,在TCP连接中传送的字节流的每一个字节都是有顺序的,整个要传送的字节流的起始序号必须要在连接建立时设置。首部中的序号字段值表示本报文段的数据的第一个字节的序号。该字段也称为“报文段序号”。 (3)确认号:是期望收到对方下一个报文段的第一个 阅读详情

相关推荐

TCP协议-建立连接、断开连接、状态转换图

来源:《UNIX网络编程 卷1:套接字联网API(第3版)》第2章传输层:TCP、UDP和SCTP 2.6 TCP连接的建立和终止 为帮助大家理解connect、accept和close这3个函数并使用netstat程序调试TCP应用,我们必须了解TCP连接如何建

慢慢的前进 1万+

TCP连接状态详解

tcp状态: LISTEN:侦听来自远方的TCP端口的连接请求,表示服务器端的某个SOCKET处于监听状态,可以接受连接了 SYN-SENT:再发送连接请求后等待匹配的连接请求 SYN_SENT: 这个状态与SYN_RCVD遥想呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,因此也随即它会进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个

grantlee1988的专栏 1167

TCP连接建立与关闭数据包捕获

一、三次握手与四次挥手建立TCP连接需要三次握手,断开连接则需要四次挥手,整个过程如下: (一)连接建立阶段: (1)客户端发送一个SYN包给服务器,然后等待应答。 (2)服务器端回应给客户端一个ACK=1、SYN=1的TCP数据段。 (3)客户必须再次回应服务器端一个ACK确认数据段。(二)连接断开阶段: (1) TCP客户端发送一个FIN,关闭客户端到服务器端的数据传送。(客户端不再发

ancientmoondjay的博客 2373

传输层 TCP 三次握手中性能优化 SYN_RCV 状态/syn攻击

•net.ipv4.tcp_syn_retries=6主动建立连接时,发SYN的重试次数(客户端发完syn,其实就进入了syn_sent状态,在syn_sent状态的时候,对于linux上面的负载均衡,或者向其他服务器建立大量连接的时候,也可以通过syn_retries来设置重发syn的重试次数)•net.ipv4.tcp_synack_retries被动建立连接时,发SYN/ACK的重试次数(当我们发送SYN/ACK之后,长时间没有得到ack响应,我们可能要重发SYN/ACK的重试次数).........

小楼一夜听春雨,深巷明朝卖杏花 1701

5分钟搞定!用OpenCV实现全景图像柱面展开的保姆级教程(附完整代码)

本文提供了一份使用OpenCV实现全景图像柱面展开的详细教程。通过清晰的数学原理讲解和分步代码演示,指导读者快速掌握从等距柱状投影全景图到平面展开图的核心转换方法,并涵盖性能优化、参数调整及透视视图扩展等实用技巧,适合图像处理爱好者和开发者实践。

sony5的博客 571

智能车赛道识别:八邻域算法的实战解析与优化

本文深入解析了智能车赛道识别中八邻域算法的核心原理与实战优化。作为兼顾性能与稳定性的经典方案,该算法通过模拟探险家环顾八方的策略,能精准追踪弯道与直道边界。文章详细拆解了代码逻辑,并提供了边界平滑、异常处理及应对十字路口、环岛等复杂场景的关键优化策略,助力开发者提升智能车视觉系统的鲁棒性与实时性。

weixin_29228781的博客 261

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

已经建立的TCP,收到SYN会发生什么? 该场景可以描述为:客户端与服务端建立连接后,突然客户端死机了,而服务器还处于establelisten状态,这时客户端开机后再次发送syn报文请求建立连接,那么服务端收到这个syn报文会做出什么反应呢?? 一个TCP连接是由一个四元组唯一确认的,此时源ip,目标ip,目标端口是确定的,只有源端口是不确定的。 客户端SYN报文的源端口与历史端口是不一样的 这样的话,相当于客户端重新建立起了一次新的连接 那么服务端处于establelisten状态的连接,如果服务端

small_engineer的博客 3028

ArcGIS实战:手把手教你用DEM和灾害点数据,5步搞定地质灾害风险区划图

本文详细介绍了使用ArcGIS进行地质灾害风险评估的完整流程,从DEM和灾害点数据出发,通过五步标准化操作生成专业风险区划图。重点讲解了信息量模型的应用,帮助读者掌握GIS技术在地质灾害易发性评价中的实践方法,提升风险评估效率与准确性。

weixin_30696427的博客 424

TCP三次握手和四次挥手

一、三次握手 三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。 刚开始时客户端处于Closed的状态,服务端处于Listen状态。 进行三次握手: 第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN。此时客户端处于 SYN_SENT 状态。 首部的同步位SYN=1,初始序号seq=x,SYN=

kking_edc的博客 1万+

南京邮电大学电工电子实验(二)复习一

本文给电工电子实验(二)的复习进行一些知识点的提醒

YOUXISUN的博客 2957

【C语言】一文搞懂C语言文件操作

读写文件、文件相关库函数详解、文件缓冲区介绍

StackFrame 5656

TCP状态转换

1.TCP状态 从上面的TCP状态迁移图中可以看出,一共存在以下状态: CLOSED LISTEN SYN_RCVD SYN_SENT ESTABLISHED FIN_WAIT_1 FIN_WAIT_2 CLOSING TIME_WAIT CLOSE_WAIT LAST_ACK 2.TCP的三次握手及四次挥手 2.1 Client端的状态 SYN_SENT ESTABLISHED FIN...

一点点 342

到底什么是指令集?什么是微架构?他们是什么关系?

指令集、处理器架构、芯片厂商、ARM、x86,其间关系还在迷糊吗?一文迅速理清!!

车载系统攻城狮 7811

TCP 连接建立

TCP 连接建立

这个人很懒,什么都没有留下。 1353

大数据运营可视化:Tableau+PowerBI数据看板搭建教程

当企业数据量从“GB级”跃升到“TB级”,运营人员面临的最大挑战不再是“如何收集数据”,而是“如何让数据说话”。数据看板作为“运营指挥中心的仪表盘”,能将零散的用户行为、业务指标、流量趋势浓缩成可快速解读的视觉语言。本文结合Tableau(自由探索的“数据瑞士军刀”)与PowerBI(微软生态的“组合家具”)两大工具,从需求分析→数据准备→指标设计→视图搭建→ dashboard 组合,一步步教你搭建符合业务逻辑的运营看板。

AI智能探索者的博客 1362

Vue2 - 详细实现安装西瓜视频 xgplayer 插件详细配置及使用教程,利用西瓜视频播放器播放 mp4、flv、hls 格式视频文件及视频推流(直播或监控摄像头画面),支持移动端H5及PC网站!

vue2,nuxt2,西瓜视频,xgplayer,插件组件,xgplayer-hls,xgplayer-flv,xgplayer-mp4,播放视频点播和直播视频流,自定义播放器样式,截屏,监控视频,vue使用西瓜播放器播放flv、hls、mp4视频,截屏按钮,直播流,报错,黑屏,加载失败,苹果ios不兼容,重连,怎么改样式,很卡,详细教程,监控实时播放推流,倍速播放,在线flv在线推流地址,HLS播放,vue西瓜播放器,vue如何使用西瓜视频插件做直播推流回流,视频点播,flv在线视频流播放,截图功能,利用

🏆 前端领域优质创作者 1万+

详解TCP连接的建立

详解TCP连接的建立

pleasenoerror的博客 7243

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

TCP协议连接建立时3次握手的过程4次结束连接

协议连接建立时3次握手的过程4次结束连接 TCP协议连接建立时3次握手的过程。简述TCP协议连接建立时3次握手的过程。根据TCP头部,说明下列3个包在连接建立过程中的次序.0020        00 50 83 aa 46 49 3e dd 33 96 37 a3 a0 12  ...P..FI>.3.7...0030   16

技术资料库 7970

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

TCP连接的建立与关闭

TCP连接建立 首先要说明的是要明确TCP连接建立的过程需要3次握手,下面举例说明各种状态存在的时刻: 1.首先在服务器A上开启FTP服务,开始侦听来自远端TCP端口的连接请求,这个时候查看服务器A的对应端口状态为:LISTENING 2.在客户端B上向A发送FTP连接请求,这个时候数据包同步位置1,这是TCP三次握手的第一步。在发送后没收到确认时,在客户端B上其状态为:SYN-SENT。此时客户端B启动连接定时器,如果在75秒内没有收到应答,则放弃连接建立。 3.在服务器A收到客户端B发送的SYN

zjp的博客 4960

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

43.TCP三次握手建立连接的过程

TCP 是面向连接的协议,所以每次发出的请求都需要对方进行确认。TCP 客户端与 TCP 服务器在通信之前需要完成三次握手才能建立连接。 下面详细讲解三次握手的过程。 第 1 次握手 第 1 次握手建立连接时,客户端向服务器发送 SYN 报文(SEQ=x,SYN=1),并进入 SYN_SENT 状态,等待服务器确认,如图所示。 第 2 次握手 第 2 次握手实际上是分两部分来完成的,即 SYN+ACK(请求和确认)报文。 服务器收到了客户端的请求,向客户端回复一个确认信息(ACK=x+1).

CodeAllen嵌入式 2054

TCP之服务器端接收SYN请求段

这篇笔记要说明的是TCP服务器端在收到客户端第一个SYN请求段时的处理过程,由于SYN请求段的处理过程属于TCP数据接收流程中的一部分,而接收流程非常的复杂,所以下面的代码流程只列出与本主题相关的内容。 1. 接收SYN请求段 TCP层的数据包输入接口为tcp_v4_rcv(),我们从这里看起: int tcp_v4_rcv(struct sk_buff *skb) { struct tcphd...

九天小哥的专栏 3093

TCP建立连接为什么要三次握手

tcp是一个面向连接的协议,在传送数据以前,必须要首先建立一条连接。连接的建立需要经过三次握手。为什么要经过三次握手呢,每次握手双方都做了些什么? 1)什么是tcp报文? tcp报文就是通过tcp协议发送的数据包,由tcp头和数据段组成。 tcp头是固定的20个字节,它的格式为: 16位源端口号 16位目的端口号 32位序号 32位确认序号 4位首部长度 保留6位

QuitePig的专栏 3984

TCP连接过程及报文解析

可能大家都听过TCP建立连接时需要经历三次握手和四次挥手的。 那么具体的握手挥手的过程是怎么样的呢? 这篇文章就通过WireShark抓包来了解TCP连接建立和断开的过程。 实验方法: 写一段简单的代码 代码客户端和服务端,分别部署,让客户端主动像服务器发起连接,随后断开。让WireShark抓股这个过程中产生了哪些包,并对其分析。 (注:WireShark默认不支持LoopBack,需...

weixin_33766168的博客 7937

tcp当主动发出syn_tcp 客户端 发送syn

/*This will initiate an outgoing connection.1. 检查socket的地址长度和使用的协议族。2. 查找路由缓存。3. 设置本端的IP。4. 如果传输控制块已经被使用过了,则重新初始化相关变量。5. 记录服务器端的IP和端口。6. 把连接的状态更新为TCP_SYN_SENT。7. 选取本地端口,可以是未被使用过的端口,也可以是允许重用的端口。8. 把soc...

weixin_39631649的博客 577

TCP之报头格式——连接建立与拆除

在了解TCP的连接与拆除前,首先来看看什么是TCP: TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol

wjhdd的博客 953
上一篇: 4.8 SYN什么时候被丢弃
下一篇: 4.10&11
陈岂几真幸运
博客等级 码龄5年 47粉丝 284原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值