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只能收数据,不能发数据。