TCP连接异常终止(RST包)场景分析
一、TCP异常终止(reset报文)
TCP的异常终止是相对于正常释放TCP连接的过程而言的,我们都知道,TCP连接的建立是通过三次握手完成的,而TCP正常释放连接是通过四次挥手来完成。但是有些情况下,TCP在交互的过程中会出现一些意想不到的情况,导致TCP无法按照正常的三次握手建立连接或四次挥手来释放连接。如果此时不通过其他的方式来释放TCP连接的话,这个TCP连接将会一直存在,占用系统的资源。在这种情况下,我们就需要有一种能够释放TCP连接的机制,这种机制就是TCP的reset报文。reset报文是指TCP报头的标志字段中的reset位置一的报文,如下图所示:
二、TCP异常终止的常见情形
我们在实际的工作环境中,导致某一方发送reset报文的情形主要有以下几种:
1. 客户端尝试与服务器未对外提供服务的端口建立TCP连接,服务器将会直接向客户端发送reset报文。
2. 客户端和服务器的某一方在交互的过程中发生异常(如程序崩溃等),该方系统将向对端发送TCP reset报文,告之对方释放相关的TCP连接,如下图所示:
3. 接收端收到TCP报文,但是发现该TCP的报文,并不在其已建立的TCP连接列表内,则其直接向对端发送reset报文,如下图所示:
4. 在交互的双方中的某一方长期未收到来自对方的确认报文,则其在超出一定的重传次数或时间后,会主动向对端发送reset报文释放该TCP连接,如下图所示:
5. 有些应用开发者在设计应用系统时,会利用reset报文快速释放已经完成数据交互的TCP连接,以提高业务交互的效率,如下图所示:
三、Reset报文的用途
1. 安全设备利用reset报文阻断异常连接
安全设备(如防火墙、入侵检测系统等)在发现某些可疑的TCP连接时,会构造交互双方的reset报文发给对端,让对端释放该TCP连接。比如入侵检测检测到黑客攻击的TCP连接,其构造成被攻击端给黑客主机发送reset报文,让黑客主机释放攻击连接。
2. 利用reset报文实施攻击
安全设备可以利用reset报文达到安全防护的效果,黑客和攻击者也可以利用reset报文实现对某些主机的入侵和攻击,最常见的就是TCP会话劫持攻击。关于TCP会话劫持的相关知识请参考第三章《TCP会话劫持》一文。
TCP连接异常终止(RST包)场景分析相关推荐
- TCP连接异常终止(RST包)
转自:http://blog.csdn.net/ixidof/article/details/8049667 TCP异常终止(reset报文) TCP的异常终止是相对于正常释放TCP连接的过程而言的, ...
- TCP连接的心跳包机制
文章目录 什么是心跳机制 为什么需要心跳机制? 如何及时有效地检测到另一方的非正常断开 TCP的keeplive保活机制 什么是心跳机制 所谓的心跳包就是(探测性的)数据包,之所以叫心跳包是因为:它像 ...
- TCP协议-TCP连接管理
一.TCP概述 TCP协议是 TCP/IP 协议族中一个非常重要的协议.它是一种面向连接.提供可靠服务.面向字节流的传输层通信协议. TCP(Transmission Control Protocol ...
- TCP系列04—连接管理—3、TCP连接的半打开和半关闭
====================================================|| 欢迎讨论技术的可以相互加微信:windgs (请备注csdn+xx职业) ======== ...
- 原来墙,是这么把我TCP连接干掉的!
今天聊一个比较轻松的问题:如何关闭一个 TCP 连接? 可能大家第一反应是「杀掉进程」不就行了吗? 是的,这个是最粗暴的方式,杀掉客户端进程和服务端进程影响的范围会有所不同: 在客户端杀掉进程的话,就 ...
- Linux的TCP连接数量最大不能超过65535个吗,那服务器是如何应对百万千万的并发的?
最大并发tcp连接数是多少呢? 首先,问题中描述的65535个连接指的是客户端连接数的限制. 在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三次握手后建立tcp连接 ...
- 一个解除TCP连接的TIME_WAIT状态限制的简便方法
近日无意间发现了一个小窍门:当TCP连接所对应socket的接收队列中仍有未读数据时,将此socket强行close后,将使此socket连接不会进入TIME_WAIT状态,用"netsta ...
- 你知道 HTTP 是如何使用 TCP 连接的吗?今天我就来告诉你!
之前我写了篇关于 HTTP 的文章,文章中讲述了 HTTP 的特点,HTTP 的报文,HTTP 的请求方式等知识,接下来,深入了,我们就关于 HTTP 引发的面试题来进行入手,一起来看一下吧! 1.H ...
- wireshark抓包分析tcp连接与断开
其实对于网络通信的学习,最好还是能够自己抓到包详细地看一下,不然只单单通过文字和图的描述印象不够深刻.本文通过实际的抓包操作来看一下tcp的连接与断开是怎样的. 首先需要去https://www.wi ...
- java tcp client 断开_HttpClient出现TCP连接异常关闭发送RST包
问题现象 在与第三方系统通过http交互数据的过程中,抓包发现每次TCP连接都是异常关闭,报文如下: 可以看到,由我方发起3次握手建立连接,然后发送http请求,对方响应数据,我方ACK后直接发RST ...
最新文章
- Prism.Interactivity 之 PopupWindowAction 用法简记
- 网络空间站是计算机,超级病毒或入侵国际空间站生命维持计算机
- jacoco统计server端功能测试覆盖率
- Codeforces Round #759 (Div. 2, based on Technocup 2022 Elimination Round 3)
- java jpa 规范_Java:在JPA中使用规范模式
- mnist手写数字数据集_mnist手写数据集(1. 加载与可视化)
- chipsel语言_用VHDL语言对FPGA和CPLD器件进行开发时应注意的事项
- 《银花季刊》版式海报欣赏,看大咖的神操作
- 谈谈MySQL的WriteSet并行复制
- javaweb四种域对象的应用
- 密码的输入问题(do while()和st1.equals(st2)的使用)
- Android开发实用小工具二——长度转换工具
- mysql注入扫描网站漏洞工具_SQL注入漏洞扫描工具
- 什么是IaaS PaaS SaaS,看这一篇就够了
- ScrollView嵌套Tablaout与ViewPager联动(标签)(ScrollView与ViewPager冲突)
- open-falcon短信报警
- 鹿狩猎 - 认识到许多因素要记住
- java 实现word文档的在线签批圈阅(手写批注)
- HTML5之Worker用法
- 深入理解Apache虚拟主机
热门文章
- kali安装网卡驱动
- Git 学习(篇六 --储藏与清理)
- 解决docker删除镜像时image is referenced in multiple repositories
- [可解释机器学习]Task07:LIME、shap代码实战
- [转] Linux-2.6.32 NUMA架构之内存和调度
- Google books deal battle heats up 谷歌数字图书馆建
- 1428D - Bouncing Boomerangs(思维+构造+贪心)
- 常见数据类型的API
- luogu P2123 皇后游戏
- 拼多多顶级佣金助手-微信群自动发单