当一个TCP报文的RST标志位被标记时,该报文称为“重置报文”。

一般来说,当发现接收到的一个报文段对于连接来说是不正确 ,TCP就会发送一个重置报文段。


针对不存在端口的连接请求

当一个连接请求到达本地却没有相关进程在目的端口侦听时就会产生一个重置报文段。

UDP协议规定,当一个数据报到达一个不能使用的目的端口时就会生成一个ICMP目的地不可达的消息。
TCP协议则使用重置报文段来代替完成相关工作。


终止一条连接

终止一条连接的正常做法是发送一个FIN,这称为有序释放。
然而在任何时刻,可以通过发送一个重置报文段替代FIN来终止一条连接。称为终止释放。

使用重置报文段终止一条连接的两大特性:

  1. 任何排队的数据都将被抛弃,一个重置报文段会被立即发送出去。
  2. 重置报文段的接收方会说明通信另一端采用了终止的方式而不是一次正常关闭。

重置报文段的接收方会发出“连接被另一端重置”(reset by peer)的错误提示或类似的消息。


半开连接

如果在未告知另一端的情况下通信的一端关闭或连接,那么就认为该条TCP连接处于半开状态。

这种情况发生在通信一方的主机崩溃的情况下,某一台主机电源被切断。另一端还依然认为连接处于连接状态。

这时如果断电的主机重启,并接收到半开连接传送过来的数据,由于主机重启后已经不认识该条连接,就会发送一个重置报文段作为响应,两端之间的连接会被关闭


时间等待错误

重置报文提前终止TIME_WAIT状态.jpeg