当来自服务器的 FIN、ACK 之后发送 RST 时,客户端的套接字发送不会失败
场景如下: TCP服务器运行在solaris上,TCP客户端运行在Linux上。客户端连接并开始发送数据。客户端停止发送数据,并且在 N 不活动秒后,服务器发送 FIN、ACK(可能来自发送管道上的关闭调用)。客户端再次开始发送数据。服务器崩溃了,开始发送一堆没有设置其他标志的 RST 数据包。第一个数据包丢失,他们再次握手。发送永远不会返回错误,并且一个数据包会默默地丢失。
有什么想法为什么 RST 没有传播到客户端吗?
Heres the scenrio:
TCP server running on solaris, TCP client running on Linux. Client connects and starts sending data. Client stops sending data and after N inactive seconds the server send a FIN, ACK (presumably from a shutdown call on the send pipe). The client starts sending data again. The server freaks out and starts sending a bunch of RST packets with no other flags set. The first packet is lost and they handshake again. The send never returns an error and the one packet is silently lost.
Any ideas why the RST is not being propagated to the client?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
正在传播发送错误和重新连接。我的不好。我猜盯着日志看得太久了。谢谢!
The send error and re-connect is being propgated. My bad. Staring at logs too long I guess. THANKS!