CONNECTION_RESET(分析CONNECTION_RESET及解决思路)

CONNECTION_RESET(分析CONNECTION_RESET及解决思路)

我们在开发过程中经常会出现Connection reset问题,包括http调用,数据库连接等场景。出现Connection reset的原因很多,本文从tcp层面简单介绍下Connection reset出现的原因,以及在实际开发过程中如何排查这类问题。

CONNECTION_RESET(分析CONNECTION_RESET及解决思路)


1、什么是Connection reset

  在TCP首部中有6个标志位,其中一个标志位为RST,用于“复位”的。无论何时一个报文 段发往基准的连接( referenced connection)出现错误,TCP都会发出一个复位报文段。如果双方需要继续建立连接,那么需要重新进行三次握手建立连接。

2、出现RST的原因

2.1 RST攻击、干扰

  上面简单介绍了RST标志位的作用,很容易想到这样一个场景,如果中间网络节点想要破坏一个tcp连接,那么它只要伪造成其中一方发送RST报文到另一方,即可让双方连接失效。

  上图中,三次握手建立了tcp连接,由于是https连接,需要进行加密操作。这时,对方发送RST,双方并没有进行“四次挥手”,而是连接直接失效。这时客户端发起重拾,重新建立连接,但是很快又被“对方”重置了。和客户端连接tcp连接以及发送RST报文的,都不一定是真正的服务端,而可能是中间节点。我们使用HTTPS可以避免受到中间人攻击。对方无法使用中间人攻击,但是想阻止我们访问,所以可以通过RST来重置连接。

2.2 请求一个不存在的端口

  当客户端访问服务端一个没有监听的端口时,服务端会发送RST报文。

  如上图所示,客户端(192.168.2.192)访问了服务端(192.168.2.1)一个未监听的端口(9090),服务端发送了RST报文。

2.3 异常终止一个连接

  终止一个连接的正常方式是一方发送 FIN。有时这也称为有序释放(orderly release),因为在所有排队数据都已发送之后才发送 FIN,正常情况下没有任何数据丢失。但也有可能发送一个复位报文段而不是 FIN来中途释放一个连接。有时称这为异常释放 (abortive release)。

  上图,当客户端连接redis后,我们手动关闭redis服务,redis服务端会发送RST来强制终止一个连接。客户端通常收到这样的错误:Connection reset by peer,或者:远程主机强迫关闭了一个现有的连接。

2.4 半打开连接

  如果一方已经关闭或异常终止连接而另一方却还不知道,我们将这样的TCP连接称为半打开(Half-Open)的。只要不打算在半打开 连接上传输数据,仍处于连接状态的一方就不会检测另一方已经出现异常。

3、排查思路

  实际开发过程中,前面三个问题比较容易识别和解决。最困难的是最后一种半打开连接,原因往往很难发现。因为网络正常的情况下,都会通过正常关闭或者2.3的方式来关闭连接。现在客户端和服务端的网络非常复杂,有各种nat,代理,防火墙等设备,这些中间设备可能配置了一些安全策略,导致断开连接而不通知。

  通过查询客户端日志,定位出现异常的时间。查询服务端日志,查询有无连接断开日志;查询连接是否存在;如果不存在,查询断开的时间。通过这些可以判断是不是由于半打开连接导致的问题。半打开连接一般是由于中间设备或者网络问题断开连接,而客户端不知道。

  解决方案就是找到对应的设备,配置连接,避免长连接断开。

  临时方案就是,开启keep-live;减少长连接存活时间;连接异常时进行重试。

版权声明:本文内容由网友提供,该文观点仅代表作者本人。本站(http://www.zengtui.com/)仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 3933150@qq.com 举报,一经查实,本站将立刻删除。

本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至907991599@qq.com 举报,一经查实,本站立即删除。本文作者:小稿,如若转载,请注明出处:http://www.diehen.com/329178.html
(0)
小稿的头像小稿
上一篇 2024年3月12日 下午3:08
下一篇 2024年3月12日 下午3:09

相关推荐

  • 激光圆管切割机(激光切割机轻松解决管材切割的疑难杂症)

    激光圆管切割机(激光切割机轻松解决管材切割的疑难杂症) 管材拼接缝隙大? 型材拼接难度大、效率低? 焊接后结构件强度达不到要求? 当今鱼龙混杂的时代 唯有具备一套武功秘籍 方能突破…

    2023年12月10日
  • 三角函数和角公式有哪些关系,三角函数和角公式记忆口诀

      三角函数和角公式有哪些关系,三角函数和角公式记忆口诀是三角函数和角公式又称三角函数的加法定理,是几个角的和的三角函数通过其中各个角的三角函数来表示的关系的。  关于三角函数和角公式有哪些关系,三角函数和角公式记忆口诀以及三角函数和角公式有哪些关系,三角函数和角公式百科,三角函数和角公式记忆口…

    投稿 2023年11月26日
  • 对角矩阵怎么求值,矩阵的对角矩阵怎么求

      对角矩阵怎么求值,矩阵的对角矩阵怎么求是求对角矩阵的方法:求出一个矩阵的全部互异的特征值a1的。  关于对角矩阵怎么求值,矩阵的对角矩阵怎么求以及对角矩阵怎么求值,一个矩阵的对角矩阵怎么求,矩阵的对角矩阵怎么求,相似对角矩阵怎么求,分块对角矩阵怎么求等问题,小编将为你整理以下知识:对…

    投稿 2023年11月21日
  • 今天语音搜索了吗?如何个性化你的Windows 8桌面背景

    打开电脑,进入桌面。每天都面对同样的背景可能会感觉单调乏味,所以今天我们来教你如何轻松修改电脑桌面背景。 步骤一:打开个性化设置 首先,在桌面的空白处点击右键,在弹出的菜单栏中选择…

    投稿 2024年3月26日
  • 世界上最胖的孩子,阿里亚·珀尔马纳(仅10岁重400斤)

    小孩子肥胖现象现在是越来越严重了,很多小孩在仅几岁的时候其体重就达到上百斤,而今天我们所要说到的这位世界上最胖的孩子更是“可怕”,仅10岁的年龄,其体重便已经是达到了400斤之重,…

    2023年12月30日
  • 什么是普通流通银币

    所以我们今天就来给大家看看直隶总督兼北洋大臣督办的北洋局造银元。北洋造光绪二十二年版系列银圆打破了中国历代以两钱纪重的习惯,大清国光绪二十二年北洋机器局造“ 本文目录一览: 1、什…

    2023年9月19日
  • 叶黄素的功效与作用(瞳视力草本护眼领跑行业)

    叶黄素的功效与作用(瞳视力草本护眼领跑行业)我们的瞳仁是我们视网膜中最敏感的部分,也是人类视力最敏锐的部分之一。但随着高度使用电子设备,我们的眼睛越来越容易出现各种问题。瞳视力认为如果眼睛尚缺营养,可能最理想的解决方案就是通过饮食来补充足够的叶黄素来保护我们的眼睛。叶黄素是一种天然的营养…

    投稿 2023年12月4日
  • Microsoft FrontPage安装及简单使用教程【推荐】

    在Windows操作系统上,Microsoft FrontPage是一款由微软设计的免费web编译软件,它支持.NET技术,提供了主题更换功能,并且还有中文版可供选择。对于不善于英…

    投稿 2024年4月2日
  • 汉族一共有多少个节日啊,汉族有多少个节日,分别是

      汉族一共有多少个节日啊,汉族有多少个节日,分别是是汉族的节日很多,主要有春节、清明节、端午节、元宵节、中秋节等等的。  关于汉族一共有多少个节日啊,汉族有多少个节日,分别是以及汉族一共有多少个节日啊,汉族一共有多少个节日风俗,汉族有多少个节日,分别是,汉族有哪些节日,汉族一共有几个节日等问题…

    投稿 2023年11月26日
  • 如何有效保护IE收藏夹内容【推荐】

    收藏夹在日常生活中的重要性 互联网已经成为我们日常生活中不可或缺的一部分,我们经常会收藏喜欢的或者重要的网址以便日后查阅。然而,当电脑系统崩溃或需要重装时,收藏夹中的内容往往会丢失…

    投稿 2024年4月3日