mysql监听显示syn_sent_如何构造一个 SYN_SENT 状态的连接

本文通过示例介绍了TCP连接过程中客户端在SYN_SENT状态的情况,当尝试连接到1.1.1.1:8089时,由于连接超时,客户端发送的SYN包多次重试,最终导致连接失败。同时,展示了使用`netstat`和`tcpdump`命令观察这一过程的方法。
摘要由CSDN通过智能技术生成

对于客户端而言:

初始的状态是处于 CLOSED 状态。CLOSED 并不是一个真实的状态,而是一个假想的起点和终点。

客户端调用 connect 以后会发送 SYN 同步报文给服务端,然后进入 SYN-SENT 阶段,客户端将保持这个阶段直到它收到了服务端的确认包。

如果在 SYN-SENT 状态收到了服务端的确认包,它将发送确认服务端 SYN 报文的 ACK 包,同时进入 ESTABLISHED 状态,表明自己已经准备好发送数据。

node2:/root/test#time python t18.py

Traceback (most recent call last):

File "t18.py", line 6, in

s.connect(("1.1.1.1",8089))

File "/usr/local/python27/lib/python2.7/socket.py", line 224, in meth

return getattr(self._sock,name)(*args)

socket.error: [Errno 110] Connection timed out

real1m3.031s

user0m0.024s

sys0m0.006s

Last login: Sun Mar 8 11:05:42 2020 from 192.168.137.1

node2:/root#netstat -na | grep 1.1.1.1

tcp 0 1 192.168.137.3:36674 1.1.1.1:8089 SYN_SENT

node2:/root#

node2:/root#tcpdump -S -i eth1 '((tcp) and (port 8089) and (host 1.1.1.1))'

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes

12:09:35.772552 IP node2.36705 > one.one.one.one.8089: Flags [S], seq 4166753538, win 14600, options [mss 1460,sackOK,TS val 199217467 ecr 0,nop,wscale 7], length 0

12:09:36.772292 IP node2.36705 > one.one.one.one.8089: Flags [S], seq 4166753538, win 14600, options [mss 1460,sackOK,TS val 199218467 ecr 0,nop,wscale 7], length 0

12:09:38.772543 IP node2.36705 > one.one.one.one.8089: Flags [S], seq 4166753538, win 14600, options [mss 1460,sackOK,TS val 199220467 ecr 0,nop,wscale 7], length 0

12:09:42.772616 IP node2.36705 > one.one.one.one.8089: Flags [S], seq 4166753538, win 14600, options [mss 1460,sackOK,TS val 199224467 ecr 0,nop,wscale 7], length 0

12:09:50.772741 IP node2.36705 > one.one.one.one.8089: Flags [S], seq 4166753538, win 14600, options [mss 1460,sackOK,TS val 199232467 ecr 0,nop,wscale 7], length 0

12:10:06.772496 IP node2.36705 > one.one.one.one.8089: Flags [S], seq 4166753538, win 14600, options [mss 1460,sackOK,TS val 199248467 ecr 0,nop,wscale 7], length 0

SYN 包重传了 6 次,这个值是由/proc/sys/net/ipv4/tcp_syn_retries决定的, 在我的 Centos 机器上,这个值等于 6

cat /proc/sys/net/ipv4/tcp_syn_retries

6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值