TCP连接异常终止(RST包)场景分析

TCP连接异常终止(RST包)场景分析一、TCP异常终止(reset报文)TCP的异常终止是相对于正常释放TCP连接的过程而言的,我们都知道,TCP连接的建立是通过三次握手完成的,而TCP正常释放连接是通过四次挥手来完成。但是有些情况下,TCP在交互的过程中会出现一些意想不到的情况,导致TCP无法按照正常的三次握手建立连接或四次挥手来释放连接。如果此时不通过其他的方式来释放TCP连接的话,这个TCP连接将会一直存在,占用系统的资源。在这种情况下,我们就需要有一种能够释放TCP连接的机制,这种机制就是TCP的reset报文。reset报文是指

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、TCP异常终止(reset报文)

TCP的异常终止是相对于正常释放TCP连接的过程而言的,我们都知道,TCP连接的建立是通过三次握手完成的,而TCP正常释放连接是通过四次挥手来完成。但是有些情况下,TCP在交互的过程中会出现一些意想不到的情况,导致TCP无法按照正常的三次握手建立连接或四次挥手来释放连接。如果此时不通过其他的方式来释放TCP连接的话,这个TCP连接将会一直存在,占用系统的资源。在这种情况下,我们就需要有一种能够释放TCP连接的机制,这种机制就是TCP的reset报文。reset报文是指TCP报头的标志字段中的reset位置一的报文,如下图所示:

TCP连接异常终止(RST包)场景分析

 

二、TCP异常终止的常见情形

我们在实际的工作环境中,导致某一方发送reset报文的情形主要有以下几种:

1.  客户端尝试与服务器未对外提供服务的端口建立TCP连接,服务器将会直接向客户端发送reset报文。

TCP连接异常终止(RST包)场景分析

 

2.  客户端和服务器的某一方在交互的过程中发生异常(如程序崩溃等),该方系统将向对端发送TCP reset报文,告之对方释放相关的TCP连接,如下图所示:

TCP连接异常终止(RST包)场景分析

 

3.  接收端收到TCP报文,但是发现该TCP的报文,并不在其已建立的TCP连接列表内,则其直接向对端发送reset报文,如下图所示:

TCP连接异常终止(RST包)场景分析

 

4.  在交互的双方中的某一方长期未收到来自对方的确认报文,则其在超出一定的重传次数或时间后,会主动向对端发送reset报文释放该TCP连接,如下图所示:

TCP连接异常终止(RST包)场景分析

 

5.  有些应用开发者在设计应用系统时,会利用reset报文快速释放已经完成数据交互的TCP连接,以提高业务交互的效率,如下图所示: 

TCP连接异常终止(RST包)场景分析

三、Reset报文的用途

1. 安全设备利用reset报文阻断异常连接

安全设备(如防火墙、入侵检测系统等)在发现某些可疑的TCP连接时,会构造交互双方的reset报文发给对端,让对端释放该TCP连接。比如入侵检测检测到黑客攻击的TCP连接,其构造成被攻击端给黑客主机发送reset报文,让黑客主机释放攻击连接。

2. 利用reset报文实施攻击

安全设备可以利用reset报文达到安全防护的效果,黑客和攻击者也可以利用reset报文实现对某些主机的入侵和攻击,最常见的就是TCP会话劫持攻击。关于TCP会话劫持的相关知识请参考第三章《TCP会话劫持》一文。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187179.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 图像风格迁移_图像风格迁移算法

    图像风格迁移_图像风格迁移算法风格迁移指的是两个不同域中图像的转换,具体来说就是提供一张风格图像,将任意一张图像转化为这个风格,并尽可能保留原图像的内容

    2022年10月21日
    0
  • 旅游吧

    旅游吧生活在城市里的人,都习惯了朝九晚五的生活……每天思想被缩进在身体里,把所有的不如意压抑下去,即使可以大发雷霆,但还是要循规蹈矩的奔上那开往公司的公车……每个跳跃的灵魂被催眠了,换而代之的则是慢慢下垂的累眼……每人都在自己的座位上,无数次的敲打着键盘,习惯了这个习惯的动作,习惯了这个习惯的声音,习惯了这个习惯的频率……在这个北京的大都市,北漂随处可见,想想那在农村,从村头喊一声传到村

    2022年6月12日
    58
  • mysql数据库设计工具--mysql workbench

    mysql数据库设计工具--mysql workbench关键字:Database     在windows下,有一些不错的数据库设计工具,像Powerdesign,但在linux,找来找去,还没有发现一款好的设计工具,即使找到一个dbdesign4,但死活编译不过去,最后,还是在mysql的官网上找到了mysqlworkbench.下面是截图我是通过编译源码来安装的,

    2022年7月11日
    20
  • arping详解

    arping详解最近检测内网机器的ip占用问题,用到了arping,总结一下。版本arping主要干的活就是查看ip的MAC地址及IP占用的问题。arping有两个版本,一个版本是ThomasHabets这个人写的,这个版本有个好处是可以arping<MAC地址>,也就是说我们可以通过MAC地址得到IP。还有一个版本是Linuxiputilssui…

    2022年5月1日
    118
  • 10款好用的谷歌chrome浏览器插件、扩展程序,用起来很爽哦

    10款好用的谷歌chrome浏览器插件、扩展程序,用起来很爽哦TOP1:AdblockPlus介绍:AdblockPlus是Chrome浏览器中非常流行的一款广告拦截插件,AdblockPlus的用户多达数百万之多,在全球范围内都有很高的使用评价,AdblockPlus是由一个开源社区来维护。TOP2:OfficeEditingforDocs,Sheets&Slides介绍:officeediting是一款可…

    2022年4月29日
    87
  • startActivityForResult的坑

    startActivityForResult的坑android中经常会遇到从当前的Activity跳转到另外一个Activity的情况,通常情况下我们会直接选择用startActivity或者startActivityForResult。如果你对这两个方法还不知道的话可以去https://www.cnblogs.com/fuck1/p/5456337.html看看。本文不会告诉你怎么使用这个方法,而是会说说笔者自己遇到的问题以及解决办法。事情…

    2022年7月11日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号