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

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 连接是否活跃,都可以关闭
相关推荐
tang7778920 小时前
一张图看懂 HTTP、SOCKS5 代理的区别
网络·网络协议·http
筱白爱学习20 小时前
RestHighLevelClient详细使用手册
linux·服务器·php
石油人单挑所有21 小时前
ProtoBuf编写网络版本通讯录时遇到问题及解决方案
运维·服务器
Andy1 天前
分流设备的测试报告
运维·服务器
枷锁—sha1 天前
【CTFshow-pwn系列】03_栈溢出【pwn 045】详解:Ret2Libc 之 32位动态泄露(补充本地 Libc 手动加载指南)
服务器·网络·网络安全·系统安全
liann1191 天前
4.3.2_WEB——WEB后端语言——PHP
开发语言·前端·网络·安全·web安全·网络安全·php
byzh_rc1 天前
[深度学习网络从入门到入土] 含并行连结的网络GoogLeNet
网络·人工智能·深度学习
xdpcxq10291 天前
EF Core实体追踪Entry中记录的数据
服务器·数据库·oracle
乾元1 天前
对抗性攻击:一张贴纸如何让自动驾驶视觉系统失效?
运维·网络·人工智能·安全·机器学习·自动驾驶
Norach1 天前
ubuntu22.04安装ssh-server与realvnc-server
linux·服务器·经验分享·ubuntu·ssh·vnc