deepwzh的技术笔记
  • Golang
  • Python
  • Cpp
杂项
前端开发
  • 计算机网络
  • 操作系统
  • 数据库
云原生
Devops
AIGC
关于作者
  • Golang
  • Python
  • Cpp
杂项
前端开发
  • 计算机网络
  • 操作系统
  • 数据库
云原生
Devops
AIGC
关于作者
  • 计算机网络
  • Oauth2
  • 网络工具
  • 学习资料
  • RFC 标准
  • 计算机网络
  • Arp
  • 序列化技术
  • DNS

    • DNS
    • Zone 文件
  • HTTP

    • HTTP
    • OpenAPI
  • Https

    • Https
    • SSL/TLS
    • TLS 指纹
    • Client Hello
  • TCP

    • TCP
    • TCP 选项
    • TCP syn flood 攻击
    • 相关内核参数
    • RST 的集中情况
    • TCP Keepalive
  • 首页

    • 首页
    • test
  • 代理

    • 代理
    • 反向代理

RST 的集中情况

TCP 出现 RST 的几种情况 | Nes 的草稿箱

“Connection reset by peer”,该错误和相同之处都是服务器异常关闭了 socket,但和“Connection reset”是有一定区别的: 服务器返回了“RST”时,如果此时客户端正在从 Socket 套接字的输出流中读数据则会提示 Connection reset”; 服务器返回了“RST”时,如果此时客户端正在往 Socket 套接字的输入流中写数据则会提示“Connection reset by peer”。

而 Connection reset 和 Connection reset by peer 产生的原因都是因为客户端进入 CLOSE_WAIT 状态, 如果客户端继续在这个 socket 上发送数据, 那么服务端给回 RST 包。 服务端都已经发出 FIN 表示请求关闭了, 你客户端还发数据过去, 有意义么? 直接给你 RST。

其实这个问题服务端客户端同理,如果客户端关闭 socket 之后,服务端还在发消息,服务端同样会抛出 Connection reset 异常。

Tcp 选项

tcp 选项 SO_LINGER

参考资料

客户端异常 Connection reset 原因分析

Prev
相关内核参数
Next
TCP Keepalive