zoukankan      html  css  js  c++  java
  • 如何构造一个 SYN_SENT 状态的连接

    对于客户端而言:
    
    初始的状态是处于 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 <module>
        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
    
    real	1m3.031s
    user	0m0.024s
    sys	0m0.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
  • 相关阅读:
    uboot的Makefile分析
    S3C2440上触摸屏驱动实例开发讲解(转)
    linux嵌入式驱动软件开发(csdnblog)
    [连接]研究MSN的一些参考资料(MSNP15)
    关于Asp.net中使用以下代码导出Excel表格的问题
    FCKEditor在Asp.net的安装
    奥运后,接手两个项目,PECT培训,CIW培训,系分考试...........一堆流水帐
    [转]甩掉数据字典,让Sql Server数据库也来一个自描述
    SQL Server 调优将会用到的非常好的DMV
    SQL Server 监视数据文件大小变化
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348491.html
Copyright © 2011-2022 走看看