一、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包)场景分析相关推荐

  1. TCP连接异常终止(RST包)

    转自:http://blog.csdn.net/ixidof/article/details/8049667 TCP异常终止(reset报文) TCP的异常终止是相对于正常释放TCP连接的过程而言的, ...

  2. TCP连接的心跳包机制

    文章目录 什么是心跳机制 为什么需要心跳机制? 如何及时有效地检测到另一方的非正常断开 TCP的keeplive保活机制 什么是心跳机制 所谓的心跳包就是(探测性的)数据包,之所以叫心跳包是因为:它像 ...

  3. TCP协议-TCP连接管理

    一.TCP概述 TCP协议是 TCP/IP 协议族中一个非常重要的协议.它是一种面向连接.提供可靠服务.面向字节流的传输层通信协议. TCP(Transmission Control Protocol ...

  4. TCP系列04—连接管理—3、TCP连接的半打开和半关闭

    ====================================================|| 欢迎讨论技术的可以相互加微信:windgs (请备注csdn+xx职业) ======== ...

  5. 原来墙,是这么把我TCP连接干掉的!

    今天聊一个比较轻松的问题:如何关闭一个 TCP 连接? 可能大家第一反应是「杀掉进程」不就行了吗? 是的,这个是最粗暴的方式,杀掉客户端进程和服务端进程影响的范围会有所不同: 在客户端杀掉进程的话,就 ...

  6. Linux的TCP连接数量最大不能超过65535个吗,那服务器是如何应对百万千万的并发的?

    最大并发tcp连接数是多少呢? 首先,问题中描述的65535个连接指的是客户端连接数的限制. 在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三次握手后建立tcp连接 ...

  7. 一个解除TCP连接的TIME_WAIT状态限制的简便方法

    近日无意间发现了一个小窍门:当TCP连接所对应socket的接收队列中仍有未读数据时,将此socket强行close后,将使此socket连接不会进入TIME_WAIT状态,用"netsta ...

  8. 你知道 HTTP 是如何使用 TCP 连接的吗?今天我就来告诉你!

    之前我写了篇关于 HTTP 的文章,文章中讲述了 HTTP 的特点,HTTP 的报文,HTTP 的请求方式等知识,接下来,深入了,我们就关于 HTTP 引发的面试题来进行入手,一起来看一下吧! 1.H ...

  9. wireshark抓包分析tcp连接与断开

    其实对于网络通信的学习,最好还是能够自己抓到包详细地看一下,不然只单单通过文字和图的描述印象不够深刻.本文通过实际的抓包操作来看一下tcp的连接与断开是怎样的. 首先需要去https://www.wi ...

  10. java tcp client 断开_HttpClient出现TCP连接异常关闭发送RST包

    问题现象 在与第三方系统通过http交互数据的过程中,抓包发现每次TCP连接都是异常关闭,报文如下: 可以看到,由我方发起3次握手建立连接,然后发送http请求,对方响应数据,我方ACK后直接发RST ...

最新文章

  1. Prism.Interactivity 之 PopupWindowAction 用法简记
  2. 网络空间站是计算机,超级病毒或入侵国际空间站生命维持计算机
  3. jacoco统计server端功能测试覆盖率
  4. Codeforces Round #759 (Div. 2, based on Technocup 2022 Elimination Round 3)
  5. java jpa 规范_Java:在JPA中使用规范模式
  6. mnist手写数字数据集_mnist手写数据集(1. 加载与可视化)
  7. chipsel语言_用VHDL语言对FPGA和CPLD器件进行开发时应注意的事项
  8. 《银花季刊》版式海报欣赏,看大咖的神操作
  9. 谈谈MySQL的WriteSet并行复制
  10. javaweb四种域对象的应用
  11. 密码的输入问题(do while()和st1.equals(st2)的使用)
  12. Android开发实用小工具二——长度转换工具
  13. mysql注入扫描网站漏洞工具_SQL注入漏洞扫描工具
  14. 什么是IaaS PaaS SaaS,看这一篇就够了
  15. ScrollView嵌套Tablaout与ViewPager联动(标签)(ScrollView与ViewPager冲突)
  16. open-falcon短信报警
  17. 鹿狩猎 - 认识到许多因素要记住
  18. java 实现word文档的在线签批圈阅(手写批注)
  19. HTML5之Worker用法
  20. 深入理解Apache虚拟主机

热门文章

  1. kali安装网卡驱动
  2. Git 学习(篇六 --储藏与清理)
  3. 解决docker删除镜像时image is referenced in multiple repositories
  4. [可解释机器学习]Task07:LIME、shap代码实战
  5. [转] Linux-2.6.32 NUMA架构之内存和调度
  6. Google books deal battle heats up 谷歌数字图书馆建
  7. 1428D - Bouncing Boomerangs(思维+构造+贪心)
  8. 常见数据类型的API
  9. luogu P2123 皇后游戏
  10. 拼多多顶级佣金助手-微信群自动发单