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
  • 相关阅读:
    如何使用 Cdosys.dll 库使用 Visual C# 中发送电子邮件带有附件接收邮件
    Top 126 Ajax Tutorials
    javascript 操作日期 测试(注意浏览器兼容问题)
    Reference List between HTTP_ACCEPT_LANGUAGE Servervariable value, Locale ID (LCID) and Language区域化设置
    Locale ID (LCID) Chart 区域设置ID
    cookieLibrary.js 写入cookie的JavaScript代码库
    如何使用 Cdosys.dll 库使用ASP发送邮件带附件
    Excel 工作表,单元格破解密码宏
    World Currency Symbols世界货币符号
    Dijkstra's Shortest Path Algorithm(最短路径算法)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348491.html
Copyright © 2011-2022 走看看