网络通信中 TCP 产生 RST 的三个条件分析

网络通信中 TCP 产生 RST 的三个条件分析RST是TCP发生错误时发送的一种TCP分节(segment:传输层的PDU),可用来异常的关闭一个连接,此时客户端会返回一个ECONNREFUSED错误。它会在以下三种情况下产生:目的地为某个端口的SYN到达服务器,但并没有服务器在该端口监听。TCP想取消一个已有连接,即异常地关闭连接。TCP接收到一个根本不存在的连接上的分节。第一种情况可能有如下…

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

Jetbrains全系列IDE稳定放心使用

RST 是 TCP 发生错误时发送的一种 TCP 分节( segment:传输层的 PDU ),可用来异常的关闭一个连接,此时客户端会返回一个 ECONNREFUSED 错误。
它会在以下三种情况下产生:

  • 目的地为某个端口的 SYN 到达服务器,但并没有服务器在该端口监听。
  • TCP 想取消一个已有连接,即异常地关闭连接。
  • TCP 接收到一个根本不存在的连接上的分节。

第一种情况可能有如下原因:
客户端连接的端口不正确或者端口未打开(即服务器未运行)。

第二种情况可以查看第二个参考链接

第三种情况的原因:
服务端在接收到客户端部分数据后,主动关闭了连接(此时服务端处于 TIME_WAIT 状态,可以接收数据),但是客户端仍然继续在发送剩余数据。此时服务端会给客户端发送 RST。

RST 有什么用途?
在 TCP 连接发生异常情况时可以通过发送 RST 包告知对方关闭连接,不必等缓冲区的包都发出去(不像上面的FIN包),直接就丢弃缓存区的包发送 RST 包。而接收端收到 RST 包后,也不必发送 ACK 包来确认

参考链接:

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

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

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


相关推荐

  • java输入语句怎么写_java输入语句应该怎样写?示例演示

    java输入语句怎么写_java输入语句应该怎样写?示例演示作为初步进入java开发学习的小白来说,就像是小时候刚刚学说话一样,这种经历既是必然的也是有趣的,学习java语言一开始的时候也是得一步步的学习,比如说,java输入语句应该这么去实现呢?一起跟小编来看看吧。第一步:导包。先将java.io.*;以及java.util.*;导入Java代码中。charc=(char)System.in.read();是输入单个字符;inta=cin.nextI…

    2022年7月9日
    34
  • 程序员面试宝典——第6章

    程序员面试宝典——第6章1 宏定义 define 基本知识 defineSECOND PER YEAR 60 60 24 365 UL 宏定义只是定义 不牵扯计算 defineMIN A B A lt B A B 2 constint nbsp b 500 constint a amp b const 修饰指针所指向的变量 指针的内容为常量 intconst a amp b const 修

    2025年8月18日
    3
  • 没有理想,你和我还有什么区别呢![通俗易懂]

    阳光之中到处可见 奔忙的人们 被拥挤着 被一晃而飞的光阴 忽略过

    2022年2月26日
    68
  • mapper.xml作用_mapper foreach

    mapper.xml作用_mapper foreach今天测试mybatis接口时遇到一个小问题,花了好长时间Failedtoinstantiate[org.apache.ibatis.session.SqlSessionFactory]:Factorymethod’sqlSessionFactory’threwexception;nestedexceptionisorg.springframework.core.NestedIOException:Failedtoparsemappingresource:’file[E

    2022年9月30日
    2
  • ubuntu的ssh连不上_ubuntu网络连接没有显示出来

    ubuntu的ssh连不上_ubuntu网络连接没有显示出来之前发在其他的博客上的,现在移动以下位置之前的链接:http://blog.chinaunix.net/uid-69944074-id-5831708.html(原创文章)使用Ubuntu,经常需要需要SSH远程连接,但是有时候会出现问题,难以捉摸,下面参考别人的,在结合自己的尝试总结下吧。服务器配完ubuntu系统以及LNMP环境以后,想用WINSCP远程登录,就需要开启SSH服务才能支持。SSH服务分为客户端和服务器。顾名思义,我想用putty远程登录Ubuntu服务器,所以需要安装SSH s

    2022年8月8日
    8
  • tree命令安装

    tree命令安装linux下文件系统是目录树的形式存在,可以通过tree命令显示查看目录树结构。但是在linux系统上并没有tree这个命令,这里进行tree命令安装的讲述。安装tree命令:[root@lijinbutree-1.7.0]#tree-bash:tree:commandnotfound这表示tree命令没有安装。下载最新的tree命令源码压缩包:ftp://mama.inds

    2022年7月24日
    10

发表回复

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

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