Tcp异常断链

1. 现象

客服访问建行业务偶现超时。

建行server端主动发起断链,发送fin报文,客户B收到后回ACK报文,进入fin-wait-2状态

客户B服务端前设置有防火墙,fin状态下设置10秒超时,客户B超时后的rst报文被防火墙丢了,建行server无法收到rst报文,导致一直处于fin-wait-2状态,直到5分钟超时。

客户A发起新的http请求,由于NAT网关端口分配机制,导致分配到了相同的端口,syn报文到达服务端后,处于该状态下的socket只能收数据,不能发数据。