前面在介绍TCP三次握手和TCP四次挥手时已经介绍了TCP报文段格式中的SYN, ACK, FIN了. 本节就单独介绍一下TCP报文段中的RST
RST介绍
RST : 复位. 关闭异常的连接.
当要发送RST时要注意两点 :
- 发送RST段关闭连接时, 直接丢弃缓冲区中的数据, 直接发送RST.
- 对端接收到RST时, 直接关闭, 不需要发送ACK确认, 也没有四次挥手.
RST产生
在我们错误的运行或者断开网络中的一端时, 就很容易收到RST段. 比如 :
- 不存在的端口的连接请求. 即, 对端没有启动监听服务. 对于UDP, 将产生一个ICMP端口不可达的信息. TCP则使用复位。如 : 对端没有启动, 对端断网后重启等.
- 半打开连接. 一方已经关闭或异常终止连接而另一方却还不知道.
- 异常释放. 这时 发送RST段关闭连接时, 直接丢弃缓冲区中的数据, 直接发送RST.对端接收到RST时, 直接关闭, 不需要发送ACK确认, 也没有四次挥手. 如 : 对端突然断网, 关机等.
调用close
, shutdown
, ctrl+c关闭, 程序自动结束啊, 都是正常的四次挥手.
总结
清楚RST的产生以及部分可能的原因, 可以帮助我们以后的分析. TCP报文段的剩下的部分我们以后再来介绍.