connection reset by peer和同步方法有关吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了connection reset by peer和同步方法有关吗相关的知识,希望对你有一定的参考价值。

参考技术A 无关,connectionresetbypeer可以点击开始选择运行,在运行对话框中输入netstat-an回车检查网络情况,在客户端关闭了浏览器,服务器还继续发送数据到客户端,重复出现异常信息没有得到处理,在服务器的日志文件过多,就会影响了服务器正常运行,如果网络是通过防火墙连接,防火墙有超时限制,网络在连接时长时间不传输数据,就会关闭TCP会话,关闭了又读写,就产生异常,闭防火墙再重新配置防火墙,编写程序使用TCP长连接就可以了。

【tcp】关于 connection reset、connection reset by peer

参考技术A 我们先熟悉一下 tcp 三次握手和四次挥手:

RST的标志位,这个标识为在如下几种情况下会被设置,以下是我了解的情况,可能还有更多的场景,没有验证:

1. 当尝试和未开放的服务器端口建立tcp连接时,服务器tcp将会直接向客户端发送reset报文;

2. 双方之前已经正常建立了通信通道,也可能进行过了交互,当某一方在交互的过程中发生了异常,如崩溃等,异常的一方会向对端发送reset报文,通知对方将连接关闭;

3. 当收到TCP报文,但是发现该报文不是 已建立的TCP连接列表 可处理的,则其直接向对端发送reset报文;

4. ack报文丢失,并且超出一定的重传次数或时间后,会主动向对端发送reset报文释放该TCP连接。

“ Connection reset by peer ”和“ Connection reset” 是有区别的:

服务器返回了“RST”时,如果此时 客户端 正在从Socket套接字的 输出流 中 读数据 则会提示Connection reset”;

服务器返回了“RST”时,如果此时 客户端 正在往Socket套接字的 输入流 中 写数据 则会提示“Connection reset by peer”。

“connection reset by peer”和”broken pipe”出现的场景:

1)往一个对端已经close的通道写数据的时候,对方的tcp会收到这个报文,并且反馈一个reset报文。

当收到reset报文的时候,继续做 select读数据 的时候就会抛出Connect reset by peer的异常。

2)当第一次往一个对端已经close的通道写数据的时候会和上面的情况一样,会收到reset报文。

当再次 往这个socket写数据 的时候,就会抛出Broken pipe了 。

根据tcp的约定,当收到reset包的时候,上层必须要做出处理,调用将socket文件描述符进行关闭,其实也意味着pipe会关闭,因此会抛出这个顾名思义的异常。

Orderly Versus Abortive Connection Release in Java

https://docs.oracle.com/javase/1.5.0/docs/guide/net/articles/connection_release.html

关于 Connection reset原因分析和解决方案

https://my.oschina.net/xionghui/blog/508758

从tcp原理角度理解Broken pipe和Connection Reset by Peer的区别

http://lovestblog.cn/blog/2014/05/20/tcp-broken-pipe

对TCP重传的进一步认识

http://blog.sina.com.cn/s/blog_4d276ac901011ee7.html

https://www.cnblogs.com/YXBLOGXYY/p/14243259.html

以上是关于connection reset by peer和同步方法有关吗的主要内容,如果未能解决你的问题,请参考以下文章

如何解决connection reset by peer

Connection reset by peer

cassandra 日志中一直出现Connection reset by peer

Netty 出现 Connection reset by peer 异常的几个原因

Connection reset by peer的常见原因及解决办法

connection reset by peer