ack oscillate

ack  oscillate

 

 拓扑: client--->AA-tproxy-BB----------server

client server 之间使用tproxy 代理

从抓取报文来看,在管理连接的时候出现大量ack报文,以上不是完整报文

直接给结论吧:

  • server主动关闭发出FIN, BB 收到FIN后,发出Fin-ack,同时去AA 主动关闭;所以socket 状态为:BB为last_ack
  • server 收到BB 的fin_ack后,主动发出ack 此时server 进入time_wait 状态, 同时BB收到ack 就进入close状态
  • client 收到fin 后 内核协议栈回复ack 同时应用层会发出fin,如果此时client 的被动FIN 延时发送, 同时 AA socket 处于Fin2 状态 如果FIN2 超时被回收, 此时server 处于time_wait 状态
  • client 响应发送FIN 此时 tproxy 代理没有找到之前的socket,FIN2 下超时回收,此时应该怎么处理??
  • 如果不转发 就会触发client的超时重传最后回收
  • 如果转发就转发到server 端 ,但是server 端处于time-wait 状态,此时就会响应ack 报文然后就出现了ack 震荡!!

目前想到的解决办法是:使用rst 关闭或者 不转发了

 

上一篇:Android系统设置和状态栏去掉WIFI等部分选项


下一篇:BootstarpBlazor 之 本地化