我这边的服务器结构是这样的一个OR做API网关和一个OR做TCP服务器(9527),同一台物理机.
OR API网关主要就是connet(9527),send,recv,setkeepalive
OR TCP服务器只要就是recv,send
结果就是API网关在setkeepalive的时候报错,dubious,也就是没收干净,我抓包的结果是9527先发的FIN包
04:38:53.843823 IP localhost.60622 > localhost.9527: Flags [S], seq 152893948, win 43690, options [mss 65495,sackOK,TS[|tcp]>
23:20:22.970529 IP localhost.9527 > localhost.60622: Flags [S.], seq 1481119461, ack 152893949, win 43690, options [mss 65495,sackOK,TS[|tcp]>
04:38:53.843881 IP localhost.60622 > localhost.9527: Flags [.], ack 1, win 342, options [nop,nop,TS[|tcp]>
04:38:53.843988 IP localhost.60622 > localhost.9527: Flags [P.], seq 1:40, ack 1, win 342, options [nop,nop,TS[|tcp]>
04:38:53.844001 IP localhost.9527 > localhost.60622: Flags [.], ack 40, win 342, options [nop,nop,TS[|tcp]>
04:38:53.849913 IP localhost.9527 > localhost.60622: Flags [P.], seq 1:39, ack 40, win 342, options [nop,nop,TS[|tcp]>
04:38:53.849935 IP localhost.60622 > localhost.9527: Flags [.], ack 39, win 342, options [nop,nop,TS[|tcp]>
04:38:53.850021 IP localhost.9527 > localhost.60622: Flags [F.], seq 39, ack 40, win 342, options [nop,nop,TS[|tcp]>
04:38:53.850200 IP localhost.60622 > localhost.9527: Flags [F.], seq 40, ack 40, win 342, options [nop,nop,TS[|tcp]>
04:38:53.850218 IP localhost.9527 > localhost.60622: Flags [.], ack 41, win 342, options [nop,nop,TS[|tcp]>
然后我在API网关那边的setkeepalive之前sleep3秒,结果还是报错,dubious,也是9527先发的FIN包
04:40:28.219619 IP localhost.60626 > localhost.9527: Flags [S], seq 3369958989, win 43690, options [mss 65495,sackOK,TS[|tcp]>
15:56:00.603465 IP localhost.9527 > localhost.60626: Flags [S.], seq 1187534809, ack 3369958990, win 43690, options [mss 65495,sackOK,TS[|tcp]>
04:40:28.219677 IP localhost.60626 > localhost.9527: Flags [.], ack 1, win 342, options [nop,nop,TS[|tcp]>
04:40:28.219875 IP localhost.60626 > localhost.9527: Flags [P.], seq 1:40, ack 1, win 342, options [nop,nop,TS[|tcp]>
04:40:28.219890 IP localhost.9527 > localhost.60626: Flags [.], ack 40, win 342, options [nop,nop,TS[|tcp]>
04:40:28.226227 IP localhost.9527 > localhost.60626: Flags [P.], seq 1:39, ack 40, win 342, options [nop,nop,TS[|tcp]>
04:40:28.226249 IP localhost.60626 > localhost.9527: Flags [.], ack 39, win 342, options [nop,nop,TS[|tcp]>
04:40:28.226336 IP localhost.9527 > localhost.60626: Flags [F.], seq 39, ack 40, win 342, options [nop,nop,TS[|tcp]>
04:40:28.266038 IP localhost.60626 > localhost.9527: Flags [.], ack 40, win 342, options [nop,nop,TS[|tcp]>
04:40:31.230319 IP localhost.60626 > localhost.9527: Flags [F.], seq 40, ack 40, win 342, options [nop,nop,TS[|tcp]>
04:40:31.230358 IP localhost.9527 > localhost.60626: Flags [.], ack 41, win 342, options [nop,nop,TS[|tcp]>
不大理解为什么回出现这种情况