抓包数据:

/go # tcpdump -n port 3306
# 发生了 3次握手
11:38:15.679863 IP 172.18.0.5.38822 > 172.18.0.3.3306: Flags [S], seq 4065722321, win 29200, options [mss 1460,sackOK,TS val 2997352 ecr 0,nop,wscale 7], length 0
11:38:15.679923 IP 172.18.0.3.3306 > 172.18.0.5.38822: Flags [S.], seq 780487619, ack 4065722322, win 28960, options [mss 1460,sackOK,TS val 2997352 ecr 2997352,nop,wscale 7], length 0
11:38:15.679936 IP 172.18.0.5.38822 > 172.18.0.3.3306: Flags [.], ack 1, win 229, options [nop,nop,TS val 2997352 ecr 2997352], length 0

# mysql 主动断开链接
11:38:45.693382 IP 172.18.0.3.3306 > 172.18.0.5.38822: Flags [F.], seq 123, ack 144, win 227, options [nop,nop,TS val 3000355 ecr 2997359], length 0 # MySQL负载均衡器发送fin包给我
11:38:45.740958 IP 172.18.0.5.38822 > 172.18.0.3.3306: Flags [.], ack 124, win 229, options [nop,nop,TS val 3000360 ecr 3000355], length 0 # 我回复ack给它

... ... # 本来还需要我发送fin给他,但是我没有发,所以出现了close_wait。那这是什么缘故呢?

参数说明:

src > dst: flags data-seqno ack window urgent options

  • dst:表明从源地址到目的地址
  • flags:是TCP包中的标志信息,S 是SYN标志, F(FIN), P(PUSH) , R(RST) "."(没有标记)
  • data-seqno:是数据包中的数据的顺序号
  • ack:是下次期望的顺序号
  • window:是接收缓存的窗口大小
  • urgent:表明数据包中是否有紧急指针
  • options:是选项
 
 
 
引用:
  • https://juejin.cn/post/6844903734300901390

相关文章:

  • 2021-11-25
  • 2021-11-10
  • 2021-12-13
  • 2021-04-23
  • 2021-07-03
  • 2021-12-16
  • 2021-12-19
  • 2021-07-18
猜你喜欢
  • 2021-09-02
  • 2022-12-23
  • 2021-05-14
  • 2022-12-23
  • 2021-12-03
  • 2021-10-19
  • 2021-08-02
相关资源
相似解决方案