linux之errno值为104(connetction reset by peer)

举报
chenyu 发表于 2021/07/27 00:33:19 2021/07/27
【摘要】 1 问题 往fd里面写(write方法)入数据的时候出错,返回小于等于0的值,然后这个时候打印errno值是104                 2 分析 errno是104就是connetction reset by peer,表明在对一个对端socket已经关闭的的连接...

1 问题

往fd里面写(write方法)入数据的时候出错,返回小于等于0的值,然后这个时候打印errno值是104

 

 

 

 

 

 

 

 

2 分析

errno是104就是connetction reset by peer,表明在对一个对端socket已经关闭的的连接调用write或send方法,在这种情况下,调用write或send方法后,对端socket便会向本端socket发送一个RESET信号
我们抓包部分图片如下

很明显,这里172.28.100.170向10.0.1.6发了一个RST包,也就是重置包,很明显这里,10.0.1.6是客户端,然后172.28.100.170是 服务端,然后下面进行TCP三次握手的时候,我们可以看到TCP的Retransmission,也就是TCP的重传数据包,TCP协议是一个可靠的协议。它通过重新发送(retransmission)来实现TCP片段传输的可靠性。简单的说,TCP会不断重复发送TCP片段,直到片段被正确接收 。

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/95385822

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。