一 RST概述:
(1)定义:RST表示复位,RST=1表示TCP中出现严重错误(由于主机崩溃或其它原因),必须释放连接。RST=1还可用来拒绝一个非法的报文段或拒绝打开一个连接。发送RST后不会再有正常的四分组终止序列(Unix网络编程so_linger选项)。
(2)有三个条件可以产生RST:
*SYN到达某端口但此端口上没有正在监听的服务器(针对TCP而言,UDP则返回端口不可达ICMP错误)。
*TCP想取消一个已有连接(使用套接字SO_LINGER选项)。
*TCP接收了一个根本不存在的连接上的分节。
(3)RST报文段不会导致另一端产生任何响应,另一端不进行确认,收到RST的一段将终止该连接,并通知应用层连接复位。
(4)RST会造成丢弃任何待发数据并立即发送复位报文段。正常终止连接是在所有排队数据都已经发送之后才发送FIN,正常情况下没有任何数据丢失(TCP/IP详解p187)。