1.访问的服务器端口未打开
访问的主机对应的端口没有开放,就会回RST。
2.请求超时
例:主机A向主机B发送SYN信号,想连接6666端口,主机A设置了设置了recv的超时时间为100ms,如果在100ms内还没收到主机B的ACK和SYN回复,则主机A发送了RST拒绝进一步发送数据。
3.服务端提前关闭socket
例如,客户端发了两个请求,服务器只从buffer 读取第一个请求处理完就关闭连接,tcp层认为数据没有正确提交到应用,使用rst关闭连接。
4 .服务器关闭或异常终止了连接,由于网络问题,客户端没有收到服务器的关闭请求,这称为TCP半打开连接。
就算重启服务器,也没有连接信息。如果客户端向提其写入数据,对方就会回应一个RST报文段。
5.假的rst
比如你在国内打开墙外的某些网站,防火墙会模拟服务器给你发个rst,让你打不开网站。