TCP首部有6个标志比特,也叫标志位,分别是:
URG(紧急指针有效)、
ACK(确认序号有效)、
PSH(接收方应该尽快将这个报文段交给应用层)、
RST(重置连接、复位连接)、
SYN(同步序号用来发起一个连接)、
FIN(发送端完成发送任务)。
一般来说,无论何时一个报文段发往基准的连接(由目的IP地址和目的端口号以及源IP地址和源端口号指明的连接)出现错误,TCP都会发出一个复位报文段。
一般出现RST的集中场景:1.访问不存在的端口连接请求;2.异常终止一个连接;3.检查半打开连接。
具体来说,四种情况会发送RST包:
1、端口未打开
2、请求超时
3、提前关闭
4、在一个已关闭的socket上收到数据
以下情况不一定出现TCP分节RST:服务器主机崩溃后重启
解释:
服务器主机崩溃后重启,它的TCP丢失了崩溃前的所有连接信息,若服务器TCP收到来自客户的数据分节,就会响应一个RST。
但如果客户机在服务器崩溃后并没有发送任何数据分节,那服务器重启后也就不会产生RST